Skip to content

1SHAMAY1/TimeEngine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

146 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

TimeEngineIcon

Time Engine

A high-performance C++ game engine designed for sophisticated 2D application development and deterministic time manipulation.

C++17 Windows | Linux | macOS Graphics License MIT

Time Engine Editor Workspace


⏳ The Core Vision: 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.


✨ Core Engine Modules

πŸ–₯️ Professional Editor Experience

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.

Editor UI 1 Editor UI 2

⚑ Inbuilt 2D Sprite Editor & IDE (Final Stages)

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.

image image image image


πŸ› οΈ Component System (ECS)

The engine utilizes a modular ECS architecture. Below is the current development status and use case for each component:

βœ… Tested & Stable

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.

πŸ› οΈ Nearly Stable (Final Testing)

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.

🚧 In Development

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.

πŸ§ͺ Experimental / Early Modules

  • 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.

🎨 Rendering & Graphics Backends

  • 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.

Rendering Demo


πŸš€ Getting Started

  1. Clone: git clone --recursive https://github.com/1SHAMAY1/TimeEngine.git
  2. Generate: Run the workspace generation script for your platform:
    • Windows: Scripts/Windows/GenerateProjectFiles.bat
    • Linux: Scripts/Linux/GenerateProjectFiles.sh
    • macOS: Scripts/Mac/GenerateProjectFiles.sh
  3. Build: Open the generated IDE workspace/solution or run the build command for your platform:
  4. Launch: Run TimeEditor.exe to access the Project Hub.

πŸ€– LLM-Assisted Development

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., TimeGUI wrapper for ImGui, MathUtils for GLM), and coding conventions.
  • .agents/rules/priority.md: System-level instructions loaded by agentic frameworks to enforce coding standards automatically.

🀝 Contributing

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.

About

Time Engine is a high-performance C++ game engine designed for sophisticated 2D application development and deterministic time manipulation.

Topics

Resources

License

Contributing

Security policy

Stars

1 star

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors