Skip to content

ji8sw/Minecraft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minecraft

Minecraft is a learning experience to get better at understanding OpenGL and 3D graphics, it was originally created using an OpenGL template, with which I followed Learn OpenGL, then I added basic block generation (not random) and face based textures, various optimizations and noise were added to create random terrain generation, the optimizations were done by analysing performance with the Visual Studio Performance Profiler, chunking was then added which was as far as I could reach with my existing skillset before needing to research things like batch rendering or other OpenGL optimizations.

The current performance is bottlenecked by the amount of draw calls, the best way to fix this would be to do things such as: batch rendering, where everything is sent to the GPU at once, greedy meshing, where calculations are done to reduce multiple squares into a few large ones, or chunk meshing where multiple meshes are turned into one large one and sent to the GPU. However these techniques are far beyond my ability and so I will put an end to this project unfortunately before being able to add gameplay, as to get a good framerate a small number of chunks must be rendered which will result in bad gameplay.

Libraries

siv::PerlinNoise for noise which is used in creating random terrain. OpenGL for graphics rendering.

Disclaimer

This project is made as a fan project of Minecraft and as a learning experience.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages