What I've done
-
Code architecture of client and server (Unity - EntityFramework);
-
UI Workflow (integration/animation/optimization process);
-
Development of the battle game mode;
-
Data table system synchronized with the server;
More about the code architecture.
The game architecture is based on multiple layers. Each layer manage is responsible for its own scope.
-
The Game Instance constitute the core of the Game. It instantiates a Game Mode and a Game Level, contain all essential services and manage the global flow of the game (switching Game Modes, exiting the game).
-
The Global Service Container is responsible for sharing all useful Services throughout the game like SaveService and InputService. This should not contain any game logic.
-
The Game Mode is divided in two distincs parts : the GameModeModule and the GameStates. A GameMode should contains all the logic (rules) and the flow (states) of a part of the game.
-
The Game Mode Module implement fonctionnalities of the game that do not modify the flow of the game. There are severel types of modules including gameplay modules, UI modules, ResourcesManagement modules, Audio Modules, VFX Modules, and so on.
-
The Game Mode States implements a finite state machine, in which the game flow is described. Each state uses GameModeModule to define what's actions are permissible to the player within that state. This methods allow to have full control of what is happening all along the game.
-
-
The Game Level is characterised by a scene or multiple scenes, incorporating graphics assets and all GameplayElements (e.g. chests, trees). A GameLevel can be used with various GameMode, with each implementing specific settings.


Organize data, resolvers and gameplay.
In order to have a replicated code easier to develop, I organize our git with 4 modules.
Unity Module : contain all the Unity Project, game logic, tools and assets.
Server Module : contain database and controllers.
Data Module : will share to Unity Module and Server Module the data structure of the project like player data. It will be implemented to work well with our Unity data table system and with the Entity Framework implementation. To compile easier with Unity and Entity Framework, I just have to replicate attributes used by Entity Framework in Unity Module and replicate attributes used by Unity in the Server Module.
Resolver Module : contain all formulas, sync state machine resolver, AI resolvers. This module is share to Unity Module and Server Module and use Data Module to work.

What I've learned
-
Create database, cache, with Entity Framework API.
-
Use UnityWebRequest and create game architecture for a network game.
-
To think and develop features with anti-cheats.
-
Work with a lot of problematics, the priority was to develop front-end before back-end. Each features had to be thought locally before network for the client.
Description
This land is meant to thrive. Begin your quest to restore a long forgotten forest farm to its former glory and create an enchanting home for yourself and a new generation of Chumbi. Follow in the footsteps of an ancient hero and grow an abundance of different crops that will nourish and empower the valley.
Your Chumbi’s magic will help you be the best farmer possible. Use and level up their spells to care for the land, grow your crops and reap the rewards.