|
[This is a repost from my blog, doolwind.com]
Games take a lot of time and money to create. Many companies can't afford this ever increasing drain on their resources, particularly independent game developers. Developers need to become more pragmatic in the way they developer their games. This article describes the steps we've been taking to focus on releasing a good game, in the shortest time possible.
Leverage existing technology
Game developers have a bad habit of re-inventing the wheel. The easiest way to run a game into the ground is to spend all our time creating new technology that already exists in the world. We need to swallow our pride and use technology someone else has spent time and money creating. Our core focus is making games, not game technology. Let the experts handle the technology for us.
For programmers, there are countless engines we can take advantage of from Unity3D to Torque to UDK. Project managers have access to countless tools to streamline the management process and keep them focussed on running a good team.
Learn to spend money where it's needed. Development time costs money. If a problem has an off-the-shelf solution, we compare the cost of buying this to developing the solution in-house. Nine times out of ten, it will be far cheaper to go with the former.
Aim Small
Projects always grow over time, sometimes uncontrollably. We aim to start small, and keep a keen eye out for features that can be cut, checking the cost-to-benefit ratio of everything we do. Ordering features by this ratio and cutting features from the bottom of the list when time runs out.
Feature creep is a killer on projects of all sizes. By keeping milestones short we minimize the opportunities for us to diverge too far from our main goal. If a feature grows in complexity beyond the scope of the initial design we take a step back and re-evaluate whether that feature is necessary given the new estimate on how long it will take to complete.
Build what you need, not what you think you need
Too many developers spend months working on the technology for their next game before starting the game itself. Sometimes, they never make it to developing the game! The most pragmatic solution to this is using someone else's engine. However, if we must create our own technology then we only create what we need right now.
A trap many developers fall into is thinking "we'll be using this feature in the next five games, so it's worth putting a lot of time into it now". If we do this for all our features, we won't create our first game, let alone the next five. My rule is that I don't have enough information to make a generalised solution until I've implemented it at least a couple of times.
A great way of achieving these goals is adopting an agile development practice. We are using Scrum for our current game which helps to keep us focussed on creating just enough to reach each sprint/milestone.
It's done when people are happy to pay for it
A game is never going to be perfect. I'm not advocating the release of buggy, broken games, but we do need to be practical when deciding whether our game is ready for release. Creating constant playable builds is the best way to make sure the game is always fun and always meets a pre-determined quality bar set by the team.
It's easy to fall into the trap of not wanting to release the game until it's perfect. After working on a game for months or years, it feels like your baby and you don't want it out in the real world before it's ready. Being pragmatic means making the tough decision of deciding when the time is right to release the game even if you're not 100% happy with it.
It is often better to cut a feature to give time to polish the existing gameplay which leads me to my next point...
"We'll do that in version 2"
Release early and release often. The best way to break the hit-driven nature of the games industry is to break the usual tradition of a big release with minimal updates after. Plan to give away free (or cheap) "expansions" of core gameplay pushing the development of these features back until after initial release. This has a number of key benefits:
- Begin to earn revenue sooner
- Drive the initial cost of the game down by releasing additional content in a paid or subscription format (e.g. DLC, in-game assets)
- Valuable feedback on the direction to take the game
- Focus on the bare minimum set of features to sell the game, minimizing feature creep
- Form a closer relationship with gamers by giving them constant updates
Use the highest level of abstraction possible
The higher the level of abstraction, the more time can be spent working on the game, rather than working on technology. We are happy to give up some of the control over run-time performance for an increase in development speed. Programmers can use a programming language like C# allowing them to spend time making a fun game, rather than managing memory and resources. Artists can use a tool like ZBrush to create good looking models more easily and quickly.
Automate
Any repetitive day-to-day tasks should be automated by technology. From build creation to the art pipeline. We keep our time focussed on making a better game, not performing menial, repetitive tasks. Programmers need to get in the mindset of spending a few hours per week working on tools to make everyone's life better. A programmer spending a few hours adding a new tool or updating an existing one can save weeks of work for the rest of the team. Artists can learn batch operations in 3DSMax and Photoshop to help this process
Conclusion
This gives an insight into the ways we are being pragmatic in the development of our game. By constantly focussing on the final product we make sure our time is spent on the most important tasks at all time.
How pragmatic are you in game development? Do you have any other tips for minimizing cost and time?
|
"Leverage existing technology"
"Build what you need, not what you think you need"
This is probably the biggest way to save time and costs but it probably needs to be done in relationship with "Aim Small". If you're wanting to innovate, maybe build a simple game to prove the bigger game's core gameplay concepts will work first. If you achieve success with that and get funding from it, then you can aim bigger, developing your own technology. For example, Blizzard did so well with creating the Warcraft II RTS game that they could aim bigger with an MMO when the opportunity presented itself.
"Aim Small"
"We'll do that in version 2"
This is something I've been thinking about a lot lately as well. For example, look at CCP with regards to the creation of EVE Online and how they are expanding the aspects of the game over time. For example, at launch, planets were just locations where stations were located. In the future, planetary control will become an important aspect of EVE and people will be able to wage battles upon them (via their newly announced console title). Can other studios learn from these examples? Can they build basic gameplay dynamics in at the start and then over time, expand upon the complexities of these basic components? Simply put, this is how ecosystems and complex systems are created. The complexity would be impossible to create in one shot, so they start small and layers / relationships are built up over time. It similar to how CCP utilized lawless frontier spaces to slowly build up the complexities of players controlling the world.
"It's done when people are happy to pay for it"
Focus on your core game experience and perfect that first. Too many games, especially MMOs, try to focus on too many things at once, thus not achieving any one thing well. If the game's core is PvP, then ensure the core basic gameplay experience is enjoyable and has a lot of high replay value before releasing it. If people get bored of it in a couple of weeks, then you're in trouble. Forget about dangling carrot rewards (i.e. gear) and just focus on the actually PvP combat experience itself. One the core foundation is laid and is an enjoyable experience then you can launch. Then start adding layers of complexity to it afterwards, as well as carrot rewards. Again if the foundation isn't solid, people will always have issues with it, no matter what you add to the game afterwards (i.e. new classes, content, etc).
"Automate"
Read on MMORPG.com that the Global Agenda team creates a new build every day and tests it every day. That's pretty amazing, as it lets them easily see and address gameplay and development issues on the fly.
- Stop developing software like it's 1996.
I totally agree.
Try to create latest version. It is marketable nowadays.