Bolero Planning (Old)
Parent: Bolero Planning
2019
September
✅ [Planning] Get this roadmap started :)
✅ [GFX/Windowing] The engine has rudimentary support for multiple per-scene viewports with their own scrolling rules, but I don't think I can fully flesh that out right now and also get a game finished. So turn that stuff off.
✅ [Scenes/Actors] Finish generic actor-to-tilemap collision and platform movement handling
- 'Finish' probably isn't the right word, but there is now a generic platformerTick() that multiple actors can now use.
✅ [Scenes/Actors] Fix issues with sloped terrain
- This required rewriting the collision and platformer movement systems, and implementing a navigation layer / cache.
✅ [Scenes/Actors] Get the spinnyboys rolling up and down the hills
- Still a bit buggy but the overall effect is in place.
✅ [Scenes/Actors] Build up method calls for actors to simplify programming them.
- Started doing this, and also added methods to scenes as well.
⌛ [Scenes/Actors] Make a camera / scrolling / scene transition manager.
- ✅ Target-to-follow
- ✅ Scroll boundaries
- ✅ Fade-in / Fade-out transitions
- The functionality is in, but it really needs to be refactored.
- 1/Oct/2019: Didn't get this done in September, will have to roll it over to October.
✅ [Scenes/Actors] Revisit actor creation and removal functions, with respect to how they affect Lua garbage collection, and how the order of actors in the array can cause subtle bugs.
- ✅ Stat order: Run actors according to a separate sorted array.
- Done! There is now an actor_order list which is used as a stat order. Now when an actor is initialized in a recycled table in the middle of the pool, it's still added to the end of the stat list for processing and drawing.
- ❌ Garbage accumulation: I'm thinking I probably shouldn't worry about this right now. I'll come back to it if I suspect it's causing performance problems.
✅ [GFX/Window] Fix sprite-to-actor alignment issues when sprites are flipped horizontally or vertically
✅ [Scenes/Actors] Fix issue where scene can be rendered for one tick before it has been properly initialized. When this happens, the top-left of the map is displayed with no actors.
- Mitigated by forcing scene creation to run one tick before returning.
✅ [Scenes/Actors] I need some way to cache or memoize handles to other actors.
- Added a way to refresh handles on a per-tick basis by verifying the target actor's serial number. It won't scale well if hundreds of actors search for an actor that isn't present in the list, but should be OK for now.
✅ [Scenes/Actors] Need a system to automate actor-to-actor collision checking.
- 29/Sept/2019 Actors can now opt into a per-tick overlap check. The scene tick function informs each opted-in actor of which other opted-in actors were overlapping it at start-of-tick. It's lacking spatial partitioning, so it won't scale well, and it has no context for how the collisions should be resolved.
⌛ [Scenes/Actors] Early versions of the engine had a simple message stack system for sending messages between actors. Re-enable and finish this, and add support for sending messages across scene boundaries.
- 1/Oct/2019: Didn't get this done in Sept, rolling over to October. The stuff I had written previously was not up to par. Working on rewriting now.
[Widgets] Full options menu tree. Need to improve the widget system in order to do this. Selection boxes, "OK/apply/cancel" buttons, scroll boxes, etc.
- 1/Oct/2019: Also did not complete though I didn't really think I'd make headway on it in September. Rolling over to Oct.
[GFX/Window] Functional fullscreen (canvas needs centering IIRC)
- 1/Oct/2019: Also not complete, moving to October.