Version 2 (modified by 10 years ago) ( diff ) | ,
---|
Table of Contents
Idea List for Google Summer of Code 2014
This list has been culled from GameplayFeatureStatus, GraphicsFeatureStatus, and GamePerformance.
Project Shortlist
Feature | Relevant link(s) | Difficulty |
---|---|---|
Short / Vertex Pathfinder Rewrite | Detail #1942 | Hard |
Rewrite the AI base system in C++ | Detail | Hard |
Different Game Modes | Detail | Easy |
Better Threading | Detail | Medium |
NAT Transversal | Detail #2305 | Medium |
Realistic Naval Warfare | Detail #940 #305 | Medium |
OpenGL ES 2.0 Support | Detail | Easy |
Projects
Short / Vertex Pathfinder Rewrite
Details
The current short-range pathfinder in 0 A.D. is one of our greatest bottlenecks and needs to be re-written to work with the new long range pathfinder and our formation system.
Expected Result
New short-range pathfinder which fits with 0 A.D.'s gameplay and is at least 4 times faster.
Required Prerequisites
Fluency in C++, familiarity with pathfinding systems, and experience in C++ optimization.
Helpful Links
Ticket #1942
Rewrite the AI Base System in C++
Details
The current AI in 0 A.D. runs a lot of very complex calculations all in JavaScript which can become very slow. We would like to see the intensive calculations moved to C++ and merged with existing implementations where possible (for example the current AI has it's own pathfinder in JS!!!).
Expected Result
New base AI system in C++ and near 10 times AI performance improvement.
Required Prerequisites
Fluency in C++ and JavaScript. Experience with optimization, AI development, and SpiderMonkey is a plus.
Helpful Links
This forum thread might be helpful.
Different Game Modes
Details
Currently 0 A.D. has only two game mode - conquest or wonder - obliterate your enemies or build a wonder to win. This lacking number is atypical to an RTS and should be expanded upon with game modes like "Regicide", "Deathmatch", "King of the Hill" and, "Treaty". The details of each game mode would be worked out with the project manager, but an example of how the "Regicide" game mode would work should give you an idea of what this would entail. A game started as a Regicide game would initially be identical to a normal game, excepting the fact that each player starts with a powerful "regent" unit. The goal of a Regicide game would also be different. Your opponent's sole goal would be to eliminate your regent at which point you would immediately lose.
Expected Result
At least one new game mode.
Required Prerequisites
Experience in C++ and JavaScript. Experience with game (any, not only computer game) development is a plus.
Helpful Links
?
Better Threading
Details
Right now 0 A.D. has a number of minor threads, but all the major calculations are run in the main thread. We would like to see some of the more intensive loads split into their own threads so as to take better advantage of modern multicore processors. Potential processes to be split out would be the Range Manager, Renderer, or AI (it would be awesome if each AI could get its own thread).
Expected Result
At least one major computational load being isolated into its own thread.
Required Prerequisites
Fluency in C++ and experience using pthreads. (Familiarity with SpiderMonkey and JavaScript may also be required depending on the component)
Helpful Links
?
NAT Transversal
Details
Right now in 0 A.D. we use a primitive UPnP system to implement NAT transversal but this system is unreliable. We'd like to see a better method using UDP Hole Punching instead. The solution would most likely involve interacting with the lobby server to get transversal information.
Expected Result
Enabling 0 A.D. clients to connect to a host behind any type of NAT.
Required Prerequisites
Fluency in C++ and understanding of NAT transversal. JavaScript knowledge would also be recommended. (Ability to learn/familiarity with erlang would also be required when dealing with the lobby server)
Helpful Links
#2305 Incomplete/failed try at implementation
Realistic Naval Warfare
Details
As of now, navel battles in 0 A.D. are at best confusion because naval units generally try to behave exactly like land units. Some things which could help with this would be,
- Smart/realistic boat movement (so that the boat obstruction sizes can be increased to actually match the model size without horrible movement behavior)
- Better battle animation (like make the ram attack actually visible)
This area is open to suggestions, so any good idea goes.
Expected Result
Improved gameplay experience in naval combat.
Required Prerequisites
Fluency in JavaScript and at least basic C++ experience. Experience with game (any, not only computer game) development is a plus.
Helpful Links
OpenGL ES 2.0 Support
Details
Right now we have just enough support of OpenGL ES 2.0 to launch an error-ridden game on Android. We would like to be able to transparently support OpenGL ES 2.0. Firstly, everything available in 0 A.D. on normal OpenGL 2.0 hardware should be available in the ES version. Secondly, we should support using OpenGL ES 2.0 in a typical environment with X-windows (might require fighting SDL).
Expected Result
Ability to play the game in GLSL mode on an OpenGL ES 2.0 system running X-windows.
Required Prerequisites
Experience with C++ and OpenGL. SDL experience could also be helpful.
Helpful Links
AMD OpenGL ES SDK Git branch of historicbruno's work towards better GLES support