
I designed a game around the things that made me abandon my other projects
My point in making this post is to hopefully help somebody find a pathway and/or the motivation to actually bring something they love to market, despite "failures" or a tendency to "give up".
I first installed Unreal Engine in late 2023 with the goal of creating a multiplayer, match-based, base-building capture-the-flag game. At the time, I had no formal game development experience, but I did have a programming background. Since then, I’ve sunk a massive amount of time into 3 development projects that I ultimately abandoned. My fourth and current project, ALL GAS, will be my first Steam release!
Every abandoned project wasn’t a failure though. Each one taught me a limitation. Eventually, I decided to start a new project with literally one goal. Release it. Don't care what it is, the only requirement is that I finish. So, I designed a game around what I knew I could realistically finish as a solo developer by specifically avoiding what caused me to abandon my other projects. And in doing that, I actually ended up with a game that I think is really fun. Most importantly, to me it actually feels like a game, not a "project"!
Here are each of my "failures", and what I learned from them to ultimately progress forward.
Project 1 – Multiplayer base-building capture the flag
This project was literally the one that taught me how to operate Unreal Engine. Terminology, how to use certain tools, etc. Importantly, it taught me:
Animations, especially humanoid ones are an enormous amount of work for one person
Multiplayer, let alone competitive multiplayer, is an incredibly ambitious first project for a solo developer. And, it's not something you just "add later".
I spent over 500 hours building the game as if it were single-player before seriously starting to add multiplayer. I always thought I could just add multiplayer later. Reason being, I was otherwise learning extremely quickly and things were working. By the time I actually got to it though, too much of the architecture assumed everything happened locally, and the project was effectively impossible to retrofit without re-doing everything. Painful, but learned a TON from this "failure".
Project 2 – Physics-based multiplayer sports game
For my second project, I intentionally avoided animations almost entirely. In the painful process of learning replication in my last project, I at least started this one with multiplayer in mind. The gameplay revolved around physics. It was actually very fun! Hard (as designed), but fun and aesthetically unique. I even got multiplayer working across the internet and tested with a few friends.
The problem was that the physics had to be perfect across every client, or it would never work work. In single-player, everything behaved exactly as intended. In multiplayer, small differences in physics simulation caused players to see slightly different trajectories, eventually (quickly) causing the entire match to desynchronize.
Server-authoritative physics solved the accuracy problem, but it completely killed the responsiveness that made the game fun. I know there are hybrid approaches to solving this, but at the time, it was a challenge I wasn’t ready to pour more time into.
Lesson learned: if physics are the core mechanic, multiplayer makes everything exponentially harder. I also learned how difficult UI design / development / debugging can be. I understand why the UI in many games (indie and AAA) are often terrible....
Project 3 – My “dream game”
This one is still very close to my heart, and I fully intend to come back to it someday. It was a cooperative exploration game in an infinite world featuring procedural generation, massive environments, unique mechanics, and procedural puzzles. Very cool atmosphere, too.
By this point I’d figured that cooperative multiplayer would probably be much more achievable than competitive multiplayer. A few imperfections wouldn't matter all that much like it would in a competitive match-based game. But, combining multiplayer with procedural generation, large-scale worlds, complex systems, and custom movement modes eventually became more ambitious than I realized it would be. There are some systems in here that, ever since I was a kid, I always wanted to see in a game and never have. And to a surprising extent, I was even able to make them work! A lot of the issue here was that it is simply just difficult (and not particularly fun) to test multiplayer games as a solo developer on one computer. And, it's even less fun to spin up a second computer for testing. It's even less fun than that trying to run multiple instances on one computer....
After putting well over 1,000 hours into it, I made the difficult decision to shelve it—for now.
Project 4 – Something I knew I could finish from the start
Before I even came up with the idea for this project, I gave myself one goal: Finish It. I didn’t start with a genre, I started with a rule: "Avoid the two things I know will eventually burn me out". If I realistically want to finish a project:
No multiplayer.
No animations.
Those constraints eventually became ALL GAS. It's an endless traffic-weaving roguelike where you upgrade your car and modify your run as you weave through cars on a completely nuts road in the sky. The road is falling behind you and it's getting faster and faster (unless you sacrifice upgrades to slow it down). It’s a simple concept, but is extremely satisfying especially when playing with a controller. Skill is rewarded. Soon, it'll be even more fun with a steering wheel and pedals!
Ironically, by deliberately limiting myself, I’ve made more progress than I ever did trying to build my “dream game” or the idea I had which caused me to stumble into learning game development in the first place. Similarly, I've produced some pretty incredible (and re-usuable, and sellable) plugins for Unreal Engine in the process. It was nice not to be burdened by animations or multiplayer, and it really allowed me to polish the game more than I ever thought I could. Still a lot more to do, but I'm quite happy with where I have gotten in the 5 or 6 months I've been working on it.
The limited scope of the game also allowed me to gain experience around other important parts of bringing a game to market. Things I never would have bothered messing with if I had any doubt the game would ever release, but did in this case because I knew my goal was attainable this time:
- Steamworks platform - store page, review process, publishing builds, launching a playtest
- Stats, achievements, leaderboards, cloud saves
- Creating trailers / marketing assets / creating ways to record those things
- Marketing
- Full controller support, including UI navigation, glyph localization, and Steam input
- Language localization
- Building systems for future scalability
- Custom subsystems and engine modifications to support all of those things
I’m curious - has anybody else come to a similar realization? What did it ultimately take for you to launch your first project, or for that matter, even start sharing it with people?
Also - if so inclined, please feel free to join the open playtest!