Tasks:Road Map: Difference between revisions

From Adonthell
Jump to navigation Jump to search
m brief update ... more to follow ...
Started to rewrite the road map to make it more concrete
Line 1: Line 1:
The direction Adonthell development is heading.  
The Road Map tries to give an overview of the direction Adonthell development is heading. If you are planning to [[Development:Join The Team|help with development]], you should get an idea what task might be the most pressing.
 
Over the coming year, the engine should reach a state, where the [[Quests:Dun Barethsol:Contents|Dun Barethsol]] demo game can be implemented. From then on, the main focus will shift to cosmetic and usability improvements.


__TOC__
__TOC__
Objectives come in three different flavours:
== State of Adonthell ==
 
A series of [http://adonthell.linuxgames.com/download/preview.shtml alpha releases] demonstrate the engine's current state with a number of Python scripts and small programs in the <tt>test/</tt> folder. The last version, v0.4 alpha 2, was released on 10. March 2008. The next milestone release is scheduled for September 2008.


* '''Integrate''' means that the code is in place but not used yet. Integration tasks are usually a nice way to get familiar with the engine.
The [[Tasks:Contents|Task List]] is a pretty good indicator for the state of completion of the individual tasks below.
* '''Improve''' requires changes to existing code, some smaller, some bigger. Depending on the scope of the specific task, another good way to learn more about the code base.
* '''Implement''' usually implies design and implementation of non-existant features. In some cases, specifications are available, but not in all. Requires at least a basic understanding of the engine.


== Current Objective ==
== Current Objective ==


These are the tasks that are currently being worked on:
The goal for the next milestone will be the completion of the [[Architecture:Map Module#Maps and Views|Map and Map View]], so that the world map can be loaded from (and saved to) a data file and any portion of it can be rendered.
 
With a file format for the map in place, work on a GTK+ based [[Tasks:Map Editor|Map Editor]] needs to start, so that we can begin to create the world for the [[Quests:Dun Barethsol:Contents|Dun Barethsol]] demo game.
 
To accomplish those objectives, the following tasks need to be worked on:


# '''[[Tasks:Mapview|Implement Map View]]'''<br>At present, there is no map view. With the GUI in place, implement a Map View as a Window that renders part of the map. A Python script will determine which part of the map is visible in the view.
# '''[[Tasks:Mapview|Implement Map View]]'''<br>A map view represents a certain section of a map to be rendered. Multiple views can exist at a time, showing different parts of the map. For each view, a Python script will determine which part of the map is rendered.
# '''[[Tasks:Widget Set|Implement Basic GUI Functionality]]'''<br>The current state of the GUI is unknown. Check implementation and make sure that it has a Window implementation.
# '''[[Tasks:GTK Backend|GTK+ Backend]]'''<br>The glue to use render our surface objects (images/sprites) on GDK/GTK+ components, so that they can be used by GTK+ based editors.
# '''[[Tasks:Sprite Editor|Sprite Editor]]'''<br>The tool used to create a sprite from a set of PNG files. Everything displayed by the engine, whether animated or not, is a sprite.
# '''[[Tasks:Object Editor|Object Editor]]'''<br>The tool to create the 3D model for a given sprite. This is currently a manual process that should be by aided by a graphical tool for convenience.
# '''[[Tasks:Map Editor|Map Editor]]'''<br>The tool that allows to place all those objects on the map. Will later be expanded to allow scripting of [[Task:Map Events|map events]], to place items and do all the other things required by a RPG.


== Future Objectives ==
== Future Objectives ==


Subsequent [[Architecture:Contents|Engine]] development will be based on the minimal 0.4 [http://adonthell.linuxgames.com/download/preview.shtml alpha release] and expand it by adding new or by integrating existing code. [[Tools:Contents|Tool]] development will proceed as features are incorporated into the release.
These objectives are planned for further milestone releases, but that doesn't mean it is forbidden to work on those now. Usually, objectives further down the list depend on steps higher up.


# '''[[Tasks:Widget Set|Implement Basic GUI Functionality]]'''<br>The GUI should at least be able to display a full screen view of the world map.
# '''[[Tasks:Mapengine|Implement Path Finding]]'''<br>At present, there is no path finding. Implement at least basic path finding for NPCs and expand later to allow them to jump/climb to traverse terrain that isn't all flat.
# '''[[Tasks:Mapengine|Implement Path Finding]]'''<br>At present, there is no path finding. Implement at least basic path finding for NPCs and expand later to allow them to jump/climb to traverse terrain that isn't all flat.
# '''[[Tasks:Schedules|Integrate Schedule System]]'''<br>With path finding in place, add an NPC to the demo that follows a simple schedule.
# '''[[Tasks:Schedules|Integrate Schedule System]]'''<br>With path finding in place, add an NPC to the demo that follows a simple schedule.

Revision as of 13:42, 13 March 2008

The Road Map tries to give an overview of the direction Adonthell development is heading. If you are planning to help with development, you should get an idea what task might be the most pressing.

Over the coming year, the engine should reach a state, where the Dun Barethsol demo game can be implemented. From then on, the main focus will shift to cosmetic and usability improvements.

State of Adonthell

A series of alpha releases demonstrate the engine's current state with a number of Python scripts and small programs in the test/ folder. The last version, v0.4 alpha 2, was released on 10. March 2008. The next milestone release is scheduled for September 2008.

The Task List is a pretty good indicator for the state of completion of the individual tasks below.

Current Objective

The goal for the next milestone will be the completion of the Map and Map View, so that the world map can be loaded from (and saved to) a data file and any portion of it can be rendered.

With a file format for the map in place, work on a GTK+ based Map Editor needs to start, so that we can begin to create the world for the Dun Barethsol demo game.

To accomplish those objectives, the following tasks need to be worked on:

  1. Implement Map View
    A map view represents a certain section of a map to be rendered. Multiple views can exist at a time, showing different parts of the map. For each view, a Python script will determine which part of the map is rendered.
  2. GTK+ Backend
    The glue to use render our surface objects (images/sprites) on GDK/GTK+ components, so that they can be used by GTK+ based editors.
  3. Sprite Editor
    The tool used to create a sprite from a set of PNG files. Everything displayed by the engine, whether animated or not, is a sprite.
  4. Object Editor
    The tool to create the 3D model for a given sprite. This is currently a manual process that should be by aided by a graphical tool for convenience.
  5. Map Editor
    The tool that allows to place all those objects on the map. Will later be expanded to allow scripting of map events, to place items and do all the other things required by a RPG.

Future Objectives

These objectives are planned for further milestone releases, but that doesn't mean it is forbidden to work on those now. Usually, objectives further down the list depend on steps higher up.

  1. Implement Basic GUI Functionality
    The GUI should at least be able to display a full screen view of the world map.
  2. Implement Path Finding
    At present, there is no path finding. Implement at least basic path finding for NPCs and expand later to allow them to jump/climb to traverse terrain that isn't all flat.
  3. Integrate Schedule System
    With path finding in place, add an NPC to the demo that follows a simple schedule.
  4. Implement simple GUI Widgets and Containers
    Add a text widget (UTF-8 capable), animation/image widget and list container.
  5. Integrate Dialogue Engine
    With simple widgets in place, create interface for dialogue and allow speaking with NPC in demo.
  6. Implement complex GUI Widgets and Containers
    Implement table or matrix container, better layouts and controls.
  7. Integrate Item System
    At present, only item models are implemented. Add graphical representation to items and integrate with map engine.
  8. Integrate Inventory
    With complex widgets in place, create interface for inventory management. Allow picking up and dropping of items to demo. Improve NPC schedules to handle items.
  9. Implement Role Playing System
    At present, the Game Rules only exist in documentation.
  10. Implement Melee Combat
    With the game rules and items in place, add melee combat with NPCs to the demo.
  11. Integrate Audio System
    Integrate existing audio code to add background music and sound effects to demo.
  12. Implement Ranged Combat
    With the game rules and items in place, add ranged combat with NPCs to the demo.
  13. Implement Spells
    With the game rules and items in place, add casting spells on self and others to the demo.

Dun Barethsol

With all the above in place, we should be able to create and release Dun Barethsol, which is a whole set of tasks in itself.

And Then?

Once Dun Barethsol is released, it might be in order to go over the engine for cosmetic and usability improvements, like:

  1. Improve Game Controls
    Provide better configuration and default settings for the Input System.
  2. Implement annotations on in-game Maps
    Allow players to add their own notes to in-game maps.
  3. Implement Lighting System
    Allow for day/night cycle, darker dungeons, etc ...
  4. Improve Modding Ability of Engine
    Allow for official/user contributed mods.
  5. Implement Sky Layer
    Have clouds or birds floating above the landscape.