-
Notifications
You must be signed in to change notification settings - Fork 18
Home
Bruno Ploumhans edited this page Jun 23, 2020
·
2 revisions
Welcome to the voxel-rs wiki!
Currently, the game is divided in two parts: an authoritative server and a client. When you run the project with cargo run
, both are launched on different threads. Eventually it will be possible to launch the client and the server separately.
The client is the interface between the game and the player. It is mainly responsible for rendering the game and collecting the inputs of the player.
The server manages how the game plays out. It
- generates and stores chunks,
- manages player movement,
- computes the light levels,
- handles game physics.
The project is divided in 4 crates:
-
common
: code that is common to the client and the server. -
client
: code that is only used by the client. -
server
: code that is only used by the server. -
quint
: a gui "library" that is going to be removed at some point.
-
fps
: FPS counter. -
gui
: experiments with an immediate-mode gui. -
input
: input management (keyboard and mouse). -
mainmenu
: old main menu that doesn't work anymore and will be fixed at some point. -
render
: different parts of the renderer.-
buffers
: wgpu buffer management. -
frustum
: helper preventing the rendering of chunks that are totally invisible to the player. -
init
: wgpu initialization helpers. -
render
: more wgpu helpers. -
ui
: ui rendering. -
world
: world rendering.
-
-
settings
: settings management. -
singleplayer
: the main part of the current client, it contains the single player mode logic. -
texture
: texture loading. -
ui
: old ui based on quint that will be removed at some point. -
window
: abstraction allowing to transition between game states (main menu, single player, multi player, ...). For now, the only supported state issingleplayer
.