Update readme

This commit is contained in:
Jordon Brooks 2025-05-06 23:34:25 +01:00
parent 76ffb658db
commit d357ae4535
Signed by: jordon
GPG key ID: DBD9758CD53E786A

View file

@ -1 +1,71 @@
# FluxEngine
# 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.