Created a small style test based on this page; click here to open it in a new tab.


Skills and Education


a quick look

  I am a game programmer and - at the moment - a freelancing solopreneur among other things.

  I have studied software and game development in the universities of my hometown, participated in multiple projects and developed games. My hobbies include composing music, creating graphics and sound effects for my personal game projects.
Note that I will list only some of my personal projects on this page; I may not be able to discuss of other projects that I have participated in due to NDAs.

Here is a quick list of things in my bag of tricks:

Programming languages and technologies:
  C#, .NET, C++, Cg, Java, JavaScript, Php, MySQL, HTML5, CSS3, ...

IDEs and other development tools:
  SharpDevelop, MonoDevelop, Unity, NetBeans, Visual Studio, Code::Blocks, ...

Version Control:
  Usually Git with SourceTree and DiffMerge

Operating Systems:
  Android and Windows

Graphics and Sounds:
  Blender, Paint Shop Pro, OpenMPT, LMMS, ...

Natural languages:
  native Finnish, good English, and a little German and Swedish


NOTE: The following is in Finnish.

Jyväskylän Ammattikorkeakoulu, Teknologiayksikkö
  Ohjelmistotekniikan koulutusohjelma

28.8.2006 - 31.1.2010

Jyväskylän Yliopisto, Informaatioteknologian tiedekunta
  Pääaineena tietotekniikka, sivuaineena matematiikka
1.9.2011 - 16.6.2013

Jyväskylän Ammattikorkeakoulu, Teknologiayksikkö
7.4.2014 - 27.11.2014

ValmennusMajakka, Yrittäjäkoulutus
14.3.2016 - 12.4.2016

Programming Languages

C# and .NET

  I prefer C# and the .NET over others due to its high level of abstraction that enables me to prototype my ideas better.

  At the moment I use mostly SharpDevelop and MonoDevelop with Unity for all of my .NET projects. Especially SharpDevelop has some nifty features that I like. Most of my current personal projects are .Net projects written in C#, for example these two game projects:
Perfidious Pumpkin Puzzles

  For version control with .Net C# projects I use usually Git with SourceTree and DiffMerge.

  The images below are from my small in-house tools, the first one generates normal maps from bump maps, and the second one is a level editor for the Veruke project.


normal map toollevel editor screenshot


  Java has always been a secondary language for me. My go-to language used to be C++, but now I have switched over to C#.

  I usually use NetBeans for my Java projects, but in the past I have made small Android apps using Eclipse Indigo with the ADT plugins.

  Most of my personal Java projects have been either games or tools for game development; For example, the first image below is an old game project for Android 2.x using Eclipse and the second image is a level editor for the game project programmed with NetBeans.

More about the Android 2.x game project


game emulationlevel editor

C++ and WinAPI

  C++ was once my preferred programming language, but now I favor more 'modern' languages, such as C# and Java.

  My most ambitious C++ project was a Direct3D game engine, that I abandoned after writing 30k lines of code and a tiny test game on the side.

Web development

Most of the web technologies that I have used are a bit vanilla, such as: HTML5, XML, CSS3, JavaScript, Php, mySQL, AJAX, ...

  When it comes to web development, I'm not as experienced with it as I'm with the .Net or Java for example; I do have worked in larger LAMP projects, but I have not touched web technologies in a while, aside this kind of tiny sites of course.

Personal Projects

Current Unity Project:


  Veruke is a vertically scrolling shoot 'em up that takes elements from old classics - from Aleste to Zanac - and blends them together. Veruke supports modding, and -at the moment- has two modes of play defined: the arcade mode and the normal mode (aka. the story mode).

  The arcade mode is your standard fare; pick up powerups and shoot at everything. The normal mode -on the other hand- is a bit more complex; Akin to games like 'Tyrian' and 'Raptor: Call of the Shadows', the player can choose the missions (levels) to fly, and after each mission, the player has the option of bying weapons and upgrades with credits earned by destroying enemies and completing mission objectives.

  This project is a revival of my very old game project with vastly improved graphics and everything.

Project status:  alpha / development halted

First image is of the in-house level editor for the Veruke project, ported to C# from my previous Java based level editor.


level editor screenshot
Previous Unity Project:

'Perfidious Pumpkin Puzzles'

  Perfidious Pumpkin Puzzles is a lighthearted halloween themed puzzle game that I made for the 2015 halloween. The game contains two modes of play: a 'score mode' and a 'puzzle mode'; The objective of the game is to get all of the golden skulls by solving puzzles and having a very high score (over 100k) in the score mode. Some of the later puzzles (the ghost puzzles) can be very challenging, but can be solved within the given tap limit.

  This is the first game of mine that actually includes self made custom shaders; the mirror effect that can be seen in the screenshots, for example.

Project status:  outdated / 1.0.0 released

Old release (for Android 4.4) was on Google Play.


game menu screenshotpuzzle mode screenshot score mode screenshotpuzzle mode screenshot

Unreleased Android 2.x Game

  I started this project around 2010 and 2011 after self-studying the Android platform. Most of the assets and ideas for this project were borrowed from my previous ( C++/Win32/Direct3D ) test game project.

  The initial idea was to target the Android 2.2 platform (API level 8), but after the release of Gingerbread (Android 2.3 API level 10) and Ice Cream Sandwich (Android 4.0 API level 15) in 2011, I decided to abandon my game project because the code that I made from scratch was rapidly becoming outdated; Especially the custom UI rendering and the collision detection.

This game project never progressed beyond the alpha phase.

Project status:  alpha / project cancelled


screenshot2screenshot3 screenshot4screenshot5

Direct3D Game Engine Project

  My C++ / Win32 / Direct3D 9.0c game engine project that I started in 2009 and abandoned in 2010. I managed to make only a tiny test game with the engine during its development; Total number of self made physical lines of code, including the test game, was a little over 30k.

  I abandoned the project because it started to have a number of problems that I did not bother to fix anymore; the biggest problems being:

  • only fixed-function rendering pipeline, no custom shaders
  • too simplistic collision detection, only sphere and box colliders
  • no physics beyond very simple gravity and collisions with surfaces (planes)
  • no scripting, most things had to be hardcoded

Project status:  project abandoned

  The following screenshots are from the test game; I did not bother with the graphics quality.


D3D test game screenshot1D3D test game screenshot2 D3D test game screenshot4D3D test game screenshot5

OPL2 'FMSynth Player' for DOS

  My 'FMSynth Player' is a tracker like music player obeying the OPL2 instruction set. I made this around 2009 with QuickBasic, after studying some old data sheets of Sound Blasters.

Project status:  'version 0.09' completed

  The following screenshots are of the 'version 0.08' loading, then playing the Duke Nukem 3D theme 'Grabbag'


fmsynth player screenshot1fmsynth player screenshot2 fmsynth player screenshot3fmsynth player screenshot4

Old JavaScript Game

  A crummy javascript game I made during some lectures because I was bored. This game is a bare bones basic side-scrolling shoot 'em up: collect power-ups and shoot anything that moves.

Note: this game can not be played on a mobile device: a keyboard is required to play.

game icon

Small Scripting Language

  A custom game scripting language that I'm currently prototyping with C#. The working title at the moment is 'Ode Script' and it is intended to be used for modding of my games.

  The language is going to be very dynamic: variables can be reassigned - from a number type to a string type for example - and new members can be added to objects and old ones removed very easily. The working prototype/alpha has most of the basic dynamic functionality, and can already convert the 'Ode' objects to JSON strings.

  Earlier prototype version of the scripting language is in use in my in-house level editor for the Veruke project. The level editor will be integrated into the game when I have upgraded the editor with newer script core that has more functionality.

Project status:  alpha / designing semantics


game menu screenshot level editor screenshot screenshot2 D3D test game screenshot1 fmsynth player screenshot1
puzzle mode screenshot level editor screenshot3 D3D test game screenshot2 fmsynth player screenshot2
score mode screenshot normal map tool screenshot4 D3D test game screenshot4 fmsynth player screenshot3
puzzle mode screenshot game emulation screenshot5 D3D test game screenshot5 fmsynth player screenshot4


Note: This contact form will open Your email client due to this site is not being Php enabled.