Caravan Experiment Newsletter #11

Hey everybody!

11 weeks down and 5 more to go. I’m feeling… cautiously optimistic. I tested the game on somebody else’s computer for the first time this week and it works!

Thanks for reading, and please continue to reply with comments and suggestions or just give me a call. I’d love to hear from all of you.

Follow-up: Design a Creature Round II

Well I got some great suggestions. My favorite was “beetle that grows fruit on its back”. But unfortunately I didn’t deliver. I decided to squeak in one last feature after some feedback from my friend Chris during our does-it-work-on-your-machine testing.

Call to Action: Join the Playtesting Discord Server

Pimping this Discord Server again: https://discord.gg/CRPscxH.

The first version of the demo will be available there starting next Wednesday.

Design Notes: Continuous Tactics

I have not previously discussed the combat system in Caravan, but if you have studied the gifs you may have noticed that it is turn-based and involves a number of units moving around on a 2-dimensional field to attack each other and stuff.

Generally speaking, turn-based + unit positioning = “tactics”. If you don’t know what I mean when I say tactics, here are two titans from the tactics genre as potential touchstones: X-COM and Final Fantasy Tactics. Both of these games task the player with moving teams of units around on a 2-dimensional grid. At some point many years ago, for a reason I will laboriously arrive at by the end of this post, I decided that I could make a tactics combat system without a grid. Caravan has inherited that combat system idea for better or worse.

For my money there is one major design problem with leaving the grid behind: I call this problem noodling.

Noodling exists in many tactics games of the past and present to greater and lesser extents; it is an issue for games on a grid, but its problematic nature is magnified greatly when the grid is removed.

To understand noodling you need to understand how the player controls the movement of units. The fundamental law of tactics movement is that any given unit on any given turn can only move to a target location if there exists an unobstructed path from their starting location to the target location and that the total length of that path is less than or equal to some value (we’ll call that value their “speed”).

grid.png

In this example, our unit is the red dot. He has a speed of 5 tiles. The yellow blocks are obstacles that he cannot pass through; the green spaces, then, are all the viable spaces our unit can move to on this turn. The computer helpfully calculates this movement range for us and displays it just like in the picture above. To move our unit we just have to click on one of the green tiles and he will follow a path to the chosen tile.

Now we’ll introduce some conflict:

fight.png

We want to kill this blue dot. On our turn, after we move, we are now allowed to punch and kill any unit that is standing in an adjacent tile. Of course, Blue has the same thing in mind. To our advantage, Blue is slower. He can only move 4 spaces compared to our 5. Since we can’t reach Blue in one turn, we have to spend a move closing the distance. But where should we move?

fight.png

Assuming Blue will not turn tail and run, the superior tactic is to move to the tile just in front of our unit that I’ve indicated with both an arrow AND a yellow star for some reason. That way, no matter where Blue moves to on his next turn, he cannot hurt us and we are guaranteed to kill him on our following turn!

If that decision was trivial, I’ll make it harder:

fight.png

A few more enemies, with different move speeds (denoted by the blue numbers), placed at diagonal angles to your unit; suddenly it’s a real head scratcher. There’s a simple solution to this though: let the computer do the work and tell you which tiles are safe:

fight.png

But of course we need to make things more complicated. Imagine our red dot now has a gun. The gun fires a bullet that can be thought of as a baby unit: It follows the same movement rules as a unit, except that it originates from our unit’s position (and maybe has a different speed). When the bullet lands on Blue… bang!

So this is where noodling finally comes in. Your turn now requires considering two ranged actions in sequence:

  1. move your unit

  2. shoot your bullet

Ideally, we want to position our unit so that one of the very outer tiles of our bullet’s range contains the enemy unit (so we can stay as far away from harm as possible). But in order to test where the extents of the bullet’s range are we have to move our unit first.

Imagine choosing a movement location for our unit and only then seeing the visualization of our gun’s range. Imagine how easy it would be to choose a placement that is off by one or two tiles. Then you have to undo your placement. Now our unit is back where it started! What was that tile I just picked? 4 up and 3 right? So… I should do 4 up and 4 right…?

This is noodling. It’s an iterative series of range-finding click actions that a player has to do in order to dial in their unit’s position + target. It’s a pain in the ass in grid-space and it is hellish in continuous space.

What a movement range might look like in continuous space

What a movement range might look like in continuous space

Continuous space is not really continuous of course; its just a huge grid whose resolution is the same as your monitor: every tile is one pixel large. Imagine noodling with that granularity. If mis-placing by one or two tiles in grid-space is annoying, imagine being off by 1 or 2 pixels.

So what is my great insight that made me think I could do a continuous-space tactics game? My solution to noodling: shoot first, then move.

Instead of thinking of the gun’s bullet as a child of our unit, think of it as a child of the enemy’s caved-in head. The bullet shoots backwards from the enemy’s head into the barrel of our gun. The maximum range of the gun including any unit movement is simple to calculate: add our unit’s range + the gun’s range. Because we know all the places a bullet can go, we can just select our target first, then decide where we want to stand. The valid places to move are a Venn diagram of the gun’s range centered at the target and our unit’s move range centered on our initial position.

gundrik.png

Caravan is the only game that I know of to do this inverted tactics sequence of attack -> position. That is really cool and really scary! Cool because I may have actually innovated; scary because I cannot believe I’m the first person to think of this. Perhaps there be dragons down this path… We’ll see! In any case: phew. This was a long post. Thanks for reading and here’s a gif:

Animation 31.gif
Previous
Previous

Caravan Experiment Newsletter #12

Next
Next

Caravan Experiment Newsletter #10