Monday, February 17, 2014

Post-its versus Voronoi cells

In the builds of Chalo Chalo that exist so far, the race maps look something like this.

The landscape is punctuated by differently coloured squares that function as contrasting terrain types. Populating the map with squares (well, flattened cubes really) has been a great way to get something interesting up and running quickly; They're easy to create at run time, and this approach allows us to use Richard's cunning routines to nudge their randomly chosen position to make for more interesting races.

What bothers me about the squares isn't their simple geometry, I like that, it's the way they overlap. The terrain patches resemble post-it notes stuck over one another. This suggestion of layers isn't a good fit with the idea of a unified racing plane we've had in mind.

Not knowing whether it will all work out yet or not, here's the plan for how I want to change things. We'll generate and position squares as before. But then we'll do a couple of extra things. We'll generate a Voronoi diagram over the top of the squares. For each cell in the diagram we'll do a raycast downwards from its center and see what squares we hit. The cell will take on the terrain type found most often in the squares directly beneath it. So in a sense the Voronoi diagram will quantize the terrain data from the underlying squares, but it will be mapping it to irregular polygons.

I'm keen on this approach because it will let us keep using stark geometry, while introducing a more organic element, and the tesselation will visually flatten the playing field--consistent with the idea of a single racing plane.

This is a mock-up showing the cell structure

You can find me on twitter here. And Richard here.

Thursday, February 6, 2014

Naive-ish physics

No Wheelcolliders here. Unlike in the early builds I am using Unity's built-in physics here. As before the terrain types are detected with raycasts. The player is locked to a single plane using position and rotation constraints. The damping of the player's rigidbody, and an input force modifier, are adjusted in response to the terrain type. Here the dot is struggling on ice.