Cubeia Firebase

Developer Reference

Lars J. Nilsson

Fredrik Johansson

Tobias Westerblom

Viktor Nordling

Peter Lundh

Firebase Version 1.7.0-CE

This work is licensed under the Creative Commons Attribution-Share Alike 2.5 Sweden License. To view a copy of this licence, visit http://creativecommons.org/licenses/by-sa/2.5/se/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.

01/21/2010


Table of Contents

I. Introduction
1. About Cubeia
Cubeia Ltd
Contact
2. System Overview
Introduction
Game and Services
Events and State
Game Object Space
System State
Message Bus
Replication and Failover
Game and Tournament Nodes
Client Nodes
Master Nodes
Transactions
Current Implementation
Known Limitations
Java Transaction API
Further Reading
Persistence
JDBC
JPA
Platform Domain Data
Lobby
Chat
Users and Clients
Connect
Login
Join / Play
Logout
Disconnects
Second Login
Class Loading
Hierarchy
Service Contracts
Shared Libraries
Public Services
DOS Protection
Plugin Services
LoginLocator
PlayerLookupService
LocalHandlerService
ChatFilter
SystemInfoQueryService
II. Server Development
3. Server Game Development
What's a Game?
Game Life Cycle
Sending Events
Scheduling Events
Event Processing
Handling the State
Game Processor
The Game Interfaces
Game
TableInterceptor / Provider
TableListener / Provider
TournamentGame
Game Activation
The GameActivator
The Default Activator
Packaging
Deployment
4. Tournament Development
What is a Tournament?
Tournament Life Cycle
Tournament Activation
The GameActivator
5. Service Development
What is a Service?
Contract and Implementation
Service Lifecycle
Configuration
The ServiceRegistry
Receiving and Sending Events
Packaging
Service Descriptor
Structure
Dependencies
Exporting Classes
External Libraries
Archive Access
Deployment
6. Lobby Development
7. Miscellaneous
Using the Cluster Configuration
Unified Archives
Exploded Deployment
Shared Class Loader
Services
Example UAR Content
Failure Detection
Configuration
Handling Pings In the Client
8. Building With Maven
Repository
Archetypes
Game Archetype
Service Archetype
Tournament Archetype
Project Archetype
Packaging
Build Plugin
Packaging Type
Example Game POM
Running Firebase
III. Client Development
9. Client Game Development
Network Protocol
Table Usage Scenarios
Joining Table
Reconnections
Creating Custom Tables
Table Invites
Connection Failover
Disconnection Handling
Reconnection Handling
Notify Watching
A Client Developer's Guide to Tournaments
Registering and Unregistering
Tournament Starting
Player Out
Player Moved
Tournament Finished
Lobby
Client API

List of Figures

2.1. Replication Sequence Diagram
2.2. Replication with Transaction Sequence Diagram
2.3. User Transaction Sequence Diagram
2.4. Class Hierarchy Outline

List of Examples

2.1. Failing User Transaction