Difference between revisions of "Roadmap"

From SfzWiki
Jump to: navigation, search
(General)
(Spaceship interior)
Line 62: Line 62:
 
** <strike>flowers</strike>
 
** <strike>flowers</strike>
 
** <strike>door</strike>
 
** <strike>door</strike>
** [http://www.livezone.com/girltalk/images/locker.gif locker]
+
** <strike>[http://www.livezone.com/girltalk/images/locker.gif locker]</strike>
 
** <strike>[http://e-vending.com/Chill_Center_combo_vending_machines.jpg soda machine]</strike>
 
** <strike>[http://e-vending.com/Chill_Center_combo_vending_machines.jpg soda machine]</strike>
 
** <strike>[http://edweb.tusd.k12.az.us/sped/images/reallifephotos/Refrigerator.jpg refrigerator]</strike>
 
** <strike>[http://edweb.tusd.k12.az.us/sped/images/reallifephotos/Refrigerator.jpg refrigerator]</strike>

Revision as of 21:54, 29 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 reselect shiptype for respawn
  • enter name before join (?)
  • 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

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

  • 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
  • irc lib ? announce opened games in irc
  • 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

  • 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)
  • trac-bugtracker is currently unusable (permission denied)
  • 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