Jens Petter

Game Programmer

Til Nord

2020-2021


Til Nord is an open-world driving game, where the player uses their snowmobile to explore a world reminiscent of the Lofoten Islands. Here they will find quests and random events that happen all over the large explorable map.


A link to the Steam page of Til Nord can be found here



Project info

  • Project: Til Nord
  • Role(s): Tools & Gameplay programmer
  • Engine: Unreal Engine 4
  • Platform: PC
  • Development time: 1 year
  • Team: (people joining and leaving the team over the span of the project)
    4 programmers
    4 artists
    6 designers
    1 producer
My responsibilities

Gameplay

  • The system to create missions with. Making sure this mission can be extended by designers to create their own mission types with

Tools

  • The custom event system that is used in our game that exists of small blueprint or C++ code objects that can run from anywhere in the game
  • An Unreal plugin that connects online Spreadsheets together with Unreal, making sure that all game data can be stored in Spreadsheets where this data can be saved and loaded from Unreal to Spreadsheets and vica versa in runtime

Other

  • Participation in the concept, pre-production, production and release stage of this game project

Spreadsheets With Unreal plugin

The GitHub repo to this Spreadsheets With Unreal plugin can be found here.


I created a Spreadsheet plugin for Unreal to support the development of project Til Nord. This plugin makes it possible to communicate between online Google Spreadsheets and Unreal. One can from blueprint or C++ call functions that directly affect a Google Spreadsheet. The Spreadsheet plugin currently can:

A video is shown here which is a video where I explain how to use the Spreadsheets with Unreal plugin while I am in developing this project.


Missions

I created the mission system of this game which is made in C++. Missions are run via a mission manager class where this class also takes care of locking / unlocking missions but also takes care of loading / saving the current progress of missions when stopping the game.

The system to create missions with is made public in blueprints. This decision was made since the team had a lot of technical designers on board that wanted to create very unique missions. Having this creation part of the mission system public to blueprints allows not only those designers to create the missions they want, but also allows me to work further on more in depth parts of the mission system such as further iteration on saving / loading of missions for example. The following missions are currently integrated in Til Nord:

Shown here are 2 different missions that can be played. One mission is a time-trial mission where the challenge for the player is to finish the mission on the lowest time possible and the other mission is a delivery mission where the player needs to deliver mission elements to a location. A ramp is constructed in the delivery mission when the player finishes this mission which is also saved / loaded, meaning when the player stops the game and starts again then the ramp will still be there if the player finished the mission in a previous gameplay session.


Concept, pre-production, production and release phases

I was here in all phases of the development of this project. I mostly researched in the concepting phase, set up pipelines in the pre-production phase, iterated on these pipelines in the production phase and optimized the game in the release phase. I wanted to talk a bit more about the concepting phase in this part of this page.

We received a brief from the teachers that explained the rough guidelines in where they would like us to create our game. One can think of this as a bullet point list with elements that the teachers would like us to have in the game. For example “Streaming levels” or “Quests/missions, time-trials, objectives & scripted events”.

We programmers researched a lot in this phase of the project as well aside from also helping with the concept of the game. We researched between 5 different engines for 3 weeks in order to determine which engine was correct to use for project Til Nord. The decision for an engine was one of the deliverables for the concepting phase. We researched between the following engines:

Our research topics consisted of the following research topics: All these topics were heavily researched in all previously named engines. After 3 weeks we combined all our research and chose an engine to build project Til Nord with for the rest of the span of the development of the project.


A download link to one of my research documents that I wrote while researching in the concept phase of this project can be found here


What I learned from this project (so far)

I learned so far how to effectively do code reviews. Our team has a code review pipeline in place where we use Perforce to do our code reviews. These code reviews were heavily used in our project which resulted into less bugs and better quality code.

I also learned so far that it is very hard to make a tool for people in your team that essentially changes their workflow to a better workflow. People tend to really stick to their workflow where it is very hard to show and convince people how my tools make their workflow faster. I experienced this a lot while developing the Spreadsheets with Unreal plugin.

Let's have a chat!


I'm always happy to talk! Feel free to contact me at any time.