Zelgor is a free to play iOS mobile world conquest game. The gameplay was designed in two core layers, each contributing to the overall sense of magnitude and involving the player directly into the process of conquering the world.
The first layer is represented by the world map interface (the main application) where the player has access to the world map, user profile and gear. The map shows in real-time the position of the players, locations and territories that can be conquered by the users. At the same time the enemy and neutral AI soldiers are present on the battle map.
For each of the three components of the map (territories, locations and troops) we developed games for the user to play and try to expand his power over the world.
The second layer is represented by the three mini games developed with the help of the Unity 3D engine.
1st Mini Game
The first mini game is a first/third person shooter, where the player needs to defeat the enemy commanders on the field and acquire new weapons, gear and expand his army. The mini game has a set of unique features that raise it above the average mobile shooter:
Implemented: First, third person camera view
Full physics based dynamic ragdoll system
High quality dynamic environment
Day/night cycle complete with weather effects
Body parts damage system for the weapons
Friendly AI soldiers reinforcements
Gyroscope assisted and auto aiming
In development: New weapons pack
New IK player and AI animation system
Intro/Outro in game animations
2nd Mini Game
The second mini game is an arcade game for conquering new territories. The user needs to land his paratroopers on specific landing zones so that he can conquer the region. At the same time Anti Air guns will try to stop the player by shooting the plane and the paratroopers from the sky. The mini game has a set of unique features that raise it above the average, mobile arcade game:
Implemented: Day/night cycle complete with weather effects
Full physics based ragdoll system
Two camera modes, one for a more realistic feel and the other for beginners or players
who want to have a wider view of the battlefield
Gyroscope controls for the paratrooper
Gravity, drag, wind factors
In development: New map
New quicktime shell dodge events
Intro/Outro CGI in game animations
3rd Mini Game
The third mini game focuses on conquering real-life locations. The game is an on rail shooter, where the player needs to clear buildings from enemy soldiers so that he can take the location. The Buildings have a dynamic destruction system for the walls and the environment inside. Due to the number of waypoints, explosive charges available and the random spawning system of the enemy soldiers, each game session is unique in the way the player wants to approach the game.
Implemented: Fully destructible building
Fully destructible interior environment
In development: On rail shooter system
Day/night cycle complete with weather effects
Despite the fact that the core game features three distinct mini games with different mechanics and gameplay, all of them interact with each other in a natural way. To conquer new territories the player needs to expand his army to have the necessary paratroopers for the missions.
Once the territories have been conquered, the player has access to the locations in that specific sector. At the same time expanding your territories raises the maximum number of soldiers you can mass on your command. Once you have access to the locations, you can conquer them to get loot and conscript civilians to your army. Once the location is secured, the player has the option to barricade the building with soldiers to increase its resistance to enemy raids.
Attacking enemy commanders on the field gives the player experience, extra reinforcements from headquarters and at the same time clears the battlefield from the threat of enemy raids or even losing whole territories.
Tools & Skills
How We Did It
A complex task was the creation of the world map territories from real life location on top of the Google map. For this we created our own customized Zelgor server and algorithm system to generate hundreds of thousands of territories worldwide. For this we used the data from OpenStreetMap for streets positions. At the same time each territory must be dynamic due to the fact that different players battle for its supremacy.
The locations of the battle map have been created using the API from Foursquare and their in game level is determined by the unique number of check-ins.
On the most unique challenges was to integrate the unity application, respectively the minigames in the native iOS application. Due to the fact that the unity built app runs within its own environment we had to create a bridge between the two standalone software’s that would work in real-time (due to the exchange of data), be stable and of course without affecting the performance of neither of the applications.
The mini games have been built from the ground up in Unity 3D engine, giving us lots of flexibility from the point of adding new features and fixes to the games. Due to the fact that each game can be installed as a standalone application, testing and optimization is done without affecting the developing workflow Cocos2D minor tweaks.
The developing team has created its own pipeline for developing the game due to the extensive skills needed to construct such an application.
The frontend development has two branches. The first one represents the native iOS application developed using the following technologies: Protobuf, CoreLocation, and GoogleMaps SDK Kit for iOS, Cocos2D. The last one corresponds to the 3D games section where we used Unity 3D engine.
The backend component used Open Street Maps, Foursquare API along with our own developed server and algorithm system to create the backbone for our game.
The 3D and 2D assets, animations, special effects, GUI are created with the help of the graphics pipeline made of the following applications: 3D Studio Max, ZBrush, Topogun, Motion Builder, Photoshop.
→ If you want to find out more about the author of the article click play on the below video.
Subscribe on YouTube