Pro Farm Manager

Un jeu de simulation / gestion agricole

Qui suis-je ?

Le projet

Aslak Studio

Role : Développeur API / Serveur et Unity

Pro Farm Manager est un jeu de simulation et gestion de domaine agricole, jouable en solo ou multijoueur, ce jeu vous permet de créer votre ferme.

Avec plus de 600 hectares à disposition, des terrains varié suivant votre emplacement dans le monde, avec plus de 30 types de véhicules et équipements, un très grand nombre de cultures et animaux différents, il est possible de personnaliser sa ferme à sa guise.

Mon travail

Lors de ce projet je me suis occupé de toute la partie multijoueur, ne nécessitant pas de temps réel (seuls quelques interactions sont présentent entre les joueurs) un web service à était mis en place.

La partie multijoueur est divisé en plusieurs parties :

 

L'espace d'administration :

Basé sur le Framework Symfony 3, un système de sauvegarde basé sur la sérialisation de JSON à était développé.

Le jeu évoluant avec le temps, il était inconcevable de créer une base de données relationnel. De trop nombreux changements arrivent au cours du projet, celle-ci serait donc très compliqué à maintenir, j'ai donc choisi de créer mon propre système.

Me basant sur une base de données MongoDB, une entité se compose d'un type et d'une valeur. Le type permet par la suite de savoir comment créer / éditer l'entité via les formulaires adéquat. La valeur est la liste de ces entités formaté en JSON. Via ce système, j'ai, un module de révisions opérationnel, des entités dynamiques (vus qu'il n'y a que ses configurations à modifier pour ajouter / supprimer un champ) et il m'est possible d'importer et exporter toutes les données vers le jeu.

 

L'API :

Par soucis d'optimisation et de maintenabilité, nous avons cherché le Framework le plus adapté. N'ayant pas besoin de la majeure partie de Symfony et les micro-framework ne permettant pas une grande stabilité vus l'ampleur du projet, il a été décidé de créer Stylex. Se basant sur le micro-framework Silex, nous y avons attaché de quoi homogénéisé l'API avec l'espace d'administration. Par la même occasion nous y avons ajouté certains outils dédiés à l'API : l'ORM Doctrine, de l'injection de dépendances, un routing dédié à l'API (la documentation de la route va par la suite filtrer et faire les authentifications nécessaires), un système de formatage JSON etc..

La partie API en est composé de 4. Un Stylex pour chaque grosse partie du jeu. Cela permettant par la suite de diviser le nombre de requêtes par parties et donc de diminuer la probabilité surmenage d'un serveur.

Unity :

Ayant développé toute la partie serveur, il fût logique que je m'occupe de sa mise en place sur Unity. Je me suis donc occupé de la création des requêtes pour qu'elles soient accessibles le plus simplement possible et ainsi, que les autres développeurs n'aient qu'à les raccorder au système existant.

Autres projets