Indie Game Dev Tip #2 – Build Games, Not Technology
Today we’re going to talk about something that’s really close to my heart because I made this mistake along with millions of other game developers all over the planet. And that’s the concept of building an engine instead of building a damn game. Here’s what I mean by that. A lot of developers these days use Unity and Construct and all these other fantastic beautiful little tools.
When I started I wanted to build this game called Echo One and it was a game my friend and I were working on. The idea was, you would have a little tank and the tank would have a shield on the back and you would have to rotate the cannon using the mouse to reflect things off of the shield or you could shoot with the cannons.
It was a trade-off between offense and defense and I liked the idea a lot. We started building it and I built this basic little dude moving around. I decided that I want to just build out this engine, I want to learn this stuff, I want to build this whole thing. So, we had ideas going back and forth. He wanted to design levels but all levels were programs so he couldn’t really design it. He was just doing the art with me. I built this whole level editor thing for him so he could draw tiles and stuff as well as set up levels and little obstacles and place enemies… Then I realized, “Okay I don’t have all the enemies designed and stuff.”
Then I built this whole program to build enemies where you can import the frames, set the stats, set the projectile, and channel this stuff. I then realized, “Okay, now the engine needs to be able to import all this stuff and just read it. I don’t want to manually click and import something new every time I just want it to work.” I had to go back into the engine and code all this stuff to import from the level editor and the enemy creator thing.
I went from trying to make a stupid little top-down game about a tank, to building out a whole suite of tools that literally could have been their own like game maker tool set! It was like a top-down game creator at that point. It took me months to build that whole shit. I got so deep into it that I was like, “I don’t want to do this anymore!” And I just quit the whole project.
Every once in a while I open it up because I’m really proud of the level editor. It’s based on DirectX so it’s outdated now because I wrote it on Windows XP. It’s not even useful anymore and every time I try to run it I have to install some old shit. That is a perfect example of why you should build games, not technology.
You can never go wrong with technology. There’s always another feature to add, another thing to do and build. If you’re trying to build your own, I understand that. I’ve been there. I understand the desire for the technical feat of building an engine. However, nowadays it’s not necessary. So many tools out there have all that stuff for you. There’s no benefit to building it yourself.
The only benefit is on a large scale. For example, I love Construct 2. It’s one of my favorite tools ever. Construct 2 is amazing. Let’s say I want to make a platformer. I can prototype a platformer in literally under 10 minutes. Any idea I can think of, 10-20 minutes, I have a platform of running. I have the entire engine running. I can then mess with the actual stuff specific to my game. I don’t got to worry about all the little details.
Why would I spend all that time in JavaScript or HTML 5 or all coding when I can just go into Construct 2 and prototype the shit out? It is unnecessary to build technology these days, it really is. The amount of shit you can do with Unity or Construct or any of these tools is unlimited. These tools are amazing and they’re miles beyond what we had just a few short years ago. DO NOT BUILD TECHNOLOGY, BUILD A GAME.
The second reason for all of this besides just the technicality or ease of use, is actually the motivation side.
I abandon my entire project because I wanted to build the technology and not the game. If I had focused on the game, I probably would have finished it. I could have finished my first game 10 years ago because it was a small top-down project. The scope was nice and tight, it was it was easy to do. It was just a top-down platformer with a little tank. I could have finished that shit had I not gone beyond and tried to build this whole suite of technology and tool sets and engine and all this stuff.
That’s the reason I quit. I made it way more complex than it should have been. Many new developers tend to make things more complex than they need to be. I really prided myself in the fact that I wasn’t using one of the engines because I started on this thing called FPS creator, and that was cool. I can make FPS games by just dragging and dropping. When I started making actual games coding, it was a point of pride for me. I don’t use those point click ones because mine’s cooler. I’m a better programmer than you, I know more shit.
It was this weird ego thing for me. I did it because it was harder. But you know what? In the game industry none of that shit matters. Nobody cares how you made your game, literally. If you make a fun game, that’s all they care about. They don’t give a shit how you made it. It’s completely irrelevant.
The only advantage to building your own technology is speed. And the only place that speed even comes in is after your game is successful. For example, the mobile game Color Switch was built with Build Box. I appreciate the fact that if that game was wrapped in a game maker, it would be a lot slower than a native app. I know the guy ended up building a native version of it, and he keeps the native version because of the speed.
You don’t need to do all the hard work in the beginning. You can build with whatever tools you know, have, or want to use. You don’t have to start with this big technical challenging achievement. I guarantee you that the number one thing that’s going to happen is you’re just going to quit. It’s too big of a project to ever take on by yourself.
Build games not technology. Focus on the game. Spend as much time as you need on that little piece of a playable game and build it. Don’t worry about the menu system or the technology or building all these functions so they work together. That’s all optimization. You can get by without optimization in the beginning.
You want to build the core of the game as soon as you possibly can. That will keep you motivated for the rest of the game. If you spend large amounts of time on dark work, if you code for a long time and you don’t see these things, you don’t see any visual representation of things you’re making, it’s going to demotivating you. It always does. In every aspect of life it is demotivating, I guarantee you.
Focus on building the game, the core of the game. Focus on that and then build on top of it. It’s such a better way to run everything, I guarantee you.
I hope that I got through. You should focus on games not technology. That’s my thought for today. If you have any thoughts on this, please leave a comment below.