As part of our academic outreach program, we took a short trip up the road to our friends in Dublin Institute of Technology. As former graduates, it was great to get a chance to return and have all the memories of last minute submissions, sleep deprivation and pot noodle diets flood back. The lecture room was packed to the gills with wide-eyed Computer Science and Game Development students, and considering it was 9 am and freezing cold outside, it was clear that we had piqued their interests. The topic of the day was one of GameSparks’ most recent additions , real-time networking.
Sean, a member of our Customer Solutions team, took to the stage and kicked off with an overview of the GameSparks platform, detailing how its broad feature set can easily handle complex server-side functionalities such as multiplayer, shared leaderboards and social integrations. He described some typical implementations of these features in video games, giving students some real-world context and a tangible grasp to the benefits of using such a platform.
We Want Real-Time
With all eyes glued to the projector, Sean moved onto the real star of the show, real-time networking. GameSparks has reacted to growing industry demands by adding a super-fast and customizable real-time component to its platform. In a nutshell, if you want to create a game in which players from around the world can play together at the same time, you will need some way to transfer match information (player positions, health, scores, etc.) between those players as fast as possible. This is where real-time networking comes in.
This information is sent directly between players or through a server, in the form of data packets. There are distinct pros and cons to each option, but a server authoritative model gives you more control and power. With this model, data packets are intercepted and real-time scripts can be attached to do some cool stuff like predictive movement, clock-syncing and cheat detection. With full control over your multiplayer network, you can decide how you want to set up it up and choose which data you want to send.
Show Me the Magic
The second part of the lecture morphed into a live demonstration as Sean set up a 2-player tank game in Unity and hooked it up to the real-time service in GameSparks. He started by coding some basic movement for the tanks, which manipulated their X and Y positions via keyboard input. He then showed us how to send this positional information to the GameSparks server via data packets. The server then sent the packets out to each recipient so they could see the position of their opponent in real-time.
Now it was time to see it in action. It’s one thing seeing a bunch of code on a screen without any visuals but there were audible gasps when the game started. With two versions of the game client running side-by-side, we could see the tanks positions updating in real-time. It was a little bit like black magic.
We’re always extremely grateful to be invited to share our knowledge with aspiring developers. GameSparks offers a one-stop solution to many common game development issues, and can provide key benefits to those looking to gain exposure to practices and functionalities that are widely used in the games industry. If you are interested in the GameSparks platform and would like to chat to us about coming to visit your university or meet up, please get in touch!
You can take a stab at setting up the GameSparks real-time services for yourself by following our in-depth tutorials and you can also check out the slides from the talk here – GameSparks_RealTime_Slides.