Upcoming Events
Unite 2010
11/10 - 11/12 @ Montréal, Canada

GDC China
12/5 - 12/7 @ Shanghai, China

Asia Game Show 2010
12/24 - 12/27  

GDC 2011
2/28 - 3/4 @ San Francisco, CA

More events...
Quick Stats
95 people currently visiting GDNet.
2406 articles in the reference section.

Help us fight cancer!
Join SETI Team GDNet!
Link to us Events 4 Gamers
Intel sponsors gamedev.net search:

Abstract

This document discusses the concept of "distributed gaming" and the Meesha Network implementation. Distributed gaming allows the specification of application-level resources within a game design. These resources are distributed across a network of peers where multiple peers may serve identical resources. Through a trust relationship, these peers are able to dynamically locate one another and individually determine the best resources available from their own specific view of the network. This allows a high degree of scalability that is both flexible and specific to a resource. As well, distributed gaming creates a means to aggregate the total bandwidth across the network of peers.

It is the goal of this document to show how distributing gaming will dramatically benefit network intensive games.

Background

Distributed computing and peer networks have been around for a long time [1]. There have been several well-known topologies with recent popular implementations seen in such applications as Napster and Gnutella. In fact, the Internet itself can be viewed as a network of distributed, but similar, resources tied together by a common naming system supported by a hierarchical peer network of servers, the Domain Name Service (DNS).

The common distributed topologies include: Centralized, Ring, Hierarchical and Decentralized.

Centralized

The most common topology we see on the Internet is centralized. This design is closely associated with the "client-server" model where a centralized server manages all resources available for client consumption. Most web sites, database applications and online games use such a model.

Pros:

  • Simplified administration.
  • Ease of maintenance.
  • Ease of locating resources.
  • Cons:

  • Difficult to scale.
  • High cost of ownership.
  • Little or no redundancy.
  • Ring

    In a typical ring topology, several identical servers are tied together in a loop-fashion. This allows a degree of scalability and provides simple load-balancing for increases in demand by clients. To facilitate this, servers implementing ring topologies are normally co-located for reliability.

    Pros:

  • Some scalability.
  • Some redundancy.
  • Simple load-balancing.
  • Cons:

  • Scalability limited to hardware.
  • Higher cost of ownership than centralized model.
  • Difficult to add more resources.
  • Hierarchical

    Hierarchical topologies follow a tree-like structure where dominance is indicated by the depth at which a node or "leaf" is located. The most dominant node, called the "root", is located at the very top of the tree. Lower-level nodes generally take instruction from higher-level nodes giving a very structured form of communication and control.

    Pros:

  • Structured communications flow.
  • Quick location of resources.
  • Resources can be in disparate locations.
  • Cons:

  • Timeliness of information can be limiting.
  • Propagation of "bad" data can occur.
  • Difficult to extend and add new resources.
  • Decentralized

    In a decentralized topology, all peers are equal. They most often duplicate the same resources with connections between peers unstructured and often dynamic. Decentralized applications boast to be the most scalable, but are also the most difficult to manage.

    Pros:

  • Highly extensible and scalable.
  • Highly fault tolerant.
  • Dynamic addition of new resources.
  • Cons:

  • Scalability overhead can be large.
  • Difficultly in synchronizing data and state.
  • Extremely difficult to manage all resources.
  • Note: The above descriptions are very basic in nature. They are given only as a generalization for further discussion.

    Most modern distributed applications take a hybrid approach by mixing two of the above common topologies. A hybrid approach aims to bridge several benefits of the combined topologies while limiting the difficulties. This approach is used in the Meesha Network implementation of distributed gaming, described below.





    Distributed Gaming

    Contents
      Introduction
      Distributed Gaming
      The Meesha Network

      Printable version
      Discuss this article