Party Pirates is a collection of number of mini games. The games are highly engaging and allows multi player mode for your friends to join in the fun and enjoy. The game app is crafted with an aesthetically appealing UI and features couple of in-app purchases.An engaging multiplayer 2D game, Party Pirates is hell lot of fun. Party Pirates packs a total of 4 obstacle based games and makes an fun filled package which is not easy to put down. The game is designed with aesthetic 2D assets that gives a fulfilling gameplay experience. However, a suite of 4 games thrown open for multiplayer mode of gameplay comes with its own set of challenges and Party Pirates encountered a number of them. Let us discuss some of the major challenges faced by our game development team at OX Studio.
Multiple Games based on multiplayer gameplay mode
Party Pirates is a turn-based multiplayer game. One of the most difficult part was to set turn based game play for multiple players. Players could choose among a set of 4 games to challenge a random player on the other end. The entire process to do this; required our team to manage backend data using web services for multiple variables. Some of these include score, user profile, Challenge etc.
Solution: We established the flow for a logical turn based gameplay.
Managing Notifications in different screens:
iOS Push notifications allows a total of 256 bytes and it is impossible to create 2 different screens to show notifications. While the first notification was meant to flash at the bottom of the screen, a dialog box was also supposed to appear with the challenger’s name, profile pic and challenge type.
We had to create a number of identifiers. For example, we set the ID of the user with that of their respective profile pictures. The identifiers were set in a compressed form. In the event of a notification received by user, the data is decompressed and the web service is called for user details.
Manage list of Challenges, Leaderboard:
We had to fetch a data list of users at a time which led the game to crash. At times the game encountered lags at various events as well.
Initially, we decided to show a lot of users in the UI at a time but it faced lags and crashes. We solved this through pagination of the leaderboard. We loaded data for 50 users at a time. Since one page accommodates 10 users at a time, we had data for five pages in advance. When a user jumps to the third page, we made the game fetch 5 more pages. The game is programmed to perform this at 3 consecutive pages.
Generate infinite map runtime:
As the game required, we had to create endless map runtime with colliders.
We broke infinite map into pieces. We reused the pieces to form a random map which is generated dynamically with its own Colliders. With this, we achieved smoothness and proper synchronization.
We faced a glitch with the colliders as they could not detect collision due to fast moving characters.
We increased the collider size to detect collisions instantly.
Establish maximum speed for characters:
Increase the frequency with which Unity makes its physics calculations. It can be changed in Time Manager, reducing the value of “Fixed Time step”
Since the game was developed in Unity game engine we had the option to use the time manager tool. We defined the maximum speed to a certain value above which the character could go no further. This gave the players an experience of balanced gameplay.
Party Pirates came out well and gave engaging gameplay sessions. The algorithm of game play between online users ran smooth and hassle free. The notification popped at right intervals and never missed out on the right events. The game got a glitch free leaderboard loaded accurately with specified number of players. Infinite maps that were created by small segments, functioned properly. Characters could easily detect the collisions and instantly stopped the ongoing sessions to start over. Overall, we made an engaging 2D game with awesome 2D graphics.