The Foundation Server is designed to be scalable (both vertically through efficient multi-processing and horizontally by allowing an arbitrary number of servers to split player load), extensible (it is built around a component based architecture with simple and well defined interfaces to add new components), powerful (many systems that games need have already been built), efficient (it is capable of processing thousands of commands a second on low end AWS hardware), safe (systems have extensive unit and integration tests to test reliability), and secure (all access is encrypted, and entry points into the server are well defined and access rules hardened).
The Foundation Server was built in C++ to allow it to quickly process thousands of transactions a second on inexpensive low end AWS hardware (t2.micro). It was designed to allow games to leverage AWS to provide extremely cost effective back end hosting that require a server and/or a metrics component. Studios commonly spend thousands of dollars every month on hosting costs; Foundation’s scalability allows us to maintain equally sized games for less than $100/month.
Foundation’s architecture is component-based and configured in XML files which allows tremendous versatility between projects. Our data infrastructure for player and game data is a structured blob-based design, allowing us to manage millions of users easily.
Features specifically managed by Foundation currently include asynchronous turn-based play, synchronous multiplayer, player-to-player notifications, server-to-player push notifications, leaderboards, behavioral metrics, and shared user-generated content.
The Foundation Editor is a tool that allows game designers to craft the rules around a world. It’s based on a requirements / results model; all of the rules in a game can be considered requirements, and when those requirements are met, then the results can be applied based on player actions. Core game attributes, like items, currency, leveling, flags, treasure tables and events can be created in the editor, and then sophisticated requirements and results based on those core attributes can be made to drive the questing, crafting, achievements and mission systems.
Customizable content supported by the Foundation Editor (without any direct scripting or programming) include in-game text, items, flags, levels, currency, events, treasure tables (randomly generated rewards), requirements (settings) and results (rewards triggered by action), crafting, quests, achievements, and missions. In essence, Foundation Editor in combination with our Unity Client Infrastructure and Foundation Engine represents our full-stack instant-game-engine just waiting for content.
Unity Client Infrastructure
We’ve built up a significant amount of experience working with Unity over the last few years. This has resulted in significant institutional knowledge (for instance, how to minimize in-game memory usage, app size and squeeze out performance out of low end mobile hardware), as well as a sizable amount of re-usable client systems and components. Our established Unity tech features include threaded server communications, Foundation editor data integration, seamless asset management, asynchronous game features, extensive multiplayer functionality, social network support, in-app purchase support, reusable UI components, and multiple in-game content editors.