My Journey as Tech Lead : Creating Module Integrator (Part 6)

Wafi Harowa
Kolektif Gamedev
Published in
4 min readMar 8, 2020

This article is part of my series “My Journey as Tech Lead” where I share my experience as Tech Lead on creating technical foundation for my team. What kind of challenge I have to solve and my thought process to solve them.

You can follow this series from the start by going into the link below.
My Journey as Tech Lead (Part 1)

A quick summary for previous article, our long goal is to create a profitable and sustainable Casual Mobile Game. Our short goal is to release multiple small scale game in the first 3 month.

My work plan for the first 3 month is as follow :

  1. Create Project Standardization at the start of development
  2. Create Game Systems during first month
  3. Create Game Feature during second month

Now that we have standardized project structure and workflow, we can move on to the second and third goal : Creating Game System and Game Feature.

First, we need to define what kind of Game Systems and Game Feature is required before we can release the game.

The list is as follow :

Game Systems

  1. Resource Management : system to manage Asset, Audio, and String
  2. Data Management : system to manage Game Database and Player Data
  3. Debugging Tools : Debug Console and Cheat Tools

Game Feature

  1. Monetization Scheme : In-Game Advertisement and In-App Purchasing
  2. Iteration Tool : Analytics, Remote Config (for A/B testing)
  3. Native Feature : Local Notification, Push Notification, Share Image

For simpler use, I need to give each module a name and description.

  1. Asset : Manage dynamic image assets
  2. Audio : Manage audio usage (Load, Play, Stop, etc)
  3. Localization : Manage string and language
  4. Database : Export and process text database
  5. User Data : Manage Save and Load player progress data
  6. Debug : Provide debug console and cheat tools
  7. Purchasing : Provide In App Purchasing mechanism
  8. Advertisement : Provide In-Game Advertisement
  9. Analytic : Provide capability to track game data
  10. Remote Config : Provide capability to change game config from server, to be used with A/B testing
  11. Notification : Provide local notification and push notification capability
  12. Share : Provide capability to share multimedia to social media app

Because we are running multiple product line simultaneously, our plan is for me to create ready-to-use game module for Game Systems and Game Feature, so the other programmer can focus on implementing game mechanic.

In short, I need to create a Module Integrator system where I can create a module and allow the team to integrate it into their game easily.

The requirement for Module Integrator System is as follow :

  1. Modular. Every module must be independent with each other. One team might need both Advertisement and Purchasing, while the other only need Advertisement.
  2. Customizable. This means that every module can be customized to follow game needs. Asset and Audio data is different for each game, even when they use the same system. Each game also use different vendor id for Analytics and Advertisement.
  3. Flexible. This means that we can choose which third party vendor we want to use, and we can change them as needed. For example, we might want to change our analytic vendor from Game Analytic into Firebase.

With the requirement in mind, I visualize what kind of Module Integrator System I want to make.

My vision of it is like a Self Assembling Lego Brick.

Imagine a LEGO brick but automatic.

It is like LEGO brick, where we can freely choose which brick we want to use, and we can connect it with other brick. But, unlike LEGO brick that must be connected manually, this one automatically connect with each other.

microbot in Big Hero 6

Kinda like how microbot in Big Hero 6 works where it automatically connect with other microbot.

Let say I want to have an Advertisement feature using Admob. I can simply add Advertisement Module and Admob Module, and they both instantly connect with each other and work seamlessly.

Or if I have Advertisement Module and Analytic Module, it will automatically provide an extra feature where it automatically send Advertisement Analytic Data into Analytic Server.

That way, If I want to change Advertisement from using Admob into using Facebook Ad, I can simply remove Admob Module and add Facebook Module, and the Advertisement Module automatically redirect the connection into Facebook Ad

In the next article, I will talk about the process of designing and implementing the self assembling module integrator system. Be sure to stay tuned !

You can read the next part here :
My Journey as Tech Lead : Designing a Self Assembling Module Integrator (Part 7)

--

--

Wafi Harowa
Kolektif Gamedev

Curious about a lot of things, and never shy away from asking question