Game Introduction

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.

Features

Environment Representation:

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.

Resource System

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.

Character Function

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.

Data Manager

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.

Front End Client

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.

Multi-agents

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.

Our Team

Tiancong Zhao

Team Member

Zixuan He

Team Member

Nan Wang

Team Member

Hao Jin

Team Member

Jiaqi Deng

Team Member

Di Fan

Team Member