Welcome to my portfolio

My name is Teemu Hörkkö and I am a 32.8-year-old experienced game developer, programmer and technology enthusiast with both game and web-development experience. In addition to work and education, my skills have been built up through active hobbies.
I graduated from Kajaani University of Applied Sciences in December 2014 with a bachelor's degree in information technology and game and game engine programming.
My thesis was written on component-based object management in game development by means of Entity-Component-Systems which is a central part of object management in modern game engines. It can be read on Theseus (only in Finnish, with an abstract in English).
I have a few open source projects on my GitHub, although they're nothing huge.
Contact
If you wish to throw a message at me my preferred means of contact is via email.
Curriculum Vitae
My CV can be found here, both in Finnish and English.
Skills & Programming Experience
I am experienced in C++ which is also the language of choice for the game development at my workplace. I am also familiar with a number of different web development languages and technologies.
See below for a list of a few of the most prominent languages, technologies and software I know or am familiar with — though the list isn't by any means exhaustive.

General
-
C++
Better part of my experience with this language is related to game development, although I have tinkered with miscellaneous application development. For my personal projects I like to use SFML most often.
Frozenbyte uses C++ for their proprietary game engine and C++ is used for all gameplay programming as well.
-
C#
I have some amount of experience in C# game development using both Unity and XNA. Beyond that I have used it for some small Windows Form applications.
-
Lua
Majority of my Lua experience is from creating addons for World of Warcraft.
-
Python
Python is currently one of my favourite languages to work with — it is really handy when it comes to building useful utility scripts but also works great as a website backend.
-
Server configuration and administration
I configured and maintain my own VPS instance (hosted by DigitalOcean) running Ubuntu Linux for a number of years now. The server runs Apache with PHP, MySQL and Python for web hosting plus a few of my own custom services, for example a private link sharing platform for my personal use. This website is hosted on the said server too.
-
Git & SVN
I use Git for version control but am also familiar with SVN.
Web
-
HTML & CSS
I also know SCSS.
-
PHP
Plenty of experience with standalone PHP and with Laravel which is a very nice PHP framework.
-
JavaScript & TypeScript
I have experience working with AngularJS and Next.js/React, as well as vanilla JS.
-
SQL
I have mostly worked with MySQL/MariaDB and SQLite databases.
Software
-
Visual Studio
The primary IDE I use both at work and for hobby projects with C++.
-
Sublime Text & VSCode
Both are very snappy text editors I use for a lot of stuff: Lua addons, web development and miscellaneous text editing.
-
Adobe Photoshop and After Effects
-
Linux
The bulk of my experience is from the flavours of Debian/Ubuntu.

Console Programming
-
Nintendo Switch®
Working with this platform is quite pleasant. At Frozenbyte I was part of the initial efforts to port the game engine to the platform and did some general, low level stuff like platform configuration, file management, controller support (JoyCons and Pro-Controller) including the HD rumble to list a few things.
I also worked to implement engine layer for the network communication used for online and local wireless multiplayer. It was a rather large undertaking and I learned a lot.
-
Microsoft Xbox One®
My experience on this platform is mostly related to network programming and implementing the secure communication via sockets and online matchmaking for multiplayer gameplay. Additionally I implemented some other engine functionality such as hooking up the hardware MP4 video playback.
-
Sony PlayStation 4®
My experience on this platform is very limited, only consisting of implementing user presence instrumentation and miscellaneous trophy related work.
Certificates
-
Fundamentals of Digital Marketing
Issued by Google Digital Academy (Skillshop)
-
Search Engine Optimization
Issued by HubSpot Academy

Additional background
Even before I made it to double digits in age I knew I wanted to start making games and programming has been my hobby ever since. My very first language was QuickBasic — armed with a fun illustrated manual I worked to create a number of simple text based games and other practice projects.
Some time later I encountered CoolBasic which was purpose built for game development on Windows and had solid foundations for creating them. In between my adventures in the land of BASIC I also picked up HTML and PHP and made my first websites.
In my free time in addition to tending to the occasional pet programming project I also play video games, read manga, listen to music, and occasionally play piano and compose music.
My top list of favourite video game heavily features role playing and adventure games — The Legend of Zelda Tears of the Kingdom, The Elder Scrolls series (Morrowind is the best in series) and Divinity Original Sin. I have sunk a plenty of time in MMORPGs too namely World of Warcraft (made a few addons for it) and Guild Wars 2 although I don't play them much anymore.
By the way, I like penguins
Games
In this section you can find the games where I've worked on as a programmer. They are listed from the newest to the oldest.
Frozenbyte
The games below are some of the titles I worked on during my employment at Frozenbyte.
Trine 5
Windows, Xbox Series S/X, PS5, Switch
Trine 5: A Clockwork Conspiracy will take Amadeus the Wizard, Zoya the Thief, and Pontius the Knight on their most action-packed journey yet!
With their reputations tarnished, loved ones in danger, and their own magical powers at stake, the Heroes of Trine must reunite to push back a fearsome Clockwork army and bring peace and justice to the land!
Trine 5 continued my foray into gameplay oriented programming work. Like Trine 4 mentioned below I mainly worked on general gameplay stuff without specializing into any particular area. Things I implemented include various gameplay elements, net game implementations and many behind the scenes improvements and bug fixes.
Steam Store Trailer on YouTube See More
Trine 5 is a trademark or a registered trademark of Frozenbyte Oy. Art and logo copyright © Frozenbyte Oy 2023.
Starbase
WindowsStarbase is a space MMO, with a hybrid of voxel and vertex-based technologies, fully destructible environment and an infinitely expanding universe. The gameplay in Starbase is focused on building and designing spaceships and stations, exploration, resource gathering, crafting, trading, and combat. The multitude of fine-detailed simulations in the game allow the players the ultimate freedom to conquer space and unleash their creativity.
As an MMO it is something unlike I've ever worked on. Starbase uses a heavily modified version of Frozenbyte's engine, forgoing the more complex entity-component system used in the earlier projects almost entirely and streamlining it to suit the performance needs of a massive online game.
Having joined the project in the months preceding to the Early Access launch I mostly worked on implementing new tools for the space ship creator with both the paint tool and the decal tool being my contributions. Not only that I also worked on the GUI with the space ship creator's material cost window and porting it to the in game shop panels as well.
Steam Store Trailer on YouTube See More
Starbase is a trademark or a registered trademark of Frozenbyte Oy. Art and logo copyright © Frozenbyte Oy 2021.
Trine 4
Windows, Xbox One, PS4, Switch
The three heroes of the best-selling adventure series are back, sent on a quest to retrieve the troubled young Prince Selius. Amadeus the Wizard, Pontius the Knight, and Zoya the Thief are joined together once again on a thrilling quest through fantastical fairytale landscapes teeming with danger.
Prince Selius suffers from intensely dark dreams and, due to his magical talents, monstrous nightmares are able to slip into reality and wreak havoc on the waking world. Amadeus, Pontius, and Zoya must find the afflicted prince and resolve the desperate situation before the world is engulfed by the Nightmare Prince’s shadows.
Trine 4 was my first foray into a more gameplay oriented programming work during my time at Frozenbyte. Instead of focusing on the lower level nitty-gritty I wanted to have a chance to bring something on the screen that's more visible than just network connection error popups (see Nine Parchments below).
Mainly I worked on general gameplay stuff without specializing into any particular area. Things I implemented include gameplay effects support and triggers, finalized puzzle implementations, a few physics features like linear velocity drive and rotational drive entities for moving objects, pulley systems and many behind the scenes improvements.
Steam Store Trailer on YouTube See More
Trine 4 is a trademark or a registered trademark of Frozenbyte Oy. Art and logo copyright © Frozenbyte Oy 2019.
Nine Parchments
Windows, Xbox One, PS4, SwitchNine Parchments is a co-operative blast'em up game of magic mayhem. Runaway apprentice wizards seize the opportunity to complete their spellbooks by going after the lost Nine Parchments. As the would-be wizards rapidly acquire powerful new spells without learning proper safety measures, it's natural their hasty progress results in plenty of deadly accidents...
Nine Parchments was the second shipped game during my employment at Frozenbyte and being a larger game comparatively it has been a lot of work.
My work on this game was primarily bringing our in house engine up to speed with the required network programming for online multiplayer on both the Microsoft Xbox One and Nintendo Switch. On Nintendo Switch I worked on the controllers again, adding the support for single JoyCon gamepads and implementing the controls in game.
Steam Store Trailer on YouTube See More
Nine Parchments is a trademark or a registered trademark of Frozenbyte Oy. Art and logo copyright © Frozenbyte Oy 2017.
Has-Been Heroes
Windows, Xbox One, PS4, SwitchEmbark on an epic journey with the Has-Been Heroes, a group of legendary champions once celebrated throughout the kingdom – almost forgotten until the King has one more quest, the most epic of them all: TO TAKE THE TWIN PRINCESSES TO SCHOOL!
For Has-Been Heroes I mostly worked on the lower level engine stuff. The bulk of my work was specifically console porting to the Nintendo Switch including project setup, implementing new required engine features like inputs, and in particular the new HD rumble system.
Frozenbyte uses an in-house built engine programmed in C++. This being my first shipped game during my employment a lot of my time during the project was also spent studying how the engine works, programming for it and learning to use the editor.
Steam Store Trailer on YouTube See More
Has-Been Heroes is a trademark or a registered trademark of Frozenbyte Oy. Art and logo copyright © Frozenbyte Oy 2017.
My projects
These projects below are my own or independent productions and they aren't related to my work at Frozenbyte. For a handful of projects in addition to being a programmer I also did some other tasks which are mentioned in the descriptions. Videos, screenshots and downloads are available on Bluefox Games website.
Scyori
WindowsIs being evil hard work? Scyori does it for a living and now you can have a go at it too. There is a space station in the fringes of space that for some reason needs to be blown to pieces along with everyone on it. To make that a reality you have plasma guns and stuff.
The game is a spiritual successor of Pyxenos featuring similar mechanics and graphical style. Due to a lack of time the game project didn't quite reach the intended goal of multiple boss fights and challenging combat. Think of it more as a proof of concept.
I made this whole game alone. For it I created a new engine in C++ with SFML and Box2D with the intention of improving a design I used for my previous projects having gained experience from them. I also made the graphics and the music. Game took part in the Assembly Summer 2013 gamedev competition where it finished in the 10th place.
Pyxenos
WindowsBrace yourself for a striking adventure. You, Pyxenos, must defend some place for no reason whatsoever now and for ever. Can you do it? Will the overwhelming numbers of your enemies vanquish you or shall you triumph on this day of glory? Only you can find out!
Taking advantage of our already mostly usable game engine for Blogic we created this game in C++. Our goal was to make a challenging and cool looking arena shooter to participate in the Assembly Summer 2012 gamedev competition where it finished in the 5th place. For this project I also created all graphics and the music used in the game.
Blogic
WindowsBlogic is an arcade puzzle game where your goal is to destroy blocks by dropping them from up top to combine them into groups of four or more. Arcade-mode gives you limited time to destroy a certain amount of blocks while Puzzle-mode has unlimited time but a limited amount of moves.
This game was produced as a part of a school course and it was our first bigger C++ project. We built a basic game engine for this game in C++ using SFML.
This project was a very good introduction to the sort of problems one may face when creating games in C++. For example we had plenty of troubles with memory leaks and segmentation faults. For this game I also created a simple level editor in HTML, JavaScript and PHP so that another team member could design the levels and puzzles.
Websites
These websites I have listed I've created either for myself or as freelance work. They are listed in order from the newest to the oldest.
A fan and utility site for a mobile game which listed charts and statistics related to the game. The game has since been shut down so the site will no longer receive additional updates.
Making this site I employed a different strategy than usual implementing backend logic with Python in a particular way. Instead of being a dynamically rendered site, content was updated and rendered once per day using Jinja2 templates and the resulting static pages served in an AngularJS based single page web application.
A comprehensive Bible study website for the SDA church where users can register to complete courses and tests.
Includes a full admin panel for creating the courses and with minor content management systems for adding miscellaneous content pages and managing files. Made with Laravel backend and AngularJS for admin panel.
Kajak Game Development Lab

Another school website. I created a slightly more advanced content management system using a combination of Laravel and AngularJS. Main site layout was done in co-operation with other people but I made all the backend stuff including admin panel.
Parkanon Lukio

I created the layout and the content management system (CMS) myself for this website. The goal was that the school can update the site themselves. CMS admin panel has a simple WYSIWYG-editor and page management panel.
Netpal

Netpal Oy employed me to create this sort of a local youtube for city of Parkano, Finland. Videos of local events and other happenings would be added and users would also able to upload their own videos. In addition to the website I have done some graphics and video editing for Netpal.
Music
Every now and then I get the inspiration to compose some music on my computer. Make sure to check out my SoundCloud too and Mikseri.net for some of the older stuff.
For the record, my vault of music website has my most up to date archive of my newest music, see it at vault.sonaza.fi.
Piano Compositions
In addition to the music above I have some original compositions for which I have created piano sheets in PDF format. Links to downloads below.