@@ -38,44 +38,6 @@ GameServer is a sophisticated, game server designed for massively multiplayer on
3838- ** Process Monitoring** : Health checks and automatic worker restart
3939- ** Python Scripting** : Extensible game logic through Python integration
4040
41- ## Architecture
42-
43- ### Core Components
44- ┌─────────────────────────────────────────────────┐
45- │ Master Process │
46- │┌─────────────┐ ┌─────────────┐ ┌─────────────┐│
47- ││ Worker #1 │ │ Worker #2 │ │ Worker #N ││
48- ││ ┌─────────┐ │ │ ┌─────────┐ │ │ ┌─────────┐ ││
49- ││ │GameLogic│ │ │ │GameLogic│ │ │ │GameLogic│ ││
50- ││ │ World │ │ │ │ World │ │ │ │ World │ ││
51- ││ │ Entities│ │ │ │ Entities│ │ │ │ Entities│ ││
52- ││ │ Network │ │ │ │ Network │ │ │ │ Network │ ││
53- ││ └─────────┘ │ │ └─────────┘ │ │ └─────────┘ ││
54- │└─────────────┘ └─────────────┘ └─────────────┘│
55- └─────────────────────────────────────────────────┘
56- │ │ │
57- ▼ ▼ ▼
58- ┌─────────────────────────────────────────────────┐
59- │ Distributed Database (Citus) │
60- └─────────────────────────────────────────────────┘
61-
62-
63- ### Network Protocol Stack
64- ┌─────────────────────────────────────────────────┐
65- │ Application Layer │
66- │ •Game Logic Messages •Chat •Inventory •Combat │
67- ├─────────────────────────────────────────────────┤
68- │ Binary Protocol Layer │
69- │ •Message Serialization •Compression •Encryption │
70- ├─────────────────────────────────────────────────┤
71- │ Transport Layer (TCP/SSL) │
72- │ • Reliable Delivery • Flow Control • Congestion │
73- ├─────────────────────────────────────────────────┤
74- │ Session Management Layer │
75- │ •Connection Pooling •Authentication •Rate Limit │
76- └─────────────────────────────────────────────────┘
77-
78-
7941## Technology Stack
8042
8143### Core Technologies
@@ -87,14 +49,13 @@ GameServer is a sophisticated, game server designed for massively multiplayer on
8749- ** nlohmann/json** : JSON serialization/deserialization
8850
8951### Database
52+ - ** SQLite** : mainly for fast-testing
9053- ** PostgreSQL with Citus** : Distributed database backend
9154- ** Connection Pooling** : Efficient database resource management
9255- ** Sharding Support** : Horizontal scaling of game data
9356
9457### Build System
9558- ** CMake 3.16+** : Cross-platform build configuration
96- - ** vcpkg** : C++ dependency management
97- - ** Cross-platform** : Linux and macOS support
9859
9960## Quick Start
10061
@@ -110,65 +71,13 @@ GameServer is a sophisticated, game server designed for massively multiplayer on
11071git clone https://github.com/usermicrodevices/gameserver.git
11172cd gameserver
11273
113- # Install dependencies (Linux)
114- chmod +x install_dependencies_linux.sh
115- ./install_dependencies_linux.sh
116-
11774# Build the server
118- mkdir build && cd build
119- cmake .. -DCMAKE_BUILD_TYPE=Release
120- make -j$(nproc)
121-
122- # Configure the server
123- cp ../config/server_config.example.json config/server_config.json
124- # Edit server_config.json with your database and world settings
75+ ./build.sh --with-sqlite --with-asan
12576
12677# Run the server
12778./gameserver
12879```
12980
130- ### Configuration
131-
132- Create ``` config/server_config.json ``` :
133- ```
134- {
135- "server": {
136- "host": "0.0.0.0",
137- "port": 8080,
138- "process_count": 4,
139- "io_threads": 2,
140- "reuse_port": true
141- },
142- "database": {
143- "backend": "postgresql",
144- "host": "localhost",
145- "port": 5432,
146- "name": "gameserver",
147- "user": "gameserver",
148- "password": "secure_password",
149- "worker_nodes": ["node1:5432", "node2:5432"]
150- },
151- "world": {
152- "seed": 12345,
153- "view_distance": 8,
154- "chunk_size": 32,
155- "max_active_chunks": 1000,
156- "terrain_scale": 1.0,
157- "max_terrain_height": 256.0,
158- "water_level": 64.0,
159- "preload_world": true,
160- "world_preload_radius": 500.0
161- },
162- "logging": {
163- "level": "info",
164- "file": "logs/gameserver.log",
165- "max_size": 104857600,
166- "max_files": 10,
167- "compress": true
168- }
169- }
170- ```
171-
17281## Network Protocol
17382
17483### Dual Protocol Architecture
0 commit comments