Version 19 (modified by Brian Broll, 3 years ago) ( diff )

Reverted to version 17.

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.

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

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.

Helpful Links

Note: See TracWiki for help on using the wiki.