Dig Deeper into Game Development Life Cycle

Hamdani
6 min readMar 15, 2020

--

When I was in college I learn about Game Development Life Cycle (GDLC), but I did not use it properly. I think that I already use it and understand it, but after join Agate I figure it out that I do not understand it properly. I got more understanding and what needs to be focused on each phase after my senior share it to me.

Game Development Life Cycle
Game Development Life Cycle Goal

In each phase, there is a challenge that needs to be tackled, before I know about it I only treat GDLC as a sequence of a process without understanding the clear purpose for each phase and the boundaries of each phase. In my opinion, understanding each GDLC phase will help you develop your game better and even faster. When you understand the challenge that exists in each phase and able to solve it, you can iterate faster and better.

Prototype Phase

The goal of this phase is to create a prototype in a short time (as fast as possible) so we can validate our idea.

We should define what will be validated. The prototype will become a proof of concept for the game idea. Usually, we want to make sure that the game idea we want to make it fun, at this point we must focus on the game mechanics and test it as fast as possible to know that the game idea is fun or not.

We also need to be aware of any wildcard that appears when we want to validate our idea, e.g we have 2 game mechanics first is the common mechanics that everyone knows and the second is our new mechanics that not familiar yet. In this case, we want to find out which mechanics is better, so we can tell the tester about the new game mechanics so when we validate them we do not make the second game mechanics worse because the tester is not familiar with it.

To create a prototype in a short time, we need to have a boilerplate for our game (Base Architecture, Game Template, Development Framework) to make sure that we only focus on developing the game mechanics not another thing. Usually, when creating a prototype we develop it using dirty code and spaghetti code, but if we do it like this we will have to refactor it or recreate it on the production phase. And we have other tasks that are to design architecture needed for our game, but it requires robust design, extendable, easy to understand and easy to use.

I tried to create my development framework, but because I was lack of knowledge about the requirements above and did not know the goal of my development framework I can not finish it and can not plan it properly. In Unity3D you can use tools/frameworks like Zenject, UniRx, Entitas, Fungus, etc.

Production Phase

The goal of this phase is to scale into a complete game.

In this phase, you have a task to scale your game content. When you scale your game content, you will need to deal with more assets, data and also debugging your game. The challenge is you need scalable dan modular design so you can add more content freely. You need to deal with managing your resources/assets, data and debugging your game content.

You can create your asset management tools to manage your sprite, sound or you can use built-in tools like the addressable asset, asset bundle. It is important to manage your resources because this will help you scale your game and make sure you do not break anything when scale-up. Adding debug tools will be very useful in this phase, you can use tools like Ultimate Console, Mobile Console, TouchConsole tools from Unity3D asset store so you can test the game and check your game log and you can know if an error happens.

Why not using default debugging tools like log cat or log from Xcode? The log that is shown in the log cat usually comes with the device log and it requires more effort to find your game log. So when you use third-party debugging tools you can inspect your game behaviour from its console without distracted by other logs from your device.

Alpha & Beta

The goal of this phase is to prepare your game into ready to release the game.

In this phase, you want to add profitability and sustainability features. The profitability feature will bring money into your pocket, such as In-App Purchase, Advertisement, etc. You will need many third-party like UnityPurchasing, Admob, and other for profitability features.

You also want to add an analytic tool so you can inspect how is your game behaviour when a player playing it. Analytic will tell what happens with your app and your task to understand why that happens and use it to iterate and improve your game.

You can add native features such as Share, Local Notif, Push notif, etc into your game. Using local notif you can schedule it to remind the user to play again after a few times off from your game. And you can use push notif to send give to users besides using it as a notification.

But the challenge in this phase is you need to know the best practices of each feature, and how to deal with technical issues. When you using some third-party there is a chance that it can break your game so you need to know the best practice for this edge case problem.

In my daily quest, I deal with many weird technical issues when working on Agate Internal Tool. So make sure to always check the forum, third-party release note and if you want to update a third party do not directly import it into your game but import it into an empty project and try to use the feature you need.

Release

The goal in this phase is to bring your game into larger-scale users.

And your task is to add a feature that will support a large scale of users. You will need to maintain user data and customer support. Not all game will need this customer support feature, the games in Steam or PS4 does not have this kind of feature but the store usually will provide support for user complaint and feedback.

The challenge is you need to maintain the user data, store their data into the cloud to make sure that their data does not go when they play your game again, even when they uninstall your game and reinstall it one day. You will also need to handle the user complaint so your game rating will not drop because of it, you can provide a feature like chat with customer support if it’s available.

Maintain

The goal of this phase is to keep the user engage with your game.

And you need to add features to enrich your game experience. You may want to add social such as Leaderboard, Chat, Referral, and others to make your user more engage to play your game.

To do it you will need LiveOps feature to update your game event, news and the game content itself. You can have LiveOps features such as Event, News, Inbox, and Voucher. You can add an event into your game to engage your user and tell them about your event or maintenance using your News or Inbox.

Your challenge in this phase is to design based on user-centric because, in the end, the one that will use the feature is your user, not you. You can create a feature that good and easy to understand for you, but if your user does not understand it and can not use it then it will be useless.

What I tell you above is only a small part that I know, to improve your game development process you will need to learn and explore more. if you have feedback for me feel free to tell it. Thank you :)

--

--