Gringorian was a small game project I participated in during my second year in the Technical Artist program at Bleking Institute of Technology. The game circulates around the goblin-born champion and his quest to survive the dangerous lava pit arena. With swift movements and deadly reflexes from the misty lands far away, he wields the trusty revolver for ranged attacks and swings a short sword to fend off minions threatening his life.


As a second year Technical Artist, I worked most of the time on the overall game engine and was responsible for implementing a smaller Skeletal Animation system to play our animations in-game. Much of my time was also invested in learning about instancing both static and animated objects. I created the 3D-models and textures for the player character, the platforms and projectiles.


During the first week of planning, we looked at games like Diablo, Boxhead and Swords & Sandals. Somehow, we were making a combination of them all. Survival was always a key part we focused on from day one but didn’t quite know what kind of gameplay mechanisms we wanted to create. In the beginning, there were thoughts of making purely a base-defense game with incoming waves of enemies but we eventually went with the Diablo-styled gameplay. The purpose with the arena game is to survive as many waves as possible without dying from falling into the lava or being overrun by enemies. The ultimate goal of the game is to survive as many rounds as possible and break the highscore by becoming the longest surviving player.

The game itself is not particularly complicated in its gameplay and was just part of our education to give us further experience in creating games. What’s unique for my part with this game is that this was the first time we built our own game engine with DirectX, which makes Gringorian my first “real” game at least.


The small game project was given a deadline of two months, which felt much longer than we first expected it to be. Right away we started to discuss the graphics. The color theme of the game was planned early on to feature bright colors with a cartoonish feel to it. Then after a full week of making concept art and figuring out the basics of the game, we went on to start building our engine. The first big challenge was to find a physics library and Bullet was the one that our teachers recommended to us, since Autodesk Maya also feature Bullet.

Next up was implementing the Skeletal Animation, which seemed to be working alright at first but I’d somehow managed to get it working with a very specific joint setup. It took me about a week to figure out the problem with the help from many different people, but eventually we got it working. Right after the first animations started to show up in the game, it was time for me to make skinned instancing based on a paper from NVIDIA on the subject.

My animation updater was poorly optimized and didn’t use multi-threading, but we managed to get up to 30 enemies on the screen at the same time without dipping below 70 frames per second. This might already seem like a good number, but we used to have around 120 – 150 frames so it was a big loss performance wise. It will be my homework during the summer to optimize and improve this system. What’s also worth mentioning is that we only used ONE light, and that was merely just for Shadow Mapping. So no, Gringorian wasn’t a giant regarding shader code.

The overall instancing was a bit troublesome since it was the first time I had actually done something of this scale, but it worked out alright and I learnt so much from this game project. It got me thinking about what I could’ve done better with performance and how to re-think my game design principles (as if I ever had any). Most importantly, I got to work with friends and that’s all that really mattered.


Main menu theme: To Valhalla! by Antti Martikainen

Philip Velandria TA15

Linnea Vajda TA15

Jonathan Sundberg TA15

Hannah Lövberg SP15

Fredrik Linde TA15