fbpx

Multiplayer Game Programming Made Easy

Building Online Multiplayer games is difficult, at least it used to be.

When I started coding in the 90’s that was definitely true. But the latest game engines and networking libraries have abstracted away most of the harder technical parts.

No-longer do you need to be a Carmack level wizard to build multiplayer games, even as a solo programmer. You just need a good foundation, a solid understanding of the fundamentals, and a solid plan for architecting your game.

 

The game you build MATTERS!

When you’re creating a new online experience, the type of game you want to make will determine the correct path to follow. Building an FPS is very different from a MOBA or an RTS.

If you’re building a co-op beat-em-up game a P2P setup is ideal, but if you want to make an MMO, you’re going to need a fleet of dedicated servers.

But no-matter what type of multiplayer game you build, there are a few rules that you can follow to prevent disasters!

 

Rule #1 – Never Trust the Client

My first professional game job was testing MMORPGs at Sony. It was a perfect fit since I’d been hacking and cheating in my online games since the moment I learned about memory editing.

Some exploits take a bit of effort to take advantage of. Lots of others are just too easy. In the games I’ve played (and worked on), I’ve seen everything from ‘depositing’ -1,000,000 coins to straight up invulnerability exploits.

They’re easy to fix once you find them, but it really sucks when you find them on your live servers. And they can be avoided almost always by following rule #1.

Rule #2 – Keep Secrets – Only Send What You Must

When you’re first building a multiplayer game, it’s easy to start over-sharing. Not just sending too much data, but also sending data that your player probably shouldn’t know about.

Sometimes extra data doesn’t matter. Maybe you don’t care if your players can see every NPC on the level.. but if your game is competitive, you might not want them to know the enemy teams exact locations.

Being secretive about your data cuts away at what cheaters can do, and reduces bandwidth costs at the same time. Rule #2 is a 2 for 1! 

Rule #3 – Count on Timing to Break Everything

The hardest and most unpredictable problems are the ones that come from timing. A simple synchronization error can break the entire experience or lead your players to quit in frustration.

There’s no cure-all solution for timing bugs, but with a bit of planning, standardizing, and a lot of debug tooling, you can prevent these problems from hitting your players.

Introducing the Multiplayer Mastery Course

Focused Multiplayer Learning

Experience with every key system used in online gaming.

Tackle the most common problems developers encounter.

Use cloud services for a full end to end game experience

Templates to customize and build the multiplayer game you want to make.

Why Now?

Even though I spent most of my career building MMOs, until now, I’ve avoided teaching multiplayer development.

Teaching it all seemed nearly impossible. In the past it would have taken me months to cover everything. 

But that’s changed..

Unity’s NEW Network library is good. 

NGO (Netcode for GameObjects) is a solid foundation for building multiplayer games, and the latest editor has made multiplayer game dev a core component.  In addition to that they’ve provided all of the services that you need and don’t want to waste time building from scratch, like Lobbies, Relay servers, Stores, etc.

Unlike a decade ago, now I can easily teach middle school kids how to build multiplayer games, it’s definitely not as hard as it used to be!

2 Unique Modules

Dedicated Server & Peer to Peer Games

P2P Module

Racing Game

For the first half of the course we examine a common game format, 4 player races! Inspired by the old RC games, but online and multiplayer using unitys Lobby, Relay, Cloud Code, Cloud Save, & Authentication Services 

You’ll learn the fundamentals of Network development, ownership, spawning, messaging and synchronization with Unitys NGO.

This project will allow for a lot of customization. Make it a realistic racer, an offroad experience, or even a scifi space shooter with minimal changes and whatever art you like.

Section 1 is available on demand immediately.

 

Dedicated Server Module - 2024

Adventure Extraction Game

Learn how to build a full extraction game with RPG elements. We’ll start with character creation using CloudCode and CloudSave. Have our dedicated server load and manage characters, and let our player take control of any character in the game (optionally).

This module includes a full Inventory system with UI, drop items, pick things up, kill NPCs or other players and take their loot and have it all persist to cloud servers (or optionally save it all locally)

Abilities are of course needed for combat, so we go over how to create Mage, Warrior, Cleric, and Ranger classes with a few abilities for each.

There are a dozen other systems we’ll get into, from voice chat to guilds, and there’s always opportunity to request additional features 🙂

By the end of this module you’ll be able to customize and build an extraction or adventure game in whatever theme you want. 

 

Some Key Systems to Master

Management from Client via CloudCode, CloudSave

Service Accounts
Loading Character on Server
Authentication & Approval

Take over any character
Movement
Leaving & Rejoining
Experience Persistence
Server Debug Tools
Character Persistence (Leave in time to keep gear)

Item UI
Full Inventory System
Pickup & Drop
Loot Dead Characters
Customize Slots & Make Equipment

Combat Abilities for various classes
Mage, Warrior, Ranger, Cleric
Customizable ability system
Attacks
Kill Characters & Steal Loot

Characters with all other systems already working
Controlled by ServerPlayer
Can be taken over by players *optionally*
Spawn Controls
AI Logic

Add stats to control character systems and combat
Integrate with Inventory, Abilities, & Characters

Pooling

Profiling

Dedicated Server Deployment

Matchmaking

Vivox

Guilds..

Groups..

Name says it all 🙂

.. watching you

About the Instructor (me)

From when my hair was black...

I’ve been working in the game industry since the early 2000’s and building games on my own since the 90’s. Most of my professional career has been spent working on MMORPGs. But I’ve also built a variety of mobile & online VR games as well as more enterprise applications than I’d like to remember.

Now I spend most of my time teaching developers on Youtube, and occasionally teaching more advanced courses where I can get deep into the details and help people get past roadblocks.

In my limited spare time I hang out w/ my family, watch scifi, play mtg, and talk to other game devs 🙂

Enroll before our next live student call!
Bring your questions & problems

Days
Hours
Minutes
Seconds

Multiplayer Mastery Course

Best Multiplayer Course Available
$997
  • Learn Professional Multiplayer Game Development
  • Dedicated Server Extraction Game Module
  • P2P Racing Module
  • Direct Email Support (from me)
  • Live Student Calls (Monday & Thursday)
Multiplayer

Extra Bonus...

Get access to my MOBA game source code. The MOBA project is based on the extraction coursework, with a bit of modification for a new game type. Grab the code and join the discussions Mondays & Thursdays.

I also wanted to note that a lot of the conversation in those calls is going over peoples personal multiplayer projects, so if you have one of those and have questions/problems, make sure to come to the live calls! 🙂