aboutsummaryrefslogtreecommitdiff

blockgame_linux

A somewhat-completed attempt at writing that game from scratch in C++20.

desert

alpine

conflict

Features

  • High performance OpenGL renderer capable of 64 chunk distance with ease
  • Cross platform multiplayer support with a multithreaded scalable server
  • Diverse biomes and a virtually infinite world
  • Local player area bounded chat system
  • Persistent world and player position
  • Movement and collision system
  • Simple user interface
  • Decentralised anonymous authentication, no central authority

Dependencies

  • CMake : Cmake is a cross platform, open source build system generator.
  • Boost : Boost provides free peer-reviewed portable C++ source libraries.
  • sqlite3 : SQLite is a C-language library that implements a SQL database engine.
  • assimp : A library to import and export various 3d-model-formats.
  • SDL2 : A library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware.
  • epoxy : Epoxy is a library for handling OpenGL function pointer management for you.
  • freetype : FreeType is a freely available software library to render fonts.
  • protobuf : Protocol Buffers (a.k.a., protobuf) are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data.

Building from Source

To download the latest available release, clone this repository over github.

    $ git clone https://git.nj3.xyz/blockgame_linux

Then compile from source via cmake after moving into the blockgame_linux directory.

    $ cd ./blockgame_linux
    $ cmake ./
    $ make

Client Usage

Simply executing the binary will start a background server and connect your client to it.

    $ ./blockgame_linux

Others may connect, provided they provide your IP address as an address argument.

    $ ./blockgame_linux --address <your.ip.address.here>

Other arguments can be found with the help argument.

    $ ./blockgame_linux --help

Server Usage

A dockerfile has been provided and launching the server may be achieved with the following helper script:

    $ ./run_server.sh

We suggest you open the server's port (8191 by default) if necessary.