Hey there, fellow gaming enthusiasts! Welcome back to my latest update on my experiences as a student navigating the world of connected games. In this entry, I'll share some recent highlights and the progress I've made in mastering multiplayer game development.
Taking on New Challenges
After my pong project, I set my sights on something bigger. Inspired by the excitement of games like PUBG, I jumped into creating a third-person multiplayer game.
I got Photon PUN from the Unity Store, essential for multiplayer. Setting it up was crucial for making sure players could connect and play together. Then came the fun part, building the game world. I carefully picked assets and designed the battleground where all the action would happen.
But that was just the beginning. I added characters and made sure they could move around smoothly. Setting up the server and sorting out how rooms work were important to make sure everything ran smoothly. I've made good progress, but there's still a lot to do, so stay tuned for more updates!
Crafting Our Game's Vision
My team and I have been busy brainstorming ideas for our game project. We've got our pitch coming up soon, so we're working hard to turn our ideas into a solid plan. We haven't settled on a name yet, but we've got a few options.
Thanks to Molly, our collaboration is smooth sailing with our Miro board. He made it really user-friendly, enabling us to effortlessly document our ideas, track our progress, add test cases for examination, and even list any bugs we come across. Meanwhile, our designers are sketching out game mechanics on the Arcweave board to give our game structure.
Again special thanks to my fellow programmer Molly, deserves mention here. She led the way in creating a basic FPS shooter prototype for our game. One of the key features of our game was the teleportation between two realms, Light and Dark. Figuring out how to make this work was a big challenge, but she made that work with the following script:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Photon.Pun;
public class MoveOnKeyPress : MonoBehaviourPun
{
public float yoffset = 52f;
public float doffset = 50f;
private bool inFirstRealm = true; //Have a bool to check if we are in the second realm or not
void Update()
{
//If we are in the second realm, we can't go back to the first realm
if (photonView.IsMine)
{
if (Input.GetKeyDown(KeyCode.V))
{
if (inFirstRealm)
{
photonView.RPC("Move", RpcTarget.AllBuffered, yoffset);
}
else
{
photonView.RPC("MoveDown", RpcTarget.AllBuffered, doffset);
}
}
}
}
[PunRPC]
void Move(float yoffset)
{
Vector3 curerntPos = transform.position;
curerntPos.y += yoffset;
transform.position = curerntPos;
inFirstRealm = false; //If we are in the second realm, set the bool to true
}
[PunRPC]
void MoveDown(float doffset)
{
Vector3 curerntPos = transform.position;
curerntPos.y -= doffset;
transform.position = curerntPos;
inFirstRealm = true; //If we are in the first realm, set the bool to false
}
}
For more details on the switching mechanics mentioned above, please click here
Insights from Industry Experts
We've had some cool experiences with industry pros lately. We had a visit from a team at nDreams who showed us their latest VR game, Ghost Busters. It was awesome trying out the game and getting tips on multiplayer networking.
We also went to the Guildford.games festival on 16th of February, where we met folks from Criterion, Supermassive Games, and nDreams. It was amazing learning about the gaming industry straight from the source.
Acknowledgements
I would like to extend my heartfelt thanks to our lecturer, Hope Caton, for providing us with the invaluable opportunity to attend the Guildford.games festival at GLive, Guildford.
Stick around for more updates on this thrilling journey!
Until next time, happy gaming!
Shashank Kumar Sukumar Singh