Despite my good buddy Brian M to the Rae being a Unity expert, i have undergone the task of downloading Unity for the first time. Which sparked a question… Should one use a shaky propriety engine or proven feature-rich middleware? This question has come up many times at the studios i used to work with as well as some of the companies i used to consult with. Most of the time the right answer is middleware, but i figured it’d be worth thought or two.
Do you need to optimize your game experience?
Here is the obvious one, if you are making a game that requires something that the middleware solution doesn’t do, you either invest the time it takes to bend the middleware to your will, or you have to go with something you hand roll. What could this be? these engines can do everything right? Well, i have to say they get more and more impressive. However if you are on the leading edge of some voxel or raytracing technology for example, you might not find it suitable to your needs. But you will miss out on a lot of the handholding that the middleware hides from you.
Do you want to be a first mover?
“you want boat?” Ok, this one is tricky, if you want to be a pioneer on a platform, it can take awhile for some of the middleware providers to jump onboard. How long? usually long enough for them to evaluate whether or not a platform will be important. ( somewhat proportional to the number of requests they get from their devs. ) But if you want to zig when the industry is zag’ing, then it would be hard to do if you have to follow the lead of the industry because of your middleware choice.
Do you need the time upfront or on the backend?
This really only comes into play if you are using a middleware you aren’t fluent in. But many times the middleware solutions are great and very easy to set up the “quick and dirty” implementation of things, however getting the final approach rock solid can sometimes be challenging. Where an engine you understand thoroughly because you have access to the source code and you wrote it, can sometimes be easier to debug and to understand how to implement features in a robust fashion. If you are making a choice between some new technology someone else wrote, or some new technology you wrote, then i would evaluate how important it is to have something functional quick, vs. something flexible at the end of the development.
Is there any value to this propriety engine?
Can’t sell something you don’t own. Just taking a step back and looking at the big picture, is there value in anything you’ve created? The good news is that most middleware companies are offering shops for people to create / sell their own modules within the middleware’s framework. This is a great way to get best of both worlds. This doesn’t have to be a realtime engine, it could be some special tools or offline processing. But again, if selling your studio some day is a goal, then proprietary tools and engines might be one piece to that puzzle beyond just a successful portfolio.
Middleware is the right solution 19/20 times. I don’t usually advocate creating your own engine. I would just say that it CAN be a viable business approach, especially for cavemen like me who hate putting control into other peoples hands…