SpringEngineTODO: Difference between revisions

From Spring
Jump to navigationJump to search
No edit summary
Gajop (talk | contribs)
No edit summary
 
(12 intermediate revisions by 7 users not shown)
Line 1: Line 1:
A collection of ideas which could improve Spring.
A collection of ideas which could improve Spring. Before starting anything, please ask in the forum [http://springrts.com/phpbb/viewforum.php?f=60 developement-forum] so that you go in the right direction.  


* add general serializing to the engine, which touches the following:
* Get a '''stable OS X version''' working. Contact the developers on the forums for this, as there are people who build and run it successfully. Still need proper packaging and maintaining,
** Requires: C/C++, CMake and MacOS
** Time: < 1 month
** Level of difficulty: Medium
** More information at http://springrts.com/wiki/Spring_on_MacOSX
 
* clean up, sanitize, and implement a '''consistent error handling''' scheme in the engine
* add '''general serializing''' to the engine, which touches the following:
** Implement saving/loading. There are a lot of direct LoadSave() functions in the game code, but the easier way would probably to finish the serialization in the class registration type interfaces (rts/System/creg), so everything can be serialized automatically.  
** Implement saving/loading. There are a lot of direct LoadSave() functions in the game code, but the easier way would probably to finish the serialization in the class registration type interfaces (rts/System/creg), so everything can be serialized automatically.  
*** Requires: C/C++
*** Requires: C/C++
*** Time: ~3 months
*** Time: ~3 months
*** Level of difficulty: medium - hard
*** Level of difficulty: medium - hard
** [[Syncing System|Implement re-sync]]. After a sync problem is detected, and a re-sync of the random seed does not fix it the game would pause and use the rsync to adjust game state (current plan if for float3 data) to resync. After using rsync on it should be able to continue normally until the next sync error is detected.
** [[Syncing System|Implement re-sync]]. After a sync problem is detected, and a re-sync of the random seed does not fix it the game would pause and use the rsync to adjust game state (current plan if for float3 data) to resync. After using rsync on it should be able to continue normally until the next sync error is detected.
*** Requires: C/C++, network programming
*** Requires: C/C++, network programming
Line 12: Line 18:
*** Level of difficulty: Hard
*** Level of difficulty: Hard


** Joining the game while it is running (probably need one of those 2 mentioned above: save/load or resync)
* Implement a '''general sensor system''' replacing the radars, as described in http://taspring.clan-sy.com/phpbb/viewtopic.php?t=6105
*** Requires: C/C++, network programming
*** Time: ~3< months
*** Level of difficulty: Hard
 
* Implement a general sensor system replacing the radars, as described in http://taspring.clan-sy.com/phpbb/viewtopic.php?t=6105
** Requires: C/C++, 3D/2D math (Lua knowledge not required, but prefered)
** Requires: C/C++, 3D/2D math (Lua knowledge not required, but prefered)
** Time: ~2 months
** Time: ~2 months
** Level of difficulty: Medium
** Level of difficulty: Medium


* Add a dynamic-lighting system: Allow units to have dynamic lights on them that affect lighting of other units and landscape, with sort of "approximating lights" for cases where a lot of units get close together. This is a big thing, but it would improve spring graphics a lot if done well. Or Deferred Lighting/Shading?
* '''Abstracting the resource system''' to allow more than two resources (metal/energy)
** Requires: C/C++, 3D math(, GLSL) (Lua knowledge not required, but prefered)
** Time: ~3 months
** Level of difficulty: Medium-hard
 
* Get a mac version working. Contact the developers on the forums for this, as there are people who build and run it successfully. Still need proper packaging and maintaining,
** Requires: C/C++, CMake and MacOS
** Time: -
** Level of difficulty: Medium
 
* Extending the resource system to allow more than two resources (metal/energy)
** Requires: C/C++ (Lua knowledge not required, but prefered)
** Requires: C/C++ (Lua knowledge not required, but prefered)
** Time: ~1-3 months
** Time: ~1-3 months
** Level of difficulty: Easy-Medium
** Level of difficulty: Easy-Medium


* Expand Springs script abilities by adding new languages for mods/games, maps, player helpers (widgets).
* '''Exposing more Spring functions to the Lua world''' (command AIs, move types) or/and small frameworks
** Requires: C/C++, CMake and another language
** Time: ~3< months (depends on the language/goal)
** Level of difficulty: Medium
 
* Exposing more Spring functions to the Lua world (command AIs, move types) or/and small frameworks
** Requires: basic C/C++, Lua
** Requires: basic C/C++, Lua
** Time: ~1-3< months (depends on the goal)
** Time: ~1-3< months (depends on the goal)
** Level of difficulty: Easy-medium
** Level of difficulty: Easy-medium


* Implement MD5 as a model format or add other model formats.
* Implement '''MD5 as a model format or add other model formats'''.
** Requires: C/C++, 3D math (Lua knowledge not required, but prefered)
** Requires: C/C++, 3D math (Lua knowledge not required, but prefered)
** Time: ~1-3 months
** Time: ~1-3 months
** Level of difficulty: Medium
** Level of difficulty: Medium


* Fix SM3 or develop a new mapping format
* Add '''p2p/round-robin for hosting''' (so host exit does not stop the game)
** Requires: C/C++, 3D math
** Time: ~1-3 months
** Level of difficulty: Medium
 
* Add p2p/round-robin for hosting (so host exit doesn't stop the game)
** Requires: C/C++, network programming
** Requires: C/C++, network programming
** Time: ~3< months
** Time: ~3< months
** Level of difficulty: Medium
** Level of difficulty: Medium


* Proper GUI for spring.exe with extended singleplayer abilities, better map/mod browsing, adding Bots (AIs), selecting start positions, choosing color, selecting map/mod options.
* '''Fix bugs'''
** Requires: C/C++, 3D math, GUI programming, OpenGL programming, Lua
** Time: ~1-3 moths (depends on the amount of functions)
** Level of difficulty: Medium
 
* Fix bugs, extend and improve functionality, etc.
 
Even though this isn't really about the Spring engine:
 
* SpringLobby is a cross-platform lobby client, implemented in C++ and wxWidgets. We encourage you to look into our todo list on http://springlobby.info and see what you could do for it.
 
Lua:
 
* Create a Mission Development Kit: ie, do whatever it takes to make it easy to create campaign missions, eg create a gui tool that makes it easy to place units on the map, create triggers, and so on.
 
[[Category:Source development]]

Latest revision as of 05:00, 5 November 2017

A collection of ideas which could improve Spring. Before starting anything, please ask in the forum developement-forum so that you go in the right direction.

  • Get a stable OS X version working. Contact the developers on the forums for this, as there are people who build and run it successfully. Still need proper packaging and maintaining,
  • clean up, sanitize, and implement a consistent error handling scheme in the engine
  • add general serializing to the engine, which touches the following:
    • Implement saving/loading. There are a lot of direct LoadSave() functions in the game code, but the easier way would probably to finish the serialization in the class registration type interfaces (rts/System/creg), so everything can be serialized automatically.
      • Requires: C/C++
      • Time: ~3 months
      • Level of difficulty: medium - hard
    • Implement re-sync. After a sync problem is detected, and a re-sync of the random seed does not fix it the game would pause and use the rsync to adjust game state (current plan if for float3 data) to resync. After using rsync on it should be able to continue normally until the next sync error is detected.
      • Requires: C/C++, network programming
      • Time: ~3< months
      • Level of difficulty: Hard
  • Abstracting the resource system to allow more than two resources (metal/energy)
    • Requires: C/C++ (Lua knowledge not required, but prefered)
    • Time: ~1-3 months
    • Level of difficulty: Easy-Medium
  • Exposing more Spring functions to the Lua world (command AIs, move types) or/and small frameworks
    • Requires: basic C/C++, Lua
    • Time: ~1-3< months (depends on the goal)
    • Level of difficulty: Easy-medium
  • Implement MD5 as a model format or add other model formats.
    • Requires: C/C++, 3D math (Lua knowledge not required, but prefered)
    • Time: ~1-3 months
    • Level of difficulty: Medium
  • Add p2p/round-robin for hosting (so host exit does not stop the game)
    • Requires: C/C++, network programming
    • Time: ~3< months
    • Level of difficulty: Medium
  • Fix bugs