Hopson97 / open-builder

Open "Minecraft-like" game with multiplayer support and Lua scripting support for the both client and server
https://github.com/Hopson97/open-builder/projects/3
GNU General Public License v3.0
703 stars 80 forks source link
cmake cpp enet game learning lua minecraft multiplayer networking openbuilder opengl scripting sfml voxel voxel-game youtube-series

As of ~April 2020, I stopped working on this project for several reasons.

The way I created this was quite "over done" to the point it got hard to work out how to add new features, perhaps due to trying to be an engine rather than a game. However, I am interested in one day revisiting this concept, however perhaps in a different repository rather than this one.

Open Builder

Linux C/C++ CI macOS C/C++ CI

Open source Minecraft-like voxel sandbox game with multiplayer support.

More information about the project can be found in the Open Builder Wiki

This was made mostly for a YouTube series which can be found here: Lets Code A Multiplayer Voxel Game

Compiling/ Running

Windows With Visual Studio

MacOS With CMake

Linux With CMake

Project Structure

A quick overview of the code and project structure can be found in the wiki article:

Project Structure

Contributing

Please see main article here:

Contributing

Screenshots

Terrain gen:

player

Early screenshot: player

Similar Projects

This project was heavily influenced by the following projects:

Minetest

Another open source voxel sandbox game, one of the original ones. Also created using C++, and also has multiplayer support.

Website - GitHub

Terasolgy

Open source multiplayer voxel sandbox game created using Java like the original minecraft.

Website - GitHub

Craft

Minecraft clone created by Fogleman in C.

Website - GitHub

Special Thanks

D3PSI - Added GitHub actions, and created the install.sh file to automate the installation process on Linux systems

CalvinSpace - Created a lot of the textures for the blocks

History

Originally, this was going to be a Zombie game, but I got very bored of that very quickly, and so changed the project to be a voxel game instead.

As a result of this, the code was created for the zombie game, so when I decided to switch over, the code got messy very quickly.

To combat this, I did a massive refactor in just over 2 weeks, re-creating large parts of the project.

The before-refactor-project can be found here

The commit that adds the refactored code can be found here