Skip to content

AI Decision Trees & Behavior Trees

The final part of this three part project (which started with Movement algorithms, going on to Pathfinding) involves setting up an architecture which will allow the Boids (characters in the simulation) to make decisions. This architecture will allow the authoring of Decision trees and/or Behavior trees which can then be used in the decision making process. The GitHub project can be found here. Revising The Top Level Architecture First and foremost, I needed to re-do how a Boid character was defined in the program. Up until now, I had completely… Read more AI Decision Trees & Behavior Trees

AI Movement Algorithms

For this project I implemented the various basic movement algorithms commonly used by CPU controlled bots for movement. This project was implemented using openFrameworks for Visual Studio (C++). These algorithms are based on those discussed in the book “Artificial Intelligence for Games by Ian Millington”. While I implemented these algorithms in 2D (for simplicity), converting them to 3D is a trivial task. You can download and play around with the project from my GitHub Kinematic Motion – A boid The first part of the project focuses on creating a simple… Read more AI Movement Algorithms

Component Based Ability Part 3 : Examples

For the final part of this blog I will go through a couple of abilities that I made using the component system we have discussed till now. Keep in mind I will be using a few extra components in these abilities that I haven’t discussed. You may or may not want these in your system. Ability : Detonate Overview This is one of more simpler abilities that I made. When executed, it creates an explosion effect around the player, damaging it and any other units around it. It also pushes… Read more Component Based Ability Part 3 : Examples

Component Based Ability Part 2 : Reusable Components

From what I’ve shown up until now, I could just make do with a single Execute function and put all logic in there. This however, would not be ideal. Lets think about all the commonalities that different abilities might have. An ability might have some sort of cooldown phase. We wouldn’t want the player to spam a powerful ability like fireball indefinitely. This cooldown component might have different variables that a designer might want control over like cooldown time, cooldown duration etc. There would also be a Boolean that the… Read more Component Based Ability Part 2 : Reusable Components

Component Based Ability Part I : Base Setup

To start off, what should an ability do? At the most basic level when a player casts an ability in a game like DOTA or Diablo, something happens. What this “something” is varies from ability to ability but, we can say for sure that an ability will execute. What I did for my system is set up an interface which defines what an ability is. As seen above my ability will, at the very least, have a name and a function called Execute where all the logic for that ability… Read more Component Based Ability Part I : Base Setup

Component Based Ability System In Unity

As part of my graduate class on Game Engineering I was required to create different abilities for a small MOBA-like project. Ultimately, these abilities would vary from simple ones like fireball and teleport to more complicated ones like Meteor (splash + force damage) and tether (joins two players via a chain) etc. To make this process streamlined and save time on my assignments I decided to build out a component based ability system which would allow me to reuse parts of from abilities that I already finished for new abilities… Read more Component Based Ability System In Unity

Final Project

For my final project I was planning on building a simple doom clone where the player will control view the world from a first person perspective and be able to move around and fire “bullets” using keyboard input. There will not be enemies but objects in the world which the player will be able to shoot and destroy (using the Collision system I built). I was also planning on using Shantanu’s (Shantanu Pandey) Audio system for sounds for bullet firing and object being hit. I managed to achieve all my… Read more Final Project