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:

  • Thomas Willer Sandberg

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)

juleraesetImg

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)

Zombie In Love Game

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)

Zombie In Love Game

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)

AI for the Connect Four game.

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 Game

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 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)

juleraesetImg

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