Procedurally Generated Infinite Open World


  • Graphics


Mentors :

  • Raj Aryan Agarwal

Mentees :

  • 4 students


Description: This project is for people interested in the field of Computer Graphics and Rendering and this project will give a very good idea of the rendering pipeline used in modern game engines. The implementation will be using the OpenGL framework in C++. The engine should be capable of the following -

1.Procedural generation of landmass (https://en.wikipedia.org/wiki/Procedural_generation for more details) - It is upto you to make it voxel or continuous
2.3D cave systems
3.Level of Detail implementation with real time access to change detail of terrain

Reading Material:

Set up openGL: https://github.com/paragchaudhuri/cs475-tutorials/tree/master/Tutorial_00 https://www.youtube.com/watch?v=4zjCqjfjcPs&list=PLRtjMdoYXLf4yTkXgyRBy5LXTFhdU7LWq

Getting Started with openGL: https://learnopengl.com/ https://www.cse.iitb.ac.in/~paragc/teaching/2019/cs475/

Noise generation for terrain: https://en.wikipedia.org/wiki/Perlin_noise https://en.wikipedia.org/wiki/Worley_noise


Tentative Timeline :

Week Number Tasks to be Completed
Week 1 Set up OpenGL. Learn basics of how objects are displayed - rasterization and clipping. Render a simple triangle on screen
Week 2 Understand functionality of VAO and VBO. Build a single terrain patch (procedural not necessary at the moment)
Week 3 Learn perlin noise and generate procedural terrain patch. Add light system - Blinn Phong shading
Week 4 Add camera to allow for movement in game. Extend terrain to give an infinite landmass generating around view of player
Week 5 Add shading based on height and biome locations. Preferably add some good textures
Week 6 Add water bodies with reflection maps
Week 7 (Bonus) Add cave systems, clouds and other ideas if you have the time