The NAOS Engine™ (pronounced like "chaos") is a highly scalable, client/server game engine, designed to support a very large MMORPG. Continuously developed and refined for our own game, Vendetta Online, the engine has been proven through years of usage and expansion (public Alpha in May of 2002, retail game launch in 2004, and up to present-day). The game has over a million installs on Android alone, has been the subject of major television commercials, and was the first MMO to officially launch support for the Oculus Rift.
Our engine client supports Windows, WinRT/Win8, Mac, Linux, iOS and Android™, with rendering drivers for DirectX (11 and 9), OpenGL and OpenGL ES 2.0. The server is intended for distributed use across a cluster running FreeBSD or Linux, and has been elastically implemented on Amazon EC2. We are currently in the process of making this engine available as a licensed middleware product.
Points in Brief
- Update Server in C++, TCP network protocol, optimized minimal-delta patching (smallest possible download per user), very proven in wide usage. Supports maintainance of patch releases across many concurrent ports. Update client supports automated failover to multiple Update-clusters in the event of failure. Update Client is also a crash reporter, will detect and submit client tracebacks across all client platforms. Posts via HTTP to custom bug tracking/sorting server. Self-updating of the main application is even possible on mobile platforms (with some limitations).
- Game Server in C++, Lua, Erlang. Runs distributed across cluster based on FreeBSD or Linux. Scalable: Sector Daemons, controlling areas of game-world geography, are only run when needed (by player activity), distributed across N-machine cluster based on monitored per-machine CPU/memory load. Erlang-based Kourier subsystem maintains persistent lightweight threads for hundreds of thousands of NPCs as they transition across running/non-running game spatial bounaries. Erlang distributes elegantly, allows thread hibernation to further reduce overhead.
- Game Client written in C++ and Lua. Build targets for Windows (XP to 8), MacOS X (Universal), Linux/32, Linux/64. Big and little endian, 64bit clean. Designed for portability, all hardware and platform-specific APIs are abstracted into separate drivers. Available drivers include DirectX, OpenGL, OpenGL ES 2.0, Windows Wav-out, Windows DirectSound, Windows Vista/7 WASAPI, Mac Core Audio, Android Java audio, Android touch input, Android native joystick input, etc. Many other drivers possible to develop and drop in. OBB and primitive collision detection, polygon soup physics. Shader support, progressive/discrete LOD, advanced particle system. Very efficient, compressed UDP game protocol, with MTU path discovery. Compressed data file format for client-side game assets (can be encrypted). Spatial partitioning with Octree or Sweep & Prune. Fully featured UI system (all Lua), scroll regions, tree/list controls, drag-and-drop, etc. Optional hooks for the TeamSpeak 3 SDK, allowing for integrated voice chat across all current platforms. Includes native support for the Oculus Rift, Leap Motion and other cutting-edge devices.
- Administration, Billing, Etc. Completely custom Lua/FastCGI website application, highly scalable by maximizing static content, distributing dynamic. Has received many sudden traffic influxes with little impact on load. Built-in messageboard and customer support applications. Custom automatic bug tracking of Lua errors, client crashes, etc. Billing system with secure, heavily tested implementations of APIs for PayPal, PayByCash, and credit cards (First Data). XMPP (jabber) functionality also available for administrative or expanded-player-usage (phone/mobile) applications. Custom mailing-list implementation for newsletters and the like, tags for username and unsubscribe links, automatic bounce removal, etc. In-app-purchase support for iOS, Android Play Store, Amazon, Windows Store and other mobile systems.
The NAOS Cloud™ will also include a cloud-hosted server solution, allowing the game developer to focus their efforts on gameplay rather than systems, network and facilities engineering. A sliding scale of cost that increases with the usage/revenue of the title, after launch, is intended to make the Platform more accessible to startup game companies.