In April 2014 I began work on my current project, Chronomancers. While half of our team was using DigiPen’s Zero Engine for prototyping, I started work on my own engine and editor. The TimeMachine Engine/Editor was written in C++. It utilizes wxWidgets as a GUI framework, DirectX 11 for graphics, and FMOD Studio for audio.
Features I Worked On
- Lua
- Integrated Lua into engine utilizing meta data for bindings
- Support for C++ user defined classes/enumerations
- Additional safeguards for new Lua users
- Detection of implicit global creation
- Detection of usage of dangling Lua references
- Detection of invalid enumeration values
- In-engine Script Editor
- Simple autocomplete for user-defined types/enums
- Doxygen-like documentation
- In-depth error reporting with inline annotations
- Inline documentation accessible by hotkey
- Gizmos
- Translation, scale, and rotation with multi-object support
- PropertyGrid
- Display properties for user-defined types
- Supports custom scripting component properties
- Engine Architecture
- Component-based design with support of C++ and Lua defined components
- Integrated major systems (graphics, physics, audio) into main engine
- Event dispatching system with support for event priority
- Debugging
- Scoped instrumented profiler with HTML/Text output (Example output)
- Custom ASSERT/logging macros and functions
- Automatic Lua stack tracing
- Crash handler which produces dump files for postumus debugging