A high-performance C++ game engine designed for sophisticated 2D application development and deterministic time manipulation.
TimeEngine is built with a unique architectural goal: deterministic simulation. While it provides a professional-grade suite for 2D development, it is being evolved to support:
- Frame-Perfect Rewind: Snapshot-based state management for instant time reversal.
- Deterministic Logic: Ensuring simulation consistency across environments.
- Time Dilation: Granular control over simulation speed and flow.
Note: Time manipulation features are currently in active development. See our Roadmap.
The Time Engine workspace is built for developer productivity, featuring:
- Viewport Navigation: Seamless WASD + Right-Click movement with camera speed scaling and precise zoom-to-grid mechanics.
- Horizontal Viewport Toolbar: Quick-access interface for switching between selection, transform, and specialized editor modes.
- TEPropertyDrawer: A modular system for generating consistent and stable property inspectors automatically.
- Modern Glass UI: Translucent context menus and property panels for a clean, non-intrusive workspace.
- Plugins Settings Panel: A built-in GUI panel (via
Edit -> Plugins) to dynamically view discovered plugins, load/unload DLLs, toggle their active state, and write persistent enabled properties to disk. - Advanced Performance Profiler: High-fidelity profiling dashboard showing frame timing breakdowns (Game update, Render flush, Physics simulation, UI render) visualized through stacked horizontal bars, live scrolling plots, and dynamic Heap/Stack memory allocation tables (tracking object instances and active call stack frames).
- MCP Automation Interface: A built-in SSE + JSON-RPC network automation interface allowing full, programmatic remote control of editor tools, screenshot retrieval, input simulation, and component properties editing.
A core refactor has introduced a fully data-driven, modular scripting environment within the engine:
- Recursive Expression Evaluator: Supports complex nested math (e.g.,
sin(a + b) * cos(c)) with full operator precedence. - Unified Block Executor: A robust pipeline handling draw calls, assignments, and control flow (if/else, for-loops) in a single unified script.
- Live Code Interaction: Automated variable registration for real-time scripting and visualization.
The engine utilizes a modular ECS architecture. Below is the current development status and use case for each component:
| Component | Use Case |
|---|---|
| Box/Circle/Triangle/Polygon | Procedural geometric shapes with integrated collision detection. Perfect for prototyping and geometric art. |
| LightComponent | Point and directional lights that interact with materials to create depth and atmosphere. |
| TransformComponent | Essential spatial data (X, Y, Rotation, Scale) for every entity. |
| TagComponent | Unique identification for entity organization and retrieval. |
| Component | Use Case |
|---|---|
| Sprite / Animated Sprite | Texture rendering and flipbook-style animations for characters and environments. |
| ProceduralSpriteComponent | The base class for custom, code-driven visual elements via scripting. |
| Component | Use Case |
|---|---|
| Input System | Action-based input mapping for rebindable controls (Mouse/Keyboard). |
| AmbientLightComponent | Global illumination settings for the entire scene. |
| ParallaxComponent | Layered background scrolling to create a 2D sense of depth. |
- Physics Engine (
PhysicsWorld): Initial support for rigid body physics and simulation (not yet production-ready). - Particle System: Components for building emitters and managing particle pools for visual effects.
- OpenGL 4.5: Modern desktop rendering with DSA (Direct State Access) for maximum efficiency on Windows, Linux, and macOS.
- Vulkan: Low-overhead, explicit GPU API for high-performance rendering with full control over the graphics pipeline.
- DirectX 11: Native Windows rendering backend via D3D11 for broad hardware compatibility on the Windows platform.
- OpenGL ES: Lightweight ES backend targeting embedded and mobile-class hardware profiles.
- Batch Rendering: Optimized draw calls for quads, sprites, and procedural primitives across all backends.
- Material System: Flexible shader and texture management via a centralized, backend-agnostic library.
- Clone:
git clone --recursive https://github.com/1SHAMAY1/TimeEngine.git - Generate: Run the workspace generation script for your platform:
- Windows:
Scripts/Windows/GenerateProjectFiles.bat - Linux:
Scripts/Linux/GenerateProjectFiles.sh - macOS:
Scripts/Mac/GenerateProjectFiles.sh
- Windows:
- Build: Open the generated IDE workspace/solution or run the build command for your platform:
- Launch: Run
TimeEditor.exeto access the Project Hub.
TimeEngine is optimized for development with AI coding assistants (e.g., Gemini, Claude, Cursor). We provide structured context files to help LLMs understand our architecture, folder structure, and vendor wrapper constraints immediately:
- llms.md / llms.txt: Detailed mapping of project architectures, directory structures, vendor library wrapping rules (e.g.,
TimeGUIwrapper for ImGui,MathUtilsfor GLM), and coding conventions. - .agents/rules/priority.md: System-level instructions loaded by agentic frameworks to enforce coding standards automatically.
Time Engine is an open-source project, and we welcome contributions. Please see CONTRIBUTING.md and our Roadmap for more details.
Important
This engine is under Active Development. Modules marked as "In Development" or "Experimental" may undergo breaking changes.








