Development News

Meet Jane

April 27th, 2023

Hello Kevins! Has it been two weeks already?
Busy times in TromboSpace. This post will introduce the foundational systems that have been introduced to the game, and point out some targets for what's next. Let's get into it.

Pathfinding and Level Layout

First, this game is going to need pathfinding. This is not just for the AI who will need to run around the level and go about their business, no; more importantly, I need a way for the game to test valid paths for the player as it builds the level (and sets up its so-far-unannounced challenges). This will be a two-pronged approach using the A* alogorithm ("eh star") for navigation between rooms, and a more meticulous and situationally aware system for navigating within a room. Check out this video for a little look at the A* implementation which is now in place. You can also see in the gif here that the distant, red AI character is able to find a path to the player in very few search queries (the black nodes).

On another map-related note, and as you can see in the still image, the procedural room generator now supports non-square layouts! This will make for more interesting hallways and room variations down the road.

AI pathfinding quickly navigates between rooms

Prodedural room-building now supports L shapes and other non-square layouts

Art and Graphics

This game got way more exciting to work on once I started dumping art assets into it. Gone are the bright-coloured prototype blocks, now say hello to the lowpoly level space and our newest character currently known as Jane.

But to get an idea of what the game could actually look like, I needed to settle on one of Unity's "render pipelines" which sets the limits and possibilities of what the graphics can do. I am currently implementing the mid-tier "Universal Render Pipeline" (or URP) because the high-tier system is almost overkill: almost. There is one catch here, which is that the URP system does not handle lighting well for any new lights that are created after the game starts (which Project Kevin is, uh... every light). I'm hoping to solve that problem before the next blog so wish me luck!

For any Unity nerds out there, what you'll see in the video below is a global volume with a variety of effects in place, custom shaders, edits to the URP renderer asset, fiddling with properties of the current light prefab, a swap to linear colour space, and probably other things I'm forgetting. Drop a comment on the video if you have any specific questions.

Controls and Animation

Jane can move! And she has working appendages! I have currently set her up as a physics-based movement and animation controller, with a separate animation layer mixer and a rigging system on display in the video (but note that these are very much "in progress"). Basically the system is 4 state machines running independently of one another, coordinated by a) the single physics rigidbody and b) an overall input controller that pulls the proverbial levers that make everything run. 

Check out the video below for a demonstration of pretty much everything we talked about today.

The End of Kevin?

Project Kevin is now nearing the point where the fundamental components are in place and on display. That means I can't get much further without revealing what the "game" actually is here. And if I'm going to do that, I may as well spill all the beans on what's going on with this whole project and, finally, share the name of this thing. 

For now, drop a like on one of these videos if you want to reach out across the void and let me know you're following Kevin, and I'll be back in two weeks! Thanks for stopping by :)