Difference between revisions of "Roadmap"
From SfzWiki
Ghoulsblade (Talk | contribs) (→bugs) |
m (added links to ebonrai's lamps) |
||
Line 2: | Line 2: | ||
see also [[Notes]]<br> | see also [[Notes]]<br> | ||
− | == | + | == Simple multiplayer == |
− | + | Target : just fly around together, blowing up asteroids and each other. | |
* <strike>load ships saved in editor as nodegroups</strike> | * <strike>load ships saved in editor as nodegroups</strike> | ||
Line 38: | Line 38: | ||
* 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 == |
* (to be planned) defending a space station | * (to be planned) defending a space station | ||
* (to be planned) enemies arriving in waves | * (to be planned) enemies arriving in waves | ||
* (to be planned) buying/salvaging equipment and ships between waves | * (to be planned) buying/salvaging equipment and ships between waves | ||
− | == | + | == Spaceship interior == |
* <strike>draw inverted ship mesh as interior background</strike> | * <strike>draw inverted ship mesh as interior background</strike> | ||
Line 65: | Line 65: | ||
** [http://e-vending.com/Chill_Center_combo_vending_machines.jpg soda machine] | ** [http://e-vending.com/Chill_Center_combo_vending_machines.jpg soda machine] | ||
** [http://edweb.tusd.k12.az.us/sped/images/reallifephotos/Refrigerator.jpg refrigerator] | ** [http://edweb.tusd.k12.az.us/sped/images/reallifephotos/Refrigerator.jpg refrigerator] | ||
− | ** lamps (wall, ceiling, floor) | + | ** [http://ebonrai.com/sfz/ lamps (wall, ceiling, floor)] |
** elevator (=door + moving platform) | ** elevator (=door + moving platform) | ||
* <strike>menu for placing items inside ship</strike> | * <strike>menu for placing items inside ship</strike> | ||
Line 72: | Line 72: | ||
* interior : align cam to outside cam on switch | * 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 dialog frame (white text on black background, corners a bit round, buttons different from dialog frame) | ||
Line 91: | Line 91: | ||
* auto generate doxygen for sfz and lugre (cronjob or commit hook) | * auto generate doxygen for sfz and lugre (cronjob or commit hook) | ||
− | == | + | == 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 100: | ||
* table layout html like, starts as hack with proper interface | * table layout html like, starts as hack with proper interface | ||
− | == | + | == Central info server == |
* http lib for lua | * http lib for lua | ||
Line 113: | Line 113: | ||
* host game : description text | * host game : description text | ||
− | == | + | == Interstellar travel (jump) == |
* load system from file | * load system from file | ||
Line 121: | Line 121: | ||
* map displaying system positions graphically (debug:display coordinates under mouse) | * 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. | 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 131: | ||
* 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 == |
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 144: | ||
− | == | + | == Bugs == |
* <strike>you can zoom out with no limit, you can even see the skybox.</strike> | * <strike>you can zoom out with no limit, you can even see the skybox.</strike> | ||
Line 161: | Line 161: | ||
* 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 == |
− | + | 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 |
Revision as of 09:01, 22 August 2007
see also the now obsolete OldRoadmap2006
see also Notes
Contents
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
-
couch - chair
- cockpit seat
-
multi-part-engine -
engine -
grate -
ladders - stairs
- handrail
-
computer consoles -
table -
flowers -
door - locker
- soda machine
- refrigerator
- lamps (wall, ceiling, floor)
- elevator (=door + moving platform)
-
-
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)
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