Home » Industry » Gaming

GemStone in Gaming

GemStone in Gaming

gemfire-small

The world of massively multiplayer online gaming (MMOG) has produced some of the greatest data management problems to date. With myriads of data to manage and hundreds of thousands of demanding clients that need to be updated in the shortest amount of time possible, MMOG’s seem destined for data management issues. What do you do after you’ve created a unique, interactive persistent virtual world and your game starts to become viral? What do you do when you want to dynamically update thousands of your users that demand both new and exciting content and low latency? What do you do when you know a peak period is coming and your environment is going to need more servers, but your users demand no down time? These issues of data management and more are addressed and handled by GemFire, a memory oriented distributed data management platform. GemFire allows game developers to refocus their attention towards their core competency: a compelling highly interactive persistent world that keeps users engrossed. Effective data management is paramount in MMOG’s as it both enhances user experience and reduces total cost of operations. Let GemFire take care of managing your MMOG’s data so you can attend fully to what your users find valuable: an enthralling unpredictable story line with a high degree of interactivity.

How do we do it? First, let’s look at some of the key data management issues MMOG’s tend to have.

  • Lag is unacceptable

    • The effectiveness of the game is a function of its interactivity and its ability to quickly reflect changes made by different players and apply them on individual clients. The higher the time it takes to build this view and transmit deltas to the various players/clients, the less realistic the game will be, and consequently, the less popular it is likely to be.
  • 100% Uptime

    • The importance of uptime demands that the environment be redundant. How the environment reacts to a partial or total failure is crucial to the effectiveness of the game.
  • Normal Loads and Peaks are Unpredictable

    • The ability to spread out client load on the servers evenly as the number of players goes up and ensure that access to state information is available is important for maintaining balance.
  • Client side caching

    • How much of the state can be cached on the client and how often does information need to be updated. Still further, would the client’s interactivity and effectiveness be increased if updates could be pushed to it? This also ties into the notion of state synchronization. How can the game developer ensure view consistency of the game across multiple clients such that events happening on a client are indeed real with respect to other players in the system?
  • Dynamic Updates:

    • The ability to roll out dynamic updates to the game by adding or removing content in a consistent manner. Dynamic updates are one technique for dealing with cheating by clients, by literally, changing the game on them and invalidating any cheating techniques that the clients might have installed.
  • Rule Enforcement

    • Unlike client initiated cheating, the protection of assets, acquired by members of the online games, and settlement of disputes over ownership, requires the system to snapshot important elements of ownership. To ensure a fair playing ground for different clients, statistics gathering on client activities and comparing them to acceptable models of client behavior is an important piece of the solution
  • Interactions with end users are Anonymous, Ephemeral, and Perishable

    • You need to connect with end users in the moment in which they are engaged to a) give them special invitations, b) give them hints to reduce frustration, c) rank them or give them special incentives to keep them engaged.
    • You need to collect information about the game as it is happening, which means hundreds of thousands of interactions per second…

GemFire as a solution to data management issues in MMOG’s

GemFire Enterprise combines key aspects of distributed caching, and stateful messaging with support for multiple topologies, querying and transactional aspects of a database system. It provides these features at extremely high throughput, very low latencies, ensures high availability of data and data consistency at all times.

GemFire provides:

Fault Tolerant Servers

  • A highly available distributed cache offers read through, write through and write behind caching capabilities. Inserting the GemFire data management platform into the server allows the system to keep state information on active-active redundant servers and makes it easy to failover without any impact to the clients.
  • Benefit? Clients connected to failed servers are dynamically switched to running servers without any client-side affect, dramatically enhancing client satisfaction under failure conditions

Fault Tolerant Clients

  • GemFire offers support for durable clients allowing client state to cached and recovered when the client comes back online or suffers a temporary connection outage, allowing them to rejoin the system much quicker than before.
  • Benefit? Clients need not have their current state information lost if their environment fails. This means that they’ll never lose progress that they’ve made even if their computer locks up.

Load Balancing

  • As the number of clients scale up, the data partitions can be rebalanced to provide load balancing to the clients.
  • Benefit? Less lag experienced by the client, even during peak periods.

Dynamic Updates

  • The ability to access data at in-memory speeds reduces latencies and the ability to chunk responses back to the client allows dynamic updates to be sent over to clients more frequently. Game authors can maintain completion state information about transfer of dynamic updates to clients and send a command to clients to activate the new state at the same time.
  • Benefit? Clients can be dynamically updated without any effort on their part.

Rolling Updates

  • Support for backward compatibility in GemFire allows rolling updates of clients without any disruption in a running system.
  • Benefit? The ability to update clients while maintaining game-state.

Event Management

  • GemFire allows clients to register for subscriptions (i.e. events that are of interest of them) and GemFire asynchronously delivers these events to clients. Subscriptions are highly available, making it easy to push state information to clients allowing the client to be more responsive.
  • Benefit? Less effort required by the client to receive event information, making event loops that reinforce user satisfaction even easier.

Shared Nothing Persistance

  • GemFire shared nothing persistence allows architects and administrators to make full use of existing commodity hardware and disk space to ensure quick recovery of system state when a cold restart happens.
  • Benefit? Less downtime when a cold restart occurs.

Cheat Detection

  • Distributed statistics gathering can be done at the server and the data gathered stored within GemFire regions and compared to historical data to ensure that the client is behaving normally (not cheating) and has not been tampered with in any way.
  • Benefit? Faster and easier cheat detection.

Elasticity

  • GemFire allows for an elastic distributed environment meaning it gives the ability to add and remove servers without taking the system down.
  • Benefit? The ability to dynamically add and remove servers in anticipation of peak periods without taking the environment down.

GemFire is a highly concurrent, highly parallelized software system that takes full advantage of available cores on a system and has been tested for a variety of race conditions. Using GemFire for scaling up MMO caching issues ensures that the game developers do not have to deal with all of the problems that one is confronted with, when dealing with distributed data management and multi-threaded programming.
Administrative tools that showcase the state of the data as well as the number of client connections into the cluster at any point, as well as the ability to query the system for relevant metrics and view online statistics through graphical monitoring tools makes GemFire a compelling proposition for operators and administrators of the online MMO portal.
Data and state information are the primary drivers for maintaining interactivity of the game. The use of GemFire reduces overall latency and provides the picks and shovels necessary to scale up the game.

Conclusion

GemFire allows game developers to focus on their core competency, which is a compelling, immersive story line with a high degree interactivity that keeps end users entertained, instead of issues of data management. Furthermore, as the premier data management platform, it reduces the need for excess hardware lowering your total cost of operations and helping you achieve minimum efficient scale.

In effect:

You get a real time game with real time updates, a real time window into your games, with an ability to engage your users in real time, all while ensuring maximum availability with a minimum TCO. Use less boxes, consume less power, have a better ability to handle peak loads, better analytics, better customer interaction and most importantly, a better game. The added time you can invest in the game by not having to worry about data management issues will result in ecstatic, loyal, engaged gamers.