Skip to content

For The Oil

Jeu vidéo Android multijoueur 3D (Client / Serveur)

Projet réalisé par Kenan Ammad et Gauthier Defrance
Lien du projet : https://github.com/For-The-Oil


Sommaire


Présentation du projet

For The Oil est un projet de jeu vidéo Android multijoueur en 3D, développé dans le cadre d’un projet universitaire (SAE – 2025, CY Paris Université).

Le projet repose sur :

  • Un client Android
  • Un serveur applicatif Java TCP
  • Une base de données PostgreSQL
  • Une architecture client–serveur autoritaire

Le serveur est le seul détenteur de la vérité :
il valide les actions, synchronise les clients et empêche toute modification locale frauduleuse.
Toutes les communications entre joueurs transitent obligatoirement par le serveur.

La communication réseau est assurée par la bibliothèque KryoNET, permettant l’échange d’objets sérialisés de manière performante.


Architecture générale

  • Client Android
    • Interface utilisateur
    • Rendu 3D
    • Envoi des actions joueur
  • Serveur Java
    • Validation des actions
    • Synchronisation des états
    • Gestion des parties et des joueurs
  • Base de données PostgreSQL
    • Comptes utilisateurs
    • Decks
    • Cartes débloquées
    • Statistiques

La base de données est hébergée chez AlwaysData.


Utilisation

Un serveur applicatif doit impérativement être lancé pour pouvoir utiliser l’application.

Sans serveur :

  • L’application ne pourra pas fonctionner correctement
  • La connexion échouera systématiquement

Pour lancer votre propre serveur :

  1. Recréez une base de données à partir du dossier Database
  2. Modifiez le fichier de configuration du serveur
  3. Lancez le serveur Java

Une fois le serveur actif :

  • Renseignez l’IP et le port dans l’application
  • Connectez-vous avec vos identifiants
  • Accédez au jeu

Serveur

Message attendu au démarrage du serveur :

Console du serveur affichant le démarrage et l'initialisation

Liste des commandes disponibles côté serveur :

Liste des commandes disponibles sur le serveur

Technologies utilisées côté serveur

  • Jackson – Sérialisation / désérialisation JSON
  • PostgreSQL – Base de données
  • HikariCP – Pool de connexions
  • jBCrypt – Hashage des mots de passe
  • Artemis-ODB – Architecture ECS (Entity Component System)

L’utilisation d’Artemis-ODB permet d’optimiser fortement les performances, aussi bien côté serveur que côté client.


Client Android

Le client Android est structuré autour :

  • De plusieurs Activities
  • De nombreux Fragments
  • De ViewPager2 pour la navigation horizontale

Cette organisation améliore la lisibilité du code et l’expérience utilisateur.

Bibliothèques principales

  • LibGDX

    • Rendu 3D
    • OpenGL ES
    • Gestion des modèles et scènes
  • Lottie

    • Animations vectorielles
    • Écrans de chargement
    • Fond animé du menu principal

Architecture des activités

Schéma simplifié des activités et fragments :

Schéma des activités Android et de leurs fragments


SplashActivity

La SplashActivity est affichée au lancement de l’application.

Fonctionnalités :

  • Tentative de reconnexion automatique
  • Vérification des identifiants
  • Redirection vers l’écran de connexion en cas d’échec

Écran de démarrage de l'application Android


LoginActivity

La LoginActivity est composée de trois fragments :

Connexion

Fragment de connexion utilisateur

Création de compte

Fragment de création de compte utilisateur

Paramètres serveur

Fragment de configuration du serveur


HomeActivity

La HomeActivity correspond à la phase de préparation avant la partie.

Menu principal

Choix du mode de jeu et du deck actif.

Menu principal de la HomeActivity

Gestion des decks

Création, modification et visualisation des decks.

Menu de gestion des decks

Liste des unités

Affichage de toutes les entités du jeu.

Liste complète des unités du jeu

Matchmaking

Attente de joueurs avant le lancement de la partie.

Écran d'attente du matchmaking


GameActivity

La GameActivity gère le déroulement de la partie.

  • LibGDXFragment : rendu 3D OpenGL
  • Fragments UI : HUD, menus, interactions

Vue principale du jeu

Vue principale du jeu en cours de partie

Placement d’un bâtiment

Placement d'un bâtiment sur la carte

Menu des paramètres

Menu des paramètres en jeu


Sources & Références

Bibliothèques et frameworks


Outils et services


Documentation officielle


Ressources graphiques

Les captures d’écran et assets visuels présents dans ce dépôt ont été réalisés dans le cadre du projet For The Oil et sont utilisés uniquement à des fins pédagogiques et démonstratives.

Popular repositories Loading

  1. .github .github Public

  2. src src Public

    Java

  3. Database Database Public

Repositories

Showing 3 of 3 repositories

Top languages

Loading…

Most used topics

Loading…