diff --git a/README.md b/README.md index 98cae22..cf62170 100644 --- a/README.md +++ b/README.md @@ -1,43 +1,14 @@ -# Ferx - -Ferx is a basic game engine written in c++ - -[![CMake on a single platform](https://github.com/coderloff/ferx/actions/workflows/cmake-single-platform.yml/badge.svg)](https://github.com/coderloff/ferx/actions/workflows/cmake-single-platform.yml) +# Ferx Engine ![Ferx](https://raw.githubusercontent.com/coderloff/ferx/refs/heads/main/docs/assets/Ferx.png) -## Build +
+ Build + License + Contributors + Forks + Stars + Issues +
-To clone repo: -```bash -git clone https://github.com/coderloff/ferx -``` - -After clonning the repo, update the submodules: -```bash -git submodule update --init -``` - -That's it! You can build and run the project with `make` command - -### Commands - -Here is the list of each `make` command: - -`make` - builds the project and runs it (default: debug)
-`make debug` - builds the project as debug
-`make release` - builds the project as release
-`make run` - runs the executable
-`make clean` - cleans the build target
-`make clean-all` - deletes build directory
- -## Dependencies - -Required dependencies: `git` `cmake` `make` `ninja` - -## Libraries - -* **GLFW** -* **GLAD** -* **GLM** -* **ImGUI** +Ferx is a basic game engine written in C++. This project is mainly designed for learning purposes. For more information, check out [docs](https://github.com/coderloff/ferx/) diff --git a/docs/Building Project.md b/docs/Building Project.md new file mode 100644 index 0000000..b13a8e8 --- /dev/null +++ b/docs/Building Project.md @@ -0,0 +1,28 @@ +# Building Project + +To clone repo: +```bash +git clone https://github.com/coderloff/ferx +``` + +After clonning the repo, update the submodules: +```bash +git submodule update --init +``` + +That's it! You can build and run the project with `make` command + +## Commands + +Here is the list of each `make` command: + +`make` - builds the project and runs it (default: debug)
+`make debug` - builds the project as debug
+`make release` - builds the project as release
+`make run` - runs the executable
+`make clean` - cleans the build target
+`make clean-all` - deletes build directory
+ +## Dependencies + +Required dependencies: `git`, `cmake`, `make`, `ninja` \ No newline at end of file diff --git a/docs/Contributing.md b/docs/Contributing.md new file mode 100644 index 0000000..8da54c6 --- /dev/null +++ b/docs/Contributing.md @@ -0,0 +1,11 @@ +# Contributing + +Firstly, thanks for all the contributions! + +For contributing, you should follow [conventional commit messagess rule](https://gist.github.com/qoomon/5dfcdf8eec66a051ecd85625518cfd13). + +## Closing issues + +For closing issues, you can add `close (issue id)` to your commit message. + +Here is an example: `feat(close #1): Implement ECS architecture` \ No newline at end of file diff --git a/docs/Project Structure.md b/docs/Project Structure.md new file mode 100644 index 0000000..f4d5e17 --- /dev/null +++ b/docs/Project Structure.md @@ -0,0 +1,27 @@ +# Project Structure + +There are four main folders in the project: `editor`, `engine`, `thirdparty`, and `docs` + +- **Engine**: classes for the core engine + - `Engine`: main engine class handling instances + - `FrameBuffer`, `IndexBuffer`, `VertexBuffer`, `VertexArray`: class implementations of buffers and vertex array + - `Shader`, `Texture` - class implementations handling shaders and textures + - `Input`: input handling using GLFW + - `Window`: window management using GLFW + - `Renderer`: basic renderings and overall handlings + - `UI`: user interface handling using ImGui + - `Camera`: basic camera implementation supporting movement and rotation + +- **Editor**: main executable to interact with the engine + - `Resources`: folder containing fonts, shaders, and assets + - `Editor`: main editor class handling + - `Main`: executing arguments and configurations + +- **Thirdparty**: different external libraries like GLFW or ImGui + - `GLAD`: extension loader for modern OpenGL functions + - `GLFW`: multi-platform library for window and input handling + - `GLM`: mathematics library for complex computations + - `ImGui`: graphical user interface for C++ + - `stb_image`: single-header file for handling image loading + +- **Docs**: documentations to understand overall process \ No newline at end of file