Gled release and development plan

There are two main documents to look through (other than info on the web pages): gled-dev and greedworld-prototype-tasks.

Get in touch with us either via gled or greed mailing list if you would like to get involved!

Release 1.3.1

Planned for early 2010. Release highlights:
  • OSX port - done.
  • Direct steering of units in greed-world demo - done.
  • Reasonable dynamics of units on terrain - done.
  • Laser cannon shooting - done.

Release 1.3.2

Planned for late 2010. Main targets:
  • First networked version of greed-world demo.
  • Things from the list below - but they are not required for the release.

Simple tasks (suitable for new members)

  • Change rendering of laser-trace from line to a pair of triangles. Add divergence parameter to laser-gun properties.
  • Implement key-binding editor for Spiritio (knowing Fltk would help).
  • Improve overlay look-and-feel for first-person driving of Crawlers in class CrawlerSpiritio. E.g. add turret steering overlay bars.
  • Improve dynamics of Crawlers -- requires reasonable knowledge of physics and 3D geometry needed.
    1. Use forces instead of fixed velocities.
    2. Use gravity information, air-drag, friction and static friction.
    3. Make friction depend on levitation-height of the Crawler (also add controls into CrawlerSpiritio).
    4. Allow side-slides when driving across laterally inclined terrain.
    5. Do more realistic collision handling (now momentum and energy are conserved).
  • Design and implement basic first-person steering of aeroplanes and helicopters (suitable for pilots and people who understand flight dynamics).

Complex tasks

  • Extend dynamic variable handling to also support exponential/sigmoid approach/decay of values to desired/ideal value.
    1. Use these in TringuCamSpiritio to replace semi-hard-coded key handling in class TringuCam. See key handling code in CrawlerSpiritio.
    2. Extract common key-handling functions from these two examples and put them into the base-class Spiritio.
  • Design infrastructure for weapon classification -- basically a class structure that can represent various weapons, their properties and projectiles. Consider how weapons can be attached to Extendios and how they relate to energy consumption.
  • Implement shooting of projectiles (from easy to hard: laser ray (done), bullet, cannon grenade, rocket, bomb).
  • Extend damage / health handling of Extendios. Add damage types and armour / shield.
  • Improve rendering of explosions for units and buildings.
  • Terrain coloration in TringuRep and related classes TriMesh and TriMeshField.
    1. Add suport for terrain with single color.
    2. Make sure re-coloration functions run in detached threads with minimal locking.
    3. See if better place can be found for TriMesh::ColorByXxyz() functions (one option could be TriMeshField). Should they run in detached-threads?
    4. Consider how shaders could be used for terrain rendering.
  • Use FTGL for text rendering. FTGL is already used in ROOT so using it in Gled should not be extra hard.
    Partially done: FTGL is used, but only texture fonts are properly supported (the old font rendering was only using texture fonts). The next step would be to add support for bitmap/pixmap fonts and then for the more exotic ones (outline, polygon, extruded).

Open tasks that require more thinking

  • Generalise management of unit selection in class TSPupilInfo. What happens when a first-person Spiritio is activated (clear selection, allow furhter selections)? What happens with menus (hide them or allow further interaction)?
  • Implement path-finding and path-steering for Crawlers. Implement simple "go-to" command. Think how to implement a task list / stack for Extendios in general.
  • Tringula now emits Rays about new explosions etc. This should really be done by TringuRep → Tringula should notify its representations in some other (more direct) way. This is already related to the networked version.
  • Overlay menus are constructed explicitly for the default Pupil / TringuRep -- thus they can not be reused for additional views. They also could not be reused for Extendio menus.
    1. Think how to solve this -- it seems that menu cloning on: a) top-menu creation and on b) extendio menu assignment would be sufficient.
    2. How should they be cloned? Via serialization, direct cloning method, ...?
    3. Implement additional parsing of alpha/beta tags for menu entries (see tringula.C, they are already listed, but not used: TringuCamAlpha, PupilInfoAlpha). This requires some more menu handling context. Thus, the natural place for this is TSPupilInfo.

-- MatevzTadel - 14 Dec 2009
Topic revision: r6 - 28 Mar 2010, MatevzTadel
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback