Version 16 (modified by 3 years ago) ( diff ) | ,
---|
Table of Contents
Idea List for Google Summer of Code
Future students, welcome! On this page, you will find the project ideas we propose for the 2021 edition.
Mentors for 2021
Name | Role | Contact |
---|---|---|
Stan | Developer | Stan on IRC, forums |
Freagarach | Developer | Freagarach on IRC forums |
irishinja | Contributor | irishinja on IRC, forums, |
Project Ideas for 2021
These projects have been specially prepared for you and should bring you the best experience, so we strongly recommend you to take a look at them.
Feature | Relevant link(s) | Difficulty | Mentors | Fallback Mentor |
---|---|---|---|---|
Improved Testing | Detail | Easy | Freagarach | Stan |
BuildingAI improvements | Detail | Easy | Freagarach | Stan |
Intelligent Unit Control with RL | Detail | Easy | irishninja | Stan |
Projects
Intelligent Unit Control with Reinforcement Learning
Description
When units currently engage in combat, they follow a simple "death ball" strategy (i.e., they just all charge in and attack together). There is a huge opportunity here for more intelligent behavior such as learning to kite, flank, or use the terrain to your advantage. Given the recent phenomenal successes of reinforcement learning (e.g. AlphaStar), the recent RL interface in 0 AD, and the availability of algorithm implementations (e.g. RLlib), it seems like a great fit to utilize for intelligent micromanagement!
Expected Result
Creation of a trained RL agent which can micromanage a small group of units. Stretch goals include integrating the RL agent into the existing AI and evaluating generalization across diverse terrain and squad compositions.
Required Prerequisites
Fluency in Python. Experience with machine learning and a background in mathematics is preferred though not required.
Helpful Links
- https://wildfiregames.com/forum/topic/27617-machine-learning-in-0-ad/
- https://github.com/brollb/zero_ad_rl
- https://spinningup.openai.com/en/latest/
BuildingAI improvement
Description
Currently UnitAI manages many of the orders given by players to entities which have motion, choosing what state to enter and what behaviour to execute. There is also BuildingAI, which currently only manages attacking. It would be nice if BuildingAI would also implement a FSM allowing buildings to be controlled more.
Expected Result
A player issuing e.g. an attack order to a building will have that command processed by BuildingAI.
Required Prerequisites
At least basic understanding of JavaScript. The ability to make a complex structure from smaller more manageble parts.
Helpful Links
- https://trac.wildfiregames.com/ticket/5889
- https://trac.wildfiregames.com/wiki/TDD_Simulation
- https://svn.wildfiregames.com/docs/writing-components.html
- https://trac.wildfiregames.com/wiki/Entity
JS Test improvements
Description
There are currently a number of unit tests in place for the JS components (and globalscripts and helpers). Most of those mock other components at test time. It would be good to have, besides the unit tests, also a number of larger-scale component test, which mock less and thus test more interactions.
Expected Result
Extension of the amount of unit tests and, moreover, an extension of the scope of testing, by introducing (more) component tests.
Required Prerequisites
At least basic understanding of JavaScript. The ability to take a complex structure and divide it into manageable parts.