Our team wanted to explore and challenge ourselves with making a Unity game that's multiplayer, open world and includes the ability to drive vehicles. We had many experiences with Unity but always felt that we could expand our knowledge and create a larger scale game. We decided to use this incredible stage to push and improve our skills.
What it does
We created a GTA style open-world sandbox game that allows users to do whatever they want, whether is driving around, shooting at NPCs or exploring the city with friends
How we built it
The game is created using the Unity3D game engine with assets we got from Unity Asset Store. We used Mirror API to be able to generate a Unity server and served it with Google Cloud Virtual Machine.
Challenges we ran into
Since we had no experience at building a multiplayer game, the biggest issue was to sync the different players, NPC's, and vehicle data across all clients. Another big issue we encountered was creating the driving mechanics. We had challenges with the Unity physics system and the wheel collider, and we had to fix some bugs when the car got flipped over.
Accomplishments that we're proud of
We were able to make an open-world multiplayer game that features driving, shooting, and NPC generation within 36 hours. But most importantly, we were able to make the multiplayer game that we set out to create.
What we learned
As mentioned before, we learned a lot about the server / client relationship required in a multiplayer game. Besides multiplayer, we learned more about using the Unity Rigidbody and wheel collider, which gave us some more understanding of the Unity Physics Engine.
What's next for Rogue Officers
Most GTA style sandbox games take time to develop and our 36-hour development project still has a lot of bugs and untested areas. We also had a lot of other ideas we would like to implement, like being able to fly a plane and having more weapon options other than pistols. We also want to enhance some features we've already made, like creating smoother animations for getting in and out of a car, fine-tuning each car's speed and weight, and make more adjustments to the camera zooming offset.