Amir Akhtar-Gordon
Graduate Programmer

Hey there! I’m a graduate games programmer based in London

Projects

My experience

Over my university years I have gained valuable experience with the following languages and platforms. I've also had minor experience with Javascript for web development and Python.

C#
2018 — Ongoing
Unity
Game Development
2018 — Ongoing
C++
Unreal Engine 5
2021 — Ongoing

Unity

Advanced FSM

Programming practice of finate state machines. It involves an object the player can control with several enemy AI that follow waypoints placed in the scene. Once the player is within range of the enemies they start chasing after them and if the player escapes out of range they go back to patrolling the given path. Raycasting is used to determine the direction to turn. A if-then-else based FSM is used for the enemy AI movement when the player isn't in range. Several states are created such as Chase and Patrol that the AI switches between if conditions are met.

Link to code!

Flocking

Boid behaviour was replicated in this test with each object having their individual position and velocity. Coroutines were used to help update the velocity and position of each boid with a controller making sure they know where to go by updating its location. This was an interesting topic to learn and can be used for other elements of game design besides for bird flocking such as fish in the sea or a mass amount of insects.

Link to code!

Behaviorual Trees

Upon learning FSMs I went on to test behavioural trees in slightly more depth given they work the same but can handle more states and transitions. This being important for AI that might have a different behaviour depending on its health, mana, etc. In this scene there is an object the player can control and if the enemy spots you it will begin to chase just like in the FSM example. Likewise when out of range it goes back to randomnly traversing the map as the node switches.

Link to code!

(A*) Pathing and Obstacle Avoidance

This small demo sets up a scene with obstacles scattered on the plane. The player can control their character and where they want it to travel to using a mouse click. In doing so the programme makes it move to this position while avoiding the walls in the way. While this is imperative for the fundamental behaviour of most games it doesn't take into account the fastest path. I followed another tutorial in learning A* pathfinding that takes this into account using ramps and different terrains.

Link to code!

Unreal Engine

Obstacle Assault is a basic level design where you can control a player and try to make your way through the several moving objects. This was a tutorial I followed to get me introduced with Unreal Engine and it helped me learn some of the basics of blueprints.

Crypt Raider is another Unreal Project that I followed by watching a tutorial. This was a great experience for me to get used to using unreal better and helped improve my C++ rather than over relying on the limited uses of blueprints. It was fascinating to learn more about pointers and some of the intricacies of level design and lighting.

Want to get in touch?
Drop me a line!

Email: Amir.akhtargordon@btinternet.com
Mobile Number: +44 7483 365643