Update TODO

This commit is contained in:
Miloslav Ciz 2024-10-07 14:31:50 +02:00
parent 5a3db49cc1
commit e23fb2657a

110
TODO.txt
View file

@ -1,17 +1,41 @@
=========== GENERAL ==============
- allow stopping car rotation in air like in Trackmania
- maybe allow some more air control, like slowing down with brakes, like in TM
- sound engine: probably all SFX will be procedurally generated, ok?
- music?
- probably just make one long track, literally OGG or something, then make
that be played by the frontend just ALL the time (maybe with the option in
menu to just turn music off) -- simple frontends can just ignore music
- allow car to be flipped upside down on start? with start block transform - allow car to be flipped upside down on start? with start block transform
- maybe change sticker to fan? could me more fun: TEST and see
- map actually in ASCII format? how will humans edit it? - map actually in ASCII format? how will humans edit it?
- make a simple rendering setting: - make a simple rendering setting:
- will exclude images and only draw solid colors, let's say only 16, so that - will exclude images and only draw solid colors, let's say only 16, so that
memory usage is reduced, CPU rendering is relieved, executable is smaller memory usage is reduced, CPU rendering is relieved, executable is smaller
AND frontend doesn't have to use RGB565 (it can basically choose any mode). AND frontend doesn't have to use RGB565 (it can basically choose any mode).
- background sky rendering efficiently:
- first draw the solid color top and bottom
- then render the 3D scene
- then iterate over the strip that should have the sky texture and only draw
to pixels where depth buffer was not overwritten (this step can be left out
in case we have depth buffer or sky turned off)
- camera behavior? what if car is riding upside down (on magnet) etc? - camera behavior? what if car is riding upside down (on magnet) etc?
- compile time option to choose how many maps to include (for platforms with
lower memory)
- Environments: just different textures for a cube inside which the tarck is,
the cube won't have the top side, texture can have transparency (sky see
through) <-- NO
- UPDATE: tho rasterization of the big cube could take whole screen: too slow.
Maybe just have a model + texture for each env? (still could allow transp).
- OR: environment could just be a sky texture (or just sky color?) plus a
floor texture? pretty KISS. SKY DOESN'T HAVE TO BE SPHERICALLY MAPPED, it
can simply rotate horizontally and shift vertically (camera will never
roll) -- not accurate but good enough. <-- YES
- How to visually represent checkpoints (and finish)?
- Could be kind of an arrow made of single tri above the block?
(try how it looks in Blender)
- Probably just a literal block (or pyramid) DRAWN WITH DITHERING and/or
blinking <-- PROBABLY THIS
- replay format
=========== BUGS =================
=========== HANDLED ==============
- EFFICINT MAP DRAWING: - EFFICINT MAP DRAWING:
- map will be subdivided into subblocks (probably 16x16x16 or 8x8x8), only - map will be subdivided into subblocks (probably 16x16x16 or 8x8x8), only
nearest subblocks (and possibly only those in viewing direction will be nearest subblocks (and possibly only those in viewing direction will be
@ -24,6 +48,35 @@
subblocks we want to draw. subblocks we want to draw.
- THIS??? Draw further blocks in a simplified way, e.g. just splatting literal - THIS??? Draw further blocks in a simplified way, e.g. just splatting literal
squares with constant color? See how it looks :) squares with constant color? See how it looks :)
- background sky rendering efficiently:
- first draw the solid color top and bottom
- then render the 3D scene
- then iterate over the strip that should have the sky texture and only draw
to pixels where depth buffer was not overwritten (this step can be left out
in case we have depth buffer or sky turned off)
- maybe change sticker to fan? could me more fun: TEST and see
- track size: 64x64x64
- sky images could be just composed of 4x4 normal images? then we only need
one type of image
TOTAL SIZE OF TEXTURES:
- 64 x 64 x 2 = 8192, 6 x floor + 2 x wall + 1 x car = 8 * 8192 = 73728
- (128 x 128 x 1) x 3 background = 49152
- total = 122880
- OK so materials (final?):
- concrete: normal \
- accelerator: accelerates (adds some constant to speed?) > same wall texture?
- maybe jumppad (big "fan")? /
- dirt: a bit slippery (maybe also a bit slows down?) \
- magnet: pulls car downwards (allows riding on ceiling etc.) > same wall texture?
- ice: extremely slippery (can barely turn) /
- Architecture (modules):
- map: loads map n stuff
- racing engine (depends on map): handles physics of car with given inputs
- rendering engine (depends on map): hanles rendering of the map
- game (depends on all): joins it all together
- settings, constants etc.
- individual frontends
- ...?
- Textures: size? format? They will likely take a lot of mem, weak computers - Textures: size? format? They will likely take a lot of mem, weak computers
will have to do without them. will have to do without them.
- possibility of simple procedural textures to save space! <-- SOUNDS NICE - possibility of simple procedural textures to save space! <-- SOUNDS NICE
@ -80,17 +133,6 @@
- special material? <-- YES - special material? <-- YES
- maybe they could simply boost the car in its current direction? YES - maybe they could simply boost the car in its current direction? YES
- just keeps accelerating car in its direction, ok? - just keeps accelerating car in its direction, ok?
- compile time option to choose how many maps to include (for platforms with
lower memory)
- Environments: just different textures for a cube inside which the tarck is,
the cube won't have the top side, texture can have transparency (sky see
through) <-- NO
- UPDATE: tho rasterization of the big cube could take whole screen: too slow.
Maybe just have a model + texture for each env? (still could allow transp).
- OR: environment could just be a sky texture (or just sky color?) plus a
floor texture? pretty KISS. SKY DOESN'T HAVE TO BE SPHERICALLY MAPPED, it
can simply rotate horizontally and shift vertically (camera will never
roll) -- not accurate but good enough. <-- YES
- what color format to use? full RGB is bloat+overkill, 332 is too low for the - what color format to use? full RGB is bloat+overkill, 332 is too low for the
textures used. Possibilities. textures used. Possibilities.
- 565 <-- YES - 565 <-- YES
@ -100,11 +142,6 @@
color and a simplified 1 byte color? <-- KINDA? There could be an option color and a simplified 1 byte color? <-- KINDA? There could be an option
to just get simplified texture color in the 565 value that's normally to just get simplified texture color in the 565 value that's normally
normal color normal color
- How to visually represent checkpoints (and finish)?
- Could be kind of an arrow made of single tri above the block?
(try how it looks in Blender)
- Probably just a literal block (or pyramid) DRAWN WITH DITHERING and/or
blinking <-- PROBABLY THIS
- Start and finish blocks will be just the first/last checkpoint blocks (no need - Start and finish blocks will be just the first/last checkpoint blocks (no need
for special start, finish and CP). <-- NO for special start, finish and CP). <-- NO
- Or maybe not, we would need to somehow mark these with extra vars, plus we - Or maybe not, we would need to somehow mark these with extra vars, plus we
@ -112,30 +149,3 @@
- Maybe there could be no finish, the player would just have to take all the - Maybe there could be no finish, the player would just have to take all the
checkpoints? <--- THO probably not, would rule out "there and back" maps checkpoints? <--- THO probably not, would rule out "there and back" maps
- THIS?: CP and FINISH will just be a special block, that's it? - THIS?: CP and FINISH will just be a special block, that's it?
BUGS:
HANDLED:
- track size: 64x64x64
- sky images could be just composed of 4x4 normal images? then we only need
one type of image
TOTAL SIZE OF TEXTURES:
- 64 x 64 x 2 = 8192, 6 x floor + 2 x wall + 1 x car = 8 * 8192 = 73728
- (128 x 128 x 1) x 3 background = 49152
- total = 122880
- OK so materials (final?):
- concrete: normal \
- accelerator: accelerates (adds some constant to speed?) > same wall texture?
- maybe jumppad (big "fan")? /
- dirt: a bit slippery (maybe also a bit slows down?) \
- magnet: pulls car downwards (allows riding on ceiling etc.) > same wall texture?
- ice: extremely slippery (can barely turn) /
- Architecture (modules):
- map: loads map n stuff
- racing engine (depends on map): handles physics of car with given inputs
- rendering engine (depends on map): hanles rendering of the map
- game (depends on all): joins it all together
- settings, constants etc.
- individual frontends
- ...?