The P.U.R.G.E. Protocol

I recently participated at Ludum Dare 39, where you’re tasked with making a game, from scratch, in 48 hours.

The result was The P.UR.G.E. Protocol

In the game, you wake up in a room, resembling one of a spaceship. In there, a holographic computer is turned on, awaiting for your commands to start.. something. The current status for the ship is displayed next, showing that the ship may be badly damaged and hinting at a very complicated situation. And it is then when the computer starts asking you some questions.

But what is really going on?

Personally, it was an amazing experience. This was the first time I actually completed a game for a LD (I tried and failed a couple of times before) and it was a lot of fun. I’ll be doing a full post-mortem shortly.

You can find The P.U.R.G.E. Protocol either at the LDJam website or at The source code (yes, it’s open source) it’s available at Github.


Right Foot, Left Foot (II)

I’ve been improving the navigation controller to support holes and bridges in the level geometry. Check this out:

This slideshow requires JavaScript.

The underlying navmesh for the above scene is like this:

Screen Shot 2017-07-19 at 11.33.08 AM


Once again, the navmesh borders take into consideration the width of the character model so it doesn’t stand in the air.

I’ll be upgrading the navigation controller soon with pathfinding and other improvements. See you next time!



Right foot, left foot (I)

It’s been a while since I’ve introduced a NEW feature in Crimild. I mean, this is not a refactor or an improvement over something already there, but a completely new thing. Exciting, right?

So, without further ado…


Navigation meshes are the other big feature to be included in Crimild’s next release (soon). Simply put, a NavMesh is a data structure used for navigation (duh) and pathfinding on complex spaces. It defines a set of polygons (i.e. triangles), describing areas that are traversable by agents in a simulation, simplifying things like collision detection with walls and other static objets. Basically, it defines what “the floor” means for our game.

The current implementation is pretty basic, but I implemented a tool for loading nav meshes from geometry described in OBJ files. That way, you can create a whole level and its nav mesh in a 3D editor like Blender (and I don’t have to write a level editor at this stage). Once loaded, triangles are linked together automatically based on edge sharing. It’s simple, but it’s more than enough for my secret project ;).

There’s a demo already available in the examples projects with a simple scene and a walking character. Check it out:

This slideshow requires JavaScript.

The next step is to add support for “bridges” in the geometry (as in characters walking below other parts of the level) and pathfinding tools (like A* or other techniques).

See you next time!