Difference between revisions of "Roadmap"
From SfzWiki
(→Central info server) |
|||
Line 1: | Line 1: | ||
see also the now obsolete [[OldRoadmap2006]]<br> | see also the now obsolete [[OldRoadmap2006]]<br> | ||
see also [[Notes]]<br> | see also [[Notes]]<br> | ||
+ | |||
+ | list of finished points : [[RoadmapDone]] | ||
== Simple multiplayer == | == Simple multiplayer == |
Revision as of 20:38, 23 November 2007
see also the now obsolete OldRoadmap2006
see also Notes
list of finished points : RoadmapDone
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)
- 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