top of page
Technical design showcase

During my professional career, I've worked as a Technical Level Designer. It is with prototyping, setting up comprehensive systems and experimenting with mechanics I excel. So I'm hoping to pass along some of the things I've learned during my career here. I'd love to share some tips and tricks while explaining my thought process and workflow behind the more complex technical challenges I've run into during this project.

Lightweight pick up system

Part of the core gameplay loop is collecting material and buying upgrades to the player suit. Setting up a cheap and scaleable system early on was high on my list of tasks. I looked at how Destiny handled automatic pickups such as Glimmer (currency) and ammo for references. Using good collision filtering and an Interface I created my "Lightweight pickup system" for physics objects.
Below you can get an overview of the individual components as well as a walkthgough of the system.

System component breakdown​

​

  • Player with sphere collision​

    • Collision filtering​

  • Blueprint interface for communication

    • Passing values without creating hard references​

  • Loot blueprint and associated data table for individual properties

    • Easy to tweak and balance​

  • Interactive volume

  • Loot crate with RNG-functionality

Useful information mentioned
in my walkthrough below​​​

​​

Collision filtering:
https://www.unrealengine.com/en-US/blog/collision-filtering

​

Practical tips for managing collision settings & queries:

https://youtu.be/xIQI6nXFygA?si=9bCFK5xxpVQ3F3k_​

Object specific FOV and animation groundwork

To be able to change the FOV is an important addition to every First Person game, both to give the option for players to increase their spatial awareness but also to prevent motion sickness and headaches. When rigging the first person arms and the Blaster I found a sweet spot using an FOV of 75. It gave a good mixture of providing a sense of scale while looking good and making sense from the view of the player. 

Using an object specific FOV to compliment the viewmodel and animation has a huge impact and affect how the game plays and feel on a moment to moment basis. Doing these two well helps both playability and replayability


To support two different FOVs I created a Material Function adjusting the World Position Offset which mimics rendering the viewmodels on top of existing geometry by properly scaling the models vertices accordingly. This function isn't just useful for preventing the weapon from clipping into walls and other meshes but also for keeping the FOV of the viewmodel and weapons consistent when changing the world camera FOV. Utilizing it preserves all animation and poses betwen changes and enables me to work non-destructive

(This is something that will have native support in Unreal Engine 5.5).

Here you can see the player arms and weapon maintainig the same FOV of 75 that I use when animating in Blender while toggling the world camera FOV between 110, 100, 90 and 75. The system is provides flexibility to test and change FOV between multiple viewmodels and world camera during development. ​​​I'm glad I spent time researching the matter and implementing a solid workflow and pipeline for animations so I can stay away from potential pitfalls and having to remake a lot of functionality later on.

In the video below you can see how the function and the parameter called Render Depth adjusting the clip plane distance from the camera and actively prevents the viewmodel from clipping into geometry.

MaintainingViewmodelFOV
FOV75.PNG
bottom of page