top of page

Windfall

This project is one of the production parts of an internship program called Dadiu, where multidisciplinary teams made up of students from various universities spent a semester as a game development studio.

Iita3i.gif

The challenge of this project was in its design, as the goal that we as the developer team set ourselves was an exploration, story-driven game which would allow the players to fluently traverse the world, the catch - employ procedural generation to construct the levels.

​

The team consisted of 18 members and my role was a gameplay programmer, which meant me and the other programmers were directly responsible for solving this challenge from the technical point of view.

A2_size_print.jpg

The game world is built around the idea that once there was a whole planet that because of certain reasons split apart into pieces, further with the visual design of autumn which has the interpretation of decay, communicates the continuing decline of this world and its is the main character's mission to make it right.

IslandVision.jpg

One of the main tasks for this project as a programmer was to contribute to the floating island's generation and a reference was used as the visual goal.

The example gave specific characteristic traits that define the island both visually and technically:

  • The overall shape has to be circular in nature

  • Erosion of the initial shape creates varied islands

  • Different elevation areas will be a part of creating zones(valleys, mountains, forests)

  • The lower part of the island is made by mirroring the top piece 

We split the island generation among three programmers including me, one was responsible for the shape and erosion, which employed a simple game of life algorithm where certain rules like iteration time, amount of neighboring cells to survive or multiply gave control over the type of shape is generated.

IslandShape.png

Then I worked on the height distortion with Perlin noise and it was the standard application mode, several layers of noise each with varying resolution added together to make the surface shape have both pronounced features and more detailed imperfections.

While the last programmer took the resulting top part, mirrored it, and using simple Unity edge detection fused both parts to make a complete island. The next part was to texture and populate the islands with desired elements, using a shader graph each vertex was evaluated by its height and steepness parameters to sort and blend textures making zones that resemble realistic vegetation and foliage according to terrain properties.

IslandFull.jpg

A similar approach was used to place environment objects(trees, rocks and etc...) meaning certain items will spawn in certain terrain with certain properties. To make it even more visually interesting barnickling method was used, in other words, big objects are spawned first, then smaller ones around big ones, and so on. The control for designers was the distances these items are allowed to spawn away from these dependent objects also how spread out they should be.

The biggest challenge however was to have actual meaningful gameplay elements and sequences which we could not procedurally generate as it would require a lot of time to test and refine them until you would get the desired result. We opted for placing clusters hand-made by designers that would be placed in accordance with the island. Within the generated island itself, gameplay elements were spawned that are not required to the progression of the plot.

© 2022 by Mantas Cibulskis. Proudly created with Wix.com

bottom of page