Tasks:Road Map: Difference between revisions

From Adonthell
Jump to navigation Jump to search
m Current Objective: link fixed
m Recreate Waste's Edge: added link to Waste's Edge downloads
 
(17 intermediate revisions by 3 users not shown)
Line 1: Line 1:
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.  
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]], here you'll find something to work on.  


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.
In brief, our Road Map consists of two major milestones:


__TOC__
# Release version 0.4.0 with the [[Tasks:Road_Map#Recreate Waste's Edge|recreated Waste's Edge]] game.
== State of Adonthell ==
# From then on, expand engine and game data and [[Tasks:Road_Map#Create Dun Barethsol|create the Dun Barethsol]] game.


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.
== Recreate Waste's Edge ==


The [[Tasks:Contents|Task List]] is a pretty good indicator for the state of completion of the individual tasks below.
Since [[Quests:Waste's Edge|Waste's Edge]] [http://adonthell.nongnu.org/download/index.shtml#wastesedge] is basically a (small) subset of Dun Barethsol, we'll be converting it to the v0.4 engine as a first step. This will pave the way to Dun Barethsol and free us from the burden of supporting two code bases in the future. Tasks specifically related to porting Waste's Edge are:


== Current Objective ==
# '''[[Tasks:Wastesedge:Engine|Engine and Editor Requirements]]'''<br>Bits and pieces of the game engine and tools that need to be completed before building Waste's Edge.
# '''[[Tasks:Wastesedge:GUI|Recreate Waste's Edge User Interface]]'''<br>Design and implement GUI for Waste's Edge entirely on Python side. 
# '''[[Tasks:Wastesedge:Graphics|Convert and enhance Waste's Edge gfx]]'''<br>Waste's Edge graphics are in an internal format that can be exported to PNG format with the [https://github.com/ksterker/adonthell/blob/master/test/convert_graphics.py convert_graphics.py] script. They will then have to be adapted to the new resolution, turned into [[Architecture:Gfx Module#Sprites|sprites]] and supplemented by a matching [[Architecture:Map Module# Map Objects and Shapes|shape]].
# '''[[Tasks:Wastesedge:Map|Recreate Waste's Edge map]]'''<br>With the graphics in place (and the map editor too), the Redwyne Inn can be recreated. This time it would be created in one piece, making use of the added z-axis.
# '''[[Tasks:Wastesedge:Dialogues And Quests|Convert Waste's Edge dialogues and quests]]'''<br>While the [https://github.com/ksterker/wastesedge/tree/master/scripts/dialogues/src conversations] themselves are pretty unchanged, but quest progress is handled radically different. Either implement a basic [[Tasks:Quest Editor|quest editor]] or use the [https://github.com/ksterker/adonthell/blob/master/test/convert_quests.py convert_quests.py] script to create the Waste's Edge quest tree.
# '''[[Tasks:Wastesedge:NPC Schedules|Convert Waste's Edge NPC schedules]]'''<br>Character schedules need to be adapted to the new engine. Also gives us the possibility to test out some basic NPC interactions (patrons asking for ale, Orloth bringing it to their table) using the [[Tasks:Ether|Ether]]).


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.
== Create Dun Barethsol ==


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.  
[[Quests:Dun Barethsol:Contents|Dun Barethsol]] will be the first actual role playing game using the Adonthell engine. As such, the major tasks will consist of incorporating role playing elements into v0.4.0:


To accomplish those objectives, the following tasks need to be worked on:
# '''[[Tasks:Widget Set|Implement complex GUI Widgets and Containers]]'''<br>Implement table or matrix container.
 
# '''[[Tasks:User Interface|Implement quest log GUI]]'''<br>To show the log book mechanism associated with the new [[Architecture:Rpg Module#Quests and Logs|quest system]], implement a quest log GUI and write the required quest log entries for Waste's Edge.
# '''[[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: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 [[Tasks:Map Events|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.
 
# '''[[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:Schedules|Integrate Schedule System]]'''<br>With path finding in place, add an NPC to the demo that follows a simple schedule.
# '''[[Tasks:Widget Set|Implement simple GUI Widgets and Containers]]'''<br>Add a text widget (UTF-8 capable), animation/image widget and list container.
# '''[[Tasks:Dialogue|Integrate Dialogue Engine]]'''<br>With simple widgets in place, create interface for dialogue and allow speaking with NPC in demo.
# '''[[Tasks:Widget Set|Implement complex GUI Widgets and Containers]]'''<br>Implement table or matrix container, better layouts and controls.
# '''[[Tasks:Mapengine|Integrate Item System]]'''<br>At present, only item models are implemented. Add graphical representation to items and integrate with map engine.  
# '''[[Tasks:Mapengine|Integrate Item System]]'''<br>At present, only item models are implemented. Add graphical representation to items and integrate with map engine.  
# '''[[Tasks:User Interface|Integrate Inventory]]'''<br>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.
# '''[[Tasks:User Interface|Integrate Inventory]]'''<br>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.
# '''[[Tasks:Characters|Implement Role Playing System]]'''<br>At present, the Game Rules only exist in documentation.
# '''[[Tasks:Characters|Implement Role Playing System]]'''<br>At present, the Game Rules only exist in documentation.
# '''[[Tasks:Characters|Implement Melee Combat]]'''<br>With the game rules and items in place, add melee combat with NPCs to the demo.
# '''[[Tasks:Characters|Implement Melee Combat]]'''<br>With the game rules and items in place, add melee combat with NPCs to the demo.
# '''[[Tasks:Audio|Integrate Audio System]]'''<br>Integrate existing audio code to add background music and sound effects to demo.
# '''[[Tasks:Characters|Implement Ranged Combat]]'''<br>With the game rules and items in place, add ranged combat with NPCs to the demo.
# '''[[Tasks:Characters|Implement Ranged Combat]]'''<br>With the game rules and items in place, add ranged combat with NPCs to the demo.
# '''[[Tasks:Characters|Implement Spells]]'''<br>With the game rules and items in place, add casting spells on self and others to the demo.
# '''[[Tasks:Characters|Implement Spells]]'''<br>With the game rules and items in place, add casting spells on self and others to the demo.


== Dun Barethsol ==
Other tasks that can and should be done in parallel include [[Tasks:Contents#Graphic Artist's Tasks|Graphic]] related tasks, creation of the game world, [[Tasks:Contents#Writer's Tasks|dialogue writing]], etc ...
 
With all the above in place, we should be able to create and release [[Quests:Dun Barethsol:Contents|Dun Barethsol]], which is a whole set of tasks in itself.


== And Then? ==
== And Then? ==

Latest revision as of 21:26, 18 February 2012

The Road Map tries to give an overview of the direction Adonthell development is heading. If you are planning to help with development, here you'll find something to work on.

In brief, our Road Map consists of two major milestones:

  1. Release version 0.4.0 with the recreated Waste's Edge game.
  2. From then on, expand engine and game data and create the Dun Barethsol game.

Recreate Waste's Edge

Since Waste's Edge [1] is basically a (small) subset of Dun Barethsol, we'll be converting it to the v0.4 engine as a first step. This will pave the way to Dun Barethsol and free us from the burden of supporting two code bases in the future. Tasks specifically related to porting Waste's Edge are:

  1. Engine and Editor Requirements
    Bits and pieces of the game engine and tools that need to be completed before building Waste's Edge.
  2. Recreate Waste's Edge User Interface
    Design and implement GUI for Waste's Edge entirely on Python side.
  3. Convert and enhance Waste's Edge gfx
    Waste's Edge graphics are in an internal format that can be exported to PNG format with the convert_graphics.py script. They will then have to be adapted to the new resolution, turned into sprites and supplemented by a matching shape.
  4. Recreate Waste's Edge map
    With the graphics in place (and the map editor too), the Redwyne Inn can be recreated. This time it would be created in one piece, making use of the added z-axis.
  5. Convert Waste's Edge dialogues and quests
    While the conversations themselves are pretty unchanged, but quest progress is handled radically different. Either implement a basic quest editor or use the convert_quests.py script to create the Waste's Edge quest tree.
  6. Convert Waste's Edge NPC schedules
    Character schedules need to be adapted to the new engine. Also gives us the possibility to test out some basic NPC interactions (patrons asking for ale, Orloth bringing it to their table) using the Ether).

Create Dun Barethsol

Dun Barethsol will be the first actual role playing game using the Adonthell engine. As such, the major tasks will consist of incorporating role playing elements into v0.4.0:

  1. Implement complex GUI Widgets and Containers
    Implement table or matrix container.
  2. Implement quest log GUI
    To show the log book mechanism associated with the new quest system, implement a quest log GUI and write the required quest log entries for Waste's Edge.
  3. Integrate Item System
    At present, only item models are implemented. Add graphical representation to items and integrate with map engine.
  4. 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.
  5. Implement Role Playing System
    At present, the Game Rules only exist in documentation.
  6. Implement Melee Combat
    With the game rules and items in place, add melee combat with NPCs to the demo.
  7. Implement Ranged Combat
    With the game rules and items in place, add ranged combat with NPCs to the demo.
  8. Implement Spells
    With the game rules and items in place, add casting spells on self and others to the demo.

Other tasks that can and should be done in parallel include Graphic related tasks, creation of the game world, dialogue writing, etc ...

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.