Traditionally, any software development project starts with identification of goals and issues the future product is supposed to reach and resolve. Then we create a requirements specification, i.e. a step-by-step guide of what should be done to launch a functional and bug-free product. This allows us to have a certain level of predictability and works well even in the Agile environment that requires spec formalization within each project iteration.
Yet, when it comes to mobile app development company, it’s all about how to create FUN, and fun is a term that is really hard to explain. Each and everyone of us has own perception of what’s fun and what’s not, and the goal we’re trying to reach with our game is to make as many people have fun playing it as possible. Just compare the two development project goals: “our app should be used for booking hotel rooms” and “our app should be used for having fun”.
While the first one envisions a clear task, the latter sounds too abstract. In essence, a game is much closer to a movie than to any other software product: we can’t predict to user reactions until we actually launch it to the market. On the other hand, gaming is a rapidly evolving multi-billion business, and predictability is one of the critical business success factors.
So, how to prevent revenue losses and wasted marketing budgets when it comes to development of highly unpredictable products? The answer to this question makes app development differ from the rest of software development projects.
1. Early prototyping
Game development process actually has the same lifecycle as any other development project:
- Ideation
- Pre-production
- Production
- Finalization
- Launch
However, in apps development Chicago each of the above stages differs by a team structure, artifacts and development methodologies. For instance, Agile development is pretty appropriate at pre-production stage, but doesn’t work well at production stage that requires more classical methodologies such as waterfall.
Early prototyping is one of the key requirements within any game development project. Anything that raises questions or concerns should be prototyped – this is the rule of thumb! Prototyping will lower down your cost of mistake at the game launch stage. Let’s imagine we’re creating an arcade game and facing a risk of a boring combat. To make sure the combat will be thrilling enough to capture gamers, we have to complete a lot of tasks at the production stage: design a cool protagonist and a few enemies, set up a feedback loop, i.e. sound and video effects, HUD, reward system, etc. And all of this should have the quality close to that of the final product; otherwise we just won’t be able to evaluate the combat objectively. As such, early prototyping should extend to both alpha / beta versions and a soft launch.
2. Development team
A typical software development team for b2b or b2c projects is composed of:
- Product Owner
- Project Manager
- Business analysts
- UI designer
- Software engineers / mobile developers
- QA engineer and / or tester
- Architect
Of course, these roles can differ or merge within each certain team, but the structure is pretty much the same everywhere.
Yet, to develop a mobile MMO game such as Clash of Clans, you’ll need:
- Game producer or project manager
- Game designer
- UX/UI designer
- Mathematician
- 2D and 3D concept artist
- 2D and 3D animator
- Special effects artist
- Sound engineer
- Mobile developers (front-end, back-end, analytics)
- Testers
Again, depending on the game, these roles may differ or merge, but unlike other software development projects where developers make the biggest cohort, developers account for only about 20% of the game development team structure.
3. Software development culture
When it comes to game development, such practices as continuous integration, automated testing or even release control systems are not as common as in classical software development. Why? Because game development is rather a small part of the whole IT industry, and is very specific in terms of technology stack. Therefore, standard technological solutions that are used for builds automation or testing are very difficult to adapt to gaming needs. Yes, it’s possible to merge Jenkins and Unity, but it requires a lot of time, efforts and out-of-box thinking resulting in the delayed delivery.
And how else do you think game development differs from other software development projects?