A Very Valuable Lesson
I learned a very valuable lesson this weekend – if I want to make games, I should probably make games.
For the last year or so (Jesus, that’s a long time) I’ve been messing around with what I’ve been calling cldECS. It’s a framework in C++ for creating programs using the Entity-Component-System method. It’s pretty simple, but it works well enough. Originally I wanted to use this framework to build a 2D game engine to make stuff with.
Goddamn, did I bite off more than I could chew.
In that time, all I’ve done is made a few little programs that put some text to the screen, and one that had some bouncing sprites. But nothing came close to the complexity that is even a simple game engine. Nothing.
On the last day of BGSJAM 3 I was messing around with some more advanced features I knew I’d need in a simple engine (serialization, JSON library integration, that sort of thing) and I realized two things:
- The level of stress I was getting just trying to get a simple library to do what I wanted was something I didn’t want to deal with
- I was dooming myself to spend more time reinventing the wheel (badly) than making an actual game
I want to make games. I really do. But a little voice in my head keeps saying “dude, you gotta do it from scratch, that’s the only real way to make a game.” And that’s bullshit. This is the part where I tell you why.
Why It’s Bullshit
There are SO MANY GAMES out there that are made in things like Unity or GameMaker. SO MANY. Games that I love, even! Hotline Miami. Fotonica. Super Crate Box. Thomas Was Alone. Shadowrun Returns. Superhot. I mean, why WOULDN’T I want to make a game using one of these engines? Clearly they’re beefy enough to make games I would want to both make and play.
“Well,” says my brain, “don’t you think you’re smart enough to spin your own solution? What are you, an idiot or something?” Yes, I am an idiot. For thinking that I should try to make something as ridiculously complex as an engine right now. I’m by no means a great programmer. I’m not even a very good one. And that’s okay.
I think that’s the hardest part I’ve had trying to use other engines like Unity in the past. A part of me tells me I’m somehow failing by using an engine or solution I didn’t create myself. And that, quite frankly, is fucking insanity. When someone has created an engine that better, easier to use, and more supported than anything I could make on my own, why the hell wouldn’t I use it? Because of my pride? Fucking please. I gotta get over that shit and just make rad stuff.
I’m gonna do the unthinkable – blank my desktop harddrive and make it purely a Windows machine. Don’t get me wrong, I still love Linux. But I want to work in Unity, which means it’s Windows time. And having that be my sole OS will make it that much easier for me to get into dev mode (much like booting straight into Linux has had me doing way more C++ coding lately).
Sooooo, yeah. TL;DR, I’m getting back into Unity. Again. Let’s hope for some rad stuff.