Weekly post
July 13, 2024 • 2 min
- Level trigger and ascii art substitution fixes. Condition evaluator "or" and "and" evaluation fixed. (These are long-standing bugs).
- Level loading continued: Finally, identifiers can be lazily loaded with a new "shared object" type added to the level loader for the Lua tables in levels. These can be initialized once a trigger fires using "resultOfTrigger" Lua function, in which case a value specific to the trigger's perform action part ("what to do" when the trigger fires) will be bound to that shared object which is a shared_ptr to an optional variant that currently only has "int" identifier as an option. It was easy to implement thanks to C++'s cast operator overloads: I only had to make an operator int() for that shared object type and just use that for all cases and then fix special cases so it would delay evaluation in order to support lazy identifiers.
- Working on the town level. The hotel specifically. Conversation options added, so you can click a button for a response to a shape convo.
- Anticipating playtest July 20 so am working especially hard now.
- Typewriter effect for all entity messages, along with special effects that can be applied using a Regex to each word or anything that can match with a Regex (such as an embiggen animation and then a shrink)
- Enemy AI targeting improved
- Polygon lighting was too expensive so it was disabled. A future alternative using shadow casting or substracting from a polygon on GPU or using sprite masks will have to be explored in the future.
- Ambient occlusion shadows implemented using just nanovg.
- What's going well: town level
- What needs work: Pathfinding aabb overlap tolerance so shapes can not be blocked by pixel-wide wall overlap on each grid cell for pathfinding. (get_iou usage needs work or something else should be used.). Town level needs work still.
- Vision for the future: I hope I get stuff done for the playtest in time! It's been hectic/a bit stressful but it's very good for the project and I anticipate the playtest being even better for the project. (it will be with 3 people as close as possible to July 20, likely all on different days: ethan, Sam, Andrew.) I will not be changing the game that they play after July 20/after any playtests (that is, they will all play the same version of the game). This is for consistency.