Difference between revisions of "Roadmap"

From SfzWiki
Jump to: navigation, search
 
(65 intermediate revisions by 6 users not shown)
Line 1: Line 1:
see also the now obsolete [[OldRoadmap2006]]
+
see also the now obsolete [[OldRoadmap2006]]<br>
 +
see also [[Notes]]<br>
  
=== simple multiplayer ===
+
list of finished points : [[RoadmapDone]]
target : just fly around together, blowing up asteroids and each other
+
  
* <strike>load ships saved in editor as nodegroups</strike>
+
== notes ==
* load ships saved in editor as mesh
+
 
* extend cRobRenderOp::ConvertToMesh in robrenderable.cpp to add submeshes to existing meshes
+
* customizable ship model set : http://opengameart.org/content/shipyard-v04-customizable-spaceships
* <strike>server : open tcp listen socket (net_L.cpp : NetListen, PopAccepted)</strike>
+
 
* <strike>client : open connection to server socket  (net_L.cpp : NetConnect)</strike>
+
== Simple multiplayer ==
* <strike>send simple tcp messages : e.g. chatline (main.lua:232:SendChat , net_L.cpp NetReadAndWrite)</strike>
+
Target : just fly around together, blowing up asteroids and each other.
* server : send spawn-messages to client
+
 
* server : send spawn-messages for world on playerjoin
+
* (generate LOD meshes for ships)
* server : send-resync-stuff (prepared in in location_L.cpp : SendResyncs , but not yet tested)
+
* client : receive-resync-stuff (prepared in in resyncreceiver_L.cpp , but not yet tested)
+
* client : send mouse/rotation/turn quaternion to server (udp)
+
* client : send key-changes to server (tcp, accelerate, fire weapon)
+
* server : receive player turn and keys
+
* server : send effects (laserbeam on weapon) to server
+
* server : ray/sphere hit detection : laser destroys ship or asteroids
+
* server : respawn killed clients when fire key is pressed
+
 
* server : detect and handle create-listener error
 
* server : detect and handle create-listener error
 
* client : detect and handle connect error
 
* client : detect and handle connect error
 
* server : detect and handle client-disconnect
 
* server : detect and handle client-disconnect
 +
* enter name before join (?)
 +
* <strike>maybe http://jamendo.com background- and mainmenu-music</strike>
 +
* <strike>weapon icons</strike>
 +
* with range and damage indicators
 +
* <strike>weapon icons with recharge indicators</strike>
 +
* gui : target lists
 +
* tactical hud elements indicating weapon range
 +
* powerups/health packs in asteroids ?
 +
* design decision : newton physics or not ?  not might be better for combat
 +
 +
== Coop multiplayer ==
 +
* enemies arriving in waves (herodefense)
 +
* buying/salvaging equipment and ships between waves
 +
 +
== Spaceship interior ==
 +
 +
* meshes and textures for indoor stuff
 +
** <strike>chair</strike>
 +
** [http://www.amezz.com/am-images/stairs-handrail-ext.jpg stairs]
 +
** [http://ebonrai.com/sfz/ lamps (wall, ceiling, floor)]
 +
** elevator (=door + moving platform)
 +
* <strike>save items inside ship to file (ingame save and/or mapedit save)</strike>
 +
* shipeditor : toggle between inside/outside
 +
* interior : align cam to outside cam on switch
 +
 +
== General ==
 +
 +
* gui : generic list dialog (for cargo, shop, etc...)
 +
* missions : delivery (special cargo, jettison fails mission (or not possible?), mission dialog)
 +
* namen vor dem login
 +
* savegames : collective property : everything in mothership, not individual players
 +
* transfer cargo from fighters to mothership on docking
 +
* collective money ? avoid if possible to avoid grinding, rather rewards for missions, like gather 100 iron to get weapon.
 +
* return-to/approach mothership button for fighter/space-suit
 +
* pickup jettison box
 +
* <strike>missions : navpoint displayed in hud</strike>
 +
* <strike>missions : objectives displayed in hud</strike>
 +
* pickup jettison box content
 +
* <strike>pirates : the whole group should counterattack if one of them is attacked (requires group system)</strike>
 +
* auto generate doxygen for sfz and lugre  (cronjob or commit hook)
 +
* toaster name changes to floating ghost toaster if placed above a table
 +
 +
== GUI widgets ==
 +
* excel table  (autosort on header click, updatable, cellrenderers, see java,gtk,cegui,qt,win32api, has scrollpane?)
 +
* treeview (hierachies : trade categories like vegastrike ?)
 +
* tabpane
 +
* scrollpane
 +
* scrollbar
 +
* cliprect of parent also affects childs
 +
* table layout html like, starts as hack with proper interface
 +
 +
== Central info server ==
 +
 +
* get and display message of the day
 +
* version check
 +
* usernames
 +
* host game : max player limit
 +
* host game : description text
 +
 +
== Interstellar travel (jump) ==
 +
 +
* load system from file
 +
* list of all systems
 +
* jump to other system
 +
* limit to adjacted systems
 +
* map displaying system positions graphically (debug:display coordinates under mouse)
 +
 +
== Interplanetary travel (space-folding) ==
 +
requires large scale systems, e.g. distances between planets in a somewhat realistic scale.
 +
this will require some form of space-folding-travel mode to remain playable,
 +
we'll keep that for later, other things are more important first.
 +
 +
* gui : hud : distance display, on mouse over : name, type
 +
* larger system, spec travel
 +
* 2d system layout (orbits, but not moving)
 +
* gui : system map (render to texture, mousepick, click selects planet, planet has stuff orbiting, hierarchial)
 +
 +
== Tutorial/Story ==
 +
maybe a small story as intro/tutorial to game :
 +
* deliver something to a nearby station/planet (basic controls)  (problem : 1 player ?)
 +
* targetting practice : shoot some debris/junk(Aquanox) /Astreroids/ old-junk-space-ship(EV)
 +
* destroy some drones that have run amok (hacker,FOF-malfunction,...)
 +
* bounty hunt : destroy some pirates , reward : jump-drive
 +
* sientist sensor tutorial : search for right materials, reward : construction plans (weapons, shields...)
 +
* asteroid mining tutorial
 +
* crafting tutorial
 +
* explore mission ? (nearby systems, some other sientist needs help, delivery..)
 +
* capture some animals on planet, planet personal weapons tutorial
 +
 +
 +
== Bugs ==
 +
 +
* when you are in writing mode you cant zoom in/out only move the camera
 +
* you can shoot yourself writing your name in select/by name and shooting.
 +
* keyboard input does not work in fullscreen on some machines...
 +
* bad situation in editor : click new, rightclick , problem (last block gone)
 +
* the sun can be clicked from within the spaceship ? (check click detection for cross location stuff)
 +
* hudmarkers (edges) and name display is totally broken (related to location system)
 +
* changing ship and going inside should close cargo dialog
 +
* w-a-s-d accelleration is not very intuitive, should not only add to current velocity, but also try to redirect the movement into the pressed direction
 +
** e.g. currently wrong : when going forward it goes right diagonally, not directly
 +
* sun, additive blending z-sorting bug
 +
* shipeditor culling is broken if not started with -se commandline option
 +
* i can resize the window! but when i do it. the chat bar and the interface dont move! i should not be able to resize
 +
 +
== Install help ==
 +
 +
These problems should be automatically detected (see also troubleshooting in INSTALL)
  
=== coop multiplayer ===
+
* check if scons is available in makefile
* (to be planned) defending a space station
+
* scons : check ogre version (1.2 leads to LINKER errors, see sfz thread in free gamer forum)
* (to be planned) enemies arriving in waves
+
* scons : dpkg info for ogre version? 1.4.0 or later
* (to be planned) buying/salvaging equipment and ships between waves
+
* scons : check lua version, 5.1 leads to errors
 +
* scons : plugins_linux.cfg : "locate libOgreMain | grep .so"  folder + OGRE/ for plugins
 +
* scons  : detect fmod or openal automatically
 +
* scons  : openal esd trick/warning if alsa
 +
* scons  : /etc/ld.so.conf : add a line with "/usr/local/lib" (where ogre is) and run /sbin/ldconfig
 +
* scons  : check all libs, vorbisfile, with pkg ? etc..
 +
* check runtime shared object files : libfmodex.so  libOgreMain.so

Latest revision as of 23:07, 3 February 2011

see also the now obsolete OldRoadmap2006
see also Notes

list of finished points : RoadmapDone

notes

Simple multiplayer

Target : just fly around together, blowing up asteroids and each other.

  • (generate LOD meshes for ships)
  • server : detect and handle create-listener error
  • client : detect and handle connect error
  • server : detect and handle client-disconnect
  • enter name before join (?)
  • maybe http://jamendo.com background- and mainmenu-music
  • weapon icons
  • with range and damage indicators
  • weapon icons with recharge indicators
  • gui : target lists
  • tactical hud elements indicating weapon range
  • powerups/health packs in asteroids ?
  • design decision : newton physics or not ? not might be better for combat

Coop multiplayer

  • enemies arriving in waves (herodefense)
  • buying/salvaging equipment and ships between waves

Spaceship interior

  • meshes and textures for indoor stuff
  • save items inside ship to file (ingame save and/or mapedit save)
  • shipeditor : toggle between inside/outside
  • interior : align cam to outside cam on switch

General

  • gui : generic list dialog (for cargo, shop, etc...)
  • missions : delivery (special cargo, jettison fails mission (or not possible?), mission dialog)
  • namen vor dem login
  • savegames : collective property : everything in mothership, not individual players
  • transfer cargo from fighters to mothership on docking
  • collective money ? avoid if possible to avoid grinding, rather rewards for missions, like gather 100 iron to get weapon.
  • return-to/approach mothership button for fighter/space-suit
  • pickup jettison box
  • missions : navpoint displayed in hud
  • missions : objectives displayed in hud
  • pickup jettison box content
  • pirates : the whole group should counterattack if one of them is attacked (requires group system)
  • auto generate doxygen for sfz and lugre (cronjob or commit hook)
  • toaster name changes to floating ghost toaster if placed above a table

GUI widgets

  • excel table (autosort on header click, updatable, cellrenderers, see java,gtk,cegui,qt,win32api, has scrollpane?)
  • treeview (hierachies : trade categories like vegastrike ?)
  • tabpane
  • scrollpane
  • scrollbar
  • cliprect of parent also affects childs
  • table layout html like, starts as hack with proper interface

Central info server

  • get and display message of the day
  • version check
  • usernames
  • host game : max player limit
  • host game : description text

Interstellar travel (jump)

  • load system from file
  • list of all systems
  • jump to other system
  • limit to adjacted systems
  • map displaying system positions graphically (debug:display coordinates under mouse)

Interplanetary travel (space-folding)

requires large scale systems, e.g. distances between planets in a somewhat realistic scale. this will require some form of space-folding-travel mode to remain playable, we'll keep that for later, other things are more important first.

  • gui : hud : distance display, on mouse over : name, type
  • larger system, spec travel
  • 2d system layout (orbits, but not moving)
  • gui : system map (render to texture, mousepick, click selects planet, planet has stuff orbiting, hierarchial)

Tutorial/Story

maybe a small story as intro/tutorial to game :

  • deliver something to a nearby station/planet (basic controls) (problem : 1 player ?)
  • targetting practice : shoot some debris/junk(Aquanox) /Astreroids/ old-junk-space-ship(EV)
  • destroy some drones that have run amok (hacker,FOF-malfunction,...)
  • bounty hunt : destroy some pirates , reward : jump-drive
  • sientist sensor tutorial : search for right materials, reward : construction plans (weapons, shields...)
  • asteroid mining tutorial
  • crafting tutorial
  • explore mission ? (nearby systems, some other sientist needs help, delivery..)
  • capture some animals on planet, planet personal weapons tutorial


Bugs

  • when you are in writing mode you cant zoom in/out only move the camera
  • you can shoot yourself writing your name in select/by name and shooting.
  • keyboard input does not work in fullscreen on some machines...
  • bad situation in editor : click new, rightclick , problem (last block gone)
  • the sun can be clicked from within the spaceship ? (check click detection for cross location stuff)
  • hudmarkers (edges) and name display is totally broken (related to location system)
  • changing ship and going inside should close cargo dialog
  • w-a-s-d accelleration is not very intuitive, should not only add to current velocity, but also try to redirect the movement into the pressed direction
    • e.g. currently wrong : when going forward it goes right diagonally, not directly
  • sun, additive blending z-sorting bug
  • shipeditor culling is broken if not started with -se commandline option
  • i can resize the window! but when i do it. the chat bar and the interface dont move! i should not be able to resize

Install help

These problems should be automatically detected (see also troubleshooting in INSTALL)

  • check if scons is available in makefile
  • scons : check ogre version (1.2 leads to LINKER errors, see sfz thread in free gamer forum)
  • scons : dpkg info for ogre version? 1.4.0 or later
  • scons : check lua version, 5.1 leads to errors
  • scons : plugins_linux.cfg : "locate libOgreMain | grep .so" folder + OGRE/ for plugins
  • scons  : detect fmod or openal automatically
  • scons  : openal esd trick/warning if alsa
  • scons  : /etc/ld.so.conf : add a line with "/usr/local/lib" (where ogre is) and run /sbin/ldconfig
  • scons  : check all libs, vorbisfile, with pkg ? etc..
  • check runtime shared object files : libfmodex.so libOgreMain.so