Skip to content
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.

Client

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.

Server

The server manages how the game plays out. It

Code structure

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.

Client modules

  • 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 is singleplayer.
Clone this wiki locally