~/pixelsprout $ cat projects/rocco/README
rocco
A 3D game engine in Odin that runs games written in Roc. Source onGitHub.
~/pixelsprout $ rocco status --roadmap
stage 3/7one leaf per milestone
- [x]M1one source tree, three desktop targetsgrown
- [x] Linux link spike in Docker
- [x] Replace the MSL shader string with a sokol-shdc build step
- [x] Add the three platform files
- [x] Roc build script and Windows input script
- [x] Add ROCCO_EXIT_AFTER_FRAMES to the host
- [x] Run bodies on Linux in Docker
- [x] Build and run bodies on Windows by hand
- [x] Rewrite the roadmap and README for three targets
- [x] Fix GL clip-space depth with sokol-shdc fixup_clipspace
- [x] Pin sokol as a git submodule
- [x]M2the platform stops naming the gamegrown
- [x] Audit and extend the roc-odin-glue spec for the generic platform
- [x] Write the host side of Scene and link examples/entity-game
- [x] Link examples/cards end to end on the generic platform
- [x] Update the build script and checks; delete bodies and docs/examples
- [x] Write the camera package in packages/camera/
- [x] Add the allocation report and scripts/alloc-check.sh
- [x] Check both games on x64win by hand
- [x] Fix the nine glue review nits
- [x]M3mesh handles and the manifestgrown
- [x] Give the renderer a mesh table indexed by id
- [x] Build the manifest from the mesh table
- [x] Draw every Scene entry with its own mesh and transform
- [x] Add the Meshes package and port the three games to it
- [~]M4geometry from diskgrowing
- [ ] Pick a mesh format and load positions, normals, indices
- [ ] Load every file in assets/meshes/ into the level arena at startup
- [ ] Add each mesh file to the manifest under its file stem
- [ ] Add a generation to mesh ids before level meshes unload
- [ ]M5entities in Rocseed
- [ ] Move entities into the game's Model as List(Entity)
- [ ] Implement parenting as a parent : U64 field and a fold
- [ ]M6collision as dataseed
- [ ] Compute swept AABB contacts on the host
- [ ] Add List(Contact) as a third argument to step
- [ ] Let the game decide what a contact means
- [ ]M7one gameplay verbseed
- [ ] Add one verb as a stage in the step pipeline with a test
- [ ] Add a win state to the Model and a Scene that shows it
- [ ]sideBeside the milestones: opportunistic workseed
- [ ] Alpha: GitHub Actions CI matrix over the three targets
- [ ] Debug drawing: lines, wireframe, text
- [ ] Audio via saudio, returned as data
- [ ] Shader loading and reload
- [ ] The allocation pool behind roc_alloc and roc_dealloc
- [ ] Debug and speed parity for allocator counters
- [ ] Alpha: publish the platform with roc bundle
- [ ] Command list: pure requests for host-side lifetime
- [ ] Simplify the macOS sysroot script to keep the SDK layout
- [x]sideShared code for gamesgrown
- [x] Spike: expose the vocabulary types from the platform to games
- [x] Research: give games named sokol key codes
- [x] Grill: where the vocabulary types and key codes live
- [x] Add pf.Vocabulary and port the three games to it
- [x] Generate pf.Key from sokol and port the three games to it
~/pixelsprout $ git log devlog --oneline -- rocco
nothing published yet