Create and decorate your Bingo ranch playing marvelous Bingo: Love in Montana board game. Use bingo cards, original boosters, earn lucky numbers and win Bingo. You get the opportunity to decorate the house as you like, to renovate the garden and make the whole place ideal for your characters. Playing Bingo: Love in Montana you improve your design skills in furniture, plants and flowers, general landscape
Bingo: Love in Montana is a unique board game that combines adventure and love story. No matter how old you are, what movies and books you prefer, this game will capture you! Do not waste time on searching for other bingo games! You have found your favorite one!
Our Contribution to This Game
Challenges & Goals
“Bingo: Love in Montana” is a story and decoration game with tones of art content. But as we know, casual games’ audience is susceptible to loading time, download size, and battery lifetime. So, there were several issues to tackle and goals to achieve:
- Tons of decorations and customizations that we needed 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 modules: core game Bingo and metagame, allowing us to use metagame for different core mechanics.
- The game should load/launch no longer than competitors’ games.
- The performance of the game should be within permissible limits.
- Usually, 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 was challenging for monetization reasons too.
Solutions & Expertise
The close collaboration of the technical team and technical artists team allowed us to prepare flexible architecture for the scalable engine. From the technical side, the main thing is to manage resources to make such things as memory, render, and update work properly.
It has separated core and metagame engines to work as different modules independently. But several places should work on both engines: GUI (you can get notification windows, open bank windows, etc.), rewards (you get rewards in the bingo finish screen and the metagame for a daily bonus, friends, packages, etc.), ADs, etc. These functionalities also have a modular structure.
The dev team prepared the technical tool based on Unity actions 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 steps.
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
There were provided several basement things in the pipeline to speed up loading:
- While many customizations are based on prefabs with VFX, animations, and art, the scene size becomes more extensive. Unity’s addressable allows the uploading and unloading of prefabs needed for the current stages of the scene.
- Optimize art size to camera view and make it as small as possible to make fewer atlases in the projects. For this reason, constructors were used for significant buildings and unity sprites tiling.
- Control of addressable groups and resources to avoid duplicates in memory and while loading content
Performance increasing cases:
- It has optimized all the characters` data information (skinmesh). One or two bones per vertex are 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, making the rendering process much faster.
- An XY-oriented waypoints asset was made to make the waypoint system work well with the layered scene. In this case, the length between two points for a character speed algorithm is calculated in the XY plane instead of XYZ. This allows us to put waypoints deeply in Z coordinates.
- Ground tiles were changed with a 3D landscape and prepared a shader that mixed textures by vertex color values.