On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

Team switcher

A ton of features have gone in recently to bring the game closer to a multiplayer demo. Previously, players chose teams before starting a match, but that didn't work for networked multiplayer. Also, there was no way to switch teams in the middle of a match. Until now!



Plus if you're a server admin, you can move other players to different teams as well.

Sniper ricochets

This is a little subtle and hard to see, but sniper bullets now work the same way as player movement: if the target survives the impact, the bullet ricochets. Sorry, I didn't have time to compile a trick-shot montage set to Breaking Benjamin.



IPv6

The master server and game server now listen on IPv6 as well as IPv4. If a client connects to the master server over IPv6, the master will return IPv6 addresses for all game servers. I suspect this may be a brittle solution that somehow breaks at some point, but it's good to have the plumbing done and know the code is future-proof. In related news, here's a great article I just read about what IPv6 could have been.

Minion pathing

Minions use a simple heuristic to determine which target to attack: whichever is closest. Now take a look at this map:



It has two floors stacked on top of each other. There's a turret on the upper floor. A minion who spawns on the floor directly beneath the turret will assume that the turret is the closest target, and kick off a pathfinding request to make its way there.

Unfortunately, the path to the turret turns out to be a roundabout excursion up a series of ramps, and will likely take the minion past other, closer targets. This is a problem. There's no way of knowing which target is actually closest without calculating a pathfinding solution for each and every one, which would be prohibitively expensive.

Instead, I decided to mark up the map with some extra pathfinding information. I added some special Blender objects which allow me to say "if you're inside area X, and you want to reach target Y, then you'll have to pass through point Z to get there". This metadata does not impact the actual pathfinding, it only improves the accuracy of the heuristic for choosing targets.

While I was messing around with minions, I also implemented a basic obstacle avoidance algorithm to keep them from running into each other and clumping together. The algorithm is this: if a minion is in front of you, turn to the right.

Another improvement I made is that if a minion attacks a player and then loses sight of them, they will advance to the last known position of the player and search for them before moving on to a new target.

In-game UI notifications

One piece of feedback I've received recently is that players have a hard time keeping track of the game state. How many batteries do I have? How many turrets do I have? Did the enemy just capture something of mine?

So now I'm highlighting batteries and turrets outside the player's range with colored icons. There are also icons for "under attack" and "lost", so you can easily see which things require your attention. If you happen to be looking away from the object that's under attack at the time, there's also a text notification.



Resolution switcher

I finally added settings for screen resolution, fullscreen/windowed, and v-sync. The settings menu is finally done.



Multiplayer demo

All of this is coming together to culminate in a multiplayer demo hopefully by the end of September. Prepare your bodies