Vast Experience. Wide Range of Skills.

Thanks for stopping in. Please take a momet to review my skills and resume.

Summary : I have experience using State Machines and Behavior Trees to make AI in Unreal. The projects show examples of both, however I must say Behavior trees feel like the more powerful tool in creating complex AI. Unreals' debugging tools for behavior trees make fixing AI very streamlined, and the environment query system (EQS) is amazingly useful in creating tests for the AI to evaluate their surroundings and get customized detailed information to make informed decisions. From general set up of navigation meshes, modifier volumes and perception system to advanced features such as behavior tree tasks, services, EQS tests and blueprint based AI functions are second nature to me now.

Behavior Tree Projects:

Capstone Project

For four months we worked on this project. At the beginning I knew I could make a working zombie AI. By the end I feel I can make any AI. Aside from the zombie the game includes a “Cranial Parasite” that can exist on a zombie, and become active when that zombie is killed. There are Armored Personnel Carriers and Drop-ship Helicopters that deploy enemy soldiers on the field. The Attack helicopter actually predicts the players movement and drops bombs in the players path and shoots while moving. Then the actual enemy soldiers themselves. The same blueprint and behavior tree is used for all soldiers, however a variable on each soldier determines which weapon they are using. This changes their appearance and weapon shooting parameters. The associated behavior tree is flexible enough to work with all the different ranges, fire rates, and reload rates of each soldier type. The environment query system keeps the soldiers in range and looking for cover, If no cover can be found, line of sight will be maintained to keep the fight on the players doorstep.

I also added logic to all enemies to recognize other AI and determine their 'Faction” this allowed me to have my enemy military units recognize and shoot at zombies, and have zombies fight back against them. I also Coded my own team sense system so units in the same faction can share target information, making enemy combat more unified.

Quick Tank Game

The Tanks in this game have 4 different armor types, Front, Side, Turret, and rear. It is like fighting a tiger tank, engaging from the front will surely mean death. I uses the player tanks speed to maneuver behind the enemies, where two shots to the rear will blow them up. I also implemented a gear shifting system, Where -1 is reverse, 0 is park, and 1-4 are drive gears, where the higher your gear the faster you move but with lower rotational capabilities.

The AI use behavior trees to go between random wandering, engaging the player, and doing nothing while dead. During the engaging of the player The AI will slowly move & rotate toward the player while reloading, then take a shot, and re-evaluate where the player is. This 5 second cycle allows the player to have the edge if they keep moving. but once the player starts moving, any AI that sees them will engage with relatively good accuracy. Their fudge factor includes a 3 meter radius of horizontal randomization, and each shot includes a 4 degree variation in barrel elevation.

Vehicle AI Demo

Aside from tutorials this was the first behavior tree AI that I implemented in a game. The Enemy vehicles will drive straight at the player and impart a force based on velocity. To make the game more balanced, after the initial hit is made, I turn off the AI perception for a short time so the behavior tree will go back into its' random wander branch. This prevents a single enemy from driving the player off the edge in one drive. When the Perception turns back on, the AI can see the player and make another hit, then repeat the cycle.

AI Perception Hearing Sense

I have finished quite a few tutorials on behavior tree AI using the sight sense however this is the only work I did using the hearing sense system. I wanted this on my portfolio just to show that the hearing sense is a tool I can Implement.

State Machine Projects:

First AI Using State Machines

After being introduced to state machines to control inanimate objects we used the State machines to control relatively basic AI to toggle between, Patrol, Angry, and pursuit states, so that the player can try to sneak around them. We also made an extensive debugging system that allowed us to select individual AI and toggle their states, reverse their patrol path, or outright pause their behavior. This made it easy to see what their behavior in each state looked like.

BWF Diablo Clone

This project utilizes most of the same state machine AI from the previous project. I added combat functionality to their pursuit state so when they got in melee range of the player an attack can be made. This project more focused on the player based systems surrounding stats, leveling up, equipment, inventory and progression.

BWF FP AI taking orders

This project was a quick experiment to see if I can get the player to drop a navigation point for a friendly AI to move to. This was before I ever made an effective Soldier AI so at the time I was proud to make a movement order actually work.

 

Summary : I understand systems design is a relatively broad term and entry level designers go for simpler specializations, however I cannot help but feel I am moving in a direction that understands true system design. The concept of inheritance is a big thing for me to use in all my projects. Most blueprints I make include instance editable variables for other designers to easily modify the blueprint to fit their needs without having to create their own blueprint. I know it is imperative to first create expandable and modifiable systems for a large game before bringing on data designers and level designers.

 

BWF Diablo Clone

I feel this personal project is a great testament to my understanding of systems. I replicated every system in diablo 2 except for the skill tree system. The attribute/stat screen and inventory system are the two largest systems under the hood. After that, the single enemy blueprint can be used to determine the enemies stats and what loot they drop. The way this project is made, a team of level designers and data designers can create a library of items, roster of enemies, and level layouts to promote player progression, however all the systems the player would interact with during that time are in place. All of the gear types have a base item that all other individual items of that type derive from. This make creating new gear as easy as creating a child, assigning stats, and giving it a name and an Icon.

MiniGameJam with Partial Capstone Team

While this was a very short production period (only a few hours) I achieved some things I have not before with systems design. Using a single Interact Interface the player can pickup items, or interact with objects with the same input key. The Encumbrance based inventory system and its UI was a first for me but worked as intended. I also created a crafting system that allows players to interact with a crafting table to activate a UI which then lets them choose to craft ammo or batteries. This type of crafting system can be expanded to include more kinds of resources and recipes.

Capstone - (Video to Come)

Aside from working on the AI in this project I also helped make some of the base objects that many other assets derive their functionality from. In here all of the interactive objects, throw-able objects and ghost box objects are children of a parent object for each type. I did this so our lives would be easier having a host of children that derive from one blueprint, this also made fixes easy to apply since a change in the parent applies to all the children. Some other blueprints I made did not need to have children but had instance editable variables that allowed my fellow designers to implement the object as intended. My enemy wave controller for example; this blueprint allowed other level designers to provide an array of soldiers to attack the player with a variable number of soldiers per wave, and number of waves overall.

BWF DES3 Project Unreal Editor

This class project had all students choose a single feature to add to a tile-based golf game that only came with movement and a single tile push mechanic. I chose to make the end game UI that shows the players performance during game play. However I got carried away and made an entire golf game so that my end game UI actually had stats of performance to track and display. I completely scripted new systems and assets to allow an actual playable experience. Best of all the stats the system tracks and the UI the players interact with can be implemented into any other level.

Quick Tank Game

While this project doesn't have a lot of systems overall, I still applied the idea of inheritance along with some other in-engine techniques to make a unique tank game. First of all both the player and the enemy tanks derive from the same base tank character. This allowed me ensure the health, damage, firing trajectory and armor systems are consistent between the player and enemy tanks. Each shot simulates “bullet drop” via a series of ray traces, and upon impacting with armor an integer is returned that effects the damage applied to the victim. Front armor mitigates almost all damage, where as rear armor can only with stop one shot before a second would destroy the tank.

Machinations Simulation:

I made this machinations simulation in a class called systems progression. We learned about the math for leveling up, loot drops chances, and general progression for players to experience. This simulation runs through two-hundred “Encounters” with enemies. The simulation will use percentages to determine what type of enemy the player encounters, the chance of killing or being killed by the enemy, and the loot a killed enemy drops. Kills will grant experience which will then convert to levels and increase the experience needed to get to the next level.

The level will alter the existing percentages to make lower level enemies easier to kill while increasing the chances of running into harder enemies with better loot. There are conversions for different types of currency that the enemies can drop, and a “Trader” that sells a “Professional gem inspector” for 1000 zirconium pieces. A simulation like this can save a lot of time when it comes to balance a game since each simulation ends with a different result but you get a good grasp if the enemies grant too much or too little XP, or have too high of a drop rate on certain items, etc.


Unity Projects

Personal Projects: 2019-2020

Ray cast from player goes up to 50 meters and drops a nav point for the friendly AI to navigate to.

Games from Unity Learning

First year Unity Videos.

Memoria Playthrough

This was my first game jam at the beginning of 2020, Using Unity, we made this Lovely Platforming game. I handled the Scene management, the Menus, and the Design of Level 3 (Bargaining).

 

BFlanagan Level Map

This was the very first scene I made in Unreal, I used the landscape tool and my own building geometry to put it all together. This game used jumping & ledge grabbing as its main mechanics, so I used a very vertical layout to keep the player moving up the tiers of the burning city. I used a mosque as the main landmark, along with leading lines and some valves to keep the player moving in the right direction.

Level Template

This was a level that was testing mechanics in our game when we were still toying with what made our game “fun” while it is not in the final version of the game I learned a whole lot about making mechanics more obvious to new players and easy to learn and expand on existing knowledge.

SCRAPS Level Layout

You can select photos that ask visitors a multiple-choice question about the photograph. Visitors then press keyboard numbers 1,2,3 or 4 to see if they were right.

 

 

Capstone BWF Map

You can select photos that ask visitors a multiple-choice question about the photograph. Visitors then press keyboard numbers 1,2,3 or 4 to see if they were right.

Contact:

Cell : (631) 813-5005

BFlan94@gmail.com

Clermont, FL

Linkedin

Professional Summary

While attending Full Sail classes I maintained an extra-curricular study habit that allowed me to hone my scripting skills far beyond what the school aimed for. I show exemplary proficiency in scripting in both Unity and Unreal. My many project submissions exceeded what professors expected in quality and criteria from an entry-level game designer. I am confident in my abilities as a game designer and my usage of tools such as Unreals' behavior tree system for AI. I am eager to learn more and refine my skill set.


Professional Experience

Unreal:

Capstone: AI designer, Systems designer, Level Designer

For our final project we made a FPS- with physics puzzles based off of half-life 2. With the variety of enemies we needed I undertook creating the AI. For this I used Behavior trees for the six different enemies.

  • Used the Environment Query System(EQS) for the soldiers to find cover AND keep Line of Sight on the player;
  • Extensive AI debugging of the perception system, EQS system, and behavior trees;
  • Made parent objects for other designers to create children that inherit the parents functionality (interactive objects, throw-able objects, and ghost box objects);
  • Made multiple level maps that use "introduce, practice, master" (IPM) mechanic methods.

Diablo 2 Clone: Systems Designer, UI Designer

For this personal project I challenged myself to recreate most of Diablo 2 systems.

  • Used blueprint visual scripting to make :
  • Icon Based Inventory system
  • Level Up & Attribute system
  • UI for player to interact with these systems
  • Combat & Loot Drop system
  • Inheritance based gear items.
  • Used a simple State machine to control the AI between patrolling and attacking the player.

Smaller Unreal Projects: Mini game jam: Systems Designer

In a short few hours I made:

  • an Encumbrance based inventory system;
  • Collectable resources;
  • Crafting system using the resources;
  • UI for the player to use these systems.

Personal Tank Game: AI, Systems Designer

I decided I wanted to try to make a tank game that felt different than most others so I:

  • Made Enemy Tank AI via a Behavior Tree;
  • Gave "Fudge factor" to enemies so they miss;
  • implemented an "Armor" system to determine;
    the effectiveness of shots on the tanks -Implemented "Bullet Drop;"
  • Made a range finder and a reticle to adjust the shot to the range.

Unity:

Scraps: Level Designer, Technical Designer, Texture Artist

For my midterm project at Full Sail we had to make a unique, fully textured level and combine it with other students levels to make a full game playable from front to back. I used C# scripting to enhance my levels mechanics by creating custom game objects for the players to interact with and progress their skills using the introduce, practice, twist, master (IPTM) mechanic method.

Memoria: Systems designer, Level Designer, UI Designer.

For my first game jam we made a 2.5 D platformer. The team originally wanted to do the whole game in one unity scene, however I was able to convey that using a C# script we can go between levels, including the menus. I went on to design the UI, in game and in the menus, and also level three. I did extensive debugging of the UI and game as a whole so that a fellow student can present the game reliably as their final project.

Technical Skills:

Systems Design

C# Scripting

Blueprint Visual Scripting

Behavior Trees

Environment Query System

Debugging

State Machines

IPM & IPTM Mechanical Methods

Inheritance

UI Design

Inventories

Production Skills:

Perforce

Jira

Confluence

Personal Skills:

Active Problem Solver

Reliable Team Mate

Education:

Bachelors In Science - Game Design:
Full Sail University
Winter Park, FL
(2019-2022)

Academy Of Information Technology
(AOIT):
Northport High School
Northport, New York (2008-2012)

Advanced Regents Diploma:
Northport High School
Northport, New York (2008-2012)

Brendan W. Flanagan

I grew up on Long Island, in New York. My love of games dates back to the late 90's, where as a kid I played Starcraft and Diablo. In 8th grade I took computer tech, there my teacher introduced us to game maker. With it I made 4 or so games that were pretty good including a “mario–zelda” mash-up.

In High School I joined the Academy of Information Technology (AOIT). Each year we took a class specific to the academy ( Principles of IT, Programming (Python), Networking (CCNA 1 & 2 Certified), and cyber security. Using Python I made a top-down shooter, and a tetris clone. Outside of those classes I also took computer art and an animation class. Unfortunately ALL of my work during this time was lost due to the school wiping their computers before I could extract my files.

After High school I stepped away from I.T because it wasn't giving me the same enjoyment that making games did. However after a few years of working in restaurants and living paycheck-to-paycheck I decided to look at what makes me happy that I can make a career from. The memories of making games gave me a sense of pride and joy that I wanted again. This led me to find Full Sail and their game design bachelors degree program, it was the best decision I ever made.

Unity and Unreal both give me that sense of wonder where I feel I can make anything happen. During my time at Full Sail I kept working outside of class to learn more and more about C# scripting language for unity and blueprint visual scripting for Unreal. This led me to being confident with my scripting at an early stage in my college education. When we switched from Unity to Unreal I was worried at first, the blueprinting didn't seem as straight forward as C#. However, after a few weeks it all clicked, and I did more and more tutorials to become comfortable and proficient.

I recently became confident in my ability to create AI for Unreal through behavior trees as well. I now consider myself a great candidate for game design positions as I will bring a strong fundamental understanding of coding logic, along with practical application of modern tools to any team.

Please use this form to leave a message for Brendan. Thanks.

Name
Company
Email
Phone

Comments

Please Enter the Following Number then Press Submit:

 

BFlan94@gmail.com

Discord: Brendan Flanagan - GameDesigner#4775

Phone: 631-813-5005

Linkedin: https://www.linkedin.com/in/brendan-flanagan-6335b816a/

All rightsreserved.