Difference between revisions of "Roadmap"

From SfzWiki
Jump to: navigation, search
(untitled)
(central info server)
Line 106: Line 106:
 
* list announced games
 
* list announced games
 
* version check
 
* version check
 +
* usernames
 +
* lobby chat
 +
* host game : max player limit
 +
* host game : description text
  
 
== inter-stellar travel (jump) ==
 
== inter-stellar travel (jump) ==

Revision as of 23:33, 16 August 2007

see also the now obsolete OldRoadmap2006
see also Notes

simple multiplayer

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

  • load ships saved in editor as nodegroups
  • extend cRobRenderOp::ConvertToMesh in robrenderable.cpp to add submeshes to existing meshes
  • (load ships saved in editor as mesh)
  • (generate LOD meshes for ships)
  • remove inner faces of ships
  • server : open tcp listen socket (net_L.cpp : NetListen, PopAccepted)
  • client : open connection to server socket (net_L.cpp : NetConnect)
  • send simple tcp messages : e.g. chatline (main.lua:232:SendChat , net_L.cpp NetReadAndWrite)
  • server : send spawn-messages for stuff created after join to client
  • server : send spawn-messages for world on playerjoin
  • server : send-resync-stuff (prepared in in location_L.cpp : SendResyncs)
  • client : receive-resync-stuff (prepared in in resyncreceiver_L.cpp)
  • 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 space key is pressed
  • server : detect and handle create-listener error
  • client : detect and handle connect error
  • server : detect and handle client-disconnect
  • select shiptype and enter name before join (reselect shiptype for respawn?)
  • sounds effects
  • maybe http://jamendo.com background- and mainmenu-music
  • third person cam ingame
  • weapon icons with range and damage indicators, and recharge indicators
  • gui : target lists
  • gui : select targets with mouse click directly
  • 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

  • (to be planned) defending a space station
  • (to be planned) enemies arriving in waves
  • (to be planned) buying/salvaging equipment and ships between waves

spaceship interior

  • draw inverted ship mesh as interior background
  • switch between inside and outside view
  • tile-based walking inside ship
  • meshes and textures for indoor stuff
  • menu for placing items inside ship
  • 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

untitled

  • 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...)
  • buy weapons and equipment
  • 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)


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

  • http lib for lua
  • get and display message of the day
  • option to announce game in internet when hosting
  • list announced games
  • version check
  • usernames
  • lobby chat
  • host game : max player limit
  • host game : description text

inter-stellar 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)

inter-planetary 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

  • 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
  • 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)

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