Shadowrun: Awakened Forums Welcome, Guest. Please login or register.
Did you miss your activation email?
  Site Forums   Wiki   Code Docs Help Register  
    Page   Discussion         View source History  

Third party technology overview

From Shadowrun: Awakened

Jump to: navigation, search

The Game Applications were built from a set of pre-existing technologies to suit the needs of Shadowrun Awakened. Understanding these technologies is key to learning how to contribute in software. This document gives a high-level summary of technology in the game and how they are used by us. Installation of these technologies is further discussed in the Tutorials article.

Unreal Development Kit

The UDK is the backbone development tool for the project, offering content creation and management, scripting, and access to the Unreal 3 Engine. The UDK is used by artists to create levels, script areas, and implement mechanics.

  • DllBind - The UDK has a limited ability to interop with C++ DLLs via mechanism called DllBind. Some of the C++ modules are designed to be utilized by UnrealScript code that exploit this feature, including the SraData.dll library which provides communication between Unreal and our MySQL database.
  • Unreal Frontend - A tool for building, running, and packaging Unreal games. This is used to build our custom UnrealScript classes and run UDK games to test our game.
  • UnrealEd - The UnrealEd Level Editor enables content creators to create maps. Individual maps in Unreal will become zones in SRA.
  • UnrealScript - Unreal Engine uses a Java-like script language called "UnrealScript". Most game mechanics will be implemented in this script, along with UI elements, and other supporting behavior. Programmers will need to be conversant in UnrealScript in order to make a meaningful contribution on the client-side.


MySQL is an open source relational database technology. In order to run the development version of the SRA game, it is necessary to install and run a local copy of MySQL and load it with our database schema. It is utilized to persist data about characters, stories, and locations in SRA.

  • Front-End - If you want to work on a lot of SQL code, then we recommend installing a graphical front-end for MySQL, since the built-in command-line is quite limiting. There are numerous graphical front-ends for MySQL. We recommend MySQL Workbench.
  • MySQL Connector - The "connector" is a library that enables integration between programs and the database. We utilize both the C++ and .Net connector for out tools, depending on the language of the module in question.
  • Stored Procedures - All actions in the database performed by SRA applications are implemented as stored procedures (or SPROCs). The Routine Analyzer application reads the definition for these SPROCs and generates C++ and UnrealScript code that acts on them, enabling developers to simply change the database and regenerate code, as opposed to propagating changes through three layers of code manually.