Monkey Bandits
My Final year Project at Supinfogame Rubika. My role in the team is of Lead Programmer.
About
The Game is a four player multiplayer battle arena game set in the city of Rajasthan, India. The goal of the game is to collect maximum gold loot while fighting the other three players.
Game Time : 10 Minutes.
Number of Players : 4
Winning Condition : Maximum Loot coins.
Middleware used : Unity 5
Server : Photon Server.
Other Software Used : Perforce , Hansoft , MS Visual Studio , Monodevelop .
Methodology Used : Waterfall Model
Project Duration : 8 Months.
Game Time : 10 Minutes.
Number of Players : 4
Winning Condition : Maximum Loot coins.
Middleware used : Unity 5
Server : Photon Server.
Other Software Used : Perforce , Hansoft , MS Visual Studio , Monodevelop .
Methodology Used : Waterfall Model
Project Duration : 8 Months.
Team :
1 Game Designer , 1 Level Designer , 1 Gameplay Programmer, 1 Game Artist and me as the Lead Programmer.
My Role :
Game Network :
The game employs the use of a dedicated server which connects the four players on LAN. I am responsible for making the server , maintaining the game network and syncing the game data and Network events.
To implement the multiplayer i have used Photon Plugin for unity.
Game Build :
In the team , i have the master project so i am responsible for integrating all the gameplay elements , Art assets and level designs. Hence , making sure build is always playable.
Team Coordination :
I act as the interface between the design and the technical part. This involves assigning and dividing tasks with the other programmer and consulting the Project Manager. It also involves risk analysis and feasibility reports.
Structuring the Game :
I am also responsible for creating the all over structure of the game , which includes the Data Structures used , State Machines, Algorithms , Exception Handling , Events and external plugins , so that the gameplay Elements can be integrated and synced on the network easily.
Gameplay Elements :
Aside from the above , I also created individual gameplay mechanics and debugging the existing ones.
The game employs the use of a dedicated server which connects the four players on LAN. I am responsible for making the server , maintaining the game network and syncing the game data and Network events.
To implement the multiplayer i have used Photon Plugin for unity.
Game Build :
In the team , i have the master project so i am responsible for integrating all the gameplay elements , Art assets and level designs. Hence , making sure build is always playable.
Team Coordination :
I act as the interface between the design and the technical part. This involves assigning and dividing tasks with the other programmer and consulting the Project Manager. It also involves risk analysis and feasibility reports.
Structuring the Game :
I am also responsible for creating the all over structure of the game , which includes the Data Structures used , State Machines, Algorithms , Exception Handling , Events and external plugins , so that the gameplay Elements can be integrated and synced on the network easily.
Gameplay Elements :
Aside from the above , I also created individual gameplay mechanics and debugging the existing ones.
Game Elements :
Lobby:
Lobby is the entry point to the game. Here the player can choose their character and see which players are ready to join the game. The game begins when all four players are ready.
Navigation :
In order to move around and give a monkey like aesthetic feel , the player can climb , run , jump and swing across the map.
To implement it , we used "Target Matching" as a part of the root motion.
To implement it , we used "Target Matching" as a part of the root motion.
|
Characters :
The game has two characters , between which the player can choose when in the lobby scene.
Bhalla :
Bhalla is the first character who is the big heavy monkey. Inspired from an indian art of wrestling known as "Pahelwans", Bhalla is a slow moving but heavy damage dealing character.
It has two main characteristic abilities :
Smash : Generates a A.O.E which deals damage to other players
Block : Defensive ability to block the incoming damage
Bhalla :
Bhalla is the first character who is the big heavy monkey. Inspired from an indian art of wrestling known as "Pahelwans", Bhalla is a slow moving but heavy damage dealing character.
It has two main characteristic abilities :
Smash : Generates a A.O.E which deals damage to other players
Block : Defensive ability to block the incoming damage
Power Pickups
The game also has some power pickups which the players can use against each other. Since the theme of game revolves around the Indian festival of "Diwali" , the power pickups are designed as firecrackers.
Rocket : The player can use this pick up as a homing missile by locking onto another player.
Grenade : A firecracker bomb , which can be simply hurled at another player or used as a trap.
Slingshot : the player can fire them at other players as a single shot or a charged shot.
Rocket : The player can use this pick up as a homing missile by locking onto another player.
Grenade : A firecracker bomb , which can be simply hurled at another player or used as a trap.
Slingshot : the player can fire them at other players as a single shot or a charged shot.
External Plugins :
- Photon :
Photon plugin forms the basis for the multiplayer part of the game. The game utilizes a dedicated LAN photon server which runs on the same machine as the Master Client game.
All the network data and events are synchronized using Remote Procedure Calls [RPC]. - FinalIK
This plugin allowed us employ dynamic animations like the Omnidirectional hit , grabbing ledges etc. by controlling the IKs. - iTween
We employed this plugin for UI animations as well as Camera recordings.
Visuals :
Shader :
In order to achieve the final look of the game we used Toon Shading or Cell Shading. We modified the existing toon shaders in order to achieve the three tone cell shading effect. All the shaders used in the game are Lit Cell shaders.
Ambiance :
In order to create a ambiance of a festive Indian night , we have used a mix on Realtime and Baked lights. Along this we also employed the use of emissive shaders for constant illumination.
The realtime lights from the Diyas ("Indian candles") are dynamic in terms of intensity and position.
It uses Perlin noise function to mimic a dynamic candle light.