SpringEngineTODO: Difference between revisions
From Spring
Jump to navigationJump to search
No edit summary |
No edit summary |
||
| Line 13: | Line 13: | ||
* Bind a scripting language to Spring. Fnordia already started on this with lua and luabind, but since luabind does not compile on GCC (so I've heard), it's not an option. | * Bind a scripting language to Spring. Fnordia already started on this with lua and luabind, but since luabind does not compile on GCC (so I've heard), it's not an option. | ||
**Binding LUA could be done in other ways too ofcourse. | **Binding LUA could be done in other ways too ofcourse. | ||
**A lightweight and fast language that can call C/C++ directly is AngelScript (www.angelcode.com/angelscript), class support with inheritance is however not yet supported (WIP), but is already a good choice because it doesn't require wrapper functions. | **A lightweight and fast language that can call C/C++ directly is AngelScript ([[www.angelcode.com/angelscript]]), class support with inheritance is however not yet supported (WIP), but is already a good choice because it doesn't require wrapper functions. | ||
* Make more elements of spring data-driven. Explosion bitmaps, trees, etc... A lot of graphics are hardcoded and should be changeable with scripts or config files (FBI/TDF). | * Make more elements of spring data-driven. Explosion bitmaps, trees, etc... A lot of graphics are hardcoded and should be changeable with scripts or config files (FBI/TDF). | ||
Revision as of 17:25, 5 February 2006
Here is a TODO list for anyone interested in developing the spring code. If you are not involved in the development, please contact one of the developers first, or mail to the mailing list before you add things here.
- 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 re-sync. Assuming the game is allowed to be paused (Seems the only good option so far), it would be possible to generate a savegame in memory and use the rsync code on this to resync, as suggested by Jesse Schoch in [1]. After using rsync on it, the game could be loaded from the savegame again.
- Abstract and improve unit rendering:
- Improve the S3O rendering: It doesn't generate nice explosion particles like the 3DO system, and it has other issues with drawing as well (refer to the s3o related threads on the forum for this, or test it and see for yourself).
- 3DO/S3O support is not abstracted, many parts of unit rendering are spread throughout spring and assume 3DO, and the rendering is a messy mixture of 3DO and S3O stuff. Abstracting the model rendering with a sort of IModel and IModelInstance interfaces would allow adding other model formats as well (Such as a skeletal animation format).
- Improve weapon collision detection with more complex shapes for the bigger units. Giving every model a set of convex collision meshes, saved in the S3O file, could be a solution. This will need a change in the s3o format and upspring editor, so you will need some cooperate with me on that part(jcnossen).
- Bind a scripting language to Spring. Fnordia already started on this with lua and luabind, but since luabind does not compile on GCC (so I've heard), it's not an option.
- Binding LUA could be done in other ways too ofcourse.
- A lightweight and fast language that can call C/C++ directly is AngelScript (www.angelcode.com/angelscript), class support with inheritance is however not yet supported (WIP), but is already a good choice because it doesn't require wrapper functions.
- Make more elements of spring data-driven. Explosion bitmaps, trees, etc... A lot of graphics are hardcoded and should be changeable with scripts or config files (FBI/TDF).