From d357ae45358e5a70e146a43d39a905f4917e4f7f Mon Sep 17 00:00:00 2001 From: Jordon Brooks Date: Tue, 6 May 2025 23:34:25 +0100 Subject: [PATCH] Update readme --- README.md | 72 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 71 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1805e6c..7d0acd0 100644 --- a/README.md +++ b/README.md @@ -1 +1,71 @@ -# FluxEngine \ No newline at end of file +# 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. \ No newline at end of file