Role: Programmer, IT
Span: 4 Weeks in Sep 2020
Team Size: 9 (3 Programmers)
Engine: Unreal Engine 4
We had the idea of swapping gravity as a mechanic early on. Before deciding on anything I wanted to be sure it could be done. I found an open-source Character Controller class that could do some of the things we needed and the rest I was confident that I could fix. With that I gave the go ahed to my team
Gravity swap in action
For the Character I took the Side Scroller template and modified it to fit our new Movement Component.
I believe the code speaks for itself here, one thing to note is that the centre is always at (0, 0, 0) which handily makes our actor location also our local up vector.
I spent a lot of time working on gameplay elements of the game. Having the main mechanic based on physics meant there would be a lot of edge cases. I put in systems where our physics objects would turn on and off physics simulation when we needed it. As we iterated on the mechanics, we replaced physics with interpolating objects positions between points.
For example, when the player releases a carried box, it finds a stable position underneath and snaps to position instead of falling.
Grabbing and release.
Pushing box into gravity swapper
Going into a game project based on physics I knew that there would be a lot of problems. Considering we also worked with custom gravity for the character and actors I am proud that we managed to get it to work.
Our school had some licensing issues with Perforce going into this project and our teachers told us to use GitHub for version control. Now I believe that git can work fine with Unreal but the other team members did not have any experience with git which led to problems taking up way too much time for me as the IT person to handle.
I knew that subversion existed and that it was open source and what better time to learn it than in the middle of a project?
I took a weekend and set up a server from home, made sure everyone would be able to access it, triple-checking everything. After seeing that it acted similarly to perforce with Unreal integration, I asked my team members if they wanted to migrate to subversion.
I got the go ahead from the team and the following Monday I gave a quick lecture in Tortoise-SVN and made sure everyone in the team got set-up with the engine and repository.
The project turned out fine, I wanted to be less involved in the design aspects than previous projects. I took the opportunity to try out new things like making visual effects in shaders and looking into technical parts of graphics and rendering.
The parts that I am most proud of are general problem solving and fixing bugs that just seem to be deep in Unreal Engine code. It is not something I can easily show here in the portfolio examples but it gave me more insight into the engine and character movement components.