top of page

KIN

Updated: May 1, 2020

Adventure thriller with 2 big environments made in 10 weeks


Kin is an atmospheric puzzle horror game where you need to navigate between two stunning worlds. This game was made as a student project for the school of digital arts and entertainment for our graduation work for group projects. Our main inspiration and references for the project were, Firewatch and Among Trees. The game was made in 10 weeks with 4 artist and another programmer.


Trailer:


My Involvement:


  • Portal

  • Level streaming

  • Level Objects

  • Cut-scenes

  • PostProcessing and Shaders

  • Optimization



Portal:


This Portal used the portal of the gamejam as a starting point. The main differences, this one is movable, uses a clip plane, made in c++ and works in third-person.

The player is able to make a portal to the other world. Both worlds have the same layout with small differences. I created a node-system to be able to travel to the correct location with getting stuck in or clip trough the world. The picture below shows a debug visualization. the red boxes are collision, while the player inside them, he can use the portal. The blue line is the travel location. The closet point from the player on the blue line will be used as the exit location.

The nodes are saved in clusters and can be accessed fast by a key. The key layout is [Cluster-ID][Element in cluster]. On the start of the game the node's key is calculated. Both worlds have the same amount of clusters with nodes. The only thing is the player needs to do to get the position of the other wold's portal's position is ask the key of the overlapping node and feed it to the node-manager.



Level Streaming:


Both worlds have the same layout level streaming wise. The play-area is sliced into 3 pieces. I unload the 2/3 of the environment you don't see at the time. 75% of the map is a huge background you can only see at the cliff of the play-area, this is only loaded when coming near to the cliff.


One world is roughly made out of 10-15 separate sub levels. Puzzles, Audio, lighting etc are separate and always loaded. The Idea of the big number of sub-levels is so our artist can work all at the same time in the same environment. There were other alternatives like using a plugin which would enable us to work in the same scene at the same time, but was likely to crash when using the foliage tool. Since these Screenshots scream foliage tool, we chose to work with more sub-levels.



Level objects:


We have a hand full of puzzles that use the same base logic but with different results. These are buttons, objects you can pick up, push, wheels you rotate etc... I programmed a system where they derive from a parent with the base logic. when interacting a delegate will broadcast and the object will turn active. (example: only when you start pushing a wheel, it starts ticking). Matei, the other programmer, can easily hook up the desired affect of interacting with these objects in the level blueprint, by binding it to the delegate. This meant we did not have to make a new button for each puzzle.



PostProcessing and Shaders:


I worked on some of the shaders, a couple are: swaying of trees to represent wind, grass normals and how they interact with the sun, the threes have outpointing normals that are used with the suns direction to create gradients in base color and subsurface color.

I also made some prepossessing materials, these include the colored fog based on depth. I got the idea from Firewatch. In the world left, far objects are green, while in the right one they are more gray. The depth fog takes saturation into account, the more saturated, the harder the fog effect. This way we can still use the default height fog in unreal.


Cut-scenes:


We have different types of cut-scenes. Dynamic one, where the players' camera flies of to a location to show something or give hints. And traditional ones where we use unreal's sequencer. We usually do sequences to show important parts of the story, which will change a part of the gameplay. After playing the dynamic, the camera will fly back to the player, these are used to keep the flow of the gamepay.


dynamic:

Traditional:


Play the game:




Team:



Keltic Vermeersch - environment artist - https://www.artstation.com/kelticvermeersch


Matei Adeodatus - gameplay programmer - https://www.mateiadeodatus.com


Piter Hillewaert - Character Artist - https://www.artstation.com/piterhillewaert


Stijn Verstraete - Tech / Environment Artist - https://www.artstation.com/stijnverstraete

81 views0 comments

Recent Posts

See All
bottom of page