This is a collection of projects I have worked on, both individually and in groups. Projects not listed here can be found on GitHub where my username is HerrAndersson. HerrAndersson on Github

Level of Detail

My bachelor's thesis is about the differences between techniques used to switch between LoD's. The main focus was to examine how silhouette based Phong Tessellation compared to Curved PN Triangles, Static LoD, and Unpopping LoD.

Phong Tessellation and Curved PN Triangles are both implemented using hardware tessellation. Unpopping LoD is implemented using alpha blending.

LoD-project on Github
Link to Thesis


This game was created as the final project of the program at BTH, in a group of fourteen members (five Technical Artists and nine Game programmers). It is a strategy game where you play as a security company with the objective to prevent thieves from stealing valuable objects from your clients. You have several traps at your disposal, and you can use two types of guards which you can give commands to. There is also a level editor where you can build you own maps and design missions.

My part of this project was to implement the graphics "engine" (Direct3D 11), where I have implemented everything except the antialiasing and animation shaders. The technical requirements for the project was to have the game run on an Intel NUC with a dual-core i5 processor and Intel Integrated 6000 graphics, using at most 256MB RAM in at least 30 fps. To meet these requirements I had to do a lot of optimizations. For example, I developed an algorithm which scans the map and combines tiles of the same type to save draw calls.

Included in the project was also to work with Scrum, with sprints each week, morning meetings, sprint evaluation etc.

VileCorp on Github


This game was created in a group of six members (four Technical Artists and two Game programmers). It is a puzzle game where you play as a little boy who got trapped in his grandfathers secret lab when an experiment went wrong. Shadow creatures escaped and will try to kill you, but you can use your flashlight to push them away. Using switches, boxes, and the creatures themselves you must try to find your grandfather and escape the lab.

Since we were only two programmers, both of us worked on most parts together, but the graphics "engine" (Direct3D 11) and the AI was done by me alone. The AI is a simple 3-state state-machine, which is using my implementation of A* for pathfinding.

nightlight on Github

Seam Carving

This is an implementation of Seam Carving (S. Avidan and A. Shamir, 2007), which is a way of resizing images by removing pixels of low importance. It was implemented in C++ and Direct3D 10.

Seam Carving on Github

Space Shooter

A Space shooter where you play as a spaceship. The objective is to stay alive as long as possible while waves of enemy ships attack you. It was implemented in C# using XNA.


A small labyrinth game implemented using lua to handle the logic. There are two modes: playing the game or building new levels. The levels are saved and updated in real time, making it possible to switch back to the play-mode and play the new level any time.

Luabyrint on Github


A physics simulation of projectiles being affected by air resistance. Implemented in C++ and Direct3D 11 as part of the course "Applied Real-time Physics".

Projectile simulation on Github

An implementation of nibbles (snake) done entirely in Assembly language as part of the course "Performance Optimization".