Overview
Title
Sole Developer (assets not mine, attributions here)
Features
-
Solutions to fundamental 3D game needs: voxel-based rendering and light propagation, preventive player physics.
-
Minecraft’s defining qualities: real-time generation of a modifiable, persistent, endless world.
-
Gameplay augmentations: slabs, ladders, alternate dimensions and village structures.
Time
8 weeks
SimplerMiner emulates features deconstructed while directly observing the sandbox game Minecraft. With the exception of libraries to load audio and image files, the C++ codebase implements the 3D game's core from scratch, supplemented by gameplay elements like villages and a Nether dimension.
What went well?
-
Discovering computer graphics techniques can go beyond photo-realistic applications.
-
Implementing dimensions amounted to creating a simple array of the chunks’ container.
-
Concentrating on gameplay over engine features later in development afforded problem spaces with fewer standard solutions, letting me consider new programming approaches.
What went wrong?
-
Player physics took much longer than expected to debug.
-
The new approach necessary to implement villages repeatedly required explanation.
-
Poor code quality hindered the implementation of dot product-based view culling.
What have I learned?
-
Though both have their pros and cons, I prefer graphics’ open-endedness over physics’ standardized approaches.
-
Time spent coding before grabbing help decreases as coding skill increases, because the problems programmers are stuck on become generally less and less trivial.
-
Ease and hardship of implementation for alternate dimensions and villages, respectively, demonstrates that a topic’s semantic complexity outside the game does not correspond to the complexity of its implementation inside the game.