Welcome to my portfolio

My Photo

My name is Teemu Hörkkö and I am a 33.2-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 have extensive experience with C++ programming, primarily in the context of game development. In addition, I possess strong proficiency in modern web development languages and technologies, including PHP, Python, SQL, JavaScript, TypeScript, and the React framework.

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.

Code

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.

  • 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 virtual private server instances (hosted by Hetzner) 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.

    I am familiar with Docker-containerisation and Docker-configuration as well. My server runs a few containerised applications, including a self-hosted Git server.

  • Git & SVN

    I use Git for version control but am also familiar with SVN.

Web

  • HTML, CSS & 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 Next.js/React, as well as vanilla JS and TypeScript.

  • SQL

    I have mostly worked with MySQL/MariaDB and SQLite databases.

Software

  • Sublime Text & VSCode

    Both are very snappy text editors I use for a lot of stuff: Lua addons, web development and miscellaneous text editing.

  • Visual Studio

    The primary IDE I use for C++ projects.

  • Adobe Photoshop and After Effects

  • Linux

    The bulk of my experience is from the flavours of Debian/Ubuntu.

Gamepad

Console Programming

  • Nintendo Switch®

    I worked on the early-stage porting of the company's game engine to this platform at Frozenbyte, handling a range of foundational tasks including platform configuration, file management, and controller support, as well as HD Rumble integration. Additionally, I developed the engine layer supporting network communication for both online and local wireless multiplayer.

    This was a significant undertaking that expanded my expertise in low-level platform development and network systems.

  • Microsoft Xbox One®

    My experience on this platform primarily focuses on network programming, including implementing secure socket-based communication and online matchmaking for multiplayer gameplay. In addition, I contributed to engine-level functionality, such as integrating the platform's hardware-accelerated MP4 video playback.

  • Sony PlayStation 4®

    On this platform, I specialised in user presence instrumentation and various trophy system features as a part of Trine 4 project, supporting the overall player experience and platform integration.

Certificates

  • Fundamentals of Digital Marketing

    Issued by Google Digital Academy (Skillshop)

    View credential

  • Search Engine Optimization

    Issued by HubSpot Academy

    View credential


The guardians of my desk

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 spare 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 Elden Ring. 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.

Starbase

Windows

Starbase 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.

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.

Nine Parchments

Windows, Xbox One, PS4, Switch

Nine 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.

Has-Been Heroes

Windows, Xbox One, PS4, Switch

Embark 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.

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

Windows

Is 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

Windows

Brace 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

Windows

Blogic 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 so that another team member could design the levels and puzzles.

Websites

Tremedia

Here I list what I worked on at Tremedia. The list is not exhaustive but highlights a few things.

Tremedia Rehti Product Family

At Tremedia, I contributed to the development and customization of the Rehti CMS, Booking, and Store platforms to meet customer requirements. My responsibilities included platform updates, maintenance, bug fixing, and new feature development across the Rehti product family.

MobilePay Login and Payment Integrations

As part of the Rehti Store platform enhancements, I was responsible for technical implementation of the MobilePay login and payment system integrations. This enabled customers to securely authenticate using MobilePay's third-party identification services and complete transactions through its payment solution.

Customer Service Widget

Tremedia was commissioned to develop a customer-facing service widget to enhance user experience and communication. I implemented the final design using React and TypeScript.

The widget enables website visitors to effortlessly access relevant information about company services and to initiate contact, either through the chatbox or via integrated popup forms.

Theatre Website Refresh

A local theatre requested a major update for their website to improve the user experience, particularly in browsing and discovering upcoming theatre productions.

I implemented the updated design spec of the new programmes page, introducing enhanced filtering functionality using Alpine.js to enable users to more easily find relevant shows based on their preferences on dates, venues and genres.

Other 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.

I developed this fan website for a mobile game, providing charts and statistical insights to help players make better choices and improve the player experience. Although the game has since been discontinued and as such the site will no longer receive updates, the project demonstrated a robust approach to data presentation.

For this project, I implemented a unique backend strategy using Python. Instead of a dynamically rendering the site, content was processed and rendered daily using Jinja2 templates, with the resulting static pages served through an AngularJS-based single-page application. This approach optimized performance and ensured reliable, consistent content delivery.

I developed a comprehensive Bible study platform for the Finnish SDA Church, enabling users to register, participate in courses, and complete assessments.

The platform includes a full administrative interface for course creation, along with lightweight content management tools for managing supplementary content pages and files. The solution was implemented using a Laravel backend with an AngularJS-based admin interface, ensuring a robust and scalable system for both users and administrators.

Netpal

Netpal Oy employed me to develop a local video-sharing platform for the city of Parkano, Finland, providing a centralised hub for videos of community events and other local happenings, with functionality for users to upload their own content.

In addition to developing the platform, I contributed to graphics and video editing projects for Netpal, supporting the company's multimedia initiatives.

Music

Every now and then I get the inspiration to compose some music on my computer using FL Studio as my DAW of choice.

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.