-=> This is a work always in progress <=-

This is the portfolio of Henning Mortensen. C# back-end developer, game developer, hard worker, and Unity enthusiast.

Working with Unity has made it possible for me to be productive in a manner like never before. Going from using XNA and/or OpenGL to Unity was a bit like the switch from C++ to C# and .Net, now I can create instead of having to building everything from the ground up.

The last years I have spent a huge amount of time working with Unity’s UI system, and it’s become a great friend of mine. I love what it makes me capable of, right out of the box, and what it can’t do, I can add myself as it’s all open-sourced.

I love to chat about game dev, philosophy, science, math, life the universe and everything.

Below you will find a list, of some of the projects I have been working on for the past few years. Some are finished and released into the "real" world, some are very simple proof of concepts and others are from miscellaneous games jams.

As you would expect, the quality will vary a lot. But if I keep them all hidden away on my computer for no one to see, they are nothing. So, I have decided to share them all with the world, good and bad.

Still to be added to the portfolio: Bullet Hell, Burger Builder, Colors, Henning Clicker, Just Match 3, Shuriken Vs Zombies and more...

Name: Pomodoro

Type: Produktivity application

Date: 2022-07-30

Language: C# (Unity)

Description: Trying to make apps in Unity and trying to limit the resources used by unity. So it's set to run at 5FPS and the code it run twice as fast.

The Pomodoro Technique is a time management method developed by Francesco Cirillo in the late 1980s. It uses a kitchen timer to break work into intervals, typically 25 minutes in length, separated by short breaks. Each interval is known as a pomodoro, from the Italian word for tomato, after the tomato-shaped kitchen timer Cirillo.

SHA256 hash sum for Pomodoro_V1.02.exe:


Download: Pomodoro_V1.02
Name: Cow Balance

Type: Relaxing mini game

Date: 2017-04-24

Language: C#

Engine: Unity3d

Graphics: Me and free assets on the internet.

Sounds: Me and www.freesound.org/

Music: DeceasedSuperiorTechnician from www.nosoapradio.us/

Description: This started out as one of the games made for the #30daydev challange. So, the original version was made in about 2 hours almost 3 years ago, and that was it. Then two weeks ago I showed all 30 games to a friend, and he started laughing at the balancing cow, so then and there we started making a few upgrades to the game. And over the last 10 days, I have used a bit of time updating the look of the game, switched from Gamejolt login to Facebook, if not for anything else, then to learn more about the Facebook SDK/API.

Now it’s done. A very small game, but a nice looking one. I really like the clouds and the birds in the tree. :)

Try it at the Google Play Store: play.google.com/store/apps/details?id=com.incd021.cowbalance

Name: Blind Maze Runner

Type: Game - Procedural Maze Roguelike.

Date: 2017-01-07 to 2017-01-15

Language: C#

Engine: Unity

Graphics: Me, Stephen Challener (Redshrike) and @JoeCreates, hosted by OpenGameArt.org

Sounds: Me and Morten Barfod Søegaard, Little Robot Sound Factory, www.littlerobotsoundfactory.com

Music: Dark Ambience Loop by Iwan Gabovitch opengameart.org/users/qubodup

Description: Very small game made for the #7deydev jam. It's called "Blind Maze Runner" as the idea started out totally different from what it ended up to be. But who cares what it's called.

Game Summary: You find yourself in a dark dungeon, and you apparently don't like the scenery. So you have to try to find your way out. To get out, you need to find the key, but you can't see the key before you have collected the 6 gems hidden around the maze.

Plan: The game was to be done in 7 days, so the plan wasn't to work on it after the 7 days, but as most players find the game to be too hard (I haven't seen anyone finishing the game), I might tweak the enemy AI a bit to slow down the enemies to allow the player to get around them a bit easier.

Credits: Thanks to my son for all the tests he has done.

Shout-out: Liam Twose liamtwose.com, @liamtwose, for organising the jam, and motivating gamedevs for years.

WebGL: Play
Download: BMR-WIN32, BMR-WIN64
Name: Just Accelerate

Date: 2016-12-16

Type: Game - Top down 2d racing.

Language: C#

Engine: Unity3d

Graphics: Bought from graphicriver.net/item/space-game-ultra-pack-12/14633921

Sounds: www.freesound.org/

Music: Created using www.jukedeck.com/

Description: This game is based on a small POC I did for my #30daydev number 14 called Faster. It's a top down 2d racing game where you, for now, play against yourself for the best finishing time. The goal of each level, is to collect all the power-ups and return to the goal line. For each one collected, you speed will increase and there by make it harder to navigate the level without hitting the walls and obstacles. You have a limited amount of "hit-points" so hitting the walls repeatedly will kill you, and some obstacles will kill you instantly.

Download: JUSTAccelerate-WIN32, JUSTAccelerate-WIN64
Name: Pig Clicker

Date: 2016-10-08

Type: Game - Clicker.

Language: C#

Engine: Unity

Graphics: All done by me.

Sounds: Me and Bfxr.

Description: Pig Clicker, started out as a test game to see why my son loves clicker games so much. So why not try to make one for myself.

I started out by making the very simple clicker mechanics and the upgraded to buy multi-finger-touch, a new pig and click power upgrades. I found out very quickly what it is made of, and it is not fun, but addictive. Upgrades and new items and more upgrades, the visual feedback and the sound. But that meant more upgrades and items had to be designed, so I took a look at asset bundles, I wanted to be able to publish the game and add content without having to upgrade the entire game. After a few days I got it to work, and then I was able to add upgrades, items and pigs whenever I want.

What about money? What if I wanted to earn money by the game, that one day who knows, might get popular? So I took a look at Unity’s own ads implementation and wow, that was easy. So I added a reward for watching an ad, I didn’t wanted to show ads if the user doesn't want to see them, so I think this is the best solution.

Now what about getting the game out there? I wanted to use Facebook invite, so I took a look at yet another API and found Facebooks unity implementation to be very easy. The only thing was that it was asking for permission to post if the user wants to share his or her progress, took some time, as I had misread something in the API description, but now it works as a charm.

Plan: I really learned a lot developing Pig Clicker, and if I ever get my head around the ratio of player clicker income and the cost of upgrades, so the player wouldn’t find it to easy, and not to hard, I might release it someday.

Name: 120

Type: App - Kids learning.

Date: 2016-07-19

State: Still under development, from time to time.

Language: C#

Engine: Unity3D

Graphics: Me.

Sounds: All speech, it is done by me. All UI sounds are from www.freesound.org/

Description: A kids learning app, created to help kids learn the 120 most used words in the Danish language.

My son was the main inspiration for this app. When he started to learn to read, we were told that if he knew the 120 most used words, he would know about half the words in most books. All kids in the Danish school system are taught the 120 words as part of their curriculum. So then I decided why not make an app, to help him, and maybe other kids, learn. I used my own voice in the app as I thought it would be fun for him.

Plan: I would like to see this app installed on all school going kids devices. I'm in contact with someone who knows more about learning games, and what works and what doesn't. I hope the graphics will get an overhaul, when I get to a point where I'm sure it’ll be published and I would want to spend the money on it. So hopefully it'll be published someday.

Credits: Thanks to my son for all the testing he's done.

Name: RebarBashing

Type: Game - 2d procedural dungeon crawler.

Date: 2015-10-19

Engine: Unity

Graphics: Me and charater www.fiverr.com/lacrainthstudio amazing work, and background by www.fiverr.com/zaicuch

Sounds: Me and www.freesound.org/

Description: After seeing first season of The Strain, along with my friend, who loves vampire movies, I really liked the character Vasily Fet. In one episode, she disposes of a vampire with a peace of rebar and I was inspired to make a game where you are hunting vampires with a pace of rebar as your only weapon.

First ,I focused on an algorithm for generating mazes, as I wanted the setting to be a maze in the sewers, then I did create all the walls and then hired an amazing artist to do the first couple of animations for the main character based on images taken of myself. He made the pixel animations so well, that you can recognize me, even if it's at most 32x32 pixels :) Then I found some wall graphics and adjusted it to match my needs, and hired another guy on Fiverr, to make it look better. Added a few enemies, mice, wall decoration, some ambient sounds and sound effects, and I really liked what I got.

Another Proof of concept to see if I could make the different elements required. :)

Download: RebarBashing-WIN32, RebarBashing-WIN64
Name: #30daylowPoly

Type: 3D Models - Low polygon.

Date: 2015-08

Engine: Blender

Credits: All the creators of www.blender.org/ for this wonderful and powerful tool. Liam Twose for motivating me on twitter with the #30daydev tag.

Description: As a variation of #30daydev I decided to spend 30 days learning how to use blender. I had from time to time used Blender, but never really understood the workflow, so this should help me feel a bit more comfortable doing 3d graphics in Blender. I didn't go through the full 30 days, but I did create 16 low poly models, unwrapped and textured, and I do feel now that I am able to create most simple models and texture them. I did try to rig a model, and it worked 90%. A few nodes and restrains didn’t work and the IK animations just ended up looking like something out of a horror movie, intersecting itself and bending it all the wrong ways.

I wanted to make one each day of the #30daylowpoly, to ensure I didn't get stuck polishing ONE model instead of moving on and keep learning. So, each model and texturing, was made in the few hours in the evenings after work.

Download: Axe, Bench, Blaster, Chest, CodingPirate, Fighter, Flask, Hammer, Logo, Mask, Monkey, Neb, SpaceShip, Sword, Toy, Tree
Name: Battle The Haters

Type: Game

Date: 2015-07-19

Language: C#

Engine: Unity3d

Graphics: Me

Sounds: Me and www.freesound.org/

Description: This small game was inspiret by the old arcade game called "missile command". The game was made i two days for the #indiesvsgamers jam. There wasn't time for that much of a game play, so it's kind of slim, but that's who it is when doing a game in such a short time.

Plot: As a YouTuber you have made some videos, and now you got to keep the haters away and avoid getting a video banned. A single ban and your out of the YouTube race. Haters will dragg down your likes and if they results in a negative number of likes on a video, you're out!

WebGL: Play
Download: BattleTheHaters-WIN32, BattleTheHaters-WIN64
Name: Earth Guardian

Type: Game (POC) - 2d mobile space shooter.

Date: 2015-04-077

Language: C#

Engine: Unity3d

Graphics: All done by me.

Sounds: All done by me using Bfxr.

Music: "Cyberium" by nosoapradio.us

Description: Mainly a test to try out different input controls for mobile games. Here the first touch puts a virtual joystick on the screen and all movements are controlled from that point, additional fingers are used as fire. If you lift your finger, the joystick vanished and reappear when you touch the screen again. It works as designed, but for the circular motion of the game I find it lacking, and I find myself being annoyed that it doesn’t move in the direction I expect as I'm still on the same side of the joystick.

The other part was to do different attack formations, as the animation support in unity really isn't made for polar coordinates. So, all movement are done by code, and work wonderfully.

Plan: No plan. More a proof of concept than anything else.

Name: #30daydev

Type: Games

Date: 2014-09-14

Language: C#

Engine: Unity3d

Graphics: Me

Sounds: Me and www.freesound.org/

Description: #30daydev is about you spending 30 days developing games, whether you want spend 30 days on one game, or on 30 games. I chose to do 30 games in 30 days, small, very small games, just to see what I could come up with and find out what makes a Game. I set a limit for myself to make all the games in one setting and in a max of 4 hours. This was to ensure I didn't get stuck polishing or optimizing something unimportant, instead of getting to game to a playable state.

I learned a lot, and was impressed with what I could get done i sutch a short time, if I didn't focus on polish and adding more and more features.

The result was 30 small "games", and a better understanding of Unity and prototyping.

All the game can be played on gamejolt.com/@INCD021/games, the games haven't been updated in any way and will only play in browsers with npapi enabled. I might make a short gameplay video including all the games to show them off.

Name: Join US!

Type: Game - 2d space shooter with a twist.

Date: 2014-08-23

Language: C#

Engine: Unity3d

Graphics: All done by me.

Sounds: All done by me using Bfxr.

Music: Can't find the creator

Description: This project was done for my first Ludum Dare (30). Ludum Dare is a reoccurring 48 hour game jam, and this time the theme was “Connected Worlds”. With such a short amount of time, I had to keep it simple. So why not having two universes, one on top of the screen and one on the bottom, and having to fight invaders from the other universe wanting to make a wormhole to the other universe. So I set out to do so. The enemy ships ended up being wormhole generators that you have to shoot down before they can open a wormhole, and there by destroying the other universe. Creating a game in 48 hours taught me a lot, especially not to optimize as much as I used to do. I have created solutions where I thought "this will be slow", but looking closer it turned out to be micro seconds, and nothing the user would ever see or experience in any way. It’s been fun and amazing to see how much I can do, when I don’t focus on having to deliver something amazing and super polished, but just a game someone would enjoy for a few minutes. Hope you will play it and enjoy it.

Plot: You don't want to join the red universe, as your physicists have concluded that a wormhole from that universe is incompatible with our laws of physics and their laws will replace ours, and make our universe UNINHABITABLE! Your mission is to prevent their wormhole generators from opening a wormhole, in short, save the universe!

Watch out for highly warped space, as it'll drag you in, AND it does allow your bullets to circle around space-time, and hit you in the back.

And yes, the controls are meant to be hard ;) You're in space, no real breaks :)

GamePlay: www.youtube.com/watch?v=4RzPBfii5yE

WebGL: Play
Download: JoinUs-WIN32, JoinUs-WIN64
Name: Strazer

Date: 2014-05-21

Type: Game - Top down 2d, Endless racing.

Language: C#

Engine: Unity

Graphics: All done by me.

Sounds: www.freesound.org/

Music: "All of Us" by Eric Skiff, ericskiff.com/

Description: Endless racing game, very loosely based on an old game for the video Pac G7000 system called Speedway. The goal of the game is to get as far as possible without crashing into the other cars along the way. On your way, you can pick up wrenches to fix your car; you have 10 hits in all. You also have to pick up gas on the way, so as not to run out.

Plan: It's all done. I'll update it, only if I find bugs or I'm really bored and have a good idea of what to change/update.

Published: play.google.com/store/apps/details?id=com.incd021.strazer

WebGL: Play
Download: Strazer - WIN32, Strazer - WIN64
Name: Beach fun Segull hunt

Date: 2014-04-21

Type: Game - Static 2d shooter.

Language: C#

Engine: Unity3d

Graphics: Me and Karsten Vise, www.viese.com/

Sounds: www.freesound.org/

Description: Beach Fun Seagull Hunt is a small frustrating game, where you have to keep a beach ball in the air and make it hit the seagulls flying overhead, for points. This is done by hitting a beach ball with water from a super soaker.

The super soaker fires automatically, and you only have to aim it in the right direction.

Be careful while hitting the beach ball near the top of the screen or close to a seagull. The acceleration the ball gains from a hit will reflect it down, fast, if it hits the belly of a seagull of the top edge of the screen.

At the top of the screen you'll see you current score and you all-time best score.

Plan: It's all done. I'll update it, only if I find bugs or I'm really bored and have a good idea of what to change/update.

WebGL: Play
Name: Gastorid

Date: 2013-08-27

Type: Game - 2d Endless Defender.

Language: C#

Engine: Unity

Graphics: All done by me.

Sounds: Me and www.freesound.org/

Music: "Cyberium" by nosoapradio.us

Description: I came up with Gastorid when I was testing some simple gravity simulation on my phone, and after a few iteration of the game mechanics, I had a working poc.

Developing this project, I had to do some shader programming and had a hard time figuring out why it didn't work when installing it on my android phone. It turned out I had to always include the shader in the project in Unity.

After testing Gastorid again and again, I didn't find it that it had the lasting fun gameplay I was looking for. A change in game objective might have helped? But I never did figure out what to change, and so I never polished it.

Even though I hate abandoning a project, for a while, I hope that working on other things, will give me some new inspirations. If not, I will have learned a lot, I can use it in my next project.

This was also the first time working with touch devices, and it taught me that it's something completely different than making mouse/keyboard controlled games. The biggest challenge I found was that I cover a large section of the screen when clicking on the left part of the screen (I'm right handed). So some game ideas simply won't work, or controls have to be added that take this into account.

Plan: It's as done as it'll ever be. So I currently have no plans to work on it again.

WebGL: Play
Download: Gastorid-WIN32, Gastorid-WIN64
Name: 3x3

Type: Game - Endless 3d runner.

Date: 2013-06-30

Language: C#

Engine: Unity3d

Graphics: Me, I did find some of the symbols online but sadly I cannot find them again and credit the right creator.

Sounds: Me and www.freesound.org/

Music: DeceasedSuperiorTechnician from www.nosoapradio.us/

Description: The game is set in space where you are flying at ever increasing speed through a tunnel with obstacles consisting of 3×3 blocks; the blocks can be removable by matching them up two and two by clicking them. The Player has to survive as long as possible by avoiding hitting any of the blocks. To help, the player can pick up bombs that are able to remove entire walls in one swift explosion.

Plan: I have from time to time returned to work on 3x3, and updated the graphics back in 2016. The game had a very floaty feel, so I wanted to add a cockpit overlay to give the feel of flying in a spaceship instead of the disembodied feel it had. I don't think I'll make it into something more than it already is.

I did try making it work on android, but touch accuracy, the small boxes and the finger blocking the boxes, just didn't work. So it is as it is, and Windows only.

WebGL: Play
Download: 3x3-WIN32, 3x3-WIN64
Name: CellVivor

Type: Game - 2.5 avoidance.

Date: 2012-07-29

Language: C#

Engine: Unity3d

Graphics: Me

Sounds: Me and www.freesound.org/

Music: DeceasedSuperiorTechnician from www.nosoapradio.us/

Description: CellVivor is a game where you as a cell are to collect food and eradicate virus. The player’s cell(s), when it has consumed enough food can divide. So to eradicate the virus you’ll have to have a cell with some energy and then engage in battle with the virus. All cells have a limited lifespan so the player must make sure to divide before the last cell dies.

The game was made in a time span of about three weeks, and it was my first game made with Unity3D.

Short about the learning experience: I had previously heard of Unity3D and installed it at the time, but never got around to try it out. But when I accidentally came across it again, while I had a little idea for a game in my head, I had to try it out. After a day of watching YouTube videos and crawling unity's own website and forum, I felt I was ready to develop games.

Started by getting collision to work, then mouse control which gave a bit of trouble, I didn't know how to detect OnClick in scripts; the game object had to have a collider attached. Finding out where the mouse was in 3D space took a few searches on the Unity forums, but they weren’t very helpful in finding answers.

The scripts where a bit of a challenge since I couldn't do everything I was used to do in C#, I didn’t know enough about how and in what order the Methods like Mono-behavior were being called and in what order game objects were being instantiated. I did not find an overview of what is being called when at the time, but now I know docs.unity3d.com/Manual/ExecutionOrder.html.

I got the music to work with the overall game controller script, so the music did not restart every time I loaded a new scene. Guess I found out about DontDestroyOnLoad.

Lastly I wanted to have a high score list and statistics of game. No problem, as it was mostly C# serialization and I only had windows as a target platform.

The old Unity GUI system. Wasn't easy to work with at all, and that's why the resolution is fixed to 1024×768. To get everything to fit in all possible solutions was impossible for me at the time.

Download: CellVivor-WIN32
Name: GSpace

Date: 2012-06-15

Type: Game - Clicker.

Language: C#

Engine: XNA

Music: FlyingAces by Deceased Superior Technician @ www.nosoapradio.us and Space Fighter Loop by Kevin MacLeod

Graphics: All done by me.

Sounds: Me and Bfxr.

Description: This was the first fully playable game I ever did on PC. Working, as I recall it, with XNA came with a very steep learning curve and a lot of small tweaks and configurations that had to be 100% correct to even compile. Including music was a challenge.

This was also the first time I did any useful shader programming and texture rendering, I wanted the bunkers to be fully destructible with pixel perfect collision, and I did, it took time and research and I did it. And then it was rumored that Microsoft would stop support for XNA in 2013 and in January 2013 they announced that XNA was no longer actively being developed. So, all I've learned about XNA was never used again. :/ But with XNA gone, I had to find an alternative and that was when I found UNITY :)

Plan: It's done, all done.

Download: The file works if you have an old system to run it on, I haven't been able to get it to run on Windows 10 in any way.

Download: G-Space
Name: Fractal Flame Generator

Type: Application - Fractal generator.

Date: 2010-07

Language: C#

Graphics: GDI

Description: I've always had a weakness for computer graphics, so when I came across Scott Draves website back in early 2010, I had to find out how these stunning images were made. After reading a few articles, including "The Fractal Flame algorithm" I was able even write a program that would create images like the once in the paper. The program is easy to use, but I have never done any GUI so knowledge of executing programs from the commandline is a must. The program takes a configuration file called "input.ini" which contains information about resolution, number of points to draw, and a list of parameters, probability and color for each of the 49 different functions used to create the fractal flame. So you simply run the program for the commandline and ensures the "input.ini" file is in the same path and it will generate a png image. To se a list of all the functions download the Scott Draves paper flam3.com/flame.pdf.

apophysis.org/ is a link to a freeware program called Spinous, it uses the same algorithm to create fractal flames, but with a GUI and preview rendering.

Credits: Scott Draves & Erik Reckase for writing the paper "The Fractal Flame algorithm" enabling me to make this.

Download: Fractal Flame Generator
Name: CNC

Type: Physical CNC machine.

Date: 2007-04-17

Language: c and VB

Description: I wanted to see if I could build a CNC machine from scratch. So I did :) I made everything except the Dremmel and the step-motors, myself. Including the design and layout of the PCB for the stepper driver (Yes including the etching), I created the firmware for the AtMega8 I used as the controller for the stepper driver. I made the machine itself in MDF, sliders from drawers, threaded rods, and a lot of screws. Using MDF and the sliders from drawers is why I don't have the machine anymore, maybe it isn't clear in the video (Download), but the machine isn't rigid enough, so the construction wasn't usable for anything but very, very thin MDF, so my plan to use the machine to create prototype speakers didn't work out. Looking back, I could have used it for a lot of other things. About a week after I finished the machine I dissembled it, sold the stepper motors, and didn't look back. The only thing I have left is the controller board, as shown in a couple of the images.

As with all projects, I learned a lot and had fun doing it.

Download: CNCFirstTestTimelapse
Name: Old C64 Demos

Type: Demos

Date: Around 1987-1992

Language: 6510 assembler language

Description: The Commodore 64 was the marvel that sparked my interest in computing. I remember the first time I ever saw a C64 in an office as a young kid. It was running the hot air ballon program from the manual (See Download section), and I was hooked. The idea that you yourself, could make the computer do this, was mindblowing. So when my school got a few C64s, I was there to learn how to use them. First I played around with Comal 80, then basic from the manual, then magazines started to have program sections with small programs, you could type in yourself and run. Often the programs didn't work, or there where errors preventing the program to run. To fix the programs, I had to understand the code.. So I learned by myself, by playing around with exsisting programs. Later I saw my first Demo.. And I simply didn't understand, how they could make my computer do what it did. By pure luck I got in contact with another kid who knew assambler language, and had the software to allow me to start writing assembler code, so from then on, I coded 100% in assembler and enjoyed evey second of the control I had over the machine. :D

Over the years I did make a lot of "lame" demos, and two or three parts of mega demos, I was really proud of.

Sadly all the disk images are gone, so no way to see the demos ever again :(

Download: C64 Programmer's Reference Guide