top of page

Procedural Generation

Terrain Generation

     This project is about a level generated procedurally using noise algorithms like Perlin Noise & Fractal noise. Using UnityEngine.Random.value gives very random values which cannot be used to develop a pattern. Instead Perlin Noise can be used which also returns random values but these values develop some kind of pattern.

 

      I have used Perlin Noise to generate heightmap that includes my plain & mountains. I have used it to generate trees at random locations & also to generate alpha maps & details in the level. Samples generated by Perlin Noise, although seemingly random, are all of same size .So, these Perlin Noise samples are then used by Fractal noise which adds these Perlin noise samples at different frequency, at different strengths. Instead of summing the samples, it can also add octaves. This way we get patterns of different sizes which makes the level look more real. 

     

      This levels adds mountains, plains, different types of grass, different types of trees & some flowers. Also, it keeps track of player’s movements & generate terrains dynamically adjacent to player.

Maze Generation
  • This project is about generating a 3D Maze procedurally. Maze consists of a puzzle. A player can wander inside this maze. Based on player’s movements, certain items can be picked up which can be used to unlock respective doors.

  • Maze generation is based on Prim’s algorithm which is a greedy algorithm that finds a minimum spanning tree for a weighted undirected graph.

  • A city like architecture is created based on the maze generated.

  • Along with Maze generation, it also adds Puzzles & Random enemies inside the game.

    Technical Design :

 

        Maze generation is based on Prim’s algorithm which is a greedy algorithm that finds a minimum spanning tree for a weighted undirected graph.

 

  • A Maze grid is generated of size m x n.

  • Each cell in this grid is a vertex in terms of minimal spanning tree.

  • Each cell/vertex is supposed to have a random weight.

  • Prim’s Algorithm would then create a set of Vertices/cells that would be used as a path to determine correct path in the Maze.

  • Rest of the cells that do not belong to this set would then be turned into walls thus creating a Maze.

  • Each Maze is supposed to have a door that exits to next maze.

Gameplay Developer/Multiplayer Developer/Level Designer

  • w-facebook
  • Twitter Clean
  • w-flickr
bottom of page