[This article originally appeared at industrygamers.com]
written by James Brightman
Maximize Your Investment
There are a ton of decisions to make when choosing a middleware provider. What other titles have used this middleware? Were they successful? Could I build this tech myself? Will it work with my internal tech?
After the smoke clears and you’ve decided on which engine to use, you face the challenge of getting the most out of your investment in order to maximize the technology's abilities because, well, let’s face it—middleware is great and can reduce development costs and time by providing you working solutions for problems you don’t have to solve on your own – if you use it properly.
Here are 10 tips for getting the most from your middleware so you can focus your creative energy on content, gameplay and innovative storylines. These were compiled by Emergent Game Technologies, the folks behind the Gamebryo LightSpeed development tech, with input from two of the members of Emergent’s development community WhiteMoon Dreams and Killspace Entertainment.
Utilize Your Partner and Provider
Middleware isn’t just about the code. You can go get code on the internet. In fact, here’s a link for another engine: http://www.ogre3d.org/. When you’re buying middleware for a commercial product, however, you’re also buying a relationship with the engine maker that includes help when that milestone comes up, timely upgrades to new DirectX or console SDKs, and direct input into future feature development. At this stage of the evolution of the industry you need to understand the middleware provider is your partner. You are buying a relationship with the game engine maker. Are they focused on your needs as well as your own studio? Use this relationship to get the most out of your tech investment by talking to the experts who know the product best, letting them know what types of challenges you are facing and what support you might need.
Think Long Term Investment
Don’t recreate the wheel with every new game. It may seem obvious, but this is the fundamental concern. Developers should focus on creating unique, innovative games that can compete in the marketplace. Find a flexible engine that will fit your studio’s roadmap, to extend the team’s experience from building only one game on the engine to using the tech for every subsequent project. Even if you could build the technology yourself for the same price (which is highly unlikely), you are spending that time on technology that doesn’t make your game stand out amongst the competition. Investing in the right product, and getting to know it to build your studio around it gives your studio an agile, competitive edge to keep up with industry trends in the highly competitive marketplace.
Keep Open Communication With the Provider
Know the product roadmap and if you want a new feature in the engine – tell them! A good middleware relationship allows you to provide input for future development. Likewise, you can share non-proprietary tech with the engine provider. You’re going to build extensions to the middleware that are specific to your title. But if they’re not proprietary, why not share them and have them wrapped back in to the engine, so they can bear the burden of support, rather than you. Feeding back technology to the source repository helps to ensure you don’t end up with branched code and you maintain compatibility without having to build redundant technology over and over.
Be Willing to Turn Down Updates
You’ve paid for support and maintenance; you should take all the upgrades, right? Not exactly. At some point in your project, the cost of increased risk in your product will begin to outweigh the new features that come with another version of your middleware. At that point, you need to cease taking updates or branch that middleware internally. Be sure, even after that point, to communicate your changes back to the middleware provider so if appropriate those changes can be changed in future versions. Tip #4 should be continued here – keep communication flowing! Remember that the middleware provider is your partner, not a vendor. There may be a critical bugfix you need from your middleware partner that didn’t make it into the version you’re using. See the next point because if you don’t have source, you’ve got a problem here...
Get the Source Code
Some middleware—particularly if it’s small or built on an extremely proprietary algorithm—will not come with source. However, most will, and you should get it. If you don’t have source, you aren’t going to be able to push your creative vision to its extreme. Even if you have no intention of modifying that source, being able to debug into it and definitively pinpoint bugs is invaluable.
Leverage the Support and Training Offered by Your Middleware Partner
Involve all the constituents who'll be using it in getting support and training on the engine. If the engineers like the code, but the designers' and artists' workflows are a train-wreck, or, conversely, if the tools are slick but the underlying code is a mess, it won't really help you. Make sure you understand the product’s full extensibility and modularity and use it to fit in with your goals. If everyone knows the code inside and out it will streamline the process for everyone and make for a happier team!
Be in Touch With the Community!
It’s inevitable that something will go wrong. There may be a bug, or you may be using it wrong. Either way, you need to get it fixed to meet that publisher milestone. Solid documentation and educational samples are a must, but look for good developer support beyond that. Online forums aren’t enough. Look for things like robust, searchable documentation, an online wiki, documented or video tutorials for tasks like creating triggers or adding gameplay logic, implementing the middleware in your production pipeline, and so on. Support the community, put your questions up there and put your answers up there. By supporting and participating in the community your build a robust environment that will ultimately benefit you and the product you continue with.
Middleware + Middleware + Your Tech
Be sure your middleware plays nice with others, meaning partner tech. Much like your build and content pipeline, there’s a way that things get done at runtime. If you’re integrating middleware into existing technology, the middleware has to get along with your technology. Middleware should support pluggable allocation, file I/O, and other resource strategies. Double check that your middleware provider support infrastructure includes helping you work through integration of your own tools and other middleware. This is another place where a hidden cost can arise as you must rework either your code or the middleware to play nice.
Remember: It's Not a Game in a Box
Sometimes a little upfront work will pay massive dividends in the backend. You can’t install a game engine, and click a “make game button” – and that’s a good thing. Middleware is not “your game in a box” – if it was, everyone would be making your game. Good middleware is a framework that saves you from starting at 0% -- saving you months or development-years of effort. You’re still going to need to modify it for your genre, your title, and your studio. You’re still going to need to create game assets, and feed them through a production pipeline. But having a solid foundation that works with your internal tech and is flexible enough for your entire team to work with is an investment that you’ll reap for years to come. Not only look at out of the box, but look at middle of project, iteration, validity of code to be ready for shipment – all stages of your project need to be focused on when you’re looking at middleware and how to use it.