Tasks:Mapengine: Difference between revisions

From Adonthell
Jump to navigation Jump to search
Updated with state of current implementation
m more details added
Line 21: Line 21:
* Only parts of the graphical map representation need to be kept in memory. Loading of map areas happens in the background.
* Only parts of the graphical map representation need to be kept in memory. Loading of map areas happens in the background.
* The complete physical map is kept in memory, to allow NPCs wandering over long distances.
* The complete physical map is kept in memory, to allow NPCs wandering over long distances.
* Map can be loaded and saved with possibly different files for static and dynamic content.
* <span style="text-decoration:line-through">The map model is 3-Dimensional, allowing different height levels. The camera is fixed to provide a top-down view.</span> (done)
* <span style="text-decoration:line-through">The map model is 3-Dimensional, allowing different height levels. The camera is fixed to provide a top-down view.</span> (done)
* <span style="text-decoration:line-through">Objects displayed are 2-Dimensional, drawn according to the underlying 3D model of the world.</span> (done)
* <span style="text-decoration:line-through">Objects displayed are 2-Dimensional, drawn according to the underlying 3D model of the world.</span> (done)
Line 34: Line 35:


* [http://savannah.nongnu.org/cgi-bin/viewcvs/adonthell/adonthell/src/world/ Initial version] of map engine in CVS
* [http://savannah.nongnu.org/cgi-bin/viewcvs/adonthell/adonthell/src/world/ Initial version] of map engine in CVS
* [http://savannah.nongnu.org/cgi-bin/viewcvs/adonthell/adonthell/test/worldtest.cc?view=markup Primitive map engine] in CVS
* [[Architecture:Map Object Format|Map Object Format]] specification (preliminary)
* [[Architecture:Map Object Format|Map Object Format]] specification (preliminary)
* [http://lists.nongnu.org/archive/html/adonthell-devel/2002-07/msg00010.html Seamless map] (see the whole thread)
* [http://lists.nongnu.org/archive/html/adonthell-devel/2002-07/msg00010.html Seamless map] (see the whole thread)
* Some discussion about that code: [http://lists.nongnu.org/archive/html/adonthell-devel/2002-02/msg00213.html] [http://lists.nongnu.org/archive/html/adonthell-devel/2002-03/msg00103.html] [http://lists.nongnu.org/archive/html/adonthell-devel/2002-03/msg00046.html]
* [http://lists.nongnu.org/archive/html/adonthell-devel/2004-09/msg00002.html Idea] for weather effects
* [http://lists.nongnu.org/archive/html/adonthell-devel/2004-09/msg00002.html Idea] for weather effects


[[Category:Tasks]]
[[Category:Tasks]]
[[Category:Development]]
[[Category:Development]]

Revision as of 18:21, 8 March 2008

Back to Task List

Overview

The mapengine is responsible for providing a model of the game world, including the environment, locations of characters and items. This data is kept in files and must be loaded and saved at need.

The map engine data is visualized by the Map View.

Dependencies

Requirements

The mapengine needs the following features:

  • The map is seamless, i.e. there are no transitions between different 'areas'. Transitions may occur when entering buildings or caverns.
  • Only parts of the graphical map representation need to be kept in memory. Loading of map areas happens in the background.
  • The complete physical map is kept in memory, to allow NPCs wandering over long distances.
  • Map can be loaded and saved with possibly different files for static and dynamic content.
  • The map model is 3-Dimensional, allowing different height levels. The camera is fixed to provide a top-down view. (done)
  • Objects displayed are 2-Dimensional, drawn according to the underlying 3D model of the world. (done)
  • Movement of characters through the world is pixel-based. Moving is at least possible in 8 directions. (done)
  • Speed of movement can vary between characters or the same character (running, walking, sneaking) (done)
  • Characters can walk, climb, jump and fall. (done)
  • Pathfinding for computer controlled characters.
  • Items can be placed on the 'ground' or other objects (table, shelf).
  • Multiple items can share the same location
  • Map events are triggered when characters enter or leave certain locations.

References