Party Composition

Today’s goal was to balance the summons and basic monsters (rats and skeletons) to the point where a diverse party composition is more effective than only using one or two of the unit types.

This is not true in all situations: there are some layouts where three archers is definitely superior to any other combination–but there should be situations like this choke point where a variety of unit strengths wins the day.

For a refresher on what the units in Soulcaster do:

  • Shaedu (green archer) does the most damage, but needs a clear line of sight to the target.
  • Aeox (blue knight) does the least damage, but has very high HP and takes reduced damage. Melee only.
  • Bloodfire (red bomber) can lob bombs over walls. They are weaker than Shaedu’s arrows against single foes, but because of a large blast radius, he can hit multiple enemies with each shot and decimate monsters when they group closely.

party_composition_sc3

  • Ranged units alone can deal good damage, but as soon as the enemies close the distance, they can’t survive at close range.
  • A stack of three tanky units (knights) does a great job of keeping the choke point closed, Spartan army style, but simply can’t deal enough damage to survive the entire wave of enemies.
  • Two of the ranged units combined with a single tank work well, but just barely–the line is broken just as the final monsters are taken out.

 

We’re Off The Grid (mostly)

Pixel based movement is in.

When monsters form a full horde of 10 or more in one location, they sometimes overlap a bit, so that’ll need to be ironed out. Pathfinding needs to be updated to use 8-way movement, not just 4-way movement. Line of sight works really well. It definitely feels more like Gauntlet this way–once the systems are all working properly, I can test it out in the context of the whole game. Overall I’m excited about where it’s going.

Numbers are node weights. Shortest path to summoner is as easy as picking the lowest number in the squares adjacent to you.
Numbers are node weights. Shortest path to summoner is as easy as picking the lowest number in the squares adjacent to you.

The Grid, Continued

I couldn’t shake the idea. This morning, my first order of business was trying out pixel-based movement for the Summoner.

It actually seems to work really well. Even placing summons felt natural–I’m having them align to a grid, double the resolution of the tiles, to keep it tidy. It’s actually a lot like how Escape Goat handled a combination of tile grid and pixel accurate movement. Now Aeox can block a two-tile wide corridor… we’ll see how that changes things at the micro level.

Enabling pixel based movement for the monsters opened up a can of worms. Since they swarm so close to one another, I had to bring some of what I learned about collision resolution from Escape Goat, to keep them from merging and overlapping. It brought me back to the good old days of 2011, when, for months on end, every SVN checkin was noted as “collision hell”. I can probably keep this visit much shorter (though I said that to myself every day back then). Collisions are nowhere near as complex as Escape Goat, so basic AABB testing should do the trick.

I’m looking forward to seeing how this will look with dozens of monsters packed tightly together–should be reminiscent of Gauntlet.

The Grid

Man, just when I thought I had a handle on scope.

A friend of mine brought up something interesting this evening. We looked at some footage of Soulcaster, and he remarked that he thinks things would be improved if we took the characters off the grid. (The grid here means the tile-based movement, a la Final Fantasy VI, which all monsters and the player adhere to.)

In the last couple hours I’ve been mulling the idea over, and have a few pros and cons I’m weighing.