Intro
Worked as a Game Programming Intern
2026 January - 2026 June
What I worked on:
- Events
- Abilities
- Menues
- Input rebinding
- NPC behaviour
- And more…
During my last 6 months as a student at Yrgo I got the opportunity to do an internship at Oddiko. They have an office in Gothenburg and I’m very grateful that I got to know and work with these great people! They are currently working on their first game, Meadgard, releasing late 2026! During my time there I worked on several new and existing features.
Due to NDA I’m not allowed to post any code samples at the moment.
Trailer
My work
Below is a selection of the systems and features I developed for Meadgard during my internship at Oddiko.
Skvader Enemy Behaviour

Above: The node canvas section I set up for the Skvader’s attack pattern.
I was given the chance to implement a completely new enemy. Oddiko uses a plugin called Node Canvas for configuring most NPC behaviours. Creating my own enemy I got the chance to learn the ins and outs of Node Canvas. In Meadgard most enemies follow the same base for their behaviours,with the exception of attack and ability patterns.
The Skvader will start in a grounded state, performing 4 sporadic leap attacks towards players. It will then take off into the air, switching it's attack pattern to ranged AOE missiles and becoming invulnerable. After performing 3 ranged attacks it will charge down aiming at one of the players, causing a large AOE attack when it hits the ground. After hitting the ground it will be vulnerable again and stunned for a short time, creating an attack window for players.To switch between a flying and grounded state I created a “swap weapon” task for Node Canvas. Calling the “swap weapon” task the Skvader will switch between walking and flying animations since the animations used for movement can be overriden by the equipped weapon. It will also gain access to different attacks based on the equipped weapon. From there it was just a matter of setting up the rest in Node Canvas, ensuring the correct sequence.
Exploration Events
Freyja

As one of my first tasks I got to make a musical challenge for the god Freyja. During the challenge the players will have to hit the corresponding input in beat with the music being played. As it was one of my first tasks I had a to familiarize myself with a lot of the existing systems; interaction, music playback, inputs and multiplayer functionality. I’m happy that I got to utilize existing functionality while also building new logic for the minigame and wherever it was necesarry.
Thor

A few months into the internship I got to make another challenge, this one is a PVP challenge where the last player standing wins a goat. Making this challenge I had to familiarize myself with the ability system, utilizing it to make the lightning strikes seen to the left. The most interesting aspect of this task was implementing a PVP mode. Since Meadgard’s combat system used a static faction system I couldn’t add or remove enemy factions at runtime. Expanding the system to allow for temporary factions came with a few challenges. But rewriting some logic I was able to ensure all relevant scripts where had the correct enemy faction data. But when I enabled players to attack their own faction another issue revealed itself: ranged weapons would sometimes trigger on yourself. To resolve this some extra safeguards where in the hit detection functionality, ensuring you could never hit yourself.
