Hi there. You probably don't know me yet (and that can be forgiven), but I go by Michael. I'm the president of Blue Booth Studios Inc. a company that plans on transforming the face of the gaming industry, one bit at a time. If that sounds vague, over-reaching, and stupid, you may be partially correct, but rest assured, we have a solid plan for doing so. Part of that plan involves reaching out and sharing our experiences with those interested in the gaming industry.
So I'd like to share with you my thoughts and experiences with game engines. Game engines are strange because there are far too many, and yet when it comes to designing our own product, it feels like there are far too few. Thanks to "Unity 2D", it looks as though 2D developers finally have a viable option apart from XNA (which was arguably more framework than game engine). 3D developers have a much wider range of options.
So, what are you, as a designer, going to do? Utilize an engine that may handicap your features, or design your own? We opted to design our own, and it was a mistake. Don't get me wrong, it was a mistake that taught me a huge amount about game programming, but it was also expensive in terms of time lost. We ended up abandoning our engine part-way through - it had potential, but I still lacked the experience to create a properly OO, decoupled design with sufficient quality assurance to ensure it's stability on a multitude of platforms.
The reason was simple. I didn't care. I want to create an amazing game, but does that mean I need to provide better line of sight processing algorithms than engines already available? What about shadow-casting methods? I don't care. I want something that works, today, and I can worry about tweaking it later. I don't need to design my own particle system, and unless that's what I'm particularly good at, how do I stand to benefit by doing so? Can I justify the initial and maintenance costs of doing so?
We decided to go with Unity. That has meant learning a new engine design and fitting our completed work into place, but now I have a solid test-bed to prototype on, I have shadows and ray-casting, line-of-sight algorithms and particle systems. This frees me up to focus on what matters most to our particular product, and avoid weeks if not months of slogging through issues like transparency and culling. There is no simple answer, and I know adopting an engine has both pros and cons, but for me, putting my pride aside was the best productivity choice I could have made.
What are your thoughts? Has creating your own engine worked well for you, and why?