This week I encountered my first major issue in Godot: navigation. By default, Godot’s 2D navigation works very well. Set up multiple polygons that define where objects can travel in, tell the object where to go, and most of the time it will figure out the best path on its own and work from there. However, the issues I was experiencing stemmed from me trying to do something that Godot really isn’t meant for: layering in a 2D game. If you have two NavigationRegions touching each other and they are not joined, the entire navigation fails. So if you have two traversable areas stacked on top of each other, there cannot be a NavigationRegion in the same area “above” or “below” it as Godot has no concept of a Z-axis in its 2D engine. Luckily there is a workaround I’ve found using NavigationLinks, which allow you to create links between individual NavigationRegions that objects can traverse. They’re a bit limited in what they can do compared to a NavigationRegion, but they can intersect each other and not cause issues. So what I’ve been doing is adding several small NavigationRegions at key points in the world and connecting them with NavigationLinks, minimizing any chance of overlap between floors.
On a better note, half of the main gameplay loop is now just about done. It’s rough and unpolished, but there is now a basic set of goals the player is tasked with completing, as well as checks for when they’re done.
Quick rundown:
- Reworked navigation to compensate for multiple overlapping, traversable areas
- UI changes and fixes
- Basic gameplay loop completed
- Added framework for giving NPCs a daily schedule and tasks involving traveling to different points
Game of the Week
Another arena shooter I’ve had a lot of fun with since I found it several years ago is Unreal Tournament 2004. It’s old, janky, and barely anyone plays it anymore, but if you can get a decent amount of people into a match it’s some of the most fun I’ve had online in a very long time. Whether it’s getting multikills with the shock combo, deleting half the team with the Redeemer, turning someone into a big red stain on the road, or grinding for hours on Facing Worlds instagib, it’s a shame that there hasn’t been a new entry in a very long time.