May 25, 2017
games


On Company of Heroes

I often describe Company of Heroes as the RTS that has made it difficult for me to play any other RTS.

There are a lot of things that make Company of Heroes special to me. Here are some of them.

World state

Something memorable in Bungie’s Myth is in how bloodstains and scorchmarks are permanent:

The marks exist as a chronicle of sorts. Every moment stains the battlefield, ensuring you don’t forget a thing.

Company of Heroes takes that ideal and runs with it.

  • Buildings are chipped away until they’re ultimately destroyed, denying infantry a place to garrison:
  • Barricades can be smashed through, creating new paths for others:
  • Craters from artillery and explosions deform the ground, and become cover pieces for infantry:
  • Bridges can be destroyed (and repaired), opening and closing routes:

Your choices alter the battlefield, both intentionally and inadvertently. Sheltered bays are a flip-flop away from becoming deathtraps.

The terrain constantly shifts. Sometimes to your advantage, sometimes against you, but always in a way that makes the world alive, reactive, and consistent.

Resource model

Like Relic’s previous RTS outing, Company of Heroes focuses on territory control. This is done through their resource model.

Here’s how it works:

  • Each map is split into a series of territories:
  • Each territory bears one control point:
  • Control points are captured with infantry units:
  • And owning more territory results in faster resource accural:

Simple, right?

But! There’s a gag. The gag is: a territory only produces resources if it has a contiguous connection to your headquarters. Think of it as electrical lines — if the chain has a missing link, the flow gets truncated:

It’s an elegant system. It is rules-light and possibilities-heavy.

It opens the door to cutting off large swathes of an enemy’s supply line. Dramatic moments of everyone fighting over one tiny hill are consistently produced.

But most crucially, it builds the game on a foundation of one thing: pushing players out of their bases and onto the battlefield. Company of Heroes is aggressively anti-chuffa and cuts straight to the chase.

The game starts, and the very first thing you do is the thing you’ll be doing for the entire match: push, expand, and capture.

Combat

Positioning

Infantry units can take cover behind any chest-high object — sandbag wall, a farm tractor, a haystack, a crater, you name it.

Cover grants a substantial defensive bonus, putting any unit out in the open at a disadvantage.

Emplaced weapons provide enough firepower to lock down an area, but have a limited firing arc:

Tanks are heavily armored in the front but are unprotected in the rear:

A basic fundamental part of an RTS is moving units around. With Company of Heroes’ design decisions, every move order is compounded with a pile of circumstances to consider.

It becomes geometry and angles, guessing and second-guessing.

  • Where do you think the enemy most likely is, and how do you orient yourself in a position advantageous to that?
  • How do you best use that rickety barn to block enemy sightlines to your weapon emplacement?
  • You’re going to have some blind spots, so which blind spots are the most acceptable risks?

And because all of these factors are represented by physical in-world objects, everything is instantly readable and intuitive.

Flanking

Which leads directly to where Company of Heroes shines particularly bright. If positions and cover are directional, it opens the door to flanking.

When the enemy’s forces are arranged to expect you coming from one direction, it becomes a veritable wall. A wall that shoots bullets.

And what better way to deal with a wall than to simply go around it.

Circling around and attacking from the side or the rear is something that Company of Heroes’ design revolves around. And that design choice pays off in an incredibly satisfying way.

Not only does it just feel good to break an enemy’s iron defense with a small clever move, but it gives a sense of flow to the battlefield. Like the shifting terrain and like the resource model, units are always on the move and in a state of flux.

This is a game where a basic move order is consistently a brutal way to destroy a fortified defense.

Retreating

With the tap of a button, you can order units to retreat to headquarters:

During a retreat, you have no control of the unit. They automatically decide the fastest route back to headquarters, and run. A retreating unit sometimes gets killed, but they are overwhelmingly successful in making it home in one piece.

It’s a design decision that, had I worked on this game, I would’ve raised a stink about. It opens up a can of worms. How could this possibly be balanced. The amount of design implications and edge cases is staggering.

With that said: retreating is one of Company of Heroes’ best design choices. It’s one of the mechanics I most admire in the game. As a developer, it’s an incredible feeling to see a potentially problematic design choice be executed with such skill.

There’s a lot of things to like about it. The thing I most appreciate is how it bolsters the storytelling aspect.

When a character dies, that is the end of their story. They were born. Then they died. The end. As a net whole, I feel dead characters just remove potential story possibilities. (It’s one of the reasons I subscribe to Tom Francis’ Failure Spectrum ideal)

On the other hand, giving the player the ability to easily and frictionlessly keep characters alive — not forever, but at least longer? This results in a storytelling machine.

You end up with a grizzled rifleman squad who took out two bunkers and a halftrack. You end up with heroic last stands with that machinegun crew you’ve had since forever. You end up with strong character attachment.

When your battle-scarred weapons crew gets taken out — oof! — you feel it in your bones.

Et al

Company of Heroes proposes what a RTS can be. It breaks down what an RTS is, trims off cruft that has glommed onto the genre over the years, and rebuilds it in a way that is fresh, new, and unusual in an exhilarating way. When I first played it, it had that feeling of playing a game decades ahead of its time, and arguably, it still does.

It feels dynamic, it feels alive. It’s one of those games that has blood pumping through its veins.

All of its components — the terrain deformability/destruction, the resource model, and its combat model — touch and play with one another. I can’t overstate how systemic it all is, and how all of its system overlap. The same map will produce dramatically different outcomes, every single time.

This highly systemic approach is the reason why after every match, my officemates and I at my old job would convene and talk about all the wild things that happened during the battle. These post-game chats are some of my fondest memories of working at Pandemic, and also some of my fondest memories in playing games.

There are many ways to tell a story. Company of Heroes is one of the most impressive examples I know of.

 

 

May 15, 2017
development


On Benchmaking

My dad and I made a bench. Here’s the final result:

We started with a paper plan:

We cut a 2×4 to make the four legs:

The little slot in each leg was sliced out with a radial arm saw:

The legs and supports were joined with biscuits. We’re testing the fit here:

And here, a dry test to see if all pieces fit together:

The fit looked good. We applied wood glue, then attached clamps to keep everything in place as the glue dried. (The frame was slightly leaning to one side, so we also attached a clamp diagonally to push it the other way)

We joined the bottom support beam, again with biscuits and wood glue:

Here is the top of the bench. They’re a couple of 2×8 boards:

We glued the bench top together:

Then cut some biscuit slots into the bench top’s end pieces:

And glued the bench top’s end pieces on:

Finally, the bench top and the leg frame were connected together with a few lag screws:

And with that, it was done:

Et al

There’s a handful of steps I didn’t document, but this gives a rough overview of the bench’s construction.

As a kid, I grew up tinkering with scale models, kitbashing, woodworking, papercraft — anything that let me make a thing. My work is in video games — and I love it — but I can’t help sometimes missing that feeling of creating something physical you can hold in your hands.

Anyway, benches are great.

January 1, 2017
announcement


Blendo Games turns Seven

Blendo Games turns seven years old today.

Thank you all for the love and support ❤

blendobirthday

November 9, 2016
development


Protected: No Quarter 2016: SpaceChat

This content is password protected. To view it please enter your password below:

Work archeology, Part 3

This entry is a continuation of Work Archeology, Part 2

For a quick recap on what source control is, please read Work Archeology, Part 1

Quadrilateral Cowboy

Now that Quadrilateral Cowboy has shipped, I thought it would be interesting to take a look at its source control patterns, from start to finish.

Monthly

The graph tracks how many source control check-ins were made per month.

monthly

There are a lot of peaks and valleys. My best guess for the January peaks is because that’s the time I say “well, this is the year I’ll ship.”

The January 2014 peak is a perfect storm of Aaron Melcher doing Mac porting work at the same time as Tynan Wales and I were prototyping the multi-person heist systems.

Quadrilateral Cowboy’s release date was July 25, 2016.

Weekly

The graph tracks the total amount of source control check-ins per day.

daily

The weekdays are all consistent, with Wednesday in a marginal lead.

In the latter half of the development I became more adamant about not working on weekends. I’ll get into that later in this writeup.

Hourly

The graph tracks how many source control check-ins were made per hour.

hourly

5:00 pm is apparently the hot-bed of my source control activity. Afternoons are generally when I’m most productive, and I suppose 5:00 pm is the end-point of that period.

My best explanation for the midnight spike is I used to have a tendency to want to wrap up a given task before the end of the day. Nowadays I don’t often do that, as I see a lot of value in hitting the ground running on a partially-completed task in the morning.

2012 vs. 2016: Weekly

Let’s compare how the weekly check-ins changed between the first year of development vs. the final year of development.


(Drag the white slider bar left and right to compare)

There are some noticeable changes. In the final year, I set firmer rules for myself regarding weekend work. Also, at the office I share, we do a Friday show and tell event, hence the Friday spike to jam in something juicy to show everyone.

2012 vs. 2016: Hourly

A comparison of hourly check-ins between the first year and final year of development.


(Drag the white slider bar left and right to compare)

In the first year of development (2012) I was basically burning at full-speed all day long, from roughly 9am to 11pm on a daily basis. I guess you get things done, but you also completely wreck yourself and end up becoming a human mess. Now that I think about it, perhaps this explains the erratic pattern on the green monthly chart above.

As development progressed, I hit a point where I decided to change how I carried myself.

The final year of development (2016) shows a bit of that. I made noon lunch into a rigid drop-everything routine. I began trying harder to maintain reasonable work hours, from about 9am to 6pm.

Though, there’s still that midnight spike. For the life of me I can’t figure that out, as I sure don’t recall doing many all-nighters recently. Shrug!

ET AL

The great thing about these records is that they cost nothing to make (well — I took some time to write the visualizer program that crunches all this data, but whatever). It’s basically ‘free’ data about your own work habits and the history of your project.

In my case, contrasting where I am now to where I started is definitely a trip.

I hope this gives you some good ideas of ways to automate the tracking of your own habits and hours.

September 26, 2016
games


On Far Cry 2

Let’s talk about Far Cry 2.

This is a game that does not want to be your friend. This is a game that throws you into a foreign land where you don’t know anyone, hands you a gun that jams all the time, and infects you with malaria — all within its opening minutes. It is belligerent, uninviting, and unwelcoming.

Far Cry 2 is easily one of my favorite pieces of work.

fc2city

Admittedly, when I first began playing Far Cry 2, I had difficulty enjoying it.

About an hour later, it clicked for me. I stopped looking at it through the lens of my expectations, and instead looked at it for what it was aiming to be. This is not a game with a traditional power curve. This isn’t a game about feeling mighty.

There are many things I appreciate about Far Cry 2. Here are some of them.

fc2map

MAP

Far Cry 2 treats many of its components like simulations. Guns degrade the more they are used. Weather patterns cause stormy days and sunny days. Enemies carry their wounded mates to safety. Wildfires dynamically spread across dry brush and climb up wooden structures.

The in-game map likewise shares the same approach. The protagonist pulls out a paper map and GPS device. If you’re standing in the shade, the map will be dark and difficult to read. If you’re driving a car, good luck focusing on both the road and the map.

Unlike many other games, the in-game map is not a safe shelter. The game world does not pause. Bullets whizzing through the air prior to opening the map will continue to whiz straight into your body.

By treating the in-game map like a simulation, the storytelling door is opened wider. That time you were looking at the map and your jeep soared off a cliff. That time you absatively posolutely needed to withdraw and had to shuffle through your pile of maps while under fire.

In my book, Far Cry 2 is in good company as one of the most effective in-game maps.

fc2buddy

BUDDY SYSTEM

The surest way to grind momentum to a halt is to kill the player, reload the game, and have them replay a section over again. Stop, rewind, try again; wash, rinse, repeat.

Well now, let me tell you about Far Cry 2’s buddy system.

In an early section in the game, you make acquaintances with one of the mercenaries in the country. Like all the mercenaries in the Far Cry 2 universe, your new buddy is someone with a murky past that’s dubious at best.

Then at some point, because Far Cry 2 aggressively doesn’t care whether the protagonist lives or dies, the protagonist will probably die during some random gunfight. And when that happens, your character topples down. Your hands clutch the earth. Your face smashes into the dirt.

And it cuts to black.

black

But here’s the gag: the screen then fades back up, to you looking at the sky. Your mercenary buddy is at your side, firing wildly at your attackers while dragging you to safety. You’re patched up with pliers and bandages as your buddy defends you. To commemorate you returning to the land of the living, your buddy hands you a pistol.

And that’s not all: after you’ve been rescued and you’re repelling the last of the stragglers, there’s a chance your buddy may get wounded in the firefight. The relationship flips and now you’re the one saving someone’s bacon.

And — AND — that’s not all: once your buddy takes one too many hits, they shuffle off this mortal coil — permanently.

Your story goes on. A great little wrinkle is added, the world keeps spinning forward, and the momentum does not halt or hitch or hesitate for one single second. The game takes a failure state and sees it as an opportunity, flipping it upside down into a memorable moment.

I highly recommend reading Tom Francis’s excellent writeup about failure spectrums for a further dive into failsafes and storytelling.

farcry2night

WHAT, NOT HOW

Far Cry 2 tells you what a given mission’s objective is. Destroy the convoy passing by this road. Acquire this valued object. Rescue this character.

However, it doesn’t tell you how to do it. It does not hint at effective ways to do it. It does not place gameplay objects in such a fashion to nudge you toward a suggested play style. It does not rely on a row of dominoes for a canned let’s-burn-our-budget set piece.

It tells you what to do, but doesn’t tell you how. What, not how.

When control is relinquished, it frees up room for the player to join in, participate, and share the authorship. We’ve all been in that situation where one person just dominates an entire conversation. Far Cry 2 is a generous partner. A conversation is most engaging when both parties get to contribute.

By making a world that reacts to your actions, continues to run when when you’re not looking, and leans toward the simulation approach whenever it does anything, the game always has an interesting reply to whatever you say. By always keeping the player in control (Far Cry 2 is one of those rare games that lets you walk away while talking to someone, and it is glorious) the game has massive respect for player agency and the player’s time.

fc2car

ET AL

A few things before I go: