Across the games development process, often taking the best decision means going the more testing route.
Many smaller studios, however, might balk at the idea of building their own complete game engine, especially when the major providers remain locked in a battle over accessibility and affordability.
Nevertheless, a band of plucky indies and microstudios is doing just that, constructing their own game engines. Some do so by stitiching together existing free, open-source tools and middleware with smart programming. Others even construct the entire game engine from scratch.
One such team is The Quadsphere, the studio behind action titles such as shmup Icarus-X and racer FMX Riders. Nicholas Sevez is the outfit’s founder and developer, and strangely enough, he speaks highly of the current state of provided game engines.
“Modern engines have lowered the barriers to entry in development to unprecedented levels,” suggests Sevez.
“They are incredibly complete feature-wise, and layman-friendly, notably with visual scripting. Nowadays it’s not unreasonable to ship a finished product with no low-level programmers involved.”
He continues: “While this is certainly appealing to non-programming devs, I can’t help but feel my core skills are underused, and this kills the fun of development and makes the whole endeavour less rewarding.”
It’s a sentiment echoed at numerous teams building their own game engines. Programmers, for better or for worse, are commonly devotees to their craft, and if ever there was a place to apply that craft, it is building new tools and ultimately a game engine. Sevez and many of his contemporaries remember a time when such programmers led innovation, establishing technology as they made games; names like Tim Sweeney and John Carmark, who stood as revolutionaries in the GPU uprising.
But what about the other, more pragmatic reasons for a small team to shun convention and build their own game engine?
For some, it can be a simple matter of cost. Before Young Horses made its name with Octodad, the team were students with an idea about a paternal cephalopod. The likes of Unity and Unreal Engine were, in 2010, out of their price range, so they conceived a way to reduce the engine cost absolutely.
“We chose to use an open source rendering engine called Irrlicht and also integrated PhysX for physics and FMOD for audio,” explains Kevin Geisler, programmer and producer at Young Horses. “This allowed us to minimise our upfront costs to $0. We also used WinForms and other assorted open-source C# projects to build a scene editor on top of our [game] engine.”
For others, creative distinction is an equally motivating factor. When Spaces of Play began their unusual naturalist adventure Future Unfolding, they set their sights on capturing the look of Impressionist paintings, and they were convinced commercially available complete game engines wouldn’t do their game justice.
“Rather than to shoehorn our art style into an existing engine and risk compromising it, it made much more sense for us to build exactly the tech we need to match the vision we had for Future Unfolding,” offers Spaces of Play’s business and development team member Andreas Zecher.
The team went to work writing an internal framework in C/C++ using SDL2 and OpenGL. Spaces of Play has added a dash of FMOD, and adopted the open-source FreeType 2 text rendering library, and for now, they aren’t looking back. Zecher is confident their game engine offers powerful, efficient porting; a feature normally deemed a reason to pick a full solution off the shelf.
Engineering an engine
Sean Lindskog was motivated to build an engine from free, largely open-source middleware for many of the reasons above. The Firedance Games lead developer wanted something to offer him an affordable canvas for distinct creations, both for his space opera Salvation Prophecy, and an unannounced title. But that wasn’t the only reason Firedance decided against a full commercial game engine.
“At a more fundamental level, I wanted to fully understand the technology I was using,” says Lindskog. “Building the engine yourself will teach you this.
He adds: “There’s a massive educational value. Also, you aren’t trapped in the ‘sandbox’ of how another company’s engine is designed to work.”
Another developer that also embraced making a custom engine, in part because of the benefits of the experience of creating it, is Eddie Lee. He is founder at Funktronic Labs, which built an engine from scratch for various projects, including the in-development sci-fi turn-based adventure Nova-111.
“The biggest advantage we have with using our own engine is that we have complete control of its implementation,” states Lee. “Rather than being constrained within the limitations of any existing middleware or engine, we are pretty much free to implement what we want and experiment however we want. Oftentimes, established engines are very refined but it comes at a cost of being limited to its feature-set.”
There are ample reasons to opt for making your own full game engine then, whether from scratch or using a collection of specialist tools. But how to broadly approach the undertaking?
“C++ and OpenGL are the obvious tools for the task,” recommends The Quadsphere’s Sevez. “Although Microsoft requires you to use DirectX if you want to target Xbox, C/C++ and OpenGL are typically available on all modern gaming platforms.”
He later adds: “While the whole of the task is daunting, starting with a minimalist implementation – exporting and displaying meshes – and progressively adding features – lights, skinned meshes, scripting, etcetera –worked well for me.”
For Firedance Game’s Lindskog, meanwhile, it’s a matter of starting with your game.
“First, you need to flesh out the basic design of your game,” he suggests. “Then you look at what tech you’ll need to build it.”
Lindskog is also a proponent of using existing open-source tools.
“Some game tech is pretty standardised – unless you’re doing something weird," he says. "Stuff like audio and physics. So I wouldn’t waste my time re-writing that.
“I look for open source middleware first. Having open source code empowers you to change features, find problems and fix bugs yourself. If nothing’s available, I’ll consider closed source. And finally, I write any tech myself which involves unique gameplay, or if no other good solutions are available.”
Sometimes, of course, accepting a full external game engine is the right choice for your project if it’s is better for the game, the studio and the staff.
Ali Motisi is director of OutOfTheBit, a prolific app developer that with a team of just six has made numerous games using its own AppPipe C++ custom engine, motivated by the idea of remaining independent from underlying platform technology. The team also crafted a vector graphics engine of their own they named Stork, which OutOfTheBit used in its iOS game Anima.
When middleware matters
The studio continues to focus on its own technology, but that doesn’t mean Motisi would recommend the approach for everyone.
“It really depends on the game you are trying to make,” he says, on the matter of choosing to construct your own game engine. “If you are trying to build a cross-platform game with pretty standard 3D visuals, then Unity or other pre-made engines could give you a leg up. If, on the other end, you’d like to experiment with a custom graphic style or specific audio techniques then you may find yourself fighting against the engine.”
Motisi also admits that while building AppPipe was easier than they had imagined, it remains remarkably hard work.
It’s a sentiment shared by Firedance’s Lindskog, who spells it out utterly simply.
“Creating a custom engine is a gigantic steaming crap ton of work,” he concludes. “You need to have the right skills, and a lot more time.”
Custom game engines, then, are not for everyone, but for the right team, working on a distinct game, constructing a custom engine is far from impossible. It’s a chance to hone skills and an opportunity for programmers to prove their salts. Whether spun from assorted technology or built entirely in-house, custom game engines offer an opportunity to maintain ultimate control.
They may leave you without support, without a user community and without anybody else to blame, but for many, custom engines remain the only way to go.
For all the news straight to your inbox, sign up to the Develop Daily.