# 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](https://github.com/gabime/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: ```bash git clone https://git.bbgames.dev/jordon/FluxEngine.git cd FluxEngine ``` 2. Generate build files using our custom build script: ```bash .\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: ```bash 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](LICENSE) file for details. ## Acknowledgments - [spdlog](https://github.com/gabime/spdlog) for the logging library. - The open-source community for inspiration and support.