Seasons Of Code

Procedurally Generated Infinite Open World    • Raj Aryan Agarwal   

WnCC - Seasons of Code

Seasons of Code is a programme launched by WnCC along the lines of the Google Summer of Code. It provides one with an opprtunity to learn and participate in a variety of interesting projects under the mentorship of the very best in our institute.


List of Running Projects

Procedurally Generated Infinite Open World

Procedurally Generated Infinite Open World


This project aims to create a real time engine capable of rendering an infinite open world terrain with procedural generation with complex cave systems in OpenGL framework.

No. of mentees: 4

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

Proposal: Submit a proposal containing the following -

  1. Motivation for picking up this project
  2. Past experiences with coding - if worked on a large codebase, do mention
  3. Past experiences with game development or rendering - it is fine even if no such experience, you will learn from the basics here
  4. Additional ideas that can be added - be practical

Tentative Project 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