<img height="1" width="1" src="https://www.facebook.com/tr?id=&amp;ev=PageView &amp;noscript=1">

Qing Wei

Ideas lover, been searching for the answer to life, (it's not 42)
Find me on:

Recent Posts

Posted by Qing Wei
Tue, Sep 5, 2017

 

This is a tutorial to show how to use Scalameta to develop a generic, parameterized annotation. To know how to setup a project to use scalameta, refer to

Posted by Qing Wei
Sat, Jul 8, 2017

Fantastic meetings and where to find them

Anecdotally most people in the software industry hate meetings; a meeting is a soul-sucking dementor. Jokes aside, I think it's fair to say that people feel meetings are taking too much time and the process is often painful.

Posted by Qing Wei
Wed, May 3, 2017

Recap

In part 1 of the series, we discussed the following:

  • Challenges faced in multiplayer game
  • How to solve unresponsive UI by client predictions

I did however gloss over essential server implementation details, which we will focus on in this article.

Disclaimer: I am not a professional game developer, most of the knowledge shared is based on what I read and my experience of small hobby projects. The main goal of this article is to provide an easy to understand introduction for networking in a multiplayer game.

Posted by Qing Wei
Sat, Apr 1, 2017

The problem with multiplayer games

In multiplayer games, one of the most complex issues is to keep all player's state in sync with the server state. There are a few good articles around this topic on the internet. However, some details are missing here and there, which may be confusing for beginners in the field of game programming. I hope I can clear things up in this article.

I'll present a few techniques commonly used in this problem space.

Before we jump into the problem, let's have an overview on how multiplayer game generally works.

Typically, a game's program needs to simulate the following:

the changes in an environment with respect of time and players input

Game is stateful program, so it depends on time (be it real or logical time). For example, PACMAN is simulating an environment where ghosts will continuously move around. 

A multiplayer game is no exception, however the complexity is higher due to the interaction between multipler players.

Let's use the classic Snake Game as an example:

Assume we use a server-client settings. The core game logic works like this

Posts by Topic

see all

Subscribe to Email Updates