Matthew Jack
unread,Jun 26, 2011, 9:17:30 AM6/26/11Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Runtime-Compiled C++
Aurora is our name for our current runtime-compiled C++ testbed - that
is, not the runtime-compilation code itself, but the simple game
engine we apply it to. We've developed the "Pulse" simulation-game
under Aurora to show off the runtime-compilation tech, and we hope to
develop other
It consists of some external open-source components, some of our own
code for engine functionality such as logging, and the core runtime
compiler system itself. In Visual Studio's solution explorer you'll
see the following projects:
- Audio_VS2010 - Sound module, currently a simple wrapper for the
OpenAL audio library
- Common_2010 - Some simple types for handling colours, math, etc
across the engine and gamecode.
- Renderer_2010 - Very simple renderer
- Rocket* - These are the RocketLib modules that provide our GUI
system
- RuntimeCompiler_VS2010 - The lowest layer of the runtime-
compilation functionality, reponsible for actually recompiling runtime-
modifiable code and interfacing to it
- SimpleTest - The Pulse demo, a simple game/simulation based on an
immune system
- Systems - Simple core engine components such as logging, timing
etc. Ideally all external systems would be exposed to the engine
through a simple "System" wrapper
Systems I want to explain in a little more detail: the project
populates a global environment struct ( SystemTable * gSys ) with
single instances of engine components, either simple enough to compile
from scratch (e.g. logging) or a wrapper for an externally compiled
library - preferably a DLL or a small static lib. It forms a central
place for bringing together all of these components in a coherent
fashion. Note that out of the "systems", SimpleSerialiser and the
ObjectFactorySystem are crucial to the runtime-compilation code,
whereas the rest are quite decoupled.
Some things we have in mind for the Aurora framework include:
- completely replacing the Renderer module
- porting it to Linux and Mac OS, as a precursor to porting to games
consoles
- possibly removing the entity system
- we may or may not stick with RocketLib
Aurora is just one possible testbed. For instance, we might bring in a
whole new open source engine alongside it to expand our possibilities,
hopefully sharing all the runtime-compilation code. On the flip-side,
we hope people will find it useful to fork Aurora and make drastic
changes to the runtime-compilation code to try out their own ideas -
with all the systems and example projects in place to test out the
results.
Any questions you have about the Aurora engine framework rather than
runtime-compilation itself, feel free to post them here.