Skip to content

Commit cbf15d6

Browse files
authored
Update README.md
1 parent fbf46b2 commit cbf15d6

File tree

1 file changed

+68
-6
lines changed

1 file changed

+68
-6
lines changed

README.md

+68-6
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ I built this because I wanted a SDK to plug into my C++ projects, in the past I
66
GekkoNet is heavily inspired by the [GGPO](https://github.com/pond3r/ggpo) Rust reimplementation [GGRS](https://github.com/gschup/ggrs).
77

88
#### Why not use GGPO?
9-
I am personally not a big fan of the callback based approach of GGPO hence why I am more of fond of how GGRS handles its control flow. And I might be addicted to reinventing the wheel :sweat_smile:
9+
I am personally not a big fan of the callback based approach of GGPO hence why I am more of fond of how GGRS handles its control flow. And I might be addicted to reinventing the wheel, this has mostly been a learning experience of mine to learn more about async systems and networking in general :)
1010

1111
## Project Goals
1212
### Done
@@ -28,7 +28,6 @@ I am personally not a big fan of the callback based approach of GGPO hence why I
2828
### Work in progress
2929
- Network Statistics
3030
- Joining a session that's already in progress as a spectator (and maybe as a player later)
31-
- Docs
3231

3332
### Maybe Later
3433
- Replays
@@ -37,12 +36,75 @@ I am personally not a big fan of the callback based approach of GGPO hence why I
3736

3837
## Getting Started
3938
### Docs
40-
https://heatxd.github.io/GekkoNet/
41-
### Building
42-
Todo
39+
- Automatically generated Docs: https://heatxd.github.io/GekkoNet/
40+
- Also look at the examples to see how GekkoNet functions!
41+
42+
## Building GekkoNet
43+
### Prerequisites
44+
To build GekkoNet, make sure you have the following installed:
45+
46+
1. **CMake** (version 3.15 or higher)
47+
2. **C++ Compiler**:
48+
- **GCC** or **Clang** (Linux/macOS)
49+
- **MSVC** (Visual Studio) for Windows
50+
3. **Doxygen** (optional, for documentation generation if `BUILD_DOCS` is enabled)
51+
52+
### Step-by-Step Instructions
53+
54+
### 1. Clone the Repository
55+
First, clone the GekkoNet repository:
56+
57+
```sh
58+
git clone https://github.com/HeatXD/GekkoNet.git
59+
cd GekkoNet/GekkoLib
60+
```
61+
62+
#### 2. Configure Build Options
63+
GekkoNet includes several options to customize the build:
64+
65+
- `BUILD_SHARED_LIBS`: Set to `ON` to build shared libraries, or `OFF` for static libraries (default).
66+
- `NO_ASIO_BUILD`: Set to `ON` if you do not need ASIO.
67+
- `BUILD_DOCS`: Set to `ON` if you want to generate documentation using Doxygen (requires Doxygen installed).
68+
69+
To configure these options, use `cmake` with `-D` flags. For example:
70+
71+
```sh
72+
cmake -S . -B build -DBUILD_SHARED_LIBS=ON -DNO_ASIO_BUILD=OFF -DBUILD_DOCS=OFF
73+
```
74+
75+
### 3. Generate Build Files
76+
Run CMake to configure the build and generate files:
77+
78+
```sh
79+
cmake -S . -B build
80+
```
81+
82+
#### 4. Build the Project
83+
Once configured, build the project using the following command:
84+
85+
```sh
86+
cmake --build build
87+
```
88+
89+
On successful completion, binaries and libraries will be located in the `out` directory within the project.
90+
91+
#### 5. (Optional) Build Documentation
92+
If you set `BUILD_DOCS=ON`, generate the documentation as follows:
93+
94+
```sh
95+
cmake --build build --target docs
96+
```
97+
98+
Documentation will be available in the `build/docs` directory as HTML files.
99+
100+
### Build Output
101+
- **Library**: Located in `out/`, with shared/static suffixes depending on build options.
102+
- **Documentation** (if built): Available in `build/docs/`.
103+
104+
---
43105

44106
## Projects using GekkoNet
45-
Todo
107+
If you have a project using GekkoNet please let me know!
46108

47109
## License
48110
GekkoNet is licensed under the BSD-2-Clause license

0 commit comments

Comments
 (0)