Last couple years (2021-2023), I've served as a Programmer at Iceland's 1939 Games, Helsinki studio, specializing in Unreal Engine 5 (Blueprint, C++, Python, and Json).
Main achievements and responsibilities:
Notably, I contributed to the successful release of Kards on Android and iOS, on side of Steam version reforming.
KARDS - The World War II Card Game
Most of the tasks(client side) have been carried out with blueprint.
Except, of course, when c++ has had to create a framework for blueprint.
Especially dev tools have mostly required implementation with C++.
In terms of analytics and Android packaging, tasks have been performed not only in ue5 but also in receiving applications (Google Analytics, Google play, Appsflyer, Firebase).
Match Deck Selection Menu
Functionality, implementation
Player Progression
Functionality, implementation
Configuring level rewards in the background and displaying the implementation.
Player's current level with reward unlock features. Both unlocked and locked levels with their own UI configurations.
The sideways scrolling view shows the 50 levels prevailing at once. Therefore, every 50 levels there is an exception in functionality, where the view does not show the following above the prevailing level. This required a little special tweeting for the system.
Branch on Platfrom Type
Dev tool, Functionality (BP,C++)
BranchOnPlatformType is function that speeds up blueprint use in situations where PC and mobile have their own needs.
I created this relatively simple function with c++ which checks whether the platform is mobile or PC. The check is performed with the platformtype function I created earlier, which defines the type by platform name (Mac,Windows = desktop, else mobile). The name data is retrieved from the IniPlatformName(UE) function.
This is an example of the tools we created when we started developing game for mobile. In addition to these, the list includes various UI variables for dev and testing etc.
Android Application Bundle (AAB)
Packaging, Functionality, Google play
Especially in the early stages of game development, I was fully responsible for building Android packages and their settings.
AAB had just been released and turned into the only option to upload package for Google Play. This required some modification and effort, since the size of the game package was problematic. In addition, the public documentation for AAB was still limited, so for the most part I had to experiment and figure out the settings by myself.
The game was eventually able to fit into a normal package. But just in case, I built the Fast-Follow and On-Demand asset packs systems. To avoid problems as the package grows (card games are updated frequently)
In addition to mounting, package creation caused changes in areas such as Asset Manager priority and chunk id.
Game analytics
Appsflyer, Firebase, Event system
I take care of distributing game analytics to Firebase and Appsflyer.
Created a blueprint function library that contained the functions which was needed to transfer events.
The functions are used in several necessary places inside the game for trigger wanted analytics events (e.g. first online match, purchase event).