Networking & Lobby Services for Publishers and Developers
Latest Customers:

DemonWare's State Engine is a high-performance state synchronization C++ programming framework that eliminates the need to re-invent netcode for your multiplayer games. This overview provides some details of what the State Engine is, and what it is not.

Multi-Platform, Multi-Player

The State Engine has been created with the practical constraints of modern game development in mind and it respects the hardware limitations of popular games platforms.

  • Cross-Platform: DemonWare supports multi-platform development on PS2, Xbox, Xbox 360 Win32 and Linux
  • Flexible: The DemonWare State Engine avoids external dependencies, such as use of the STL, and is easily configured to use in-house memory management tools.
  • Powerful: It supports advanced game networking techniques such as delta compression, client-side prediction, extrapolation, interpolation, host migration and late joining.
  • Time-travelling: Well, not quite... but DemonWare has been designed to be integrated with games at any stage of development. The process is very well supported and documented and requires only minimal changes to the existing codebase.

Developer-Friendly

DemonWare's State Engine was created to be a great implementation of established techniques, as pioneered by multiplayer games of recent decades. It was designed in close co-operation with a number of studios, and as a result is very developer-friendly.

What it is

A state engine. The DemonWare engine manages the efficient communication of your game state between players' computers/consoles.

  • Data-only. DemonWare has no user-interface. It is a programmer-only tool, and comes as a set of libraries for the platform in question.
  • Well-Thought-Out. As a set of frameworks, DemonWare makes it easy to do things right, and hard to do them badly. Using DemonWare is one big step towards meeting the networking technical requirements of your target platform(s).
  • Actively Developed. We strive to make DemonWare as easy to use as possible, and when we spot a potential improvement, we make it. Also, we keep up with and try to promote innovations, such as ad-hoc gaming.


What it is not

  • A matchmaking service. The DemonWare State Engine handles in-game traffic, i.e. the kind of networking that happens after the game has begun. For the discovery of game sessions, we recommend our Matchmaking+ product as a solution or can integrate with third party options.
  • MMOG Middleware. We do not provide a solution for massively multiplayer online games (MMOGs). We focus exclusively session based games.
  • A renderer. DemonWare does not do any graphics, although it has been used painlessly with all the major rendering engine vendors.
  • A physics engine. Although DemonWare handles the communication of your game state, it does not actually generate your game state. In a simulation game this is largely handled by dynamics code, such as that provided by Havok or Novodex.
  • A mobile phone product. DemonWare works on a diverse number of platforms, however it has not been designed to run on 3G networks, or mobile phone handsets.

DemonWare Components

When you licence the DemonWare State Engine, you get three broad components in the package.

  • The DemonWare transport. This is used by the two other components to perform all network communication. It deals with all the ugly, low-level, networking issues, such as packet loss, ordering, firewalls and NATs. Although you normally will not need to use this component directly, you are free to do so for any special network communication you want to perform directly.
  • The Peer-to-Peer framework. This is framework that you can easily and quickly extend to get a game up-and-running in a peer-to-peer topology. It deals with sending user input around between peers, and ensuring that all peers have sufficient information to step the game logic. At its simplest, you can use it by registering an object that can serialize user input, and an object that can step the game logic. This component is targetting at a wide variety of titles, e.g., RTS, turn-based, sports, racing, flight-sim and FPS games.
  • The Client/Server framework.This framework enables you to quickly get your game running in a client/server topology. It features every advanced netcode technique found in state-of-the-art titles such as Unreal, Quake, and Battlefield 1942. This framework follows an object model, which allows you to fine tune the synchonization of any entity in your game, all from your C++ editor. There are many features that you can mix-and-match. Among them are: delta compression, client-side prediction, data extrapolation, interpolation, selective updating (LoD or BSP awareness), multiple players per host, avatar switching (e.g., transferring control from a character to a vehicle) and interpolation breaks for signalling discrete state changes.

[back to top]

©2006 DemonWare Ltd.
|