Difference between revisions of "Roadmap"

From SfzWiki
Jump to: navigation, search
(simple multiplayer)
 
(24 intermediate revisions by 6 users not shown)
Line 2: Line 2:
 
see also [[Notes]]<br>
 
see also [[Notes]]<br>
  
== simple multiplayer ==  
+
list of finished points : [[RoadmapDone]]
target : just fly around together, blowing up asteroids and each other
+
 
 +
== notes ==
 +
 
 +
* customizable ship model set : http://opengameart.org/content/shipyard-v04-customizable-spaceships
 +
 
 +
== Simple multiplayer ==  
 +
Target : just fly around together, blowing up asteroids and each other.
  
* <strike>load ships saved in editor as nodegroups</strike>
 
* <strike>extend cRobRenderOp::ConvertToMesh in robrenderable.cpp to add submeshes to existing meshes</strike>
 
* <strike>(load ships saved in editor as mesh)</strike>
 
 
* (generate LOD meshes for ships)
 
* (generate LOD meshes for ships)
* <strike>remove inner faces of ships</strike>
 
* <strike>server : open tcp listen socket (net_L.cpp : NetListen, PopAccepted)</strike>
 
* <strike>client : open connection to server socket  (net_L.cpp : NetConnect)</strike>
 
* <strike>send simple tcp messages : e.g. chatline (main.lua:232:SendChat , net_L.cpp NetReadAndWrite)</strike>
 
* <strike>server : send spawn-messages for stuff created after join to client</strike>
 
* <strike>server : send spawn-messages for world on playerjoin</strike>
 
* <strike>server : send-resync-stuff (prepared in in location_L.cpp : SendResyncs)</strike>
 
* <strike>client : receive-resync-stuff (prepared in in resyncreceiver_L.cpp)</strike>
 
* <strike>client : send mouse/rotation/turn quaternion to server (udp)</strike>
 
* <strike>client : send key-changes to server (tcp, accelerate, fire weapon)</strike>
 
* <strike>server : receive player turn and keys</strike>
 
* <strike>server : send effects (laserbeam on weapon) to server</strike>
 
* <strike>server : ray/sphere hit detection : laser destroys ship or asteroids</strike>
 
* <strike>server : respawn killed clients when space key is pressed</strike>
 
 
* 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
* <strike>select shiptype and reselect shiptype for respawn</strike>
 
 
* enter name before join (?)
 
* enter name before join (?)
* <strike>sounds effects</strike>
+
* <strike>maybe http://jamendo.com background- and mainmenu-music</strike>
* maybe http://jamendo.com background- and mainmenu-music
+
* <strike>weapon icons</strike>
* <strike>third person cam ingame</strike>
+
* with range and damage indicators
* weapon icons with range and damage indicators, and recharge indicators
+
* <strike>weapon icons with recharge indicators</strike>
 
* gui : target lists
 
* gui : target lists
* <strike>gui : select targets with mouse click directly</strike>
 
 
* tactical hud elements indicating weapon range
 
* tactical hud elements indicating weapon range
 
* powerups/health packs in asteroids ?
 
* powerups/health packs in asteroids ?
 
* design decision : newton physics or not ?  not might be better for combat
 
* design decision : newton physics or not ?  not might be better for combat
  
== coop multiplayer ==
+
== Coop multiplayer ==
* (to be planned) defending a space station
+
* enemies arriving in waves (herodefense)
* (to be planned) enemies arriving in waves
+
* buying/salvaging equipment and ships between waves
* (to be planned) buying/salvaging equipment and ships between waves
+
  
== spaceship interior ==
+
== Spaceship interior ==
  
* <strike>draw inverted ship mesh as interior background</strike>
 
* <strike>switch between inside and outside view</strike>
 
* <strike>tile-based walking inside ship</strike>
 
 
* meshes and textures for indoor stuff
 
* meshes and textures for indoor stuff
** <strike>couch</strike>
+
** <strike>chair</strike>
** chair
+
** [http://www.mahq.net/Mecha/Gundam/turn-a/lineart/amx-109-linearseat.jpg cockpit seat]
+
** <strike>multi-part-engine</strike>
+
** <strike>engine</strike>
+
** <strike>grate</strike>
+
** <strike>ladders</strike>
+
 
** [http://www.amezz.com/am-images/stairs-handrail-ext.jpg stairs]
 
** [http://www.amezz.com/am-images/stairs-handrail-ext.jpg stairs]
** [http://www.amezz.com/am-images/stairs-handrail-ext.jpg handrail]
+
** [http://ebonrai.com/sfz/ lamps (wall, ceiling, floor)]
** <strike>computer consoles</strike>
+
** <strike>table</strike>
+
** <strike>flowers</strike>
+
** <strike>door</strike>
+
** [http://www.livezone.com/girltalk/images/locker.gif locker]
+
** [http://e-vending.com/Chill_Center_combo_vending_machines.jpg soda machine]
+
** [http://edweb.tusd.k12.az.us/sped/images/reallifephotos/Refrigerator.jpg refrigerator]
+
** lamps (wall, ceiling, floor)
+
 
** elevator (=door + moving platform)
 
** elevator (=door + moving platform)
* <strike>menu for placing items inside ship</strike>
+
* <strike>save items inside ship to file (ingame save and/or mapedit save)</strike>
* save items inside ship to file (ingame save and/or mapedit save)
+
 
* shipeditor : toggle between inside/outside
 
* shipeditor : toggle between inside/outside
 
* interior : align cam to outside cam on switch
 
* interior : align cam to outside cam on switch
  
== untitled ==
+
== General ==
  
* gui : nicer dialog frame (white text on black background, corners a bit round, buttons different from dialog frame)
 
* gui : nicer menu look
 
 
* gui : generic list dialog (for cargo, shop, etc...)  
 
* gui : generic list dialog (for cargo, shop, etc...)  
* buy weapons and equipment
 
 
* missions : delivery (special cargo, jettison fails mission (or not possible?), mission dialog)
 
* missions : delivery (special cargo, jettison fails mission (or not possible?), mission dialog)
 
* namen vor dem login
 
* namen vor dem login
Line 85: Line 50:
 
* return-to/approach mothership button for fighter/space-suit
 
* return-to/approach mothership button for fighter/space-suit
 
* pickup jettison box
 
* pickup jettison box
* missions : navpoint displayed in hud
+
* <strike>missions : navpoint displayed in hud</strike>
* missions : objectives displayed in hud
+
* <strike>missions : objectives displayed in hud</strike>
 
* pickup jettison box content
 
* pickup jettison box content
* pirates : the whole group should counterattack if one of them is attacked (requires group system)
+
* <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)
 
* 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 ==
+
== GUI widgets ==
 
* excel table  (autosort on header click, updatable, cellrenderers, see java,gtk,cegui,qt,win32api, has scrollpane?)
 
* excel table  (autosort on header click, updatable, cellrenderers, see java,gtk,cegui,qt,win32api, has scrollpane?)
 
* treeview (hierachies : trade categories like vegastrike ?)
 
* treeview (hierachies : trade categories like vegastrike ?)
Line 100: Line 66:
 
* table layout html like, starts as hack with proper interface
 
* table layout html like, starts as hack with proper interface
  
== central info server ==
+
== Central info server ==
  
* http lib for lua
 
 
* get and display message of the day
 
* get and display message of the day
* option to announce game in internet when hosting
 
* list announced games
 
 
* version check
 
* version check
 
* usernames
 
* usernames
* lobby chat
 
* irc lib ? announce opened games in irc
 
 
* host game : max player limit
 
* host game : max player limit
 
* host game : description text
 
* host game : description text
  
== inter-stellar travel (jump) ==
+
== Interstellar travel (jump) ==
  
 
* load system from file  
 
* load system from file  
Line 121: Line 82:
 
* map displaying system positions graphically (debug:display coordinates under mouse)
 
* map displaying system positions graphically (debug:display coordinates under mouse)
  
== inter-planetary travel (space-folding) ==
+
== Interplanetary travel (space-folding) ==
 
requires large scale systems, e.g. distances between planets in a somewhat realistic scale.
 
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,
 
this will require some form of space-folding-travel mode to remain playable,
Line 131: Line 92:
 
* gui : system map (render to texture, mousepick, click selects planet, planet has stuff orbiting, hierarchial)
 
* gui : system map (render to texture, mousepick, click selects planet, planet has stuff orbiting, hierarchial)
  
== tutorial/story ==
+
== Tutorial/Story ==
 
maybe a small story as intro/tutorial to game :
 
maybe a small story as intro/tutorial to game :
 
* deliver something to a nearby station/planet (basic controls)  (problem : 1 player ?)
 
* deliver something to a nearby station/planet (basic controls)  (problem : 1 player ?)
Line 144: Line 105:
  
  
== bugs ==
+
== Bugs ==
  
* you can zoom out with no limit, you can even see the skybox.
 
 
* when you are in writing mode you cant zoom in/out only move the camera
 
* 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.
 
* you can shoot yourself writing your name in select/by name and shooting.
 
* keyboard input does not work in fullscreen on some machines...
 
* keyboard input does not work in fullscreen on some machines...
 
* bad situation in editor : click new, rightclick , problem (last block gone)
 
* bad situation in editor : click new, rightclick , problem (last block gone)
* <strike>trac-bugtracker is currently unusable (permission denied)</strike>
 
 
* the sun can be clicked from within the spaceship ? (check click detection for cross location stuff)
 
* 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)
 
* hudmarkers (edges) and name display is totally broken (related to location system)
Line 161: Line 120:
 
* 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
 
* 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 ==
+
== Install help ==
  
these problems should be automatically detected (see also troubleshooting in INSTALL)
+
These problems should be automatically detected (see also troubleshooting in INSTALL)
  
 
* check if scons is available in makefile
 
* check if scons is available in makefile

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