2D Procedural Terrain Generation

I built a UI that procedurally generates different types of terrain based on user input. This was created in Processing, a Java-like language for visual programming. The UI had several options for the user to choose for their terrain:

  • Square or Hexagon Step - I implemented a random walk algorithm for both shapes

  • Step Size - Slider where user can control the size of the step

  • Step Rate - How far apart each step was

  • Constrain Step - Constrain steps to be within the blue viewport

  • Simulate Terrain - The more a single location is stepped on, color it accordingly to simulate terrain elevation (green - low elevation, brown - slightly higher elevation, gray - even higher elevation, black - highest elevation)

  • Use Stroke - Draw a stroke around each step

  • Use Random Seed - Initiate random number generator for step start point

terrain.gif
IMG_2028.jpg

Refactoring

I first built this in college, and I’ve learned a lot since then. I decided to refactor this project, and extend its functionality. I’m still in the process of refactoring, and the latest is on my GitHub. Some of the changes I’ve made include:

  • Removed the two big functions in Main that basically did the same thing but for each shape. I consolidated them into one function that takes in a shape and a HashMap as parameters. 

  • Renamed variables throughout to be more descriptive (for example, terrainColorToggle instead of tog2)

  • Moving all the UI creation into a separate function

  • Replacing if/else blocks with switch statements 

  • Removing shared variables from Square and Hex classes and moving them into Base

Previous
Previous

USD in Maya

Next
Next

ToTVR