Game Engine

From Shadowrun: Awakened

Jump to: navigation, search
Awakened Engine
The "Awakened Engine" (or AE) is a set of libraries providing a core game engine developed by Shadowrun Awakened project. It offers rendering, networking, data, and simulation functionality.

The project will utilize AE to create our Game Applications.


Awakened Engine Feature List

The core game engine, AE, offers features relevant to most teams wishing to develop a video game.

Operating Systems & Technology for the Game Engine

Awakened Engine is built for Windows using C#. The primary platform is Windows XP with support for Vista. We will offer no official support for other platforms.

For graphics, we are using Microsoft XNA, a framework of classes that utilizes Managed DirectX. The framework has certain capabilities for XBOX 360 support; however, our project has no intentions of pursuing it as a platform for the time being.

For networking, we are using .Net Remoting. Later, we may utilize Internet Communication Engine, a modern alternative to object middleware such as CORBA™ or COM/DCOM/COM+.

For physics & physical simulation, we are using the Ageia PhysX Physics Engine. This engine can run in software, but also enable us to harness hardware acceleration through PhysX cards if it is available.

The required development environment is Microsoft Visual C# Express with XNA Game Studio Express 1.0 Refresh installed. Since XNA is designed to work only with "XNA Game Studio" versions of Visual Studio, SRA content cannot be built with a standard Visual Studio install (even those of professional grade other than XNA Game Studio Professional). See the tutorials section for information on how to get going.

For developers who would prefer to use Visual Studio 2005, the executable and type library projects can be opened and compiled in VS2005 as long as you have XNA Game Studio installed on the machine. However, XNA Game Studio is still required to build game content.

Game Engine Documentation

Documentation on game engine exists in many forms:

Design Considerations

Whether designing a core feature or extending into a new version of the game engine, the path forward on the client is guided by risks and stakeholders.

The stakeholders for the project have a vested interest in the game engine. The client's control quality and its graphics capability is the first impression of the product. The server's performance and resilience provide the core experience. The biggest stakeholder in mind during client design is the players; for server it's really the developers.

Project risks include those for client and server. The most prevalent risk for client is how much "trust" the system is willing to offer, an extension of security. Obviously, security is also a huge factor in server. Server also has to maintain high performance and reliability. Quality is often what suffers in projects such as this.

At all times, the software team wishes to maintain a separation between the core, "Awakened Engine", and our game, "Shadowrun: Awakened". At the root, this means never mixing code that provides a foundational capability with code implementing game mechanics. Fulfillment of this goal would mean that another team of developers should be able to make a game with similar technical constraints as SRA, but with widely disparate game mechanics and presentation goals.

While interacting with third party technology, such as PhysX, it is important to maintain a separation between our engine code and the third party code. Ideally, this means that for a given technology, only one library needs to include it as a reference, all other libraries simply reference the library wrapping the functionality. This is an attempt to minimize the total code changes necessary to swap third party technologies in the project. Unfortunately, this is not possible with two technologies. XNA is recurrent through most modules because it provides the definition for basic types and foundational classes & interfaces. Castle Active Record is recurrent because its attributes must be applied to persistent classes, wrapping them is not seen as favorable.

Software Team & Managers

The individuals building code for SRA are on the "Software Team". The Software Team currently has two managers:

Erik (AKA eralston) - Lead Software Developer - email - Leads the overall development of Awakened Engine and Shadowrun: Awakened.

Jonathon (AKA Dragonbrute) - Lead Server Developer - email - Leads the development of all server-side activities in Shadowrun: Awakened.


The Game Engine History document details the growth of the game engine.

Personal tools