[gameprogrammer] Re: Thin client architecture for games

On Tue, Nov 02, 2004 at 06:51:15PM -0800, Kevin Jenkins wrote:

> I'm writing an article for Gamasutra on thin client architecture for 
> online games.  I'd like feedback from experienced developers on this 
> list so I can improve the article and get quotes to put into it.
> 
> The theory of the article is that most cheating can be avoided by making 
> the client as thin as possible.  My definition of thin is:
> 
> 1. The client makes as few assumptions as possible about the game
> 2. The client is controlled by 'network script' which is a binary 
> encoding of what menus, text, buttons, animations, models, and sounds 
> show/play at any given time, along with state information if necessary.
> 3. Client packets are limited to two domains: network script responses 
> and direct user input (keypresses)
> 
> By limiting the domain of client output to network script and user 
> input, it becomes very difficult to cheat within the context of a game, 
> because your packets deal only with buttons and keypresses.  This is in 
> contrast to game-sensitive packets such as "Shoot gun" or "Defuse bomb".

Hmm ... could you elaborate on why it should be prohibitively harder to
tinker with keypresses than to tinker with higher-level messages?  I
mean, it sure would be more work for a cheater to keep the state etc.
etc. but does the thin client technique bring in something *principally*
harder to deal with for a cheater?

> This is the usual approach in most MMOs but in my experience isn't 
> usually taken to that extreme in other genres for performance reasons. 
> I would explore in the article ideas on how to implement this efficiently.

We're trying to sqeeze every bit out of our protocol - on a server with
say tens of clients or more, every redundancy adds up, raising the
bandwidth the server needs to a possibly unacceptable level.  You might
have some interesting techniques of battling this, though, so I can say
I look forward to your article.

        latimerius



---------------------
To unsubscribe go to http://gameprogrammer.com/mailinglist.html


Other related posts: