Skip to content

Roadmap

Michael Heilmann edited this page Mar 1, 2017 · 9 revisions

Roadmap

  • Code Quality
    • Conversion to C++: The C part of the code base shall be converted to C++ 11. Egoboo already compiles using recent C++ compilers like GCC (Linux/Windows), CLANG (Mac) and MSVC (Windows). The expressive power/brevity of C++ and its proven aptitude for game and game-related tools programming makes C++ a reasonable choice.
    • Establish coding & doc comment conventions: Authoritative coding & doc comment conventions for the C++ code base shall be established. Goal: Improve productivity of existing developers, make the start for new developers easier.
  • Game Mechanics
    • Fix Gameplay Bugs: This touches almost every aspect of the game, including but not restricted to path-finding/AI and movement, collision detection/resolution and physics. It should be investigated if using ready-made solutions (like physics libraries) can be used here.
    • Improve Domain-Specific Languages: Egoboo uses DSLs (Domain Specific Languages) - mostly declarative ones - in many parts. Existing DSLs shall be revised, documented, eventually more powerful (non-declarative) DSLs shall be added. Furtermore, the loading an validation technology of languages should be brought up-to-date. It is suggested that the approach of using textual, human-readable and human-editable formats is retained. See (1) for the format and distribution form of documentation. Goal: Enable content creation, customization/extension of game mechanics without working on the C++ code.
    • Document Game Mechanics and Lore: Consolidate Game Mechanics and Lore from all sources (Wikis, Forums, Documents as well as Source Code) into a single reference to ensure the immediate availabilty of this information to future coders and content creators. See (1) for the format and distribution form of documentation.
    • Improve Graphics Performance and Quality: Performance is poor on modern "low-end" systems that run games that have higher requirements than Egoboo without problems. Other features (bone animation, inexpensive shaders) which basically come for free nowadays should be exploited to improve the experience. Furthermore, it should be investigated if certain rendering techniques (e.g. cell shading) work well with Egoboo and may reduce the amount of work required to produce artwork for the game.
    • Improve Editor (aka Cartman): Cartman is supposed to become the general purpose content creation tool for Egoboo - eventually with a profi and a hobby mode, to increase accessibility. Presumably, we will be using Qt or wxWidgets.
    • Documentation shall be provided in a human-editable format and be distributed with the source code of Egoboo to ensure immediate availability and preservation of existing documentation for future coders and content creators. Suggested format is LaTeX.
    • Appveyor integration (mostly done)

Done

The following tasks are considered as completed (resulting code and assets entered the usual maintenance cycle):

  • Travis-CI integration
  • Transition from SDL 1 to SDL 2: As SDL 1 is reaching the end of its lifecycle, Egoboo must make the transition to SDL 2. We hope that SDL 2 is (mostly sufficient) to port Egoboo to variety of devices/operating systems including mobile devices and consoles.
  • Implementation of cross-platform unit testing