o = todo X = done ? = maybe but not likely M = more testing I = in progress W = waiting on other work M it seems possible to crash a QF server still - need to fix this! M Scitech MGL used in win32 is screwed - dump it and use SDL I GL is still way too slow I Client side QuakeC. I mingw cross compiling I merge nq and qw code bases W fix skybox/dome vis problems (workable solution found, needs new renderer) o ogg support o It's possible to stick on some obtuse-angled corners qwsv 2.3x didn't o better server control of certain cvars o triggers (f_respawn, f_death, f_took; cl_triggers) o software PCXs don't work in X11 at least if you're using 16/24/32 color o stateful console (eg, rcon mode, chat mode, normal command mode...) o menu rewrite o scripted hud o doublesize modes (eg, render in 320x240 but display in 640x480) ? more direct intra-team comms (eg, talk to offense or defense directly) ? Draw_Pic and friends need a cleanup in GL at least ? console commands to see a user, ignore talk from them, etc ? improved crosshairs (custom file, 32 bit for GL, etc) W software targets should mix color at 16/16 or 24/32 color ? Draw_Pic and other tex draw functions should use local palettes ? wad loader should load wad3 and fall back to wad2 if necessary ? better control over client console logging ? ban reasons and expire times ? no 512 entities limit (protocol limitation) ? large or infinite (!) maps (currently has +-4096 protocol limit) ? redirection for file downloads ? way to change con back besides changing mod dir (csqc likely) ? server-side demos ? movie-like demo controls (fastforward, rewind, step forward and back, seek, etc) ? delta compression for protocol ? transmit nails as source/direction/speed/time rather than direction/location, to improve delta compression ? custom particle explosions (doable via csqc) ? server should shutdown cleanly when it recieves SIGTERM and SIGHUP ? client-only commands (rejected if done via a server stuffcmd) ? ~/.quakeforgerc should support all commands, not just set and setrom These are explained better in doc/ideas/rhamph.txt: ? portal vis system ? remappable portals ? room duplication ? randomly generated maps ? variable detail models ? skeltal model animations ? Inverse kinematics ? variable detail walls Future directory tree: o todo X done (a parent dir is not done until its children are done:) quakeforge o +--- tools useful/needed tools X | +--- Forge Forge.app map/model/everything editor X | +--- cvs2cl X | +--- gas2masm X | +--- pak massively enhanced pak tool X | \--- qfcc QuakeForge Gamecode Compiler o +--- include API definitions for all subsystems o +--- nq Non-common NQ code o +--- qw Non-common QW code o \--- libs common code libs o +--- audio o | +--- cd o | +--- recording o | +--- renderer 3D audio rendering o | | +--- soft Software 3D spatialization o | | \--- openal Passing the buck to OpenAL o | \--- targets Raw sound I/O o | +--- null No raw output (none or OpenAL) o | +--- alsa ALSA o | +--- oss OSS or kernel sound o | +--- dsound MS DirectSound o | \--- sdl SDL (gack) output o +--- filesystem Filesystem code | | (the code for normal fs is also here) o | +--- pakfile Quake Pakfiles o | +--- qfp QuakeForge Package o +--- formats o | +--- bsp29 Quake BSP read/write o | +--- bsp66 QuakeForge native BSP read/write o | +--- mdl Quake model read/write o | +--- md2 Quake2 model read/write [would be nice] o | +--- qfm QuakeForge native model format o | \--- textures PCX, QFS (multi-skins), TGA o +--- gamecode Progs interpreter (core) o | +--- client Client bindings o | \--- server Server bindings o +--- network Network code (like netchan, but sane) o | +--- transport Low-level protocols (UDP, TCP+UDP, etc.) o | +--- netquake Quake's wire protocol o | +--- null Null protocol, for single-player o | \--- quakeworld QuakeWorld's wire protocol o +--- system Platform-dependant system lib | | (raw IO/filesystem/dlopen code) o | +--- null Portability aid, a skeleton system lib o | +--- unix POSIX stuff o | \--- win32 Win32 system lib X +--- util Utility library | contents: Commands, Cvars, Quake-format scripts, | property lists, console parsing/formatting/output, the | heap and zones. o +--- video Video input and output o | +--- renderer 3D video rendering o | | +--- soft Software 3D rendering o | | \--- opengl Passing the buck to OpenGL o | \--- targets o | +--- null Portability aid, skeleton o | +--- console Non-graphical, "readline" input | | (also needs old-style stuff for | | dumb-ass systems/terminals) o | +--- sdl o | +--- svgalib o | +--- win32 o | \--- x11 o \--- world 3D layout engine (includes objects) Talks to the sound and video renderers to output frames Decided old menu structure was pointless and nobody cared. So we don't forget something in the binds menu: Attack Change weapon Jump / Swim up Walk forward Backpedal Turn left Turn right Run Step left Step right Sidestep Look up Look down Center view Mouse look Keyboard look Swim up Swim down