Current State of BossConstructor Part 1/2

Many people have asked me how far the development of BossConstructor has progressed so far and when they can finally get their hands on it. In order to bring you up to speed I decided to write two bite-sized posts on the current state of the development. 🙂

This week I will focus on the aspects that I feel are most complete and functional at the moment. Next week I will elaborate on the parts which still require some (or in some cases a lot of) additional work.

Hangar

Image

The hangar shows a list of the ships you have already built. You can see a small preview for each ship and filter the list by applying different search criteria to quickly find a suitable ship for the next mission. The hangar works very nicely already, so I would say that this part is about 90% complete at this point.

Editor

Image

The Editor is one of the most complex and important parts of the game and I have been spending a lot of time on it lately. The basic design of the ship can now be changed by dragging and dropping modules from the inventory or within the ship. Each active module (weapons, propulsion etc.) can then be bound to one or more keys by selecting the module and pressing the desired key.
The editor provides lots of statistics both on individual modules (energy consumption, cost etc.) as well as and the whole ship (maximum speed, peak DPS etc.). All things considered, I would say that the editor is also rather complete.

Test arena

Image

The test arena allows you to quickly jump into a game and test the ship you have just built. The arena consists of a rectangular area of medium size and includes some stationary and unarmed practice targets to – you know – blow up into tiny pieces. 🙂
It is pretty basic, really, but for now I think that it is largely sufficient. Later on I might add some more features.

Replays

Image

Every time a ship is tested or a mission is played, the game is automatically recorded and can be watched at a later point. Both the recording and playback already work pretty fine and will be an important feature of the game.

Settings

Image

The settings menu allows you to change the display and sound settings and is largely functional already. Some of the settings require you to restart the game which is sort of inconvenient and it doesn’t really look very nice at the moment, so I guess I will spend some time making it look more pretty.

Conclusion of part 1
These are the five parts of the game which are already in a very complete state. Next week I will elaborate more on the parts which are still in development and the parts I am not so sure about.

The Artificial Intelligence in BossConstructor

In the last weeks I have been spending a lot of time on the artificial intelligence (AI) system for the ships in BossConstructor. While the main part of the game is about building and flying your own ship, AI controlled ships will play an important role in some of the game modes like for example the survival mode.

Image

 

How the artificial intelligence works in BossConstructor

The approach for artificial intelligence I have been working on consists of two parts. The first part is about defining simple general rules according to which the ships behave. These rules include, for example:

  • Don’t crash into allied ships.
  • Avoid incoming shots.
  • Don’t crash into enemy ships.
  • Try to stay away from the walls.
  • Approach enemy ships until they are in weapon range. 
  • Avoid facing enemy ship’s weapons.

While most these rules apply for all ships, the importance of them is not so clear. For a heavily armoured ship, for example, avoiding shots and collisions is not as important as for a lighter ship. In fact, some ships may even be designed to ram enemy ships in order to do maximum damage.

In total, there are about 25 parameters which describe how the above rules work for each ship. Tweaking these parameters to fit a specific ship is a very tedious and difficult task. It is also a task which needs to be done again whenever a new ship is designed and whenever the game’s balance has changed.

In order to automate this process I have implemented an evolutionary optimisation algorithm. This algorithm works by randomly changing (‘mutating’) a ship’s AI behaviour and evaluating how it affects the ship’s ‘score’. This score is calculated based on a predefined series of skirmishes against different enemy ships. After each round, the AI behaviours which have done well are preserved for future use while the ones which performed poorly are discarded.

The nice thing about this approach is that it works automatically once implemented. However, it does require a lot of processing power. The video below shows how the AI behaves after about 200 iterations including some AI derpness. 🙂

Facebook

If you are interested in BossConstructor, please follow and like it on Facebook at http://www.facebook.com/Bossconstructor.