Pages

Wednesday, 14 June 2017

Platoon AI Project

During the third year of university, for my dissertation I wanted to focus on game AI and the techniques that are used to create AI, or at least, the semblance of AI, in video games.

For this task I had to research various techniques which are used to create AI, such as Hierarchical Task Management and Goal Orientated Action Processing. It was a great opportunity to learn a lot more about a field I had only briefly glanced over during my first year of university. It was great to hear how the logic of game AI worked and has helped me in my further projects when thinking about how to create AI.

The actual dissertation project was to 'Create an AI which mimicked real world Platoon Level Tactics'. Now, to the uninitiated in military organisational structure, a platoon is simply a group of men. No doubt you will have heard the term 'squad', well, a platoon is essentially a group of 'squads' alongside machine gunner teams, mortar teams and under the leadership of a lieutenant. Squad AI is something which has been done before, but I was more interested in creating a simple algorithm which could control a group of groups effectively.

The demo itself uses SFML to represent graphics. There are two teams of dots, red and green. The yellow and blue dots are 'officers' of each team. They act as rally points for the squad members, but I will explain more about that later. The blue squares are 'cover' which improves survivability, and the green squares are open ground

The algorithm itself is separated into two specific parts. The individual soldier's logic, and the platoon order logic.

The individual soldiers use a GOAP algorithm to decide their actions. They take in information about the world such as how far they are from enemies, where their officer is located and where cover is, as well as what their orders are in order to make a decision about what they are going to do.

The Platoon order Logic uses a basic HTM system to decide whether the soldiers orders should be to attack or defend. The soldiers then use this information to work out their preferential tactics.

Overall the system is a good representation of the techniques, however it lacks a little in quality of life features and debug information to properly showcase the algorithm. I also feel I did not use enough C++11 features during development, and that is something I will continue to work on.

You can download the codebase for your leisurely browsing from the github link below.

You will need Visual Studio 2015 in order to run the demo. It currently does not run in release, you will have to build it and run it in debug. You will also have to use the visual studio 'stop debugging' button in order to quit, as the window quit function does not work.

https://github.com/Falsan/AIPlatoonProject

Saturday, 3 June 2017

Galaxy Defender TV

Galaxy Defender TV is my first independent project. I started this just after I finished most of my university work. It's a pet project which is designed to be a fighter shooting arcade game, similar to R-type. I have created this game in Unity and I created everything from scratch.




I built an Audio manager entirely from scratch which works very well. This manages all the sounds and audio in the game, and so long as there are sound clips in the resources folder, you can just pass the manager a string and it will create that sound at that specific time. It's a really nice system, and it even does fade ins and fade outs.

I also created a generic 'Application Manager' which utilises Unity's scene management tech. I use this manager to use the additive scenes which are now common in Unity, to load in things on top of each other, and load out what I need to get rid of. It needs some work, but it is a nice system so far for what I need.

I made every single enemy produce a simple behaviour pattern and I made each enemy shoot at the player, or not if they were tagged as a shooting enemy and I also designed the levels and bosses for each of the levels too. I wanted these to be huge screen filling enemies in custom with similar bosses and games of the time.

I also created all of the models and all of my own foley for the game as well as UI elements and particle effects.

The game isn't finished yet of course, there are quite a few things that need to go in. Some proper in game UI, a pause menu, a score system, several new models, several new levels, some better menus, scaling for screen resolution and some background music. There is background music in there at the time of writing of course, but it is not my own.

If you wish to download and play the current build, you can find it at the link below.

https://drive.google.com/drive/folders/0B2-4-3Aj27LXOGFWTE12UG1pSUk?usp=sharing

Friday, 2 June 2017

Kojima Drive

At the end of our game jam module in the third year of university, the entire cohort had to work on a game together. This was a highly ambitious project and the largest one I have done to date. Kojima drive was the brief that was given to us. We started off having to come up with game modes for a party driving game which were to form the mini games in the game.

We created a game mode which we entitled 'drive and seek' which was a kind of hide and seek. The player who was the 'hider' got a head start and had to evade the 'chasers' before finally reaching an end point.



I was in charge of the initial game mode logic which was then scrapped and replaced with a better system which utilised Unity's events. This system then later went on to be made with all of the game modes in Kojima.

I then went on to create several little systems such as waypoints, teleporters and decoys which never went into the game in the end. I also was given a 'twist' mechanic to create a manager for, however, due to poor inter team communication, this feature was never implemented in the game. It is widely the consensus of my team that this was not my fault, but nobody who was meant to be figuring out what to do with the system were actually thinking about what to do with the system.

I also helped to fix plenty of bugs in the game code with my group's systems, and I worked with my team throughout to support the systems that they were making



Overall, Kojima turned out to be a decent game, however most of the features that were made for it that I created didn't end up getting put in, which is a bit of a shame.

Event Horrizon

During my third year of university, in the last part of our game jam module, I was able to work on a 'day jam' as it came to be called. We worked on the project for one day and one day only, creating a small and enjoyable game.

The theme was old style black and white graphics, but other than that, the game could be anything we wanted and had to be playable with old NES controllers.

We ended up with a simple game based on the last scene from Star Trek where the enterprise is trying to escape the 'Event Horizon' of a black hole. We then made this competitive and introduced four players into the mix. The players could attempt to knock others into the black hole and try to be the last man standing.



For this project I was mostly in charge of the asteroids and debris which came in from the sides of the screen to knock and push the players into the black hole. I also worked on the audio for the game and I made the title screen.



Overall I really feel this was our strongest game we made in the game jam. It is really simple, but the game is quite likeable and enjoyable.

Feel free to download the project on a link below to take a look.

In order to play you will need to connect 4 NES controllers however.

https://drive.google.com/drive/folders/0B2-4-3Aj27LXbnBSZmtGc0E1ZTg?usp=sharing