Bingo game with story and decoration
While the story metagames with decoration become more popular there are still several core genres that have no meta yet. Match3, collapse, solitaire, and hidden objects were overloaded with leaders, while the niches like bingos and crosswords still were free.
After a short analysis of current genres, we got the challenge to build a Bingo game with a story metagame.
Service type: full-circle game development
Technology tool: Unity, NodeJS
Platforms: Android, IOS, Amazon, WebGL
Challenge: We needed to produce a high-content project in terms of 8 months with high performance and optimization
The casual audience is very sensitive to loading time, download size, and battery lifetime. We decided to make a story with a decoration game that includes tons of art content.
Challenges we met:
- Tons of decorations and customizations need to implement in the game
- Making a story requires special tools for game designers that will allow them to make a story without a development team
- The engine should have two different modules: core game Bingo and metagame that allow us to change core for another one in strategy reasons
- The game should load/launch no longer than competitors games
- Performance of our game should be within permissible limits
- As competitors bingo games have different game modes and our Bingo needs a system for external modules to download it into the game on demand
- Launch product with a limited team in fast terms
- Bingo was a new genre for the team and it was challenging for monetization reasons
The close collaboration of the technical team and technical artists team prepared flexible architecture for the scalable engine. To make such a product the main thing is in managing resources to make a memory, render, updates works only if they need to.
It has separated core and metagame engines so it could work as different modules and be integrated with other engines. But there are several places that should work on both engines: GUI (you can get notification windows, open bank window, etc), rewards (you get rewards in bingo finish screen and in the metagame for a daily bonus, friends, packages, etc.), ADs, etc. These functionalities also have a modular structure.
The technical tool based on Unity’s actions was prepared by the dev team in the first months. It allows game designers to add/remove characters, launch dialogs, run animations, run post-effects and black screens, move the camera, etc. In this case, all the actions in the game look like a sequence of actions.
At this step, it is necessary to organize art resources in the project:
- Pack all the location art to separate atlases by episodes. It would help avoid uploading unused art to the memory
- Set up groups for all the content to manage resources in the project and memory
- Solve layering in the scene according to atlases and art position to decrease draw calls
To speed up loading time there were provided several basement things to the pipeline:
- While there are tons of customizations based on prefabs with VFX, animations, art, the scene size becomes bigger. Unity addressable allows to upload and unload prefabs needed for current stages of the scene
- Optimization of art size to camera view and make it as smaller as possible to make fewer atlases in the projects. For this reason, constructors were used for big buildings and unity sprites tiling
Performance increasing cases:
- Optimized all the character’s skin information. One or two bones per vertex used in different cases. It’s hard for mobile devices to work with heavy skinmeshes.
- Worked on draw calls in the main scene by dividing scenes into zones. Each zone is like a layer of art from one atlas that makes the render process much faster
- To make the waypoint system for characters works well with the layered scene was made XY oriented waypoints asset. In this case, the length between two points for a character speed algorithm calculated in the XY plane instead of XYZ. This allows us to put waypoints in different Z coordinates
- To get rid of many ground tiles we made a 3D landscape and prepared a shader that mixed textures by vertex color values
Soft launch after 8 months from the start
High-performance build with launch time close to competitors without metagame.
All the storytelling can be produced by a non-technical team.
It would take up to 2 months to change the core game on another one (like hidden objects)
- The flexible architecture allows changing metagame or core in business strategy or scaling reasons
- External event system download new events from the server
- The high-optimized product launched on weak devices and decrease users drop on the first launch of the game
- Decrease time of development allows us to get the first metrics of the project
- Easy LiveOps process