Uncategorized

Procedural Level Generation in Unity (part 1 of 2)

In Part 1 of this article we discussed why we chose to use procedural level generation. Were also described how to generate a procedural level’s layout and connect multiple smaller level chunks together to form a fully coherent level. In part 2 of this article we discuss how we overcome lighting and NavMesh problems in Unity, and how tospawn NPCs based on a tempo.

Lighting
With procedurally generated path, it is likely that the same chunk will be loaded multiple times for each level. The duplicate meshes within those chunks are stored in memory separately, but the lightmaps can be shared by adding code to our level loader to amalgamate all the lightmaps by scene name. Lightmap indexes are then reassigned as they load, saving memory instead of duplicating lightmaps for those chunks.

In ord...

Uncategorized

Procedural Level Generation in Unity (part 2 of 2)

Level Requirements
Levels are set within a maze of city slums and rooftops, but they need specific structure to be enjoyable and interesting to play. Decided to assemble multiple smaller level chunks together to create larger levels for missions. By doing this team could handcraft interesting and reusable smaller chunks, layer in some procedural randomness and give each level the feel of being handcrafted. Procedural levels must:

  • contain 1 main path
  • contain 1-3 dead end paths for objectives and loot drops
  • contain 1-3 shortcuts that act as alternative routes
  • generate random props and cover objects within each level chunk
  • spawn enemies based on a “tempo chart”
  • spawn different types and ranks of enemies based on the mission difficulty
  • work with Unity’s NavMesh system
  • be deterministic and g...
Uncategorized

Dev Diaries

REAL FACIAL RECOGNITION FROM SOCIAL NETWORKS.

Face detection is realized on the basis of  well-known programming paradigms and open source libraries. Once we get data on the coordinates of the eye, nose, mouth our algorithms will adapt to the 3D character models. The final step is the calculation of the average color setting on the basis of skin color, and the current level of lighting in the photo.

Uncategorized

Dev Diaries

TERRAIN ADVENTURE

Once we figured out that content for our game contains Terrain (ground) which was designed with help of Terrains sub-engine. It’s very interesting tool with great features of brush painting and sculpting, but for our game it become a huge overhead in memory.

What we had to do is to reduce memory usage. But it was tricky because sub-engine is closed for modifying system, like a black box. So we explored it properties and managed to export data from it to raw textures and heightmap. Than we wrote our own lightweight Shader (surface visualization program) to draw the ground without performance lose. It looks the same as you can see.

As a result we reduced game size on device for 40mb. Geometry complexity benchmark:

We optimized the basic version to increase the speed o...

Uncategorized

Dev Diaries

Paint the Walls

There was no need to re-invent a wheel. There are a lot of good algorithms for it. This is a great feature that is perceived by our brain, as an expression of creativity, protecting us from the inner mental strain.

It is used occasionally in casual games and usual have poor implementation. Painting of everything is an important part of fun in our gameplay. It’s like a toy – you can do what ever you want.

Create with Colors Shooter!

Uncategorized

Dev Diaries

THE RAY CASTING IN OUR GAME IS PHYSICS.

Now we solve the problem of control over the flow, its improvement and hit the target. To paint over an object or wash away  a character, we need to find out if colors  flow  has got into it. Traditional methods of visualization are more suitable for PC, and color shooters are created for mobile devices. Our goal – high performance parameters to achieve maximum realism, but the possibilities of mobile devices significantly limit the speed and clarity, which complicates the task.The method of ray casting computationally complex, time-lapse, per-pixel dynamic calculation has allowed us to obtain the desired result.A beam defining a collision with objects around is accompanied by a curved flow  along the entire length...

Uncategorized

Dev Diaries

3D LIQUID PHYSICS SIMULATION FOR MOBILE DEVICES

We continuously strive to create a truly new, casual game for mobile devices. Colors Shooter is more than just a game for us.

We take a responsible approach to designing every moment, at this stage of our game is under development, the first with what we face is a liquid physics for mobile devices. We have been able to innovate and create the first 3D liquid physics simulation for mobile devices never seen before on mobile devices.

Due to limited mobile capabilities devices (weak processor and video card), our implementation is a simulation with a preview on more powerful computing devices PC. With this technique, we can only visualize the flow according to previously prepared data.