An attempt at making a C++ game engine from scratch
Find a file
2025-06-21 20:34:28 +01:00
.vscode Implemented initial concept of Objects and GC 2025-05-06 23:21:04 +01:00
FluxEngine Implemented initial concept of Objects and GC 2025-05-06 23:21:04 +01:00
Sandbox Implemented initial concept of Objects and GC 2025-05-06 23:21:04 +01:00
subprojects Fixed it 2025-05-06 16:59:40 +01:00
.gitignore Update .gitignore 2025-06-21 20:34:28 +01:00
.gitmodules Added logging to the engine 2023-03-01 00:11:37 +00:00
GenerateProjects.bat Fixed it 2025-05-06 16:59:40 +01:00
LICENSE Initial commit 2023-02-28 20:07:12 +00:00
meson.build Fixed it 2025-05-06 16:59:40 +01:00
README.md Update readme 2025-05-06 23:34:25 +01:00

FluxEngine

FluxEngine is a high-performance, modular game engine designed for flexibility and scalability. It provides a robust framework for building games and interactive applications, leveraging modern C++ standards and best practices.

Features

  • Cross-Platform Support: Build games for Windows, Linux, and macOS.
  • Modular Design: Easily extend and customize the engine with its modular architecture.
  • Modern C++: Written in C++20, ensuring high performance and maintainability.
  • Garbage Collection: Built-in garbage collection system for efficient memory management.
  • Logging: Integrated logging system powered by spdlog.
  • Static and Dynamic Linking: Supports both static and dynamic library builds.

Getting Started

Prerequisites

  • C++ Compiler: A compiler with C++20 support (e.g., MSVC, GCC, or Clang).
  • meson: Version 0.63 or higher.
  • Dependencies: The project uses spdlog for logging, included as a meson submodule.

Building the Project

  1. Clone the repository:

    git clone https://git.bbgames.dev/jordon/FluxEngine.git
    cd FluxEngine
    
  2. Generate build files using our custom build script:

    .\GenerateProjects.bat
    
  3. Run the Sandbox tests from the builddir directory.

Directory Structure

  • FluxEngine/src: Source code for the engine.
    • public: Public headers for the engine.
    • private: Implementation files for the engine.
  • Sandbox/src: Source code for the Sandbox testing app.
    • private: private files for Sandbox.
  • builddir: Build output directory.

Key Components

  • Engine: Core engine functionality, including initialization and runtime management.
  • GarbageCollector: Manages memory and object lifetimes.
  • Log: Provides logging utilities for debugging and runtime diagnostics.

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository.
  2. Create a feature branch:
    git checkout -b feature/your-feature
    
  3. Commit your changes and push to your fork.
  4. Open a pull request.

License

FluxEngine is licensed under the MIT License. See the LICENSE file for details.

Acknowledgments

  • spdlog for the logging library.
  • The open-source community for inspiration and support.