Staring at the impossible, the empty space of potentiality you fill it up with clipped syntax and hit compile. Only to see, after several failures, the magic of dreams alive on the small screen or the tiny led bleeping. This is the joy I discovered on my C64 with basic and pursued through the years… until I lost it.
I drafted this post on the weekend and the recent events of the last 48 hours have made it’s contents more potent to me. I'm trying to bottle lightning and I hope these words capture some of my feelings.
Before I tell this tale let me say that making games is hard and there is a good reason for middleware, engines and other tools. In this last month I have written code which manipulates the framebuffer of my pebble. Dived into the Android NDK pushing a basic triangle setup. I feel more in control of the Pebble than the Android phone but it has been a thrilling side project, that I plan to continue. I want to explain a strange thought bouncing in my head about the pleasure of byte.
I get a unique pleasure from art, design and other pursuits but code has a special flavour and spice. What surprises me more is that using Unity just doesn’t fulfill that desire. I did not actually know I had lost it amidst the crazy years in the industry until a particular project came across my desk.
Well to be trueful the tale starts at an early closed door conference. Mark Cerny on stage, unboxing the PS4 at the hardware, and instruction level. It was amazing, I was angry at those in the audience glazing over because this was fascinating like nothing had been in a long time. At the time I found myself as a Technical Designer. Before my skipping into the fun world of design I had spent two degrees and thousands of hours as a programmer. Only a few of us were gobbling it up, in a room of programmers. Though my designer hat on I jumped onto the social features promised as well.
At the time I was finishing up a Wonderbook project on contract with Sony. I knew from our early alpha kits and other mumblings in the studio that a PS4 project was starting. I bugged my Technical Director and Design Director, both understanding chaps, about things I thought we needed to do for Dead Nation port. I soon found myself on the project. My remit was to design and code the features I suggested.
Diving into a new console, with an engine that was “purpose built”. Riddled with holes and built by people who just needed to get the job done. I was reading SDK docs and slinging code. It was glorious. Halfway through the project and I was having the most fun since Mere-Mortals back when I was last working on our own tech and making games. The pleasure of code was back.
Oh I had glimmers through the years but no projects which lit me up like that one. I soon left Climax seeking an engineering role inside or out of the industry. One which would let me do games on the side. I was in the middle of interview with Google, some indies, an offer from ARM but then this strange role came from left field. A job role they couldn't quite describe but whose remit was, help us make online rock for Sony titles.
Partly the vigor of that PS4 title drew me but mostly it was the people. Two in particular left me thinking this was the right choice. That and the potential of the job. This was not the coalface of code I was seeking to return to. I made the decision to join Sony, after ensuring a contract that would let me code broadly on what I want in my free time. The newness of the role, and various crazy things meant I was not coding much in my spare time.
My skin began to twitch though I had rediscovered my drug after a long separation and knew once again what it was I hungered for. Doing game jams and small side projects in Unity or Unreal was not getting me my fix. Then I embraced my lack of commercial viability, free to do what I want because I have the bills covered.
I dived into the joy of shifting bits, ripping away abstraction. The abstraction of Java, Unity or any other arbitrary system built by other wizards stole the magic moments from me. The special quality his engine, Housemarque’s and Mere-Mortals has is they are all built on a deadline. They are not trying to optimize the user experience, but instead cycles and memory. Every part is not written to be perfect, but good enough, with the understanding that any part may need replacing.
"Just like cheese with holes in it is some of the best...so are engines." - @neilogd
So I return to my cheese and my tinkering. It delivers a pleasure like nothing else. Many and varied are the pleasures of life but I have the shape of this one in my head and I grab hold.
Happy spellcasting to all my fellows, may you never lose it.