

An Open Love Letter to Our PC Fans - minimaxir
http://www.ironhidegames.com/post.php?id=103

======
smacktoward
I like the _Kingdom Rush_ games a lot, and wish Ironhide Games nothing but
further success.

That being said, this letter is cloying. A letter where you tell someone you
care about that you don't have it in you to be with them isn't a love letter,
it's a "Dear John" letter
([http://en.wikipedia.org/wiki/Dear_John_letter](http://en.wikipedia.org/wiki/Dear_John_letter)).
For the recipient, those two types of letter are very different!

It would have been 100% fine to just say "look, it would take a huge effort to
bring Origins to PC, and we don't have the money or the energy for that."
There's no need to dress it up in shiny happy "we love PC!" platitudes.

------
ChuckMcM
I've heard this a lot in the games industry -- _" For each version, the
programming was done from zero. We can’t stress this enough."_

That seems so wasteful and challenging, anyone from the industry care to
comment on how a studio would get itself into a situation of effectively zero
reuse of their code?

~~~
eropple
I'm going to preface this post with a note that, yes, there are surely good
developers in game development, this is not a universal thing, etcetera
etcetera.

Ass properly covered, I'll be real: I'm never surprised to see this because
"code reuse" is generally the sign of reasonably advanced developers and I
don't know a single person in game development I would hire for a role outside
of it. It's not just NIH--that's a problem but one slowly going away. It's
more just a fundamental lack of understanding of software engineering and
building Good Code. As time goes on I've seen gamedev acquaintances poorly
reinvent most of the wheels that the rest of the world takes for granted--even
something as simple as serialization for save data and network transport (but
no schematic validation, because "schemas suck") was trumpeted to me as this
Big Crazy Great Thing. Which contextually it may be, but I kind of feel like
the state of the art for stuff not involving pointer munging is about a decade
behind everybody else.

So, code reuse? Gotta make good code first.

~~~
SimpleMinds
I agree with what you said with my limited experience. I hope it's anecdotal
nature is good enough.

I worked in a company that went from doing software gigs in general to be full
mobile gaming company. Before it was quite standard Agile style company:
Scrum, code reviews, TDD, cross-functional teams (front end devs knew how
servers works in general), focus on quality over quantity (one dev, rotated
weekly or biweekly, focusing on fixing bugs), separate concerns.

After going full game-oriented, company hired couple of people from gaming
industry into higher positions - tech leads, project managers etc. Over couple
of months, people with many years of experience in those big companies
dismantled what was standard for me, using combination of two arguments:

\- big names don't do it, so it must be wrong \- it's a waste of time

Before I quit, there were no longer code reviews (waste of time), all testing
was to be handled by QA team (waste of valuable dev time), ship with issues
(waste of time to fix minor bugs when can add features), single system
responsibility (one dev to write code for client server protocols, one dev for
UI, one dev for assets etc, that's gow big names do it).

At one of the last talks with "industry veteran", when I mentioned those
things - and how negative, in my opinion, those changes are, his response was
"so you are saying that whole gaming industry dev practice is wrong". At that
point I thought he's right and I sound full of crap, now I believe that yes,
AAA companies are simply bad development practises shops.

My guess as to why is because AAA is very strongly driven by deadlines and
marketing, where you cannot simply delay release (Christmas shopping spree is
coming). This idea I saw articulated on HN first and I agree with it.

~~~
pandaman
If the AAA practices had been so bad then, by now, we had Agile-TDD-etc shops
taking their lunch and driving them out of business. As of now there is just
one studio practicing Agile, Blizzard. If it is not known, Blizzard is also
famous for incredibly long projects and missing deadlines. I had personally
observed collapse of two Agile AAA studios, who, while doing pretty well by
the industry standards, did not have the super-profitable titles to hold them
up during 5+ years of development cycle. So I believe we have the AAA
practices not because game programmers are stupid but because studios that
don't use them are not around for long.

~~~
SimpleMinds
I was not implying that game programmers are stupid, sorry. I meant that they
way it was told in the company how AAA do it sounded similar to what I learned
about how big companies done it 10 or something years ago. Coming from agile
workplace, I think there were things that could have been kept in place to
improve quality of life for developers and art teams. I'm not sure if I can
express what I mean correctly. For example, why the dreaded "crunch time" in
gaming is treated as norm, while in modern web/mobile shops its believed that
something like this is going to result in worse quality over time?

I could see arguing here with myself that AAA games are usually "ship and
forget", with some bugfixes only. Maybe because company I was working in was
not AAA, but small (by industry standards) f2p mobile shop, where applying AAA
ideas is not that great (in my opinion). I mean that's where your product is
more along lines of web apps - you are going to constantly add content, update
code base, refine features, so focusing on quality in long term is better.
This, thought, I was not able to articulate clearly and properly to AAA
veterans.

I feel like not all ideas from current practises can be applied to big gaming
studios, but saying that I believe it can be improved. This may need time and
risk that companies that are big enough to be called AAA are not willing to
take.

Why two companies you mentioned failed? I think we can assume there might be
more reasons to that than only being Agile, maybe their games were just not
that good, or IP was boring? Still you sound like you have more experience
than me here, I'm trying to wrap my head around whole AAA industry thing. I'm
ranting about it so much because making games was way more entertaining than
web/mobile, but the industry is so poisonous for pure developers that I had to
quit to regain my sanity :)

~~~
pandaman
I am not sure people outside game industry do not crunch. A brief search shows
that the term existed long before the modern game industry or any game
industry at all. Same goes for "overtime" \- the term is even codified in
laws. I assure you nobody treats crunch as a normal mode: even people who are
forcing unnecessary crunch understand that it's something unordinary and often
do it just because it is not something normal (to show how good they are at
management, to extort a bigger budget, to undermine their political rivals
etc).

>This may need time and risk that companies that are big enough to be called
AAA are not willing to take.

Infinity Ward, the original home of $1B+ games, had about 100 people at the
time of the split from ATVI and founding Respawn. It's about the same size now
as well as the Respawn. Media Molecule is just a few dozens. Size does not
make a AAA studio.

And you don't even need to show the best practices right at the AAA level -
start small and if it's any good people will copy you or, at least, you should
be able to grow yourself.

>Why two companies you mentioned failed? >I think we can assume there might be
more reasons to that than only being Agile

Indeed, it would be naive to blame Agile on destroying multi-million
businesses. Agile seems to be just a symptom. It could be that the management
sees that the development process is failing and tries to improve it with a
well advertised technique, for example. Or that some Agile enthusiast gets too
much power due to the weakened culture. What I was trying to say is that very
few AAA studios practice it now and the ones that did in the past are not in
the business any more.

Also, there is no single AAA development way. For example, Valve's practices
are very different from Bungie's, which are different from the R*, which are
different from ATVI's COD teams etc.

------
timdorr
If they settled on Unity, why not make a PC version? It shouldn't involve
ground-up rebuilding of everything. In fact, they've already targeted the most
restrictive environment, so it's relatively downhill to produce. They could
easily get it on to the Playstation and Xbox platforms as well.

~~~
shmerl
_> If they settled on Unity, why not make a PC version?_

I guess they are too exhausted at this point. Even with Unity there are bugs
specific to each platform and supporting that takes time.

~~~
socialist_coder
Not really. Going from Mobile back to PC is very very easy (PC to Mobile is
another story). If your game already works on mobile, it will 99.9% work on
PC. The amount of platform specific Unity bugs is actually quite small, in my
experience. Especially with 2D games that aren't using crazy shaders (in my
experience, most of the platform specific bugs are GPU shader crashes,
especially on Android. And again, that's only on Android. PC has far less
buggy GPU drivers than Android).

You might need to adjust some screens so they work better with a mouse instead
of with taps, but this game doesn't use multi-touch or anything that can't be
done with a mouse so I don't see an issue with that.

You also need to write platform specific IAP and notification code, but again,
going to desktop you won't have notifications, and writing platform specific
IAP code is not that big of a deal, especially compared to porting your entire
game.

Short story is, these guys chose their engine very poorly. They had already
experienced cross platform issues in the past, and seems like they just
decided to ignore them until it was too late.

I have no sympathy.

~~~
shmerl
I found a bug in Unity which happens on Linux on XFS partitions larger than 1
TB. Such kind of bugs are clearly system specific and hard to debug / support
unless you have that configuration set up. Responsible developers take
obligation to support their product. If someone intends to produce something
and forget about their users - that's close to garbage.

In my case I bought one game and was hit by this bug. I contacted developers
with strace data and got no response. Then I contacted Unity developers and
they actually got back to me and confirmed that it's indeed the case with
large XFS partitions (they had to set up that test case to verify it). They
produced a custom build of Unity player of the same version with patch
backported, and I was able to run the game.

Now, those game developers obviously don't care about supporting such cases,
yet they sell the Linux version. I don't appreciate it on one hand, on the
other hand may be it's better than not having that version at all. But I can
see a point of some being exhausted and trying to avoid bug reports for
systems that they can't properly support.

~~~
socialist_coder
That's unfortunate that the game developers did not get back to you. They
should have at least given you a response. There is no excuse for that.

The proper response from a Unity game developer who wants to sell a Linux
version but not support it is pretty simple- just offer refunds for anyone who
has problems. 0 work and problem solved.

Also, good Unity developers know there are platform specific issues (and how
to solve them). I'm not saying platform specific bugs don't exist. They're
just rare. When they happen, post on the Unity forums or Unity Answers site.
Unity employees _will_ read it, and get back to you. The support is great.
This is why you use Unity. Let Unity do this work for you!

------
shmerl
This looks like a lesson in avoiding non portable technologies. Something like
SDL + OpenGL could help preventing a lot of such problems.

------
tehwalrus
I do wonder why more people don't make use of a C physics engine (portable
everywhere, including browsers via asm.js), and code the logic in a higher
level language which can compile down to C (like Python via Cython.)

I guess the problem is that you need different rendering code? OpenGL works on
PC and mobile, but you'd need to mock it out for WebGL. Has someone already
done this for asm.js?

Presumably there is some other huge hole in my thinking...

~~~
highCs
That is the goal of Haxe[1] I've always thought it is a good idea. That may be
under appreciated.

[1]: [http://haxe.org/](http://haxe.org/)

~~~
wtracy
Haxe looks really cool, but the last time I looked at it, the documentation
left a lot to be desired (most of it assumed familiarity with the Flash
drawing APIs).

It does look like the situation has improved since then, but I'm guessing that
documentation is a big reason for Haxe being so underappreciated.

------
debacle
Do these games have a large following? I tried to play one once and found it
to be a pretty typical "You've played a few levels, now you have to pay to
win."

~~~
wmeredith
Aren't these the guys advertising during NFL games? I hope they have a large
following.

~~~
wnevets
with kate upton? Thats a totally different company/game.

------
teamhappy
I looked into 2D engines for iOS a couple of years ago and I remember reading
on one of their websites that I shouldn't worry about porting to other
platforms before the game has reached popularity. The context was probably
Android and not PC, but still, this seems to be exactly what was going wrong
here. If they would have chosen Unity (or any other cross-platform engine for
that matter, e.g., Cocos2D-X) over Cocos2D-iPhone, there would be a PC version
today.

This seems to be a bit of a recurring thing where we evaluate technologies
wrong very early and punish ourselves in the long run. The fact that Twitter
once was a Rails app comes to mind.

I can't recommend enough to write software for the best case scenario. You
shouldn't have to replace your entire toolchain once the thing you dreamt
about happening actually happens.

~~~
dageshi
I kind of agree with their original thought, if the game can't succeed on one
large platform then being portable is irrelevant. If it does succeed then
porting is an additional cost but it's a cost you can weigh up and choose to
do or not do, you have the choice. That seems like a better option than over
encumbering yourself to begin with by adding in effect a bunch of additional
cross platform requirements.

------
xsmasher
Game co's often hire out the porting, so they can still exploit a platform
without splitting their focus. Aspyr has made a living porting popular games
to the mac.

~~~
dnlrn
Aspyr also do a lot of the recent Linux ports. I love Aspyr!

------
minimaxir
Key line that sticks out:

> _In three years we had made five versions of our two games. For each
> version, the programming was done from zero._

~~~
pjc50
<strikethrough>Well, yes. Because mobile is such a walled garden of
anticompetitive language and platform wars, it's hard to write portable
applications. They eventually came round to Unity, which has a cost, but does
let you deliver to all the platforms.</strikethrough>

Besides, it's only 2D tower defence. The artwork probably took longer than the
game, and at least that's portable.

Then there's the question of which platform is most profitable. I've heard
that the profitability order is iOS > Android > Web > PC for this kind of
game. Maybe others have experience of this.

Edit: well, I guess there's no quicker way to get correct information than to
post incorrect information!

~~~
NickPollard
C works just fine on all of the (non-web) platforms you mentioned. It might be
a little long in the tooth for some, but it still gets the job done.

In my spare time by myself in the last 4 years I have built a complete cross
platform engine from scratch for Desktop and Mobile. If one person can do it
their spare time in 4 years, a couple of programmers working full time could
do it a lot more quickly (I also deliberately reinvented the wheel in a lot of
places I did not need to).

~~~
gambiting
We have a game written in C++ that compiles to, and runs on
Wii/WiiU/PS3/PS4/X360/XOne. Every one of those uses a different compiler, but
all build from one IDE(VS2012). But then it was built by close to a hundred
people,so it's not really the same.

~~~
NickPollard
Oh yeah, of course there are big engines that also do that (with much more
platform support), I was just using my own experience as an example to show
that you don't even need a huge team supporting it. I remember back in the day
working on a PC/Wii/X360/PS3 engine, that was fun but definitely a lot more
effort.

I develop with GCC rather than VS, but I have much the same setup with a
single makefile that can build for different targets instantly, e.g.

> make (for PC) > make android (builds and deploys to a connected android
> device)

------
pdknsk
I don't think that's the whole story. Most likely the numbers just don't add
up for IAP-less Steam versions. Kingdom Rush Steam sells for $9.99 (and was
available for less if you pre-ordered). I don't know about Origins, but
Frontiers has obscene IAP price-wise. Purchasing all heroes costs $40 or so,
plus there is always the opportunity to buy gems for items which make it
easier to progress. (Gems also accumulate as you beat levels). In fairness,
this is all optional and you can beat the game without it. They kept adding
increasingly difficult post-game levels though, which no doubt have tempted
many to buy stronger heroes.

PS. I think they should fix the bugs in KR Steam first anyway, which was
pretty much abandoned.

~~~
ghshephard
I've completed everything in Frontiers, mostly through Origins. It's a lot of
fun (after settlers, my most favorite iPad game) - and it never even occurred
to me to do an IAP.

------
schnevets
Meh. I always assumed mobile game companies ported to PCs just to squeeze more
product out of their creation. You might as well complain about your favorite
Game Boy game not being ported to the SNES (with 4 shades of olive green
graphics).

~~~
brute
Bad example.

[https://en.wikipedia.org/wiki/Super_Game_Boy](https://en.wikipedia.org/wiki/Super_Game_Boy)

------
carlmcqueen
While I think it's sad that PC support is finished I certainly get their point
about feeling exhausted.

On the other hand, the use of bold and non-bold was driving me nuts. I feel
it's up to the reader to decide what is important in the text, not the making
of certain sections of bold, it was hard for me to read.

After awhile, as I wanted to read the whole thing, I copied into a text editor
to read.

~~~
doodpants
They did not say that they are finished supporting the PC, just that there
won't be a PC port of one specific game.

------
huhtenberg
Weird. They should be sitting now on a wealth of experience to allow them to
write the next version in a more-or-less portable fashion.

My guess would be that the actual reason might be the lack of reliable
distribution channels and/or rampant piracy. Though there _is_ Steam, which
seems to work just fine for a lot of game devs...

~~~
VLM
"Though there is Steam"

Google for steam tower defense

click steam web page link

"Showing 1-10 of 101 results"

Trying to be the 102nd competitor. That's tough. I can see the disinterest.
Can you split a very old market 102 ways while making a profit? Frankly,
probably not.

~~~
ghshephard
Kingdom Rush is totally separate calibre of Game. I've played probably 20-30
Tower Defense games, and KR keeps you coming back because of the incredible
attention to quality, details, balanced game play, etc...

------
benmcnelly
This is why I am such a advocate of Unity, I know it didn't work out for them,
but if you stage it right you can easily port to about anything worth porting
to. I tend to start out with Desktop since it has the highest curve for
quality and performance, and go from there.

~~~
TillE
The great thing is that there are a _ton_ of good cross-platform options
available now, not just Unity. From commercial alternatives like UE4 to solid
open-source libraries like SDL2, or just using OpenGL ES.

If you have even the slightest inclination to release on multiple platforms,
you should be building it as cross-platform from the beginning. There are very
few reasons not to.

------
NDizzle
These guys need to really study the recent information put out from Microsoft
about how they make Office for as many platforms as they do.

I think a lot could be done to make the core of the game more portable. It's
just not being done for one reason or another.

~~~
FroshKiller
Well, you could start by linking to it yourself.

~~~
NDizzle
Sorry, here is the discussion of the video:

[https://news.ycombinator.com/item?id=8678936](https://news.ycombinator.com/item?id=8678936)

~~~
FroshKiller
Thanks, I missed this, and it sounded interesting!

------
ourmandave
I've never played Kingdom Rush, et al, but I've read reviews of some games
that were ported to the PC and the keyboard / mouse control were almost
unplayable.

Or they highly recommend you play with a gamepad.

------
Steko
Doesn't Blue Stacks work fine for Android emulation on PC?

BTW IGN is giving away Kingdom Rush Frontiers promo codes for iOS, limited
availability.

------
frandroid
QOTD: What are we going to do for the next year? Eat pizza until we learn to
speak Italian by osmosis?

------
ebbv
To me this post reads as "We were really surprised by our success and have
been running in circles." They've foolishly made a ton of versions instead of
learning how to write cross-platform or at the very least how to port from the
beginning. Crazy.

------
Encosia
This seems potentially very shortsighted, as difficult as it must be to
measure exactly how much of their success on mobile was due to the free
advertising on Armor Games, in and out of game.

~~~
kemayo
As an anecdotal data point, I own the last few versions of the Kingdom Rush
game on iOS, and I'd never even realized that they had a flash version until I
read this post.

~~~
Encosia
Do you recall how you found the first version that you purchased? What I'm
wondering is if the free marketing on sites like Armor Games was a key part of
the initial push to be discoverable on the app store rankings. Of course, the
existing mobile user base may all the captive audience they need to accomplish
that at this point.

~~~
kemayo
This was a few years ago at this point, so my memory is fuzzy. I have a sense
that I may have seen someone reviewing it (the iOS app specifically) and
decided that it sounded appealing.

------
dashboardfront
I like how there are commenters who feel entitled to a PC version.

------
throw7
Thumbs down. Those answers were disingenuous:

> Should we make a PC version? Absolutely!

cool.

> Can we make it? Nope.

should have been Yes.

> Are we focusing solely on mobile from now on? Not at all.

Nice misdirection. The question should have been:

> Did we decide to focus solely on mobile? Yes.

Then the rest of the article explaining why.

~~~
socialist_coder
100% Agreed. They had already been bitten by cross platform issues in the
past, and instead of deciding to address them and choose a cross platform game
engine for their new game, they just ignored them.

Short story is, they chose their engine poorly, and are now making excuses.
Very disingenuous blog post.

