"Nobody cares about performance in indie games any more"

Positech's Cliff Harris lit up GDC with a compelling - and occasionally profane - argument against the ubiquity of the Unity engine

Accessibility is one of the touchstones of the contemporary games business, and not just from the perspective of the consumer. It has never been simpler for anyone with the will to create and sell a game to do so, and, due to the ostensibly altruistic actions of three major companies, this year's GDC marked another milestone at in that process became easier than ever before.

Just as the world's most important developer conference kicked into high gear, Unity, Epic and Valve all announced versions of their engines that will remove yet more of the costs associated with licensing the tools of game development. Indeed, with one or two notable caveats, the Source, Unreal and Unity engines can be used for almost, or actually, nothing at all.

"We have to be edgy and cool because we're indies, but we never innovative on performance. We take Unity, and that's fine"

Anyone working in this industry for the last decade or so is likely to attribute this ongoing trend to one company: Unity Technologies, which was formed with the express purpose of 'democratising' game development. For a great many people working in the industry today that mission statement is the reason they are making games at all, and, taking a purely objective view, it has proved to be a powerful business model - both economically viable and germane to the times.

Generally speaking, Unity's rise to prominence has been one success story it's easy to feel good about. But there is another view, and as GDC's "Indie Soapbox" session drew to a close, Positech's Cliff Harris took the stage and expressed it with confidence and no small measure of biting wit.

At this point, a little context might be useful. The Indie Soapbox was composed of ten speakers from the indie development scene, the very community that Unity's iconoclastic mission has served so well. Each one had five minutes to detail a nagging concern, a driving obsession, a worrying thought, or pretty much anything else. The emphasis was on brevity rather than histrionics, and honesty most of all. There were talks about being a mother, dealing with failure, and drawing on life experience to make games more relevant. Cliff Harris, a British developer of 15 years standing, went with the following title: "Fuck Unity, and the horse it rode in on."

"You don't scare me," Harris said, smiling as the crowd responded with what can only be described as gleeful surprise. "I'm not really saying it's evil. Obviously, Unity's good in all kinds of wonderful ways." A loaded pause, a wider smile. "I hate it."

In his lifetime, Harris explained, Moore's Law has proved to be accurate. Computing power has rapidly increased while the cost of accessing that power has plummeted, to the point where the first games Harris played now seem rudimentary, even laughable. Bug-Byte's Manic Miner has many good qualities as a game, he said, but it "looked like shit" even in 1983. All games did, in fact, due to the limits on what was technically possible. "We can do incredible stuff these days," Harris reminded the audience, and yet the indie scene has become defined by a prevalent lack of interest in doing so.

"We don't care about how stuff works as much as we used to, and that makes me really sad. We just use what other people have written"

"My problem is that indie games still look like that. I mean, I get it: pixel art can be an aesthetic choice... But nobody cares about performance in indie games any more. We get a free pass. We have to be edgy and cool because we're indies, but we never innovative on performance. We take Unity, and that's fine. We never push it and write our own engines, or anything like that."

Harris, it should be noted, does write his own engines. Indeed, when he first became interested in game development that sort of technical understanding was a prerequisite. But in addition to being essential, it was also crucial to the appeal - to the mystique - of the job. Harris projected a slide depicting Q, a god-like entity from Star Trek who could manipulate the universe for his own ends and, often, amusement. He followed that with a photo of a young Bill Gates, nonchalantly tossing a floppy disc towards the camera. For Harris, there was something distinctly god-like about programming. You were the architect of a universe, the author of its rules and laws

"We used to be like that," he said. "There was hardware and there was us. We understood how it worked and nobody else did. It was this magic box that they didn't understand, but we understood everything.

"This is my problem with middleware, and I know not everybody feels this way, but suddenly we're not gods any more. We don't have control over the universe. We don't care about how stuff works as much as we used to, and that makes me really sad. We don't feel we need to master the bits and the bytes. We just use what other people have written.

"There are gods, and now we just license their engines."

Photograph taken by Dan Griliopoulos.

More stories

Epic Games to release Unreal editor for Fornite later this year

CEO Tim Sweeney said "we're building an economy, & it will support creators actually building businesses around their work…"

By Jeffrey Rousseau

BioWare contractors looking to unionise no longer required to return to the office

Alberta Labour Relations Board has ordered the unionisation vote

By Marie Dealessandri

Latest comments (18)

Sandy Lobban Founder, Noise Me Up7 years ago
I tend to share a little of his nostalgia on it from a "what's your purpose as a developer" point of view. However, if you use a manufacturing example like making a car, it would be foolish in market terms to build every part from scratch and by hand when you can buy parts in faster and cheaper and achieve very close to the same for the customer.

Sadly with cars, there's very little between them, and they too seem like they are all derived from the same class!

Edited 1 times. Last edit by Sandy Lobban on 4th March 2015 4:20pm

3Sign inorRegisterto rate and reply
Anthony Gowland Director, Ant Workshop7 years ago
I like Cliff, and read his blog all the time. But this "real game devs make their own engines" viewpoint is just bullshit. I love that we've reached a point where developers can stop re-inventing the wheel and focus on making the bits of games that players actually give a shit about (they really don't care that you're using your own engine).

It's also brilliant that even people who don't have hard CS skills like programming can build their games and express their ideas - it's allowing gaming to grow.
32Sign inorRegisterto rate and reply
Sandy Lobban Founder, Noise Me Up7 years ago
I agree with most of that Anthony, and the "real" argument is defunct. I think any existing programmer resistance to middleware isn't really helped by Unity at the moment though. I feel they have a way to go on building programmer trust, as I'm always surprised at how buggy it is, even for doing even the most basic of tasks, like running and saving projects reliably. That's scary to a programming team who are responsible for the game's functionality. It's just about efficient use of time for me. Bugs dont help middleware and writing everything yourself for performance reasons doesnt fix everything either. It's probably somewhere in the middle that works best.

Edited 1 times. Last edit by Sandy Lobban on 4th March 2015 3:30pm

1Sign inorRegisterto rate and reply
Show all comments (18)
Marty Howe Director, Figurehead Studios7 years ago
lol. the only thing that matters, is the end result.
1Sign inorRegisterto rate and reply
Nick McCrea Gentleman, Pocket Starship7 years ago
@Anthony, I think he's just being deliberately provocative given the nature of talk :)

The commodification of engine technology is awesome, and is a big win for everybody. But using your own engine can still be the correct decision under certain circumstances; it's not *always* the right decision to reach for the middleware, much as it has become a truism of game development in the last few years.

It almost always makes sense to use a professional-grade engine, but the one exception I would make would be if you have an engine of your own with which you are extraordinarily familiar; the productivity benefits you gain from having an engine which maps almost exactly to your mental model of how a game engine should work are enormous. This is particularly true when you're a solo programmer working on your own projects (which Cliff mostly is). His engine will also be very, very optimised for the narrow set of use cases he prefers to concentrate on, which, looking at his games, will be the fast and efficient rendering of thousands of sprites. In your own technology, assumptions can be made and the resulting simplifications can vastly improve productivity and performance. Speculative generality is the prime source of bloat and complexity.

For example, I know Unity well from using it professionally, and I have an engine (based on MonoGame) which I've written. If I were to go independent, I would very, very, likely pick my own engine to work with. Not because it's better than Unity (it most assuredly isn't!), but because it is heavily optimised for the kinds of games I like to make (procedurally generated, huge playing area etc), and it maps exactly to my preferred engine architecture. The cognitive load on me between mentally designing something, and achieving it, is tiny.

There's a lot to be said for that, and I think that's where Cliff is coming from. I think of it as just a wee counterpoint to the prevailing winds in the engine scene :)
4Sign inorRegisterto rate and reply
Emily Rose Artist 7 years ago
I have a feeling the indies that can afford to have fancy graphics are using them.
3Sign inorRegisterto rate and reply
Chris Payne Managing Director & Founder, Quantum Soup Studios7 years ago
I didn't see the full talk...I too admire Cliff's work, but does he suggest ANY example of how exactly an indie developer could innovate on performance where the specialist teams of Epic, Unity and Valve have failed? I suppose if your game breaks the laws of physics like Portal or renders nothing but particles like "A Light In Chorus" then it might be worthwhile, but those are very much edge cases...
0Sign inorRegisterto rate and reply
Nick McCrea Gentleman, Pocket Starship7 years ago
It's not so much that you can out-specialise teams of clever specialists, more that you can make very drastic trade-off's that Valve et al never could, because they have to support every type of game, not just the ones you want to make.
1Sign inorRegisterto rate and reply
Jim Perry Programmer, head geek of indie studio Mach X Games 7 years ago
I guess I just wanted to get into game development for a different reason than Cliff - I wanted to make fun, interesting games. I knew I was never going to be a John Carmack or one of the elite game devs. Unity is all about enabling those of us with an idea to make that idea come to life, especially if we don't have a lot of money to dump into it or a lot of time to write your own engine. Back in the day, licensing UE or id's latest engine cost 6 figures! Since no indie had that kind of money the only other option was to spend years writing your own engine. By the time you finished doing that you would be so burned out that creating an actual game with it was probably the last thing you wanted to do. I have a family and a life that takes up a lot of time. I don't have any to spend writing my own engine when a team dozens of times larger than mine (just me!) with a lot more talent than me can do it and I get to benefit from that.

Different strokes, I guess. :)
2Sign inorRegisterto rate and reply
Darren Adams Managing Director, ChaosTrend7 years ago
We made our own game engine when we started because we had to, all game engines were way too expensive at the time. It was that or write pretty much the same bits of code over and over or stick to one kind of game. It taught us a lot of great lessons and was fun doing it, but these days you can put yourself at a disadvantage by not utilising tools that are basically free out of the starting gate.

Our current game Exo Miner is developed in our game engine, but once this project is done we are probably going to move over to a 3rd party engine. Not really because we want to, but more because we can't compete in terms of time with teams that use 3rd party game engines.

Something we have learned along the way is the games industry isn't all survival of the fittest, but a lot of the time its survival of the quickest.

Edited 3 times. Last edit by Darren Adams on 4th March 2015 6:06pm

6Sign inorRegisterto rate and reply
I have to agree, and its the basis of what we are doing on the WiiU at the moment. We have our own engine from Flowerworks, and are extending it now ... our goal is simple - to create a "technically stunning" game on the WiiU that just wouldn't be possible with a "generic" engine. Resogun for the PS4 comes to mind.

Whether this works, whether we finish, whether it turns out to be a "good" game ... and whether anyone buys it is another Q :)
0Sign inorRegisterto rate and reply
Paul Johnson Managing Director / Lead code monkey, Rubicon Development7 years ago
I see an argument for using and not using, although I'm more of a not user myself. But you're not very "indie" if you are totally dependent on other peoples technology.
1Sign inorRegisterto rate and reply
Henry Durrant Programmer, SUMO Digital7 years ago
It is rare for a novelist to make their own paper and bind their own books...

I think what he wants is for the Demo scene to come back :)
0Sign inorRegisterto rate and reply
Adam Campbell Product Manager, Azoomee7 years ago
Engines like Unity, Unreal and CryEngine are a godsend for many developers and have brought in a whole new generation of games development. I saw the engine 'boom' coming for a while and it has exploded.

There are limitations and drawbacks to working within the ecosystem given to you but the positives far outweigh the negatives for a lot of people.

We are always are welcome to make our own in-house engine if it makes sense, and often people do. For many, the cost and time savings of using an off the shelf engine, with years of dedicated resource, R&D and development can make more sense.

It could take a long time to reach the level of advancement seen in UE4 or CryEngine and then to target so many platforms so effectively is another matter altogether.
0Sign inorRegisterto rate and reply
Thomas Dolby Project Manager / Lead Programmer, Ai Solve7 years ago
Can't really agree with this argument at all. It just sounds like he hates that technology has progressed and hates that there is now more competition.

Yes people don't really need to to understand low level memory management when they use Unity, but what if we applied that the machine code? Now it's rare to find a programmer that understands machine code fully. That's not a bad thing, if we couldn't use higher level languages it would take far longer to get anything done. Does Harris lament the fact that people use C++ when they could be coding in pure binary?

If technology progresses we have to accept the fact that as it gains broader appeal we can't expect everyone to know every technological detail that goes into it. If Joe Bloggs needs to write a report for his boss on the latest financials he doesn't need to know whether his document will be encoded using ASCII or Unicode, and he certainly doesn't need to make the word processor himself.

The games industry is expanding, and to keep doing that it needs to have higher levels of working. The human mind can only really master so much. Once more, those lower levels haven't gone away, there will always be a need for those skills that he mentions, and last time I checked there was nothing stopping you from getting OpenGL libraries and start coding an engine yourself (or should we be writing graphics libraries ourselves too?).
0Sign inorRegisterto rate and reply
Alex Barnfield Lead Engineer, 17-BIT7 years ago
"Yes people don't really need to to understand low level memory management when they use Unity, but what if we applied that the machine code? Now it's rare to find a programmer that understands machine code fully"

I hope that's not true. Programmers opt not to code in assembly it for obvious reasons - time, maintainability and the simple fact they're not likely to outperform the optimizer. However if a programmer doesn't have a reasonable idea of what instructions their high level code is going to break down into they're going to write code that can't be saved.
Memory management is no different, yes hardware gets ever faster but that just means cache misses become ever more significant. The performance cost of having a programmer ignorant of the hardware and what their code will translate to is, if anything, increasing. Not to say they should be writing at a low level; but they certainly shouldn't be ignorant of it.

Unlike a high level compiler, you probably can quite easily outperform an engine like Unity. If that matters for your project, and if the scale of it makes that practical is another issue entirely entirely, but we're a long way off the point where everything is a nail for the unity hammer. If you're producing a simplistic title with high performance requirements, such as the next geometry wars or resogun it's probably time to take a look at alternatives.
If your requirements are in-line with the feature sets and performance offered by an existing engine, then obviously it's pointless to write something from the ground up.
1Sign inorRegisterto rate and reply
Shane Sweeney Academic 7 years ago
Simplifying technology to the point that varying levels of technical people can make games is the greatest thing to ever happen to game design.
1Sign inorRegisterto rate and reply
Ruben Monteiro Engineer 7 years ago
This is nothing more than a marketing ploy to get attention. Had he made yet another talk on how awesome Unity is for your productivity, he wouldn't get much attention in sites like this now would he?
0Sign inorRegisterto rate and reply

Sign in to contribute

Need an account? Register now.