Aphelion

A story driven first-person shooter.

Main Contributions


Project Details

Duration: 10 weeks, half-time
Team-size: 16 people
Genre: First-person shooter
Reference Game: Prey
Language: C++
Engine: Our own engine using DX11 and PhysX
Editor: Unreal Engine

Seemless Loading

The most interesting thing I did in this project was making loading almost seemless. I didn't do it because it was required by the game, but rather that I was interested in it and had thought of a way to do it.
We had decided to have the the game load while the player rides an elevator, and thats when I came up with the idea to teleport the player to an identical elevator that never unloads while the next level is loading, to later be teleported to the elevator in the new level. The intermediate elevator needs to never be unloaded since that way the double-buffered rendering thread won't crash because it's trying to render something that was unloaded the last frame.
A few problems still showed up, like the fact that you cannot simulate physX while loading new objects. That problem was even bigger considering the player used the character collider to move, but in the end I mostly solved it.
I had one big problem I couldn't solve, the lighting. The lighting had the same problem as most other things, it can't be used while loading, but unlike everything else the cubemap effects every object and changes between levels.
In the end you can run, jump and shoot while loading the next level, but it didn't end up as seemless as I wanted it.

Loading in elevator Loading in elevator