My contributions:
  • level design
  • game design
  • scripting lua
  • 3d placeholders

Claiming Ymir

Real Time Strategy

A 3D real-time strategy game called Claiming Ymir created in 10 weeks half time by the team of Moon Squid, which consisting of 13 members.

The game revolves around the struggle between two, very unfriendly, viking clans. The clans are fighting over the island Ymir where they both recently have settled upon.

My main focus on this project where scripting the gameplay.

  • tga-engine


  • Gustav Bok (Level Design)
  • Jesper Staafjord (Level Design)
  • Martin Wallin (Code)
  • Dennis Majvall (Code)
  • Vincent Edh (Code)
  • Zebastian Sörensen (Code)
  • Joachim Häggström (Art)
  • Ida Bogne (Art)
  • Murli Soogrim (Art)
  • Oskar Möller (Art)
  • Martin Blomkvist (Tech Art)
  • Joakim Vikström (Tech Art)
  • Lukas Orsvärn (Tech Art)


  • Team size: 13
  • Level Designers: 2
  • Programmers: 4
  • Artists: 4
  • Technical Artists: 3

Developer video

Real time Strategy – with vikings!

One of the mockups from the first sprint.Our team was very hyped to create our first RTS together. We decided that it was to be about vikings fighting other vikings in a norse-inspired landscape.

In the beginning of the development we wanted our game to play alot like Red Alert 2, so we took our micro and some macro features from it. We did a similar buildings and units-menu, and our main building “un-wrap” itself from a unit.

Level Designing for Real Time Strategy

Quick and dirty flowchart of the map.When we started to sketch out different levels we took inspiration from Starcraft 2’s level design. I made some of the sketched out levels in the Starcraft 2 editor to see how they behaved in 3D, and to more easy narrow down the size of units and buildings.

After chosen a design for the map it was created as a height-map and iterated upon inside of Maya. At this stage I left the level in the capable hands on my team and started to script gameplay in LUA.

Scripting the Gameplay in LUA

Just outside the players base the player is gathering forces.During the weekend after the first week of development the team had a “squid jam”. We alternated between working on the game and playing games. During the weekend one of the programmers started on the support for LUA-scripting inside of our engine, and it became usable at the following monday. Having LUA-support that early in a project was an huge advantage for us since I could focus on the scripting gameplay and GUI while the programmers could focus on navmesh-pathfinding and AI.

Scripting the GUI-system

Thee units running towards the enemy base looking for trouble.

The first thing I scripted in LUA was the GUI and I chose to implement it as event-driven. When the system was in place you only had to attach a button’s different states (pressed,released or hovered) to an event, like buy unit, change texture, play a sound etc. I created two tabs, one for buildings and one for units.

Scripting the buildings-system

The main building and barracks.After the GUI-system were implemented it was time to create the buildings-system inspired by Red Alert 2. I started by adding buy-functionality for all the buildings, setting up global values for prices and time it took to build for easier tweaking when we started the playtesting. After that I implemented the player were able to place these buildings on the ground near other already placed buildings.

Scripting the gathering-system

The goat which also serves as the gathering unit.After the buildings-system were implemented I started on the gathering system. The player can build a gathering unit that will spawn from the gathering building and walk towards the closest resource where it will harvest and return the resource. The system is automatically updated every frame for every player and their respective gatherers. The tricky part of doing the gathering-system were mostly how to debug it in a good way since I couldn’t do any breakpoints in the code. I also had to rely solely on text printed on the screen and above the gatherers for all of the debugging. Debugging the code was the biggest problem we encountered during the development, we do not recommend having such a complex system built purely in LUA.

Even more scripting!

Having fun while fighting were the main priority during the developement.Below are things that I also scripted for the game:

  • Minimap with a minimap-cursor, showing units, buildings and resources
  • Units spawned from primary barracks/gathering-buildings set by the player
  • Selection system – visual part on LUA, functionally made by one of our programmers
  • Grouping system with double-tap for the camera to center on the group
  • Healthbar-system
  • Tooltip on mouse-hover, both in 2D and 3D
  • Tech Tree for unlocking buildings and units
  • Player camera controls
  • Queuing of units and buildings, cancellation of units/buildings currently being built