top of page
ASA_Logo_transparent_edited_edited.png
Senior Gameplay Programmer

ARK: Survival Ascended

Ark: Survival Ascended Trailer

Tek_Remote_Camera.png
WORK SUMMARY

ROLE

  • Senior Gameplay Programmer

ENGINE

  • Unreal Engine 5

RESPONSIBILITIES

  • Gameplay Systems Design and Scripting.

  • Gameplay Programming.

  • Technical Design

MY WORK

  • New Camera System: Designed and scripted the game's new camera system.Programmed camera subsystems that were able to adapt to each of Ark's creatures' speeds. The camera was able to adjust its interpolation speed dynamically, based on the creature that the player was controlling.

  • Creature foliage system: Used blueprint to create a system to grow foliage on dinosaurs. The system allows level designers to paint foliage onto creatures. The foliage dynamically grows over time and can be harvested by players.

  • New durability system: Implemented a new durability VFX system for weapons, armor, and dinosaur saddles. 

  • New dragging system: Implemented a system that allowed players to drag other players and dinos when dead. The new system substituted the old Ark ragdoll physics for an animation-based one that used ground-conforming logic to imitate ragdoll.

Tek_Remote_Camera.png
NEW CAMERA SYSTEM
SYSTEM OVERVIEW
HUD_Camera_Colorize_d.PNG
Transparent.png
  • ARK: Survival Ascended introduced a new camera system, with a more natural feel than the old ARK: Survival Evolved (2017) camera. I implemented the new camera system from scratch, using C++ and Unreal Blueprint.

Tek_Remote_Camera.png

IMPROVEMENTS OVER OLD CAMERA

  • More natural feeling through spring interpolation: The new camera system uses spring interpolation for the camera pivot and arm length, to give the camera a more natural feeling. The old system used a hardcoded linear interpolation.

The camera pivot (red) is constantly interpolating to its desired location (green) using spring interpolation.

  • Customizable camera settings: although the new camera is implemented in C++, its behavior can be easily adjusted in blueprint, through the use of the camera settings BP.

image.png

Some of the camera settings that designers can customize.

  • Different camera Profiles: the new system lets designers create different camera profiles with different interpolation settings, so that players can choose the camera behavior that more adapts to their preferences.

image.png

The game has three different camera profiles by default, but modders can create and add new ones.

image.png

Players can choose their preferred camera profile ("Camera Mode") in the Camera menu.

  • Easily scalable: one of the goals of the camera system was to create a camera that worked for all dinosaurs in the game, from the slow, small turtles, to gigantic t-rexes. The system is able to dynamically change its interpolation values based on the speed of the creature that the player is controlling.

CAMERA SYSTEM FEATURES
HUD_Camera_Colorize_d.PNG
Transparent.png
Tek_Remote_Camera.png

CUSTOMIZABLE CAMERA SETTINGS

  • Using the new camera system, designers have access to a lot of different camera settings that were inaccessible before:

    • Pivot location​ (it can be assigned to a specific bone).

    • Pivot interpolation settings.

    • Arm Length (distance between the camera location and the camera pivot).

    • Arm Length interpolation.

    • Camera Rotation interpolation.

    • Camera Pivot Offset.

image.png

The camera settings that designers can modify.

Tek_Remote_Camera.png

PER-AXIS PIVOT LOCATION SPRING INTERPOLATION

  • The pivot is the point in space that the camera is aiming at. At any given moment, the current camera pivot is trying to interpolate to it's "desired" location, by using spring interpolation.

The camera pivot (red) uses spring interpolation to follow the desired pivot location (green)

  • Designers can set different interpolation values per-axis. This allows for faster interpolation on the Z axis when the player is jumping, and a slower interpolation on the X and Y axes when the player is running.

image.png

Designers can choose different interpolation settings for each camera axis.

For the player, the camera has a slower interpolation on the X and Y axes.

The camera interpolates faster on the Z axis.

Tek_Remote_Camera.png

DYNAMIC INTERPOLATION BASED ON SCREEN LOCATION

  • There are situations where we want the camera pivot to interpolate faster than normal. For example, when the player gets closer to the borders of the screen, we want the camera to quickly move towards the character, to prevent it from getting out of view.

  • The new camera system, allows us to dynamically modify the camera interpolation settings based on the player's screen location, using something called Interp Params Modifiers.

image.png

The Interp Params Modifiers allow us to change the pivot interpolation settings based on the player's location on the screen.

image.png

The pivot location interpolation becomes faster as the player gets closer to the edges of the screen.

The dynamic interpolation speed is achieved thanks to the interpolation modifiers.

  • The logic for these modifiers was implemented in blueprint, so that designers and modders had easy access to it, and could edit it to fit their needs.

Scroll and zoom the image above to see the rest of the blueprint logic.

Tek_Remote_Camera.png

PITCH-BASED CAMERA MODIFIERS

  • The new camera system includes a sub-system called the pitch-based modifiers, which change the camera settings based on the camera pitch. This system allows, for example, to get a better view of the level when players are looking at the character from above, and prevents the character from getting in the way of the camera when players aim the camera up.

The pitch-modifiers allow players to get a better view of the character and the level from above.

Pitch-based modifiers.png

Example of a pitch-modifier set up in the camera settings blueprint.

  • Like the screen-based modifiers, the pitch modifiers are also implemented in blueprint, to make it easy for modders and designers to customize the logic if needed. The following image shows part of the pitch-modifiers logic:

Scroll and zoom the image above to see some of the pitch-modifiers blueprint logic.

Tek_Remote_Camera.png
THE DINOSAUR CAMERA SYSTEM
CHALLENGES & GOALS
HUD_Camera_Colorize_d.PNG
Transparent.png
  • The new camera system was originally intended for the player. Midway through the development of the system, we decided to use the camera for the dinosaurs as well. 

  • The main challenge was to make sure the system worked for all creatures. There's over 100 creatures in the game, each moving at a different speed, some of them moving extremely slowly and others moving very fast.

  • Another challenge was to make the camera system smart, so that the camera settings adapted to each creature's movement dynamically. We didn't want designers to have to change the camera settings on a creature-by-creature basis.

CREATURE CAMERA FEATURES
HUD_Camera_Colorize_d.PNG
Transparent.png
Tek_Remote_Camera.png

SPEED-BASED CAMERA MODIFIERS

bottom of page