Dark Forest is an open-source 3D interactive battleground and survival sandbox game. The basic playing logic is to survive till the game ends. The operation for a player includes horizontal and vertical movement, shoot, drink and eat. HP will be affected by hunger, thirstiness, and also possible fight with other players. Since the resources (ammo, food, water are decreasing in time), only one will survive till the end as winner. This game is a multi-player game environment. High-level and low-level development are both required in this project. Low-level development focuses on the game infrastructure development, including character mods, action, operation. High-level development focuses on implementing API for ML-Agent package to train reinforcement learning models and inference from previous models.
Dark Forest lays out on 2D tile map, which is highly customizable and extendable. Multiple types of objects are supported, such as grass, lake, forest, road, cabin, tree, rock. The map border is set to restrict the movement area.
The limited resource (water and food) is set in the game. Agents can obtain food, water by finding forest and lakes in the Dark Forest. Those values are configurable. If losing food or water, they start losing life value. If food and water are enough, they recover the life value.
The character can move discretely movement. Three different status bars (food, water, health) simulate the status of a person in the real world. Those bars reduce with the time. The consumption of the water and food will damage the health. The character can attack others to earn food & water.
A mediator defines an interface that encapsulates the interaction of a group of objects. By removing references between objects, the mediator can reduce the coupling between them and change the interaction between them.
The client is written in C using Unity3D and follows a design: The game state is a 2D tile grid, and the client renders in full 3D with smooth animations. As the client is only used for test-time visualization, this approach enables us to achieve higher computational efficiency than physically simulated environments.
PPO algorithm is used to trained agents to interactive with the environment to learn to survive in the dark forest. AI agents can synthesize the real-time environment (food, water, ammo, etc.) and pick up optimal actionsAI agents learn how to survive in this cruel world as long as possible. Different characters correspond to different action policies.
Team Member
Team Member
Team Member
Team Member
Team Member
Team Member