2018-12-20 00:00:01 +01:00
# OpenMiner
2015-07-17 17:08:53 +02:00
2019-04-13 15:45:44 +02:00
[![Build Status ](https://travis-ci.com/Unarelith/OpenMiner.svg?branch=master )](https://travis-ci.com/Unarelith/OpenMiner)
2020-03-10 23:50:41 +01:00
[![Documentation Status ](https://readthedocs.org/projects/openminer/badge/?version=latest )](https://openminer.readthedocs.io/en/latest/?badge=latest)
2019-01-04 20:26:06 +01:00
[![License ](https://img.shields.io/badge/license-LGPLv2.1%2B-blue.svg )](https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html)
2019-01-08 22:10:59 +01:00
[![Discord ](https://img.shields.io/discord/527527086756200458.svg?style=popout )](https://discord.gg/eN8k8wt)
2020-05-10 14:34:58 +02:00
[![Donate ](https://img.shields.io/badge/donate-paypal-brightgreen.svg )](https://www.paypal.me/Unarelith)
2015-07-17 17:08:53 +02:00
2019-02-03 13:55:34 +01:00
- [Project goal ](#project-goal )
2020-01-23 14:33:37 +09:00
- [Wiki ](#wiki )
2020-03-05 15:22:22 +01:00
- [Keys ](#keys )
2019-02-03 13:55:34 +01:00
- [How to compile ](#how-to-compile )
2020-04-29 01:09:07 +02:00
- [Using Windows ](#using-windows )
2020-05-22 16:22:57 +02:00
- [Using Linux ](#using-linux )
2020-04-30 00:24:10 +02:00
- [Using MacOS ](#using-macos )
2019-02-03 13:55:34 +01:00
- [Discussion ](#discussion )
- [Project status ](#project-status )
2020-01-31 17:47:35 +09:00
- [Screenshots ](#screenshots )
2019-02-03 13:55:34 +01:00
- [Credits ](#credits )
## Project goal
The long-term goal of this project is to provide a viable alternative to Minecraft modding.
2015-07-17 17:08:53 +02:00
2020-03-05 15:22:22 +01:00
## Wiki
- [Getting started ](https://github.com/Unarelith/OpenMiner/wiki/Getting-Started )
2020-03-12 13:36:54 +01:00
- [Contributing ](https://github.com/Unarelith/OpenMiner/blob/master/CONTRIBUTING.md )
2020-07-11 01:29:45 +02:00
- [Roadmap ](https://github.com/Unarelith/OpenMiner/wiki/Roadmap )
2020-03-12 13:36:54 +01:00
- [Coding style ](https://github.com/Unarelith/OpenMiner/wiki/Coding-Style )
2020-03-13 00:08:24 +01:00
- [Lua API ](https://openminer.readthedocs.io/en/latest/ )
2020-03-12 14:07:18 +01:00
- [Core API ](https://openminer.readthedocs.io/en/latest/lua-api-core/ )
- [Mod API ](https://openminer.readthedocs.io/en/latest/lua-api-mod/ )
- [GUI API ](https://openminer.readthedocs.io/en/latest/lua-api-gui/ )
2020-03-12 14:22:05 +01:00
- [C++ classes in Lua ](https://openminer.readthedocs.io/en/latest/lua-api-cpp/ )
2020-06-19 17:18:18 +02:00
- [Network Protocol ](https://openminer.readthedocs.io/en/latest/network-protocol/ )
2020-03-05 15:22:22 +01:00
2015-07-17 17:08:53 +02:00
## Keys
2018-06-12 23:28:06 +02:00
- Movement: < kbd > W</ kbd >< kbd > A</ kbd >< kbd > S</ kbd >< kbd > D</ kbd >
2018-06-21 00:55:38 +02:00
- Inventory: < kbd > E</ kbd >
2020-02-29 18:07:01 +01:00
- Creative window: < kbd > H</ kbd >
2020-02-22 02:16:19 +09:00
- Chat: < kbd > T</ kbd >
2018-06-24 22:32:20 +02:00
- Jump: < kbd > Space</ kbd >
2019-01-20 15:08:27 +01:00
- Sprint: < kbd > Ctrl</ kbd >
2018-06-24 22:32:20 +02:00
- Jetpack: < kbd > X</ kbd >
2015-07-17 17:08:53 +02:00
- Exit: < kbd > Escape</ kbd >
2020-01-22 09:35:42 +09:00
- Debug: < kbd > F3</ kbd >
2020-02-18 18:59:40 +09:00
- Fullscreen: < kbd > F11</ kbd >
2015-07-17 17:08:53 +02:00
## How to compile
2020-05-22 16:22:57 +02:00
### Using Windows
- [Wiki: Compiling on Windows using CMake and MinGW-w64 ](https://github.com/Unarelith/OpenMiner/wiki/Compiling-on-Windows-with-MinGW-w64 )
2020-05-23 06:06:16 +02:00
- [Wiki: Compiling on Windows using CMake and Visual Studio 2019 ](https://github.com/Unarelith/OpenMiner/wiki/Compiling-on-Windows-with-Visual-Studio-2019 )
2020-05-22 16:22:57 +02:00
2020-01-23 14:15:02 +09:00
### Using Linux
2020-05-31 23:38:45 +02:00
- [Wiki: Compiling on Linux ](https://github.com/Unarelith/OpenMiner/wiki/Compiling-on-Linux )
2015-07-17 17:08:53 +02:00
2020-04-30 00:24:10 +02:00
### Using MacOS
2020-04-29 01:09:07 +02:00
2020-05-22 16:22:57 +02:00
- Dependencies:
2020-04-30 00:24:10 +02:00
- A compiler with C++17 support (GCC >= 7.0 or clang >= 5.0)
2020-05-22 16:22:57 +02:00
- `git` and [CMake ](http://www.cmake.org/download/ ) (>= 3.12.4)
- **Optional:** `ninja` (much faster builds)
- _Check Homebrew for packages._
2020-04-30 00:24:10 +02:00
- Run `cmake -B build . && cmake --build build` ; if you installed `ninja` above, add `-GNinja` before `-B` in the previous command.
- Run the client with `./build/openminer`
- If you want a multiplayer game, run the server with `./build/openminer_server`
2020-04-29 01:09:07 +02:00
2018-12-26 17:57:46 +01:00
## Discussion
- Discord: [join server ](https://discord.gg/eN8k8wt )
2020-02-17 18:46:34 +09:00
- IRC: irc.freenode.net `#openminer`
2020-01-23 14:33:37 +09:00
2019-02-02 12:52:10 +01:00
## Project status
This list is non exhaustive.
2020-01-31 17:47:35 +09:00
### Implemented features
2020-07-03 10:00:24 +02:00
- Menus (title screen, world selection, settings, etc...)
2020-03-07 14:58:23 +01:00
- Basic worldgen (biomes, lakes, trees, flowers, pseudo-caves)
2020-07-03 10:00:24 +02:00
- Pseudo-infinite world in X/Y/Z axis (2^32 * 2^32 * 2^32 blocks) ([#25 ](https://github.com/Unarelith/OpenMiner/pull/25 ))
- Smooth lighting + ambient occlusion
- Client/server architecture ([#20 ](https://github.com/Unarelith/OpenMiner/pull/20 ))
- Chat with support for commands (for example `/tp` ) ([#57 ](https://github.com/Unarelith/OpenMiner/pull/57 ))
- Lua modding API
2020-05-22 19:14:47 +02:00
- Block/item/recipe/biome/tree/sky/dimension/entity definition
2020-01-31 17:47:35 +09:00
- Custom GUI creation
2020-07-03 10:00:24 +02:00
- Blocks can have an inventory and update every server tick (workbench, furnace)
2020-02-08 17:45:20 +09:00
- Block metadata
2020-06-04 19:01:04 +02:00
- Player model display (without animation)
2020-03-08 16:09:00 +01:00
- Dimensions (like the Nether or the Ender in Minecraft) ([#80 ](https://github.com/Unarelith/OpenMiner/pull/80 ))
2020-06-22 15:50:12 +02:00
- World loading/saving (see [#26 ](https://github.com/Unarelith/OpenMiner/issues/26 ))
2020-04-05 16:59:34 +02:00
- Texture pack system (partially implemented, see [#34 ](https://github.com/Unarelith/OpenMiner/issues/34 ))
2020-05-22 19:14:47 +02:00
- Entities ([#90 ](https://github.com/Unarelith/OpenMiner/pull/90 ))
2020-01-31 17:47:35 +09:00
### Missing features
2020-03-07 14:58:23 +01:00
- Fluid propagation ([#62 ](https://github.com/Unarelith/OpenMiner/issues/62 ))
2020-03-04 11:28:45 +01:00
- Day/night cycle with sun/moon display ([#73 ](https://github.com/Unarelith/OpenMiner/issues/73 ))
2020-06-22 15:50:12 +02:00
- Seed-based worldgen ([#116 ](https://github.com/Unarelith/OpenMiner/issues/116 ))
- Cave tunnels ([#118 ](https://github.com/Unarelith/OpenMiner/issues/118 ))
2020-02-18 18:40:02 +09:00
- Clouds ([#52 ](https://github.com/Unarelith/OpenMiner/pull/52 ))
2020-03-07 14:58:23 +01:00
- Particle system
2019-02-02 12:52:10 +01:00
2020-01-31 17:47:35 +09:00
## Screenshots
2019-02-02 12:52:10 +01:00
2020-01-31 17:47:35 +09:00
![](screenshot1.png?raw=true)
![](screenshot2.png?raw=true)
![](screenshot3.png?raw=true)
![](screenshot4.png?raw=true)
2020-03-09 21:10:03 +01:00
![](screenshot5.png?raw=true)
2020-03-12 15:17:21 +01:00
![](screenshot6.png?raw=true)
2019-02-02 12:52:10 +01:00
2019-01-09 00:01:31 +01:00
## Credits
2019-01-20 19:09:37 +01:00
- xMrVizzy ([Faithful 32x ](https://www.curseforge.com/minecraft/texture-packs/faithful-32x ) texture pack, will completely replace Vanilla textures)
2020-03-17 20:35:21 +01:00
- ThePhD ([sol2 ](https://github.com/ThePhD/sol2 ))
2020-04-29 21:26:12 +02:00
- skypjack ([EnTT ](https://github.com/skypjack/entt ))
2019-01-09 00:01:31 +01:00