Time Frame | March 2021 - April 2021 |
---|---|
Tech Stack | C++, OpenGL |
Collaborators |
As the final project for CIS 460 (Interactive Computer Graphics), my team and I were tasked with building a miniature (and simplified) version of Minecraft. Although the game seems simple in terms of graphics and pixels, rendering each of the components (not to mention combining them in an efficient manner) was no easy task. Through this project, we learned a lot about how OpenGL works and how real-Minecraft takes advantage of small details to greatly optimize the effiency and rendering of the game.
Link to Milestone 1 Video Here
Procedurally Generated Terrain (rolling hills, mountain caps, etc.)
Efficient Terrain Rendering and Chunking
Game Engine and Player Physics
Link to Milestone 2 Video Here
L-System Rivers
LAVA
or WATER
blocksTexturing and Texture Animation
sampler2D
within the fragment
shaderLAVA
and WATER
blocks were implemented by transitioning
between two blocks relative to u_Time
Multithreaded Terrain Generation
Link to Milestone 3 Video Here
Caves
Inventory and Onscreen GUI
I
keyCrafting System
i
key to open up the crafting screen.T Y U
G H J
B N M
p
.o
once you have hilighted which one you want removed.c
to
craft the block and it will be put into your inventory.crafting.cpp
.
The first 9 blocks represent the recipe as if the three rows were put into a
1D array one after another. The last block represents what the recipe will
create once crafted.Sound
QSound
and QSoundEffect
libraries,
there may be a slight delay in building the project and whenever the player
breaks/places blocks.