Repository files navigation

Minecraft Clone

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.

To Build

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 GLFWcd 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.

Bug Reporting

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.

TODOs

This is a list of tasks that still need to be done.

Most Important


  • Save chunks when they unload from the chunk radius
  • Make GUI stuff look pretty
  • Clean up the code in ChunkManager.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 lighting
    • Add light sources
    • Add multi-color lighting
  • Add proper transparency support
  • Add inventory management
    • Add icons for blocks in the inventory
    • Add 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

Less Important


  • Support for different block types
    • E.g stairs, slabs, door, beds, etc.
  • 3D Rigged models and animations
  • Mobs
  • True survival mode
  • Settings Menu

Bugs


  • Linux Fileystem doesn't like numbers

About

A Minecraft Clone developed live on stream at twitch.tv/gameswthgabe

Resources

Stars

103 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Minecraft Clone

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.

To Build

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 GLFWcd 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.

Bug Reporting

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.

TODOs

This is a list of tasks that still need to be done.

Most Important


  • Save chunks when they unload from the chunk radius
  • Make GUI stuff look pretty
  • Clean up the code in ChunkManager.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 lighting
    • Add light sources
    • Add multi-color lighting
  • Add proper transparency support
  • Add inventory management
    • Add icons for blocks in the inventory
    • Add 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

Less Important


  • Support for different block types
    • E.g stairs, slabs, door, beds, etc.
  • 3D Rigged models and animations
  • Mobs
  • True survival mode
  • Settings Menu

Bugs


  • Linux Fileystem doesn't like numbers

About

A Minecraft Clone developed live on stream at twitch.tv/gameswthgabe

Resources

Stars

103 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Minecraft Clone

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.

To Build

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 GLFWcd 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.

Bug Reporting

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.

TODOs

This is a list of tasks that still need to be done.

Most Important


  • Save chunks when they unload from the chunk radius
  • Make GUI stuff look pretty
  • Clean up the code in ChunkManager.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 lighting
    • Add light sources
    • Add multi-color lighting
  • Add proper transparency support
  • Add inventory management
    • Add icons for blocks in the inventory
    • Add 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

Less Important


  • Support for different block types
    • E.g stairs, slabs, door, beds, etc.
  • 3D Rigged models and animations
  • Mobs
  • True survival mode
  • Settings Menu

Bugs


  • Linux Fileystem doesn't like numbers

About

A Minecraft Clone developed live on stream at twitch.tv/gameswthgabe

Resources

Stars

103 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Minecraft Clone

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.

To Build

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 GLFWcd 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.

Bug Reporting

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.

TODOs

This is a list of tasks that still need to be done.

Most Important


  • Save chunks when they unload from the chunk radius
  • Make GUI stuff look pretty
  • Clean up the code in ChunkManager.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 lighting
    • Add light sources
    • Add multi-color lighting
  • Add proper transparency support
  • Add inventory management
    • Add icons for blocks in the inventory
    • Add 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

Less Important


  • Support for different block types
    • E.g stairs, slabs, door, beds, etc.
  • 3D Rigged models and animations
  • Mobs
  • True survival mode
  • Settings Menu

Bugs


  • Linux Fileystem doesn't like numbers

About

A Minecraft Clone developed live on stream at twitch.tv/gameswthgabe

Resources

Stars

103 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Minecraft Clone

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.

To Build

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 GLFWcd 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.

Bug Reporting

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.

TODOs

This is a list of tasks that still need to be done.

Most Important


  • Save chunks when they unload from the chunk radius
  • Make GUI stuff look pretty
  • Clean up the code in ChunkManager.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 lighting
    • Add light sources
    • Add multi-color lighting
  • Add proper transparency support
  • Add inventory management
    • Add icons for blocks in the inventory
    • Add 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

Less Important


  • Support for different block types
    • E.g stairs, slabs, door, beds, etc.
  • 3D Rigged models and animations
  • Mobs
  • True survival mode
  • Settings Menu

Bugs


  • Linux Fileystem doesn't like numbers

About

A Minecraft Clone developed live on stream at twitch.tv/gameswthgabe

Resources

Stars

103 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Minecraft Clone

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.

To Build

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 GLFWcd 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.

Bug Reporting

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.

TODOs

This is a list of tasks that still need to be done.

Most Important


  • Save chunks when they unload from the chunk radius
  • Make GUI stuff look pretty
  • Clean up the code in ChunkManager.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 lighting
    • Add light sources
    • Add multi-color lighting
  • Add proper transparency support
  • Add inventory management
    • Add icons for blocks in the inventory
    • Add 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

Less Important


  • Support for different block types
    • E.g stairs, slabs, door, beds, etc.
  • 3D Rigged models and animations
  • Mobs
  • True survival mode
  • Settings Menu

Bugs


  • Linux Fileystem doesn't like numbers

About

A Minecraft Clone developed live on stream at twitch.tv/gameswthgabe

Resources

Stars

103 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Minecraft Clone

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.

To Build

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 GLFWcd 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.

Bug Reporting

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.

TODOs

This is a list of tasks that still need to be done.

Most Important


  • Save chunks when they unload from the chunk radius
  • Make GUI stuff look pretty
  • Clean up the code in ChunkManager.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 lighting
    • Add light sources
    • Add multi-color lighting
  • Add proper transparency support
  • Add inventory management
    • Add icons for blocks in the inventory
    • Add 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

Less Important


  • Support for different block types
    • E.g stairs, slabs, door, beds, etc.
  • 3D Rigged models and animations
  • Mobs
  • True survival mode
  • Settings Menu

Bugs


  • Linux Fileystem doesn't like numbers

About

A Minecraft Clone developed live on stream at twitch.tv/gameswthgabe

Resources

Stars

103 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Minecraft Clone

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.

To Build

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 GLFWcd 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.

Bug Reporting

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.

TODOs

This is a list of tasks that still need to be done.

Most Important


  • Save chunks when they unload from the chunk radius
  • Make GUI stuff look pretty
  • Clean up the code in ChunkManager.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 lighting
    • Add light sources
    • Add multi-color lighting
  • Add proper transparency support
  • Add inventory management
    • Add icons for blocks in the inventory
    • Add 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

Less Important


  • Support for different block types
    • E.g stairs, slabs, door, beds, etc.
  • 3D Rigged models and animations
  • Mobs
  • True survival mode
  • Settings Menu

Bugs


  • Linux Fileystem doesn't like numbers

About

A Minecraft Clone developed live on stream at twitch.tv/gameswthgabe

Resources

Stars

103 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages