Tasks:Road Map

From Adonthell
Revision as of 18:14, 27 November 2010 by Ksterker (talk | contribs) (Reverted edits by Asipicabad (talk) to last revision by Ksterker)
Jump to navigation Jump to search

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 [1]. The last version, v0.4 Alpha 3, was released on May 9th, 2009. The next milestone release of engine and tool set is scheduled for spring 2010.

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

Current Objectives

There are currently a number of high priority items that are required to recreate Waste's Edge for the current engine. Most features for that are in place, but there are some important bits and pieces still missing.

Audio

  1. Implement persistance
    Loading and saving state of the audio subsystem from/to the file system.

GUI

  1. Implement Border and Scrollbar
    The GUI should allow variable sized containers with decoration around the border and scrollbars indicating content that is larger than the container.
  2. Implement GUI Feedback
    User interactions with the GUI should produce audible feedback. Provide callbacks in the GUI that can be used to implement this and other kind of feedback.

Renderer

  1. Implement Interiors
    The renderer needs to support interiors. Only objects in a certain height interval should be rendered while inside buildings or caves.

Editors

  1. Map Editor
    Complete the minimum set of features required to build the Waste's Edge map. Define zones for path finding and support creation of interiors.
  2. Object Editor
    Complete the minimum set of features required to build the models for Waste's Edge. Support non-rectangular shapes, shadow for characters and terrain type for ground tiles.

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 complex GUI Widgets and Containers
    Implement table or matrix container, better layouts and controls.
  2. Integrate Item System
    At present, only item models are implemented. Add graphical representation to items and integrate with map engine.
  3. 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.
  4. Implement Role Playing System
    At present, the Game Rules only exist in documentation.
  5. Implement Melee Combat
    With the game rules and items in place, add melee combat with NPCs to the demo.
  6. Integrate Audio System
    Integrate existing audio code to add background music and sound effects to 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.

Dun Barethsol

Dun Barethsol will be the game to demonstrate all the features above. As such it cannot be completed before they are all implemented. However, there are a lot of tasks that can and should be done in parallel. This includes Graphic related tasks, creation of the game world as the map editor becomes available, dialogue writing, etc ...

Since Waste's Edge is basically a (small) subset of Dun Barethsol, we'll be converting it to the v0.4 engine as a first step. This will path 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. 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.
  2. 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. The map view needs to be enhanced to show only a certain range of the z-axis, i.e. one floor of an interior.
  3. Convert Waste's Edge dialogues and quests
    While the conversations themselves are pretty unchanged, the way 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. Also have to complete the dialogue compiler to successfully convert the dialogue files.
  4. 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).
  5. 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.
  6. Implement inventory GUI
    There are only a few items the player can potentially pick up in Waste's Edge, but with the low level item and inventory code already in place, a graphical frontend should allow players to actually pick up these items and view them in their inventory.

While some of those tasks are specific to Waste's Edge, all in all they will aid with the implementation of Dun Barethsol. They will also showcase some new features of the v0.4 engine and give us a much larger crowd of testers for the engine itself (or at least those features used by Waste's Edge).

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.