Break Even

 

Break Even

As a term, break even can be misleading. It can be misleading because it does not take into consideration risk. If you start a (small) game studio with $100,000 and after one year you have $100,000 you are said to have broken even. But that’s a snapshot at that particular point in time. If you reinvest that $100,000 and after yet another year you still have $100,000 you should probably be a little worried that you profited zero dollars for two years in a row.

If next year you take a 30% loss (war chest down to $70,000)  that’s an enormous hit. You can’t sustain another full year of operations and it may snowball from there. You’d really like to go to a 30% profit, but that’s as obvious as it comes. If you ever wondered why business people seem so obsessed with growth this is why; there’s a lot of truth to the idea that you’re either growing or dying.

 

Full Time, Fun Time

Last year I calculated the cost of hiring (local) full time employees as an employer based in Connecticut, USA.

For a $60k USD salary the total cost to me would have been around $75k. That’s pretty close to a bare minimum including FICA, unemployment, Medicare, worker’s comp, 401(k) contributions, insurance, et cetera. That does include some benefits that are not government mandated such as dental.

For a $30k salary the total cost would be about $45k.

Those are 1.25 and 1.5 cost to salary ratios, respectively – not all employer costs are percentages of salaries!

The costs are going to vary a lot by location, and what kind of hardware and software and miscellaneous other fees are required to keep the company running. For example if I require Unity Pro that’s an additional $1,500 a year per employee.

Let’s say they do. Let’s say I also hire two full time $30k salary employees for a project, and I pay myself $30k a year as well. So that’s 3 * $45k + $4.5k = $139.5k of costs a year. Let’s round that to $140k for simplification.

Let’s further say the team works really well and we churn out a pretty okay game in one year. Well what does the company need to gross in order to “break even”?

 

Avocado Maths

Sometimes you just need to get down to the nitty gritty details, even if one party dislikes math.

Avocado Maths
Avocado Maths

Industry standard platform cut is 30% of gross revenue. Tax rate is variable/progressive (in the US) but let’s call it 20% of net revenue.

Aside: At least in the US, unless you are making a ton of money it should not be this (20%) high. You should definitely be able to reduce your taxable income. I just spitballed it as a high ceiling to make the math easier to digest and it’s better to be conservative at this level anyway.

So let’s say you net 56% of gross. That comes out to $140k/0.56 =  $250k to break even. There were three people working on this game, and assuming we value all of them equally each person needs to generate 185% of their cost just to break even.

But no one invests X dollars to only get X back. You expect some profit, Y. If we expect an annual 30% profit how does that affect our gross requirement? Each employee costs $45k and we expect a 0.3 * $45k = $13.5k profit. With three employees each costing $45k that comes out to 3 * $13.5k = $40.5k.

That comes out to $40.5k/0.56 = $72.3k gross revenue on top of the break even, or $322.3k total gross revenue for a 30% profit. Because of all the rounding this actually comes out to ~29% profit. Whoops!

But if you pull that off in this simplified example you’d start the year off with $140k and ended up with $180.5k. That’s not too bad!

 

Per Employee

From the employee’s point of view, they’re getting paid $30k a year. This is not a great salary, all things considered. From that they need to generate $83.3k worth of gross revenue for the company to just theoretically justify their cost. That goes up to $107.4k to hit 29% profit.

Aside: Companies (should not) hire employees to merely “break even” because again there is an associated risk involved that is not imputed into that term, and also because why would anyone want to spend X > 0 dollars to earn zero return?

This is pretty normal, and it’s also one of the reasons productive employees start thinking about saving capital to strike out on their own. I mean if you could theoretically generate $107.4k gross profits by yourself even with the 56% net that’s about $60k. Even taking into account your full compensation/cost to employer that’s a $15k raise*.

Aside: *You know, aside from the fact that you probably worked your ass off to get that raise. There are very few (maybe no) jobs that migrate exactly from 9-5 worker to 9-5 entrepreneur with a pay increase and no associated work/time/effort increase. The only way I can think of this happening is if your employer was really screwing you over on compensation; That’d be about a 33% compensation shortfall in the above scenario, less in terms of a salary shortfall with similar math.

That said there are other variables: you lose any leverage you had working in a company with company resources, you lose cost efficiencies on things like insurance and supplies. You’re working for yourself, which is quite different from a Monday-Friday, 9-5 gig. You need your own capital. You own all the company decisions. But you keep your intellectual property, and if you do strike oil you can reap all (or most or more of) the profits.

 

Steam Marines

The total cost of Steam Marines 1 was $97,913.88 USD which covered a development period of about 2.5 years from 2012-2014. It hit break even in 2014 and has been generating profits since.

Aside: Back in November 2013 I wrote that I projected that Steam Marines 1 would cost around $160k USD to develop. Off by about 40%. Estimates, amirite?

Steam Marines 1 Release Date Estimate
Steam Marines 1 Release Date Estimate

The to-date contractor cost of Steam Marines 2 is $82,607.54 USD which has been in development for about 24 months from 2014-2016. That comes out to about $3.4k per month on contractors alone. Alpha release should be Q4 2016 but so far it has generated no revenue through sales of the game as it is not yet available. It also has approximately another 24 more months slated until full release. The costs are unlikely to be linearly correlated with the last 24 months (see Steam Marines 1 mid-project estimate!) but the game will inevitably cost more than its predecessor at this point.

 

What If

What if, instead of hiring contractors, I hired full time employees instead? As a rough guideline let’s take that 1.25 cost to salary ratio we calculated earlier in this post. Let’s further assume that, had I gone that route, Steam Marines 2 would take only 2 years to complete instead of the 4 it’s currently slated for.

I said Steam Marines 2 costs would unlikely be linearly correlated, but let’s assume they are. That would mean that my contractor costs would be $165,215.08 at the end of 4 years. I have four part time contractors, but two of them have a lot larger asset load than the other two, so let’s round that to what would be approximately 3 full time employees. Well, that $82,607.54 spread across 3 employees over 2 years (as opposed to a projected 4 years) comes out to about $27.5k annual salary per employee.

Which is kind of bogus, because it’s already below the pretty low $30k in our previous examples, and that’s just salary, not including other compensation! If they were paid the still-not-great-salary of $30k and cost the company $45k, that comes out to 3 * 2 * $45k = $270k.

$270k is a lot more than $165k (64% more!), even accounting for shaving two years off the project development period. If I discount my own work at their rate of $45k a year I could cut off $90k from the total project cost. Although I also have to add my own work rate onto the project cost for the first two years. Steam Marines 2 now costs $360k after two years in employee compensation.

Additionally employers are generally expected to pay for many costs such as office space, hardware/software, and other overhead for full time employees. Contractors generally work off their own relevant resources, e.g. their own computers, out of their apartments, et cetera.

This is all also assuming that:

  • Full time employees would finish 50% faster, which seems extremely optimistic.
  • The project would hit its 2 or 4 year full release date without significant delays.
  • The linear extrapolation of cost is accurate.
  • Those three contractors accept that really-quite-bad $30k/year salary for the project duration of 2 consecutive years.
  • I can actually round 4 part time contractors to 3 full time employees*.

Aside: *Extremely unlikely. My four contractors are 1) character animator, 2) environment artist, 3) portrait illustrator, and 4) audio. I wear all other hats.

These are four fairly different roles, and while I believe 1 & 2 could perform some similar duties to one another, they’re also the two I mentioned with the higher asset loads. No, in real life if I’d run with 1-2 full time artists and contract out miscellaneous art and the audio.

People are not cogs.

So that’s why I paid contractors instead of hiring full time employees for Steam Marines 2.

 

 

Thanks for reading,
Mister Bums

You can contact me at yjseow@worthlessbums.comTwitter, or leave a comment below!

Sequels and the Past

I Think This Should Work

Recently fellow roguelike developer Josh Ge mentioned that I had been somewhat quiet when talking about Steam Marines 2 – and he had a point, at least on Twitter. I’ve more or less been getting into the swing of doing on-site testing so I can observe people playing super early builds of the game. I think it’s been enlightening.

But the observation’s not exactly correct, either – I’ve just switched up my strategy for keeping Steam Marines 2 alive and kicking at the back of skulls through a system of scheduled media across several sites and forums; I’ve just offloaded a lot of my groundswell marketing efforts off of Twitter.

Aside: Have you not heard of Josh’s game, Cogmind? You should totally check it out.

Cogmind gif
Cogmind!

Todo Lists and You

I used to keep rather detailed todo lists with high and low priority and “maybe” sublists and subtasks with estimates of time to completion in minutes. I don’t do that anymore.

Now my todo lists are split into simply high and low, I keep my high priority list capped at eight items max, and I estimate task completion in days. Additionally any high priority task that does not get completed within the time estimate gets kicked down to low priority.

I changed from high/low/maybe because maybe was just becoming a dumping ground for low priority tasks I wanted to clear out because of time crunch. I switched to estimating task completion in days because frankly estimating in minutes was pointlessly granular and I’m starting to believe that “large” task milestones per day is a better metric overall than time spent per day (in the sense of it is a more accurate indicator of progress.) Capping high priority tasks to eight is largely a method of preventing too many issues of becoming “high”.

When All Tasks Are High Priority

There are differing opinions on time tracking, although maybe not all that different!, although I maintain that keeping a mental model of what I want to do and what I should be angling toward is a net benefit to me. Your mileage may vary.

 

At Some Point You Have To Start Listening To Yourself

This is tricky because I spent the last two years writing part 1 and part 2 of this blog series explaining how I was a ding dong. It can be a bit unintuitive, but you sort of need to be humble enough to admit you don’t know a lot but also arrogant enough to trust yourself to make decisions because you will inevitably be faced with making judgement calls that are unclear and on topics people with more experience than you have disagree on.

And ultimately what matters is that it works for you, not them. In your situation, not theirs.

In all other cases, hypothesize, test, draw conclusions, and repeat. If it has demonstrably good results keep doing it.

Steam Marines 2 is a sequel. There don’t seem to be that many indie game studios that do sequels. It probably has to do with high failure rate.

But I want to make Steam Marines a franchise: a video game series, a board game, a trading card game, sell merchandise, and so on and so forth.

People have told me it’s a great idea, others tell me it’s a losing proposition. The divide seems to be between developers who believe in failing fast and those who don’t. Franchise building is hard and it takes a lot of time. Risky, say the fail fast crowd. They’re probably not wrong.

Still it’s a goal, and one I think I can achieve.

Aside: I rolled the idea of funding a games analysis/news site around in my head, but ultimately I couldn’t figure out a reliable business model. It really does seem to be a brutally difficult field to succeed in long term.

Motivation

Know what’s cool? Having hardcore fans of your game who still play it years post-release. That’s wild to me. Even wilder? Steam Marines 1 is still kind of in a long tail, selling copies regularly that keeps me fed. Its revenue in 2015 more or less paid for Steam Marines 2 development costs in the same time period.

Also gifs. Lots of gifs.

Steam Marines 1&2 Comparison
Steam Marines 1&2 Comparison

Bonus: This gif informed me that my marine hit animations were broken in the current build. Whoops.

Side projects keep things fresh, even when you’re 2 years into a 4 year project – when you’re in the grinder. I’ve been tinkering with old financial tools (non-game development related), watching some cool stuff on Netflix, and cannibalizing old games to make new ones like this:

Tilting Hard
Tilting Hard – Damn that hitch in the middle!

Twitter is pretty good for this, too. It’s real nice watching devs you know release their games. This blog is also a pretty okay place to rant if need be. I still haunt /r/GameDev now and then, although as the subscriber base grows the place does seem to get more hostile toward even the ideas of running a business and marketing. I also re-read certain articles and re-watch certain videos that are both enjoyable and educational. For example:

I also torment myself by reading news about the US election and Brexit, but that may be too masochistic for many.

538 Nowcast 2016
Fuck  Trump

 

Alpha Release

Steam Marines 2 is nearing its initial alpha release. Itch seems more or less ideal for me because I wanted to 1) narrow my pool of prospective players, and 2) iterate without the almost inevitable backlash that Steam Early Access is coupled with. I also wanted to test some theories I had on pricing, and that’s easier to do with fewer players.

I hope reception is good. I’ve worked on the game for a little over two years now, and that’s a lot of time and effort to spend on anything.

I’ve been trying to get better about working reasonable hours. That is, anywhere from 40-60 hours a week. Which is still a bit obscene, especially taking into consideration that in the US private sector the average hours worked per week is about 34.4. So I’m working on that. But I still don’t know any successful entrepreneurs who worked 40 hours or less a week during the first few years of their business launching. Worthless Bums LLC was formed in October 2011, so I guess maybe I’m a little behind the curve.

I track my hours worked, and I graphed it back in August this year:

Way Too Many Hours
Way Too Many Hours

Part of the problem is I don’t want to grow fast or leverage up. I have the funds, and I can raise more, but I’m having some personal issues with giving up control – namely of code and design. I don’t even like design but I find it hard to give up control.

Another is that I’m a workaholic. I’m always doing something. I can barely sit still for half an hour of television.

Despite (because of?) my ridiculous hours of work, my return on investment, per hour, is good. Unfortunately not as good as my passive investments over the same time period, but my investment portfolio outperforms the S&P 500 by a fairly wide margin; I’m not at all unhappy with my game development business as a business.

Versus S&P500
Versus S&P 500

I’m in a good place financially – I have no grounds for complaint. I can fund Steam Marines 2 development through 2018 without selling another copy of any game so that’s nice.

 

Acts of RNG

I did get tripped up a bit with contractors in 2016.

My character animator decided to take some time off to focus on his own game. This is cool, although the timing was not the best for me – you sort of have to expect this in multi-year projects, even if your contractors are not working on your stuff full time and/or at top priority.

Elasticity
My character artist, Ed’s, Game… Thing

My environment artist got chased out of his home by Hurricane Matthew. Oh dear.

I was a bonehead and because of a communication mixup I wasted a month thinking I was waiting on audio from my audio guy but he was actually waiting on me. The lesson here is don’t go too long without touching base. Depending on how dependable you and the other person is, I recommend touching base at least once every 2 weeks. That said I have a fairly hands off approach to my contractors.

Still, I’m going into 2017 fairly optimistic. Unless the Steam Marines 2 alpha explodes in my face. We’ll see.

 

Thanks for reading,
Mister Bums

You can contact me at yjseow@worthlessbums.comTwitter, or leave a comment below.

Visual Clutter

 

Out with the Old…

Steam Marines 1 had some issues with visual clutter. Lots of tiles, lots of colors, sprites overlapping sprites – it was a bit of a mess, in retrospect.

Steam Marines 1 - lots of sprites on other sprites.
Steam Marines 1 – lots of sprites on other sprites.

 

More than one player complained about the doors. Visually speaking to a lot of players it looked as if the marines were actually one tile higher than they actually were from the doorway. The red-cloaked marine in the upper left of the screen? He can step onto the tile directly left of him – that’s an open doorway tile.

Yeah.

Beyond that I had flashlight and laser sprites with transparency, fog of war tiles could slowly fade away to reveal their tiles, marines had cones of vision that depended on their facing direction, and items could be on chests and there was animated flashing explosives on doors and and and… it was a lot. Too much, probably.

I’ve tried to rectify that in Steam Marines 2.

 

… In with the New

The one thing I did like a lot about Steam Marines 1 (SM1) was the black around the playing field. It made for some poor screenshots, unfortunately, but it helped to focus the player on the actual game. This is what Steam Marines 2 (SM2) looks like in the tactical field:

Steam Marines 2 - Tactical Field
Steam Marines 2 – Tactical Field

 

As you can see I’ve retained the black edges, all around the tactical field and even on top of environment walls. Differences include:

  • Fog of war is binary now. In SM1 fog of war had three levels: 1) unexplored, 2) currently seen, 3) seen before, but not currently. Having only 1) currently seen and 2) not currently seen has a lot of benefits. For one it’s easier to render! Another is it keeps all that lovely negative space around the player. And a third is it keeps a sense of mystery and oppression the entire time because you’ll never have enough marines to see the entire map at any given time.
  • Almost no visual clutter. There are a few item pickups that spawn, and there are details and some grass in the Alien Temple level, but it’s not visually cluttered like in SM1.
  • The doors are a lot more clear now. Unlike normal environment walls doors are not black topped and the level lighting slices into the top of the doors, in this level giving the doors a hot purple look. They are also taller than the surrounding environments.
  • The UI is overall a lot less intrusive. There’s the portrait, name, and stats of the currently selected marine in the upper left, the squad ammo bar on the bottom center, and an action panel in the bottom right corner. There are some contextual UI elements such as the green cog under the currently selected marine, and the blue tile overlays showing where that marine can move to. There are also a few text boxes and such that pop up during attacks and other such, but by and large it is much less cluttered.

Part of that is because I shoved some stuff into a submenu. Another is that I removed squad inventory. Squad inventory, as I’ve noted before, is not a great addition in permadeath games. By tradition most roguelikes would beg to differ on that point, but I’ll maintain my position: Players frequently try to save items because the nature of the game is to place you into holes you have to dig yourself out of. Then, they forget they have them because they spent hours refusing to use them unless they felt the situation was dire enough. In other words, their behavior slowly gets molded from “Okay, don’t use powerful, rare items until I REALLY need to!” to “Don’t use items!” to “What are items?”

Aside: Have you ever ended a (non-permadeath) RPG and noticed you have an inventory full of super-powerful items you saved up and never, ever used? Did you die at all on the playthrough? Yeah, that.

SM2’s fog of war is also soft and blurry at the edges, not hard and discrete like in SM1. Mechanically it’s the same, though marine visual and weapon ranges are by discrete tile and not partial tiles.

I think overall this is the correct direction to go in, although I do have some misgivings about the marine action camera when aiming at enemy targets:

Targeting System.
Targeting System.

 

That is A LOT of black on the upper half of the screen. I’ve been thinking of putting something there, although it begs the question: why is there no roof in any of these interior environments?!

 

Thanks for reading,
Mister Bums

You can contact me at yjseow@worthlessbums.comTwitter, or leave a comment below!

Money Makes the Games Go ‘Round

 

Blast From the Past

On 3 November 2013 I wrote about my second commercial game, Steam Marines.  At that point the game had been in development for about a year and a half, and I projected that it would cost $160,000 USD across its development cycle. It fully released on 24 September 2014 and I can now say that the actual cost of the project was $97,913.88. This includes all my hardware and software costs, contractor payments, and my full time salary*.

Aside: *I should mention that I worked a lot during this 2.5 year period. A LOT. If I converted my annual salary to an hourly rate I was by far the lowest paid person who worked on the game. But not if I consider my full compensation – I only revenue share with the various distributor platforms that I sell Steam Marines on.

Don’t be wowed by that cut from $160,000 to ~$100,000. That was a combination of me being very conservative, worst-case-scenario with my initial budget and extremely aggressive with cost and cash effectiveness throughout the entire development cycle. If you have any kind of budget, five digits and up, you may be surprised how far you can make it stretch.

Aside: And I do not mean not paying or underpaying your contractors. Do not do this. I mean find parts of your game you can effectively implement in a less costly and/or time consuming way. Reuse assets. Do you really need X to have unique art? Do you really need 32435 character classes and nine hundred tilesets? Actively manage your scope and it will pay off, I promise you.

Also I did run into a large roadblock partway through development, and the initial schedule of 24 months was extended to 30 months. So even my planning for the worst still had the final release date slip.

How well did Steam Marines do? Well enough. I still can’t speak about specific platform numbers, but I can link you to the game’s SteamSpy page. I can tell you other things, too.

 

The Shock Wears Off After a While

I started working full time on Steam Marines 2 on 24 September 2014. Yes, that was Steam Marines’  full release date. It’s August 2016 at the moment, so I’ve been working on Steam Marines 2 for about 23 months now.

Aside: I did take a multi-month break at the end of 2015.

I track my hours worked.
I track my hours worked.

 

The development cost of Steam Marines 2 is a little fuzzy to calculate due to various reasons I’m not going to elaborate on here. But I can say that its development cost to date is around $100,000 USD which translates to approximately $4,347 a month. It’s still slated for another 25 months of development before full release.

Steam Marines basically paid for Steam Marines 2 development in 2015. Having revenue streams is nice. Have more revenue streams.

I’ve been gearing up for early alpha release on Itch.io which should land in a month or two, depending on how things shake out. Itch, while being fairly well praised by small developers, does not appear to be able to supply the funding for developers, even (or especially?) small ones. I’ve talked to about two dozen now and none of them make a living strictly from Itch; Their sales are actually abysmal, double digits if lucky.

So why alpha release on Itch only? I do have a Steam AppID for Steam Marines 2 already. I’ve been through the process before and it’s not difficult. There are four main reasons:

  1. I initially launched my public builds for Steam Marines on IndieDB. I first started selling via its sister site, Desura (I don’t recommend these sites these days.) The community was small, but focused. You could get limited but helpful feedback and iterate. Most massive issues you have can be sussed out and fixed before shoving your game into the much more vicious Steam crowd.

    Aside: Steam Marines did well on Steam’s Early Access, but you really do need thick skin to deal with the vitriol you will almost inevitably receive. I don’t employ a Community Manager – I wear that hat. That means I get to read every review and comment myself. My ego has taken a lot of hits over the years.

  2. You can see if your price point is roughly correct or completely off the wall. The tentative alpha price for Steam Marines 2 is $25 USD. That is not inexpensive, but I didn’t set it arbitrarily high, either. I don’t mean you solicit feedback on if your price is any good or not. I mean you see if people actually buy your game at whatever price you think fits your game.
  3. Only one platform to update builds and keep in contact with really, really, really helps you be efficient. I literally closed down my official forums this year. I can be reached on the Steam forums, my Twitter, email, et cetera. I cannot overemphasize how important being able to focus is, especially when you’re trying to drum up sales, make fixes, add content, push builds, and do all of this with feedback flowing into your eyeballs.
  4. Itch allows me to set the revenue sharing any integer value between 0 and 100%, inclusive. I’m not setting it at 0%, but I’m not setting it at 30%, either.

    Aside: Itch uses PayPal and/or Stripe as payment processors. For (US people anyway) they charge a transaction fee of $0.30 plus 2.9% of the charge. So in Steam Marines 2′s case it would be $0.30 + 0.029 * $25.00 = $1.025 (not sure if they round up or down), or in total about 4.1% on top of what you decide to give Itch.

I’d like to be able to sell ~6,700 copies of Steam Marines 2 for $25 each on Itch. That’s basically a pipe dream from the data I’ve been able to gather, but there’s my goal. Maybe I’ll sell like 2. It’s hard to say.

Based on my experience on Itch I’ll nudge the game in better directions before dipping my toes into Steam Early Access – unless I’m very pleasantly surprised by great sales numbers. But the earlier I can pivot in a good direction, if I need to, the better. Maybe the game does really, truly terribly and I think I need to adjust the development time. Maybe the game does really well and I need to adjust the development time.

Game development is funny like that.

 

Thanks for reading,
Mister Bums

You can contact me at yjseow@worthlessbums.comTwitter, or leave a comment below!

Cover Systems and Overwatch

 

Cover me – I’m going in!

Ostensibly a cover system, within the context of a generic turn-based tactics game, is to provide positional play options. It can also provide a mechanism for regenerating health (more common in shooters) and encouraging indirect confrontation of obstacles. If not the latter it can also encourage turtling: whereupon the player chooses not to move because there is no risk the player is willing to take to improve her position.

Games like XCOM: Enemy Unknown cover provides passive benefits, such as 1) stopping enemy units from flanking, and 2) reducing the probability for enemy units to hit them with ranged attacks.

What I find interesting is that a simple cover system can be replicated mechanically in other ways – cover is just frequently chosen because it passes both the realism/simulationist test as well as providing for some thematic tension.

There is no traditional cover system in Steam Marines 2. Instead units can directly suppress other units which apply ranged-to-hit debuffs. There are a number of benefits to this system over a cover system despite both affording a player’s units probabilistic defenses against attack:

  • Unlike traditional cover a player can stack her unit’s suppression, whereby a unit suppressed by one marine might receive a -15% chance to hit, two marines suppressing the same target might confer a -30% (or non-linear stacking) chance to hit.
  • It encourages units to be more proactive in terms of movement and fire, the core tenets of the Steam Marines series.
  • Expending ammunition to suppress a target is more costly than simply finding cover; Waiting too long to advance once suppression orders are given is a drain on ammunition (which is finite) as well as still allowing the reduced chance to take damage. Even if ammunition is not finite turn-based tactics games generally have weapon reload mechanics which should be taken into account.
  • Since suppression acts as an active cover system there is more granularity to the power scale of employing it tactically; Having a marine get -30% chance to be hit in cover is different from having a marine that can suppress a target for -30% chance to hit. In the first situation the mechanics encourage the marine to be on point and reduce the chance for all shots from all enemy units to land. The second situation encourages more positionally-minded play since the marine can only suppress one target, and it cooperates better with units that perhaps have a higher chance to hit but a less powerful suppression debuff. Thus getting all marines increased cover evasion in the first scenario breaks the power curve much more than buffing suppression for all marines.
  • It really emphasizes that Steam Marines 2 is about squad cooperation. A lone marine is very vulnerable, much more so than a lone marine in a traditional cover system.
  • It doesn’t have any finicky edge cases with melee units. A traditional cover system doesn’t provide any offensive debuff for melee units, but an active suppression system does – and should!

You don’t have to have one or the other, or even either or – you could have a hybrid system or something completely different. I just personally prefer a more active tactical system.

Aside: Suppressing a target who auto-retaliates and kills your marine completely fits in the theme of a brutal, challenging game. Auto-reprisal systems that trigger on direct attack as well as suppression also add a lot more decision making to the process. Low health, high suppression marines might not be the best unit to lead suppression with, after all!

Active suppression systems also work well with a lot of units crammed into small, line-of-sight breaking level layouts. Steam Marines 2 does not have the destructible environments of its predecessor and this makes choke points like hallways and doors deadly. Leapfrogging by advancing, suppressing, and repeating is preserved from a traditional cover system except you don’t have to rely on the environment cooperating with you.

 

We can’t see shit, sir.

Overwatch, or any mechanic that allows interruption or interaction for a side when it’s not their turn, provides for both varied gameplay and tension. If I send a marine through that tile is he going to get cut to shreds? This is largely an information war more than anything else for two reasons:

  1. The opposition has to know about your plans in order to avoid/counter it.
  2. You have to have a hunch that reaction is more beneficial than a similar action performed on your turn.

The problem with Overwatch, or Guard Mode as it’s called in Steam Marines, is that it’s frequently a “default” action. It’s just something you do when you don’t know what else to do. It’s a safe action. As with cover and turtling, I prefer to dig that out of my systems.

The other appeal of an Overwatch mechanic is that, in a traditional cover system, you don’t have to really move around much. Again, it’s playing it safe. As mentioned above in the cover section Steam Marines 2 has an auto-engage target. Whenever a unit attacks or suppresses another unit, the defending gets to attack the attacking unit – order depends on circumstance.

This makes attacking similar to defending. You need to suppress and move to good positions and you (should) suppress and attack targets to avoid effective retaliation. There are pros and cons to this. Pros include a depth of tactical decision making and much more active turns.

A rather large con includes the potential for “samey” feel turns, where you suppress, move, attack, repeat. This is, on its face, only marginally different from move to cover, attack, repeat. The main difference from that gameplay level is the micro decision is who suppresses whom as opposed to who moves to what cover. It is arguable that the traditional cover micro decision is superior because it can be made hastily, without too much thought, and be reasonably effective. Whereas picking bad suppression targets can really doom you in a suppression/retaliation system (given a high enough damage-to-average-unit-health circumstance).

Therefore Guard Mode in Steam Marines 2 provides a very different mechanic from the first game. Instead of acting as an Overwatch marines in Guard Mode have increased accuracy, damage, and initiative when retaliating against attacks but not suppression. The key difference is the positional play element – you actually want to push marines forward and place them in Guard Mode.

 

Wait, what about turtling?

You don’t actually want to turtle with Guard Mode because enemy units can dogpile suppression and then rip your marines apart individually. You need to be actively taking them apart with both your rear and forward units rapidly otherwise you’ll lose due to attrition.

It gets particularly hairy when you factor in that attacking/suppression/Guard Mode are now in their own resource pool and no longer related to action/movement points. A unit with two attacks per turn who can attack then suppress or suppress then enter Guard Mode is a very different beast from a unit with only one attack per turn!

It’s not quite a weapon triangle, but it can help to (sort of) order it in that kind of cyclical fashion:

  • Guard Mode > Attack
  • Attack > Suppression (on non-attacker)
  • Suppression + Attack > Guard Mode

Or, combined:

  • Suppression + Attack > Guard Mode > Attack > Suppression (on non-attacker)

Simple, right? Right?

 

Of course, the effectiveness of such a suppression/Guard Mode system is highly dependent on the numerical balance of the game with regards to weapon accuracy, range, damage, armor and health on units, et cetera. So far the results are promising and I hope to keep refining the current system.

 

Thanks for reading,
Mister Bums

You can contact me at yjseow@worthlessbums.comTwitter, or leave a comment below.

Thinking About Code

(Note: This blog post is mostly for fun. I don’t really intend on drawing any grand, sweeping insight into good or bad code. This is just me tired of squashing bugs and wanting to dig around in what I’ve created. I also promise not to talk about Big O.)

 

By the numbers

Let’s start with some Steam Marines v0.8.6a script source numbers!

162 script files
1747 script functions
43532 lines of game logic code (non-GUI, non-engine)
8415 lines of comments
4385 blank lines
3488 if statements
638 else statements
456 else if statements
305 switch statements
28 while statements
15 do-while statements

This turns out to be 9860 lines of code with only a single bracket, either { or }, on them. This means that the number of non-GUI game logic not including comments, blank lines, or trivial single bracket lines, is 20,872 lines of physical code. Of those nearly 21k lines 4,930 are control statements, or about 23.6%.

I don’t really know what these numbers imply, nor am I aware of anyone who has done analysis of “good” and “poor” code and gathered relevant statistics (although there probably have been.) But it’s interesting to note that almost a quarter of the relevant lines of code are about flow control. We are here and we want to go there.

This suggests a few more metrics to look into, namely how many functions need to be called and how many source files need to be touched to perform actions or respond to user input.

 

Complexity

I was taught to write re-usable code. Make it abstract, make that list of things be able to hold all the things! I’ve mostly abdicated this approach for coding games, at least from an object oriented perspective. But I do love functional programming, and that intrinsically allows for more re-usability. So maybe I haven’t abdicated so much as melded the concept in my brain.

It’d be pretty cool if every action was a single function that contained some straight-line code; no branching, no other function calls, just bam bam bam and we’re done. It’d be pretty easy to debug, too. But probably a nightmare to write with lots of duplicate code.

If we think of the number of functions touched to complete a task being a metric of complexity, functional code is a big help. Sure even functional code adds complexity, but it doesn’t change state which is the biggest help. We know that by themselves functional code didn’t screw something up, although some other code might have taken what they returns and mucked about with it.

Steam Marines is written with Torque 2D, but for the purposes of this post let’s ignore the engine guts and talk about script code execution only. What happens when the player presses the key to move in the left direction? Well, it enters a function conveniently called left in the input.cs file.

It essentially looks like this (minor details left out, but all files touched are included):

left – input.cs
—> globalInputLocked – input.cs
—> clearFireControl – fireControls.cs
—> —> clearTargetIndicators – fireControls.cs
—> engageCharacterActionLock – characterMovement.cs
—> canMoveToMapPosition – characterMovement.cs
—> getTilePositionFromIndices – dungeonGenerator.cs
—> moveUnit – unitMovementHandler.cs
—> —> growAndShrinkUnit – unitMovementHandler.cs
—> setSquadMemberFacing – facingHandler.cs
—> mountSightToUnit – weaponModHandler.cs
—> initializeReadout – readoutHandler.cs

Yowza! That’s a dozen (12) function calls to move a unit in one direction! It also touched eight (8) physical files. Like I said above I don’t know if there’s a good way to measure this stuff, but to me that feels like a lot of files to jump through just to see if basic unit movement is working.

To me the code structure works well this way, though.Code is split into small functions, each with a very specific job, and they are categorized into physical files based on functionality.

 

Doom 3 GPL Source

Counting just .cpp files in Doom 3‘s GPL’d source code shows that it has:

531 cpp (C++) files
377566 lines of code
115818 lines of comments
89582 blank lines
38829 if statements
5517 else statements
5767 else if statements
693 switch statements
1161 while statements
123 do-while statements

That’s 172,166 lines of physical code with 52,090 control statements, or about 30.3%.

I want to point out that I am in no way suggesting this is an accurate comparison, or that the code quality between Doom 3 and Steam Marines is similar. It’s not a full source comparison; I rather arbitrarily chose to ignore my GUI code, the Torque 2D engine code, and that Doom 3 and Steam Marines are remarkably different games. I also stripped single bracket lines out of my own numbers. Really the only thing going for this comparison is that it was only between .cpp and .cs files since I excluded .c and .h files from Doom 3. It speaks to code structure more than anything else.

But it’s still interesting to look at, eh? Maybe it suggests Steam Marines is way too complicated for it’s own good! To be completely honest I assumed Doom 3‘s OOP structure would have indicated relatively less flow control statements. So maybe this is a metric of nothing!

 

Now what?

I dunno. Wanna tell me your source stats?

Aside: I’ve churned out approximately 31 lines of physical code a day (that remains in the current dev build) for Steam Marines since starting on it – not including GUI or engine code.

I didn’t include GUI code because there’s not a lot of explicit flow control in that kind of code. Full script (not engine) numbers if you’re curious:

Steam Marines cloc
Steam Marines cloc

 

Thanks for reading,
Mister Bums

You can contact me at yjseow@worthlessbums.comTwitter, or leave a comment below!

Steam Sale – Community’s Choice

It’d be great to be a daily deal! Front page, on sale, and, and, and!

Steam Marines was on sale for 50% off on Steam during the Holiday sale. On December 27th it was picked as the Community’s Choice and went on sale for eight hours at 75% off for $2.49 USD.

The impact was enormous:

Communitys-Choice-Graph
Steam Marines traffic on Steam

The graph is for unique visitors to the Steam Marines Steam Store page. When Steam Marines first launched on Steam I did not have Google Analytics set up properly, so the first portion of the graph is missing data. But that doesn’t really matter. What matters is the spike on the right side, because you can barely tell where the launch and Autumn Sale dates are if I didn’t mark them.

 

Community’s Choice > Passing Go.

I don’t think you can plan on being selected for Community’s Choice. I don’t know how they picked the games I was put up against. I don’t know by how much I won the vote or how many people voted. But of course I voted for myself like the scumbag dev that I am:

Community's Choice Options
Community’s Choice Options

Aside: The developers of Kinetic Void (one of the other games in the Community’s Choice pool) were kind enough to post congratulations on the Steam Marines discussion forums. Very groovy of them (i.e. not scumbag devs.)

 

Getting on the front page in this manner also drove traffic to the official Steam Marines website:

Community-Choice-Steam-Marines-Website-Traffic
Steam Marines Official Website Traffic

 

Armchair Analysis

As you can imagine this also drove sales on non-Steam platforms, although the numbers were nowhere near as large as on Steam itself despite the fact that all purchases on non-Steam platforms also grant Steam keys. I probably could have made that fact more obvious, although I suspect it would not have made an enormous difference. I am certain that many of the sales were impulse buys.

When Steam Marines launched on Steam it did so at a price of $7.99 with a launch discount of 10% off. During the Autumn Sale it was listed at $7.99 and on sale for 50% off. During the Holiday sale it was listed at $9.99 and on sale for 50% off; also 75% off during the Community’s Choice eight hour period.

It may have helped that Steam Marines was the lowest cost game for that voting pool at $2.49 versus $5.00 and $6.80. Anecdotal observation of other Community’s Choice picks suggests that people go for low cost versus cost saved compared to base sale price, presumably in part due to Steam not readily providing that information on the voting panel. Of course even if I had the actual voting data it’d be difficult to draw that conclusion. Lots of other variables to consider!

 

Closing Comments

Being on Steam’s front page with a steep discount, if only for eight hours, was amazing. Lots of sales, lots of discussion, and an avalanche of bug reports I’m still wading through.

I apologize for not being able to hand out solid sales numbers. However the site traffic should give you a general idea of the relative power of sales and the Steam front page on the data point that is my game.

If you’d like a few more words on this general subject matter, I hope you take a look at my older blog post, Commercial Indie Games & Risk.

“I didn’t get to craft my Snowglobe thingy because the Steam servers were all wobbly whacked.” – Unknown Scumbag Dev

 

Thanks for reading,
Mister Bums

You can contact me at yjseow@worthlessbums.comTwitter, or leave a comment below!

I’ll Talk Out-Game, Not In-Game

 

“People in glass houses sink ships.”

There’s a pattern of behavior familiar to many creators. People rarely read, listen, or pay attention. Sometimes it’s their fault. Sometimes it’s the creators’. Usually it’s a combination of both.

My game Steam Marines recently launched on Steam Early Access. It quickly became apparent that some people never took the time to play the tutorial, look up keybindings, or even look at the F.A.Q. Some went so far as to go to the discussion board, ignore the answers, and simply fire off a post asking answered questions. Others went further still and posted misinformation, unaware that the correct information was a few posts above.

Throw in the fact that people love to argue and you can see the problem.

 

“Don’t cross the road if you can’t get out of the kitchen.”

I don’t like hand holding in games. I avoid tutorials, go straight for the hardest difficulty, and mod for extra difficulty. But that seems to be unusual behavior, and I don’t hassle the developers if I can’t figure something out. It’s part of the challenge mindset.

Steam Marines is peculiar to most people. There’s a quote from an Indie Games AAA podcast that I love:

“There are a lot of tactics. It’s such a brutal game and it makes it even more brutal that you didn’t realize how brutal it is when you start. Then you realize you died because you made one, literally one, wrong move.”

– Joe, Mandate Radio

I wasn’t there when Joe first started playing Steam Marines, but I’m willing to bet that when he first started the game (he played a build prior to a tutorial being implemented) he was a bit befuddled. When I personally observe people first play that’s usually how it is.

But, if you pay attention as you play, certain patterns will emerge. Oh, I shouldn’t have done that. Oh, I should have done that two moves ago! Oh, if I do this and that the AI will probably move here and that’s bad so let’s instead… et cetera.

It’s not really like peeling back layers. That’s how a lot of people like to describe tactical/strategy games. Peeling layers suggests you discard said layers as more are exposed. It’s really more like unfolding a map.

 

 “What the fuck were you gonna do, laugh the last three to death, Funny-Man?”

I hate trying to convey complex information in a game. I hate it when games try to do it to me, too. Give me the basic tools and then treat me like an intelligent human being, dammit!

Explaining complex systems robs the player of discovering it personally. It also establishes a de facto rule. That rule is “Don’t worry, if something confuses you we’ll explain it.” If you don’t deliver then you’ve broken an implicit promise to the player. If you do deliver then your’re encouraging pigeonholed playstyles, assuming your game allows for diverse playstyles.

Give the players basic tools. Give them basic parameters for how the world operates. Let those tools and parameters interact. Let the players loose.

 

“We could kill EVERYONE.”

I like to think Steam Marines gives just enough information to progress before slamming on the brakes. Default movement keys are arrows on a keyboard. Tab or clicking on marines selects squad members. Tooltips give you general knowledge like “Hey, this marine can shoot X tiles!” or “This item does Y!”

It doesn’t tell you that your Leader class marine can throw a grenade to blow a hole in the deck of the ship then use a shotgun to knock enemies into space. It doesn’t tell you that flanking automatically turns units toward the source of damage which can be important for positional play. It doesn’t tell you a lot.

It sure as hell does not tell you that Steam Marines hates your guts and wants to murder your face. It’s colorful. Enemy units bounce up and down – some might call them cute. How can these little guys hurt you? Because I made them hit really hard in the code you can’t see, that’s how.

 

“Ah, shit! I forgot about that one! Nine! Nine?”

By now I should have referenced the title of this post. Don’t tell players all the possibilities you’ve created with your mechanics. Let them emerge from player experiences. Keep your mouth shut in-game.

Outside the game you don’t have to be as coy. “Gosh, that Revenant spawns minions in all adjacent tiles whenever you smack him! I wonder what would happen if…!” Light bulbs. Experimentation. You want this to happen within your community.

But what about all those people who don’t read, listen, or pay attention? If Steam Marines is so good why do you have all those people that ignore what you say? One has to start somewhere. I say we start sooner rather than later. Maybe some of that lateral thinking will spill over.

At any rate building a community is something of a game. And I think what I’m doing is working. Emails of people regaling me with stories of their epic failures, and their joyous successes, is really something.

 

Thanks for reading,
Mister Bums

You can contact me at yjseow@worthlessbums.comTwitter, or leave a comment below!

Steam Marines has undergone a lot of changes since I last posted…

Steam Marines is still in active development and the current build is v0.7.5a, still for PC/Mac. I’ve gained and lost an artist, gotten a decent bit of exposure on Steam Greenlight, and have trimmed a lot of fat and added tons of content (3 decks and 10 enemies not including variants, and a gateway boss and a mini-boss).

Originally the game was to be released by the end of Q2 2013, but as of right now it looks as if it’s unlikely to be done by the end of Q3 2013. D’oh.

Lots of thoughts about meaningful actions versus exploration in turn-based systems, procedurally level generation, player/AI balance, and other game design type issues. I’ll be fleshing those thoughts out more in future posts, mostly to aggregate them all in one place for myself.

Btw how cool is this?

Steam Marines Game Over Screen
Game Over, Marines!