docs: Add documentation for building, contributing, and structure
This commit is contained in:
parent
11becc1f71
commit
a673425dfd
49
README.md
49
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
|
||||
<div align="center">
|
||||
<img src="https://img.shields.io/github/actions/workflow/status/coderloff/ferx/cmake-single-platform.yml?style=for-the-badge" alt="Build" />
|
||||
<img src="https://img.shields.io/github/license/coderloff/ferx?style=for-the-badge" alt="License" />
|
||||
<img src="https://img.shields.io/github/contributors/coderloff/ferx?style=for-the-badge" alt="Contributors" />
|
||||
<img src="https://img.shields.io/github/forks/coderloff/ferx?style=for-the-badge" alt="Forks" />
|
||||
<img src="https://img.shields.io/github/stars/coderloff/ferx?style=for-the-badge&color=%23DFB317" alt="Stars" />
|
||||
<img src="https://img.shields.io/github/issues/coderloff/ferx?style=for-the-badge" alt="Issues" />
|
||||
</div>
|
||||
|
||||
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)<br>
|
||||
`make debug` - builds the project as debug<br>
|
||||
`make release` - builds the project as release<br>
|
||||
`make run` - runs the executable<br>
|
||||
`make clean` - cleans the build target<br>
|
||||
`make clean-all` - deletes build directory<br>
|
||||
|
||||
## 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/)
|
||||
|
28
docs/Building Project.md
Normal file
28
docs/Building Project.md
Normal file
@ -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)<br>
|
||||
`make debug` - builds the project as debug<br>
|
||||
`make release` - builds the project as release<br>
|
||||
`make run` - runs the executable<br>
|
||||
`make clean` - cleans the build target<br>
|
||||
`make clean-all` - deletes build directory<br>
|
||||
|
||||
## Dependencies
|
||||
|
||||
Required dependencies: `git`, `cmake`, `make`, `ninja`
|
11
docs/Contributing.md
Normal file
11
docs/Contributing.md
Normal file
@ -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`
|
27
docs/Project Structure.md
Normal file
27
docs/Project Structure.md
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user