Alexander Wedman
Not A Plant Logo
Not A PlantEngine: Unreal Engine 4Language: C++Duration: 4 weeksTeam Size: 12
Download
Description

Not A Plant is a simple physics-based platformer developed in Unreal Engine 4. The player traverses the level using the tongue ability as a slingshot to build velocity and maneuver obstacles.

It was originally pitched as a puzzle-platformer where the player had to manipulate physics objects using the tethering functionality of the tongue to solve puzzles. There was also a second ability, where the player could raise pillars from surfaces. The final version ended up very different from the original concept, abandoning the puzzle aspect and the second ability due to many different factors, such as overscoping.

Process

Perforce was used for version control and an online Kanban-board for planning and delegating tasks, including daily stand-ups with the team.

Responsibilites

I worked on all tongue related things, the physics, dynamic mesh and the ability; working closely with the designers to find the right feel. I also worked on the camera occlusion, as well as secondary animations, such as the leaves around the head, distance-based feet animation and head-orientation.


Some obsolete features, namely a flammable objects-system, a procedural mesh tool and a pillar-raising ability.

Tongue Mechanic
Core mechanic of the game, allowing the player to slingshot themselves across the level.
TongueAbility.hTongueAbility.cppTongue.hTongue.cpp

The tongue can be attached to two different objects, pulling them towards each other using spring-physics. In the final state of the game, it's only used on static objects, which simply propels the player towards the object as opposed to pulling them together. It uses two primitive components, one for each end of the tongue, which are attached to the target actors. Once attached, the tongue applies force to the attached objects towards the opposite end.

Camera Occlusion
Allows the player to see through objects.
CameraComponent.hCameraComponent.cpp

Since the player spends a lot of time aiming upwards in order to propel themselves, the camera ends up colliding against a lot of objects. In order to minimize the negative effects of this, I created a camera occlusion component.

By default, the camera will occlude objects between the player and itself. It works by switching out the materials on the object and then fading them out, allowing the player to see through the object. The material is then switched back to the original once it has faded back in. An object marked as exterior will not be faded out, but the camera will not collide against it. While a container will simply push the camera forward as it hits the object.

Flammable Component
Functional prototype, where the player gains access to an overgrown area using fire.
FlammableComponent.hFlammableComponent.cpp

An obsolete feature of the game, the flammable component was developed to allow objects to ignite and transfer fire, to be used in puzzles.

Pillar Mechanic
Pillars could be raised from surfaces, in order to move heavy objects and elevate the player.
PillarAbility.hPillarAbility.cppPillar.hPillar.cpp

Another obsolete feature of the game. Technically the first ability added, the pillar ability allowed the player to raise pillars from surfaces. As the tongue ability was added, we realized this no longer had a significant purpose as we couldn't find a good balance between the two.