TrunkTech
TrunkTech: Key features and benefits
TrunkTech is a technology platform solution that can be used to build massively multiplayer applications - or more specifically – virtual worlds. The idea is to provide developers with all the necessary tools to develop, deploy and manage very complex massively multiplayer applications.
At its core, the TrunkTech technology stack consists of the following components:
- TrunkTech Server
- TrunkTech Flash-based client core
- Bamboo – our proprietary protocol
- HappyTalk – our automated moderation and alerting service
- TrunkScript – our proprietary, extremely efficient scripting language
- TrunkTech APIs – our server- and client-side APIs to allow third parties to use TrunkTech to create massively multiplayer virtual worlds.
TrunkTech offers the following unique features to both developers and our customers (brand owners):
- State of the art client technology, created for the most adapted plug-in in internet history – Flash.
- The client APIs include a number of key innovations which enable developers to create multiplayer and massively multiplayer games much more quickly than in any other environment.
- Scalability. The server and client-server architecture is scalable by design and can be used to create games ranging from a small number of users to tens of thousands of simultaneous users.
- Cloud deployment. The server architecture will be designed to be cloud deployable (e.g. Amazon EC2) and will scale itself automatically according to load.
- Server-side scripting language syntax is close to ActionScript 3, the scripting language of Flash. This enables a developer to be able to create both client and server code.
The server-client architecture enables complex functionality out of the box (e.g. payments, community tools, administration, moderation)
Business benefits
- Thanks to TrunkTech, Tweehouse is able to deliver projects for Lower initial investment, a factor which is highly appreciated by many especially at times of economic down-turn.
- Our clients see our Fast delivery times as Invaluable in the increasingly competitive global virtual worlds market.
- We are selling Tested technology. Our first release, Eco-Rangers Online, which can be demoed upon request, will be publicly launched this summer. Eco-Rangers is an ambitious adventure game project and (this we can guarantee) it will blow your socks off!
TrunkTech Components overview
Login Server
The login server handles all aspects of a player’s initial contact with any game product that utilizes TrunkTech. The server sets up a secure connection between the client and the server, and then allows the player to authenticate. The authentication process generates a session ID and a key, which are used to maintain the integrity of bamboo connections. The login server also handles all transactional information related to a player’s subscription or in-game status. The login server passes information to the Mobs server about the current status of the player upon authentication.
Communication Hub
This hub has one role: to ensure that all messaging and communication between the player and the server (and therefore the player and other players) is correctly delegated to the right server at the right time. Because TrunkTech is designed to be shardless, which is to say that the player community is not divided amongst servers, but rather that server load for the entire community is shared across servers, different messages have to be delivered to different physical machines at different times. The Communication Hub manages this daunting task.
Instance Coordinator
The instance Coordinator performs a similar function for instancing, as the communication hub does for messaging. Instances are effectively copies of in-game spaces that are generated as each example of that space fills up. This ensures that there are never too many players on screen at once, and that no one server is pushed into overload. Instance servers are brought online only as necessary, and in each server’s case, they may be able to run many instances per machine. The instance coordinator tracks all currently existing instances, decides when to create new ones, slices ‘instance sandboxes’ (these are sort of virtual servers that take care of one instance) out of servers that have remaining capacity, and determines how to balance load across the system.
Instance Server
This is the heart of any game that uses TrunkTech. The instance servers contain all of the currently live game spaces in the game world, and track everything that happens within them. The instance servers communicates with the communication hubs in order to coordinate their slice of the game world with everything else. The instance server also loads and saves any persistent data that are generated or used within that instance. Any player that is present in any given instance will have his or her data owned by that instance server at that time.
Communication Protocol
Our communication protocol, called bamboo, is cutting edge, and developed just for TrunkTech. All communication between client and server is via binary socket, which provides for a very fast, low latency and compact connection. This allows for complex communication to be possible. Because the client and server utilize the same scoping mechanism, serialized objects containing complex information can be passed from client to server, and at very high speeds.
Space Engine
This is the software that drives each instance of a space. The engine is single threaded, and event driven. The engine loads and runs all of the database information that defines a space: meta-info, images, maps (stack of layers of tiles), hexagon and square tiles, tile definitions, props and charms (objects in the space), and any resources downloaded with HTTP.
Mobs module
Mobs stands for ‘movable objects’. This module calculates how and where any moving object in the game world should move, and when. The mobs module tracks an item’s spawn rate, movement, properties and its relationship to any quest or dialogue. The mobs module also calculates all the movement paths for an object.
Latency Coordinator
This module has a single job; to anticipate and mitigate and delay in the game play associated with bandwidth and latency issues. While it is a single job, it is a very complex one.
Space Editor
The space editor is a stand alone application that replicates the player’s ability to alter his or her privately owned spaces for the game administrator. This provides the admin with all the tools to edit spaces, as well as a set of powerful tools not available to normal players. The editor comprises the player space editor, a room builder, a map editor, and a heavily scaled back version of the server, that can run on a local machine. This allows an admin to develop new spaces, or edit existing ones, without needing to be connected to the live server while doing so.
Scripting Language
TrunkTech’s stackless scripting language, code-named ‘Mambu’, is a subset of ActionScript, the language used by Flash. Tweehouse decided to build a language compiler for TrunkTech based on this existing ECMAscript-based language because it makes TrunkTech a low learning curve server technology for any Flash developer (or Java or Javascript developer for that matter) that may work with it. This also means that portions of game code may be shared between client and server, where necessary. The language compiler is on-the-fly and on demand, meaning that server-side code changes do not require a server restart.
Community Management and Service Toolset
These tools for an integral part of TrunkTech, as no MMO game service can be complete without a set of tools to manage the game’s ongoing live community and events. Furthermore, customer feedback needs to be processes and collated, requiring another tool. Moderation also requires a dedicated server to monitor all player communications. The system is largely automated, only calling suspicious chat to the attention of a human moderator. The front-end tools are all Flash-driven, and comprise: an in-game moderation tool, a behind-the-scenes moderation tool, and a customer service interface for efficient interception and response times on player feedback.
Server Administration Interface
Last but not least, is the web-based server administration interface, which can be accessed by all Tweehouse or Tweehouse customer staff to change game settings, access statistics and metrics, administer user accounts, and generally administer any variables in the game that may require action of that sort. The interface can be accessed through a web browser, and will be available to anyone with the correct authentication credentials. The connection to the server will be encrypted and secure.
If you want to learn more about our services or TrunkTech, please email: info[at]tweehouse.com