Welcome to my portfolio

My name is Teemu Hörkkö and I am a 31.8-year-old game developer, programmer and technology enthusiast. I've worked at Frozenbyte Oy since August 2016 as an engine, console and general gameplay programmer.

I graduated from Kajaani University of Applied Sciences in December 2014 with a bachelor's degree in information technology (fin. tietojenkäsittelyn tradenomi, peliala) and specifically game and game engine programming. My thesis was on component-based object management in game development by means of Entity-Component-Systems (ECS) which is a central part of object management and composition in modern game engines. It can be read on Theseus, written in Finnish with an abstract in English.

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 Breath of the Wild, 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.

I have a few open source projects on my GitHub, although they're nothing big.

Also, I like penguins 🐧🐧🐧🐧🐧

Contact

If you wish to throw a message at me my preferred means of contact is via email.


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 even though lately I find myself disliking what web development has become.

Below I have a listed a few most prominent the languages, technologies and software I know or am familiar with — though it 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.

    My current employer Frozenbyte uses C++ for their proprietary game engine and all gameplay programming work is done in C++.

  • C#

    I have some limited experience in C# game development using both Unity and XNA. Beyond that I have used it for some miscellaneous utility and helper programs as well.

  • 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

    On a hobby basis I have installed, configured and maintained 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 too is hosted on the said server.

Web

  • HTML
  • PHP

    Laravel is a very nice PHP framework.

  • CSS

    It's magic. Nested styles with Sass are nice.

  • JavaScript / TypeScript

    I have experience working with AngularJS and React, as well as vanilla JS.

  • SQL

    Bulk of my experience is with SQLite and MySQL databases.

Software

  • Visual Studio

    The primary IDE I use both at work and for hobby projects.

  • Sublime Text

    A very snappy text editor I use for everything I don't do in Visual Studio: Lua addons, web development and all miscellaneous text editing.

  • Adobe Photoshop and After Effects
  • FL Studio

    The software I use to make all my music.

Console Programming

  • Nintendo Switch®

    Working with this platform is quite pleasant. I was part of our initial efforts to port Has-Been Heroes to the platform and did some general and low level stuff like platform configuration, file management, controller support (JoyCons and Pro-Controller) including the HD rumble to list a few things.

    For Nine Parchments I also worked to implement the network communication for online and local wireless multiplayer. It was a rather large undertaking and I've 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've implemented some other engine functionality like hooking up the hardware MP4 video playback through the included libraries.

  • Sony PlayStation 4®

    My experience on this platform is very limited, only consisting of implementing user presence instrumentation and miscellaneous trophy related work.

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.

StarbaseWindows

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 4Windows, 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 ParchmentsWindows, 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 HeroesWindows, 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.

There are a few more games that I've not listed here but they are all older, cruder projects created with CoolBasic for Windows only. If you're still interested they can be downloaded from here (70 MB zip, playing these on newer Windows versions requires installation of DirectPlay).

ScyoriWindows

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.

StonelayerAndroid

A planned sequel to Protect Anubis.

This game was programmed almost entirely in native C++ apart from the required Java code necessary to bootstrap an Android application. Our self made engine utilizes OpenGL ES 1.1 to draw stuff on screen. Audio playback is implemented using Android's own SoundPool and MusicPlayer classes with binds between Java and C++ code. Uses Box2D for physics.

This game was produced as a part of a school course and unfortunately the project was not finished due to time constraints. For all intents and purposes it is cancelled — but the work experience gained from it is still valuable nonetheless.

PyxenosWindows

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.

BlogicWindows

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 in HTML, JavaScript and PHP so that another team member could design the levels and puzzles.

Protect AnubisWindows Phone 7

The Empire of Rome has attacked the God of the Dead, Anubis, and you must protect him from the legion's relentless assault in this physics based game. Place blocks of solid rock between the romans and Anubis in order to deflect the projectiles and save the world from certain doom.

This game was produced as a part of a school course and Protect Anubis was the first mobile game I've created. It was programmed in C# using XNA framework and Farseer physics for Windows Phone 7.

Other work

These websites I have listed I've created either for myself or as paid work. They are listed in order from the newest to the oldest.

SIFAS Card Rotations

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.

Raamattu avautuu

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.

Bluefox Games Entertainment

The website for my game development house or what ever you'd like to call it, to serve as portal for the distribution of the games I've worked on. Not really updated much recently what with me being employed by another game dev company and all.

Parkanon Lukio (Parkano Gymnasium)

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. The site has since been discontinued.

Music

Every now and then I compose some music on my computer. If you like what you hear you can find more of my tracks on SoundCloud and Mikseri.net (for some of the older stuff).

Note: Playback on website requires a modern web browser that supports mp3 or ogg audio files. Downloadable files are in mp3 format.


Cool Breeze Download full album

Relax in the cool breeze. Partake in an expedition into unknown.

Download

1 Cool Breeze

Download

2 Expedition into Unknown

Download

3 Bay of Solace

Download

4 Boundless Delve

Download

5 Breadth of Possibility

Download

6 Detour

Download

7 Digital Serenity

Download

8 Arcane Encounter

Download

9 Timeworn Monoliths

Download

10 At the Boundary

Download

11 Respite

Download

12 Astray

Download

13 Somber Sendoff

Download

14 Journey's End

Apogalacticon Download full album

A journey from the outskirts to the galactic core. Or something. Idk, you come up with a better idea.

Download

1 Apogalacticon

Download

2 The Legend

Download

3 Interplanetary Megafactory

Download

4 Voyage Across

Download

5 Compressor

Download

6 End to Everything

Download

7 Sunset Twilight

Download

8 Stellar Superhighway

Download

9 Perigalacticon

Inverse Consequence Download full album

Second album with darker or edgier theme I guess? Imagine yourself in a virtual world. Now imagine you didn't know that. Amazingly cliché, I know.

Download

1 Abstraction

Download

2 Variable Reality

Download

3 Undeniable Truth

Download

4 A Leap Through

Download

5 Immediate Response

Download

6 Fracture

Download

7 Reflection

Download

8 Deadlock

Download

9 Inverse Consequence

Reach for the Sky Download full album

My first full feature album! The tracks are supposed to tell a narrative based on space travel. See if you can find out what it is :)

Download

1 Reach for the Sky

Download

2 Among the Stars

Download

3 River of Infinity

Download

4 Endless Complexity

Download

5 Lonely Expanse

Download

6 Approaching Monstrosity

Download

7 Uncomfortable Darkness

Download

8 Transcending Dimensions

Download

9 Lightyears Away

Download

10 Uncertainty

Download

11 A New Beginning

Download

12 Reach for the Sky (Original Mix)

More Music

Here I have some more mostly older tracks and pieces.

Download

Scyori

Game soundtrack for the game Scyori.

Download

Pyxenos

Game soundtrack for the game Pyxenos.

Download

Kristallimetsä (Crystal Forest)

Played by me. Piano sheets available here.

Download

Flow

Piano sheets available here.

Download

Grove

Remake version of an older track that can be found on my Mikseri page. It's still technically work in progress even though I haven't done work on it in a long time.

Download

Strife

Download

Brevity

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.