This is a Minecraft clone that will be used for an education YouTube series. I will link the YouTube series here once I begin creating it.
Note: Currently this code only supports Windows and Linux (almost)
Windows
In order to build this, you must have git installed. Then you can create a new directory where you want to install this code and open a command prompt. Then run:
git clone --recursive https://github.com/codingminecraft/StreamMinecraftClone
cd StreamMinecraftClone
build.bat vs2019
This should create a Visual Studio solution file, and all you need to do is double click the solution file, then build and run the project within Visual Studio.
Linux (Ubuntu)
In order to build this, you must have git and a few other dependencies installed. You cun run the following commands to ensure you have all the dependencies:# Get the dependencies for libcurl
sudo apt-get install libcurl4-gnutls-dev
# Get the dependencies for freetype
wget https://download.savannah.gnu.org/releases/freetype/freetype-2.10.4.tar.gz
tar xvfz freetype-2.10.4.tar.gz
cd freetype-2.10.4
./configure --prefix=/usr/local/freetype/2_10_4 --enable-freetype-config
make
make install
cd ..
rm -rf ./freetype-2.10.4
rm ./freetype-2.10.4.tar.gz
# Get dependencies for GLFW
sudo apt-get install xorg-dev
# Clone the repository and change into the directory
git clone --recursive https://github.com/codingminecraft/StreamMinecraftClone
# Compile and install GLFW
cd StreamMinecraftClone/Minecraft/vendor/GLFW
cmake .
make
sudo make install
cd ../../../
# Finally build the project
./build.sh gmake2
make Minecraft
If you ever need to rebuild the project simply run these two commands:
./build.sh gmake2
make Minecraft config=release
Note: If you want to use a different build system, just run build.bat which will print out all available build systems.
This game is still very much in development, there are no official releases yet. However, bug reporting is still very helpful so I can keep track of everything. If you encounter any bugs please report them at the issues tab of the repository at: https://github.com/codingminecraft/StreamMinecraftClone.
This is a list of tasks that still need to be done.
-
Save chunks when they unload from the chunk radius -
Make GUI stuff look pretty -
Clean up the code inChunkManager.cpp
- Make the application handle out of memory errors gracefully (Sort of done...)
- Either make it allocate more memory, or just de-prioritize the furthest chunks
-
Add block level lightingAdd light sources- Add multi-color lighting
-
Add proper transparency support -
Add inventory managementAdd icons for blocks in the inventoryAdd indicators for number of blocks in a slot
-
Add crafting support -
Cubemaps -
Day/Night cycle - Biome generation
- Ore generation
- Structure generation
Tree generation
- Water/Lava
-
Fullscreen support - Add sounds
-
Add Command Line Parsing - Add Multiplayer Support
- Support for different block types
- E.g stairs, slabs, door, beds, etc.
- 3D Rigged models and animations
- Mobs
- True survival mode
- Settings Menu
- Linux Fileystem doesn't like numbers