top of page
Writer's pictureKane Adams

Choosing Project Idea

Updated: Nov 14, 2022

Group project clash

Alongside the procedural assignment, I am working on a group assignment as Lead Programmer with one of my tasks being to create a dungeon generator for a rogue-like. As dungeon generation is done procedurally, I should not use the same generation that would be classed as self-plagiarism. After talks with my lecturer, we have agreed that I can use the research from both assignments within this one to show my understanding of alternative generation methods with the project itself simply being "not a 2D dungeon". This clash has also helped as it limited the options that I have to choose from.


My Project Idea

The idea I have looked at can be summed up as implementing multiple generation methods together to add complexity.

I plan to look at the following:

  • Terrain generation

  • Tree generation

  • Water generation

I plan to have each generation able to work independently within different Unity scenes and then a final scene that combines all of them. This means I will be planning to make each generation modular allowing them to be used in other projects.


Terrain Generation

The terrain generation will be the first task that I will be looking at, mainly because it is the template that determines where all the other generations will be placed. Using height mapping, I will allow the use of shaders to determine how certain areas will look, for example as the terrain area gets higher it will go from shades of green to greys and then to whites to create mountains with the tallest having snowy tops.

The generation method will be researched and will follow one of the following:

  • Perlin Noise

  • Diamond-square algorithm

  • Erosions

To add complexity to the generation, I plan to add an evolutionary/genetic algorithm to improve the types of terrains that are generated. Evolutionary algorithms evaluate the quality of different generations and will combine elements of some of the best until they can achieve the best possible solution (although, it is not guaranteed).


Tree Generation

Tree generation will have 2 generations, one to create the placement around the terrain with one of the factors being within set height boundaries (at which I will already have for adding shaders) and a second generation of the trees themselves using an L-system.


Water Generation

Water generation will be the trickiest one to work on as I have not looked into how to do it. The reason why this one is placed last will be that it will allow me to look at how long the other generations took and will help me determine whether or not I have the time to complete it.


Other Tasks

Along with the generations, smaller possible features are planned to be added, these currently include:

  • Allowing a user to move a character around a generated terrain (this is a day's work and easy to create)

  • The use of Lehmer's number generator, which has now been made into a tool that I can add to other C# projects

  • Saving seeds/terrains to allow a designer to modify, this is the largest sub-feature but will allow my work to be used as either a generator within a game or a tool to create terrain templates to ease designers' workloads


Pseudo-Random Number Generator created in C# for use in Procedural Generation
Linear Congruential Algorithm

11 views0 comments

Recent Posts

See All

Comments


bottom of page