Cube/src/CUBE_TODO.txt
Jonathan Schleifer 79db1ed9fa Import cube_2005_08_29_src_zlib.zip
FossilOrigin-Name: ea7418102a3ee6b415e50bea95694727a4f62ae112b570a07310817614ea3063
2024-07-13 14:22:15 +00:00

297 lines
14 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

- seperate release archives for windows, linux, and macosx (less FAQs) - tar with -keep empty dirs
- demo play bugs like sticky scoreboard
- look at that immortality bug that sometimes pops up. immortality_bug.cdgz
- kick vote
- check other demos for common bugs
- demo bug: LAG makes other player fly
- demo bug: names (who is "you") can sometimes be reversed
- ability to set refreshrate? http://twomix.devolution.com/pipermail/sdl/2003-July/055059.html
- player should not be stuck moving after respawn (not reset +forward)
- change auto wep change?
- fps = (1000.0f/(curtime ? curtime : 1)+fps*50)/51 // somehow curtime gets to be 0 even if fps is only 150 on linux
- make serverinfo in server port obey -i
- make spawns more random
- automatic team assignment
- configurable serverport
- force respawn
- delay for player in xhair
- demo: if player once in lag mode, stays there
- "texture triggers", i.e. triggers that can be set for the player touching a certain floor texture. That way it can support sky, and lava, the effects are customizable, and you can also create full-room triggers for other purposes with them.
- -mBLAH sometimes still registers
- lighting - store id of strongest light in every tile (or multiple lights) | normals | boundaries | occlusion at steps down <- the hard part, really needs different representation
- spectator mode
- maprotation.cfg for server
- map checksum (detect architectural changes, entity changes(can it be done by just checking size?))
- send/getmap: some way to send also the .cfg and neccesary custom stuff
- Duel modes (for insta, ffa, tactics, efficiency) maybe with reasonable fraglimit each or only 3-5min rounds (others spectate)
- ctf mode (or something else really team-oriented)
- accuracy stats ;)
- more gore/blood :D
- more chars äüö, and ´
- SLEEPY: only allow v121 and later
- win98 gf2 video init crash?
- better fist?
- check with vtune for cpu bottlenecks on ksp1
- monsters & jumppads
- hide monsters until triggered?
- trigger when monsters die?
- but back the idea of a overwritable config.cfg so settings are easier to change in game?
- improve particle engine / make all weapons have more satisfying effects / better sounds overal / lighting on rocket explosion
- demos play even from old protocol versions / scoreboards sometimes stick
- weapon keeps shooting if you switch to edit/talk while shooting / hide hud weapon in edit mode
- load demo when already playing a demo: see yourself
- load demo of map editing -> crash?
- larger ideas to revamp cube editing/rendering:
* can cube internal representation be replaced with typeless representation?
2x floorceil, 8xvert offset, and 2x wall offset? (can we do it without floorceil even? byterange?)
* new lighting (diff floor ceiling like doom64?) can use lightmap the size of the world
to save on polys and make lighting more precise?
-> also other ways to reduce on polys by splitting
-> can merge polys better
most important however would be to allow walls to have different light than floor/ceil depending on light angle
and better/sharper shadows
* change texture list to be textures used rather than slots to allow >256
* proper way of doing multilevel?
* a way of rendering that makes static vertex arrays and culling coexist? larger chunks?
-> speed is hardly the problem anymore with current cube maps, though may be nice once higher detail geometry editing methods are in
* remove LOD completely
* ways to reduce sparklies?
- render water only where needed... or with some sort of zbuffer trick?
* faster cube occlusion culling by checking distance from each cube rather than raytracing... do so using quad tree and in direction of viewer
- gluPerspective wrong fov?
- fake opengl light for models? (not for bridges)
- do something about people having wrong maps etc / map cheating / make auto map download
- super simple CTF using pickup - drop off idea pxtl ? no team spawns required!
- allow monster spawn on trigger?
- VWEP (slith has own weapons), muzzle flash?
- About 2 out of 3 times I start Cube (Linux Version), the fps counter displays -214748
- make water render not everywhere to reduce sparklies
- vertex/fragment programs
global: millis, eye, eyeorient
vertex: normal, Svec?, Tvec? closest light / light dir vec ?
opengl: matrices etc.
or instead simple regcombine setup?
- shaders stuff
- allow texture rotation
- glow
- under some circumstances, players can not be hurt in multiplayer (wrong lifetime???)
(after any spawn, also in ffa, lasts until disconnect)
- out of memory bug (just on or after new player join).
- mapmodels above eachother gives incorrect physics
- fps reporting on demos.../ teleport to spawn?
- improve sounds
- Ability to get attributes of a single cube at $xsel, $ysel.
- Ability to get the current users position (or cursor position, X,Y & height)
- Provide Absolute mode in at least functions edittex,editheight,vdelta.
- no text when dead? / round over while dead? -> more lag than appearent
- can't spawn when 1 is lagging
- sendmap hang?
- specator mode for arena also
- avoid spawn next to eachother : most difficult in arena because spawns all at same time, meaning you can't check other people's position
- show last persons health?
- bigger monsters can get stuck on top of mapmodels
- disable hudgun when dead
- make disconnection faster (now can last up to 60 secs)... what features depend on this?
- try and debug depth read? GL_DEPTH_SCALE/GL_DEPTH_BIAS
- detect if sw driver? glXIsDirect(dpy, ctx) (can't get context from SDL) / glGetString(GL_VENDOR/RENDERER) (many HW drivers use mesa as base)
- not reproducable: When you pop out of edit mode where a bridge is right under a ceiling you get stuck.
- jumppads don't work for monsters
- try to go FMOD-only?
- new weapon models?
- profiling / replace gluBuild2DMipmaps, its too slow
- protocol: send map checksums so checking can happen?
rendering:
- integrate fisheye mod?
- fix large overdraw on fog culling?
- particles look v bad in fog/water
- allow up to fov 135 or so (need to tweak various frustrum culling optis)
- experiment with alpha textures & shiny textures for second unit... -> generate normals only for surfs that use it
- try out VAR without copying? -> almost no speedup, too cpu bound
- use VAR on chunks of the world
- speed up md2 render -> put into array too... maybe can render multiple walking monsters from same array? (since same time moment)
- texture precache?
- try out also up/down occlusion culling?
- fix corner textures, and make all 4 walls L-R
- render sky polys more efficiently? can't be done with light. need to collect "sky space" and render seperately
- reassign mip 1 quads / mip n quads for big open maps
- skybox roll not working yet
- cull explosions/particles etc outside frustrum
- stripify walls?
- instead of having defer 0 or 1, have a range that rates its visible disruptiveness
world structure / editing:
- make mip opti tags compliant?
- generic push/pull for vdeltas
- how to allow editing features as trigger scripts (since they reset triggers/monsters).
other triggers... certainly a NULL trigger that affects no tags
floor/ceil height, texture change, solid,
spawn stuff?
waterlevel raise/lower
could select tag areas and then do edit callback.. problem is how to generically restore them
- need more commands that influence the world in a gameplay way for trigger scripts
- ror by models?
- hom in custom arch?
- vdelta mipping often wrong
- improve selecting in void and selecting heightmaps / selecting areas with much height variation
- "platform" extra floors or something similarly simple?
- generate terrain as edit command (also for 2x2 and 4x4 mips!)
- arbitrary shapes a la archvertex
- flip/rotate commands
- off-vertex feature?
- coop copy & paste / other ops
- make showmip show acurate values (use real light values)
- make mapopt atleast also do 4x4
- intermission cam entity?
- make "corner" equalize height automatically?
- "are you sure" when edits have been made
- wr: render too high wall if z is mip mapped (1 unit indent)
- wr: walls behind corners
- wr: SEMISOLID still causes faces in the floor -> extend issemi
- hom: normal walls next to huge mips (on DM2?)
- hom: a 2x2 solid next to only a partial HF [workaround: cut up wall]
- hom: a 2x2 solid next to concave 2x2 hf [workaround: cut up wall]
- hom: cap on a equal height floor/ceil [workaround: make height diff]
- allow 2 or more levels?
- multiple selections
- each client in editmode should be able to see the selection outline of other clients that are in editmode.
- expand random map gen ?
- texture language: each texture number becomes a little program for
texturing. [ warning: must be in both worldrender & mipmapping code
for correct results. ] possibilities:
* all the shader tricks
* random textures: select any from a set
* checkerboard tile 2 textures
* auto border tiling (when texture touches same height/texture
or not): textures specified (any amount):
1. texture center
2. texture border (replaces 1 when touching changing blocks)
3. texture corner (replaces 2 on 2 touching)
4. inner corner (replaces 2/3 when indented corner)
will work on both floors and walls, and will make nice
texturing with rims _extremely_ easy.
script / console:
- make editing-only binds?
- delay "music" and "loadsky" commands, such that they do not load multiple times.
- make onrelease work everywhere?
- beep on "say"
- save config.cfg / move autoexec.cfg to last?
- international keyboards?
multiplayer:
- insta arena
- accumulate accuracy / efficiency / rails in a row / frags in a row stats
- arena numplayers>1 & other recent addons / rename "arena" to "last man standing"
- allow servers to set port
- render CS_LAGGED differently?
- spectator mode
- make everyone spec for duel/team modes
- admin feature
- mode 2 duel?
- frags should be in c2s welcome packet
- simplify tp: only red/blue, otherwise spectate
- add time spend on server to scoreboard
- specify distance in some way for network ? distance / occlusion / standing still / dead
- compress some things about network stream?
- all physics pushes don't affect players across the network
- servers should send map checksums, small differences in map entities pos could potentially cause crashes, same for out of range ents on clients.
- implement http get for masterserver?
- vote: either explain it or make it easier.. generally make a multiplayer connect walkthru
- rethink map get? make it even easier???
- locking of in-progress games
- when switching to map that player doesnt have... something better should happen than keep him in old map with floating players
- capture the chicken mode? other different DM modes? domination? holy wars?
- teamplay scores don't record frags of disconnected players
- teamplay binds
- ctf mode
- character selection... maybe also sounds... relatively easy, maybe share monster/player stuff more
- when failed to connect, not clear not connected on map reload?
- time remaining not clearly printed...
- interpolated demo playback?
- dont allow duplicate player names
- make carrots work correctly in mp, and various other things in mp
- maybe also make deaths instant
- console scores
- can jump thru players easily when both move.. make sure offset to correct side?
- add network interpolation as an option?
- different pain sounds for levels of damage applied, or level of health?
SP/monsters
- less <10h -> scared
- monster weapons go thru mapmodels.
- lava/water hurt
- think about save game / copy stats for sp
- think about introducing rpg style elements: weapon/stat upgrades, inventory items
- wake up others nearby?
- secrets
- barrels
- gibs for health?
- other interesting monster behaviour... pacifist until first shot?
- make monsters flee
- spawn sound?
- maybe make 2 versions of each monster to make up for the lack of them (different skins?)
- player/monster on top of eachother
- coop (not easy, requires lots of sync & bw management).
- use tracing code also for player1? too many problems with it...
- new trigger types... floor raise/lower, secrets
gameplay:
- sky hurt
- splash sound frequently when looking straight up from water
- increase amount of blood / better particle lifetimes
- think of how make kills etc more satisfying
- dynblight when player shoots
- make some of the gameplay code in script? problem, for multiplayer this will make cheating easy.
- overhead map: show open & closed doors
- fun: racing game easter egg
- use Mix_SetPosition() for positional sound
- anim frames for death
- <metlslime> - fix the shotgun behavior :)
- auto weapon change?
- traceline related:
* replace readpixels since its very problematic?
-> must solve by software, can't disable depth buffer for models
* RL stops behind chasing player
* RL path must be cut short on direct hit
* guns shots go thru players, and they can miss if model sticks in front
of bounding box
physics
- optimise stair physics for 2x1 slopes -> interferes with stairs
- speed up monster-monster and monster-mapmodel collision
- for 1 cube wide obstackles, push player past it
- give player velocity coming out of teleport -> direction he's facing
- improve slant sliding
- improve heightfield physics?
light stuffs:
- blend out dynlight longer?
- sun lighting?
- player shadows?
- quad damage player dynlight?
- switchable lights? lights that oscillate in strength?
changes for bigger landscapes:
- hf: hom next to big mips / water height
- make correct collision for slopes
- push/pull vertex tools
- different scale: *2 in xy, and /2 in z, ratio is then 1:4 (so float hf can be removed)
- more tree/plant map models
- optimize certain code for 2k^2 maps.. lighting?
- cut&paste entities also?
- limit occlusion distance?
non-code:
- improve default keybinds for editing -> docs / find better keys for modifiers?
- email all model authors
- check all dm spawns big enough for monsters
- sounds! monster see
- more sp maps?
- better tree skin / more models?
- add metl3?
- dgtex?
- q3 tree mapmodels?