GOAL: Have some game objects moving arround
It's not much but will work as a POC:
- Draw a circle and some colored rectangles
- AABB collision
- Internal data storage (score, positions, speeds)
- "AI" that follows the ball
The input system is ina weird position where we require straight access to it in random ahh places for some reason and we can't really abtract it.
- Update docs pre-work
- Possibly update this todo list
- Update docs post-work
We should be able to fit the entire game on this file, none of the engine stuff should know about the game
- Pong game demo
- Core
-
Abstract input (a.k.a when key "x" pressed do "y") (function pointer to allow binding a key to an action?)EDIT: let the user code handle input directly - FPS system (still needs to improve, but core is done)
- Separate X11 and Wayland build
- Re-work build system
- Rectangles
- Circles
- Check possibility of using memset for drawing horizontal lines (optimization). EDIT:
fill_u32can be heuristically optimized with assembly latter, ... WAY latter.
- DOD for postions, sizes, etc. (Team Fat Struct?)
- Get and set entity data
- Update anything as needed
- Stop for X11
- Check that both X11 and Wayland run the game proprelly
- Add arrow keys (?)
- Simple AABB collision
The next version will likely be a strengthening of every engine pilar, such as a more general input system, a more optimized renderer, etc.
- Shared memory for image buffer X11
GOAL: Implement a native wayland platform layer
We'll focus a lot more on this wayland layer building it from scratch.
- Update docs pre-work
- Update docs post-work
- Demo to move a triangle
Port the X11 layer to Wayland:
- Init with internal state with screen, display GC, etc.
- Shutdown dealocates everything to prepare for a possible re-start
- Update with event handling (key presses and releases)
- Present that displays the image buffer
Extra stuff:
- Check equivalence (mostly, wayland does not do a black background outside the image buffer, but that shouldn't make any difference)
- Cleanup the code
Maybe re-write X11 layer from scratch too just to see?