Portfolio.
Evolutionary Multi-Agent Potential Field based AI approach for
SSC scenarios in RTS games (Master Thesis, 2011)
This master thesis presents an approach for how to implement an
Evolutionary Multi-Agent Potential Field (EMAPF) based AI in small
scale combat (SSC) scenarios in real-time strategy (RTS) computer
games. The thesis will show how evolutionary algorithms can be used
to auto tune and optimize potential field parameters for making
unit agents able to navigate and hunt down enemy squads/troops in
an ecient way in an unknown environment.
The very popular top-selling RTS game StarCraft: Brood War has
been chosen as test platform, mainly because the game is extremely
well balanced and has a complexity in the game world, which makes
the development of AI's very challenging. Since StarCraft is not
open-source, the free open-source framework Brood War Application
Programming Interface (BWAPI) has been used to communicate with the
game.
In order to make the AI able to control unit agents moving
around in the game world, they will be effected by different types
of potential fields placed in both static and dynamic tactical
places around in the game world. One of the hurtles when designing
the potential fields has earlier been the tuning of them, which can
be time consuming, if done manually. This thesis therefore presents
an approach for how auto tuning with the use of evolutionary
algorithms can be implemented into the Multi-Agent Potential Fields
methodology.
The work that has been done in this thesis provides a good basis
for future work for designing EMAPF based AI's for full scale RTS
games. The potential fields found in this thesis could be adapted
by an AI playing full RTS games, StarCraft in particular. The AI
will be able to turn the potential fields on and off, depending on
what tactics are found to be best suited to different states.
Created by:
Thesis
Code
Bricks (Interactive Multimedia, Spring 2010)
Bricks is a casual puzzle game created in Adobe Flash CS4 with
ActionScript 3.0.
The object of the game is to change the colors of the bricks to
create rows and columns of 3 or more bricks of the same color.
These bricks will then be removed and you will be rewarded with
points, while new bricks will be dropped from the top of the
playing field.
The game is controlled by the mouse. Click on a brick in a
specific row/column you want to activate the current action on.
To the right you can see a game play video of the game.
Created by:
- Thomas Willer Sandberg - Programmer and
designer of the game
Play the
game
Traffic (A flash movie created as assignment 1 in Interactive
Multimedia 2010)

The assignment description was:
Your assignment should be ONE animation that is 15-30 second
long. You will not be allowed to turn in many small animations.
Next week, we will learn how to publish a Flash file so that it can
be viewed in a browser.
You can choose from one of the 3 assignments:
1. Create an animation of earth, wind, fire and water.
2. Choose 5 words such as heavy, angry, strong, weak, love.
Create an animation that communicates the meaning of each word. You
can animate the words themselves or something else all together.
The important thing is that the the motion expresses the meaning of
the word.
3. Create a banner ad that is one of the following sizes:
300*250, 160*600, or 930*180.
The animation for this assignment should be between 15 and 30
seconds long. There are two important goals - you begin to master
animation techniques, timing, and most importantly, you begin
trying to communicate with motion.
I choose the second challenge and you can see the result
below.
Show flash
movie
Created by:
Thomas Willer Sandberg
Super Mario AI Agents (Advanced AI in Games, Fall 2009)
This video shows two different AI Mario agents playing the
classic platform game Super Mario Bros. The two agents have been
trained by using two different advanced AI techniques, namely
Genetic Algorithm and Reinforcement Learning.
These algorithms are capable of learning to solve a specific
problem by itself (machine learning) like for instance how to play
Super Mario Bros.
Created by:
- Lars Dahl Jørgensen - Responsible for the
Reinforcement Learning Trained Agent
- Thomas Willer Sandberg - Responsible for the
Genetic Algorithm Trained Agent
Report
Code
TakeOff (Experimental Game Play, Fall 2009)

TakeOff is an unfinished, experimental game that explores
multi-player co-dependent control schemes.
In the game, four players must command a spaceship, each
controlling only a single thruster. Two of them accellerates the
ship upwards, while the remaining two forces it down and slightly
two the sides.
The goal of the game is to launch the spaceship into space,
slowly pick up a randomly placed satelite and land the spaceship on
earth again. All the while avoiding to leave the map space and be
forever lost into the darkness of space.
Created by:
Download
Game
Point 038 (Experimental Game Play, Fall 2009)

Point 038 is a small, experimental game made from two criterias:
A) the theme and gameplay must revolve around the environment and
B) the game must only use abstract shapes.
In the game, the player is presented with a unique challenge; as
blocks starts to grow, more black bubbles are produced and with
time, these start to create problems. Players can either let them
be or choose to pop them, either solution only leading to doom.
More radical methods can be used though to stop the problem…
Point 038 is a small "art" game with the intention of
communicating a message through gameplay, and should be viewed as
such. It's a small 10 mb download and is easy to to install.
Created by:
Download
Game
Robo Co-op (Game Development, Spring 2009)
Robo Co-Op is a 2 player third person cooperative puzzle game
for the PC, in which you control a pair of robots equipped with
powerful beam weapons that can move specific objects from a
distance. One player has the ability to attract objects with a
tractor beam, while the other player has the ability to push
objects with a repel beam. It is impossible to advance without
working together and utilizing the environment. The goal of Robo
Co-Op is to advance through 2 different levels through the
completion of a series of puzzles build around the attract/repel
mechanic. The control scheme is build around the Xbox 360
controller and based on an Unreal Tournament 3 human character.
Robo Co-op ended up with a 4th. place in the category 'Best Use
of Physics' in phase 4 in the worldwide competition Make Something
Unreal, where game developers from all over the world compete
on developing the best Mods, vehicles, graphics, etc. for the
Unreal Tournament 3.
Created by:
- Sanne Louise Poulsen - Manager/Lead
Tester, Mirko Scherf - Level
Designer
- Kristian Egild Winther - Lead
Designer, Thomas Christian Dehn -
Designer/2D Artist
- Tobias Lars Michael Jacobsen - Lead
Artist, Thomas Willer Sandberg - Lead
Programmer
Download
Game
Connect Four AI (2009)

In a group of three students, we implemented an AI player of the
game "Connect Four". The game and AI is implemented in Java and the
algoritm Alpha-Beta-Search
has been used for calculating the moves of the AI player. The
production of this AI has been a part of a project in the course
Efficient AI Programming (Spring 2009) on ITU in Copenhagen.
Created by:
- Lars Dahl
- Niels Robin Aagaard
- Thomas Willer Sandberg
Download
Game
Zombie in Love (Game Design, Fall 2008)

Zombie in Love is a 2D puzzle/platform game with a twist of dark
humor. The game takes place shortly after a zombie apocalypse, in
which The Earth has been overrun by undead creatures. One of these
abominations of night, Lou, has apparently become lovesick, but
with no living creatures to marry, he sets out on an epic journey
to collect body parts. Hopefully, his stash of rotting corpses will
be enough for him to stitch together an undead, lovable bride. The
game is ridden of enemies and fellow zombies, making Lou a lone
survivor in the desolate, melancholic remains of Earth.
Created by:
Mark Elsberg, Kjartan Olafsson, Paul Graf, Rasmus Bille Fynbo, Gry
Bauer and Thomas Willer Sandberg
Play
Game
Website
TWS Minigolf Game 2008
-Based on TWS Minigolf Game Engine 2008

TWS Minigolf Game / Game Engine 2008 has been programmed in
Visual C++ 2008 based on .NET Framework 3.5 together with OpenGL
and GLUT. The production of this game and game engine has been a
part of an exam project in the course Engine Programming (Autumn
2008) on ITU in Copenhagen.
The Minigolf game includes:
- GLUT Menu system.
- Full 18-hole playable course.
- HUD showing the game state during the game.
- Working ball physics and animation (including collision
detection and response)
- Scoring system with player profiles (Using XML)
Created by:
Thomas Willer Sandberg
Download
Game
Report
Juleræset (2006)

Juleræset is the first game I have created and it was created as
a Christmas contest for DJØF's employees in 2006.
The game is a 2D racing game, where you had to catch the
Christmas hats, toot the horn at the lightly dressed Christmas
girls walking on the pavement.
Since Santa Claus is busy delivering all the gifts to the
children's Advent calendars, it may well happen that you will meet
him on your way. It is important that you avoid hitting Santa
Claus, otherwise the children will be very sad.
Furthermore, you should also avoid hitting the lightly dressed
Christmas girls. This will result in penalty points, and the girls
will not show up again.
The last thing that is worth noting before you start the game is
that it obviously is not allowed to run down the managing
director.
So keep a close eye on the road (and possibly also the
pavements) and full speed ahead.
You control the game with the arrow keys and toot the horn with
the Shift key.
Created by:
Thomas Willer Sandberg
Play the
game