These are projects from some of the assignments I worked on when studying Games Programming at Northumbria University
Specialist Programming – AI, Networking, and Multithreading – 93% (C++)
- A video demo is featured in my Showreel
- C++ was used for the assignment, adding functionality to an existing game using a DirectX engine.
- This assignment was to implement AI into a game, and add Networking functionality to allow the game to be spectated over multiple machines.
- The game is a top-down game of domination where the teams are competing over the domination points. When the bots capture a domination point, they earn points for their team. My task was to implement AI for the Red team.
- The AI implementation included:
- A* Pathfinding – Which generated nodes on the map using extended geometry and a grid, and used a Manhattan cost heuristic for estimating distance between nodes
- Reynolds Steering Behaviours – A variety of behaviours to allow the bots to seek out domination points, pursue or evade enemies, and avoid walls
- State Machine (FSM) – A Finite State Machine implementation to allow for the bots to transition between states. For example entering an Attack enemy state from the Wander state, when an enemy appeared in sight.
- A* Optimisation using Binary Heap – My chosen extension for the assignment was to optimise the A* Pathfinding by using a more efficient data structure for storing open nodes on the map. The Binary Heap Min element could be quickly accessed to find the lowest cost node to move to.
- The Networking system, which used WinSock libraries, allowed the game information to be sent over multiple machines. One machine (the server machine) would run the game, and all other machines (client machines) could replicate the server machine by receiving the information of the game. The Networking sending data and receiving data functionality was multithreaded to allow the game to continuously run, while waiting to receive packets of data, or send data.
Advanced Games Architecture – Space Invaders Mobile Game
- Featured in my Showreel
- Developed using Unity and C#
- Follows arcade classic game features and rules
- Uses tilt and touch controls on mobile devices using accelerator and touch screen
Advanced Games Architecture – Snake Pro using Assembly Language and Easy68K (87%)
- This assignment was to create a Snake game using Assembly and Easy68K
- The game features:
- Traditional Snake gameplay and controls
- Rewards of varied value and color, which when collected will make the snake longer and increase the score
- Collision detection for the wall barriers, and detecting when the snake head collides with the snake body
- Increasing game speed to increase difficulty
- Sounds which play for collecting rewards, when rewards appear, and when the game is over
Compiler Writing – 97% (C++)
- This assignment was to write a compiler in C++ for C- –
- The compiler features:
- Lexical Analyser
- Syntax Analyser
- Code Generation
- Parser for SCL
Multimedia Assets for Computer Games – In Progress (75%)
- This assignment was to design and produce a short 3D animation.
- A Pre-visualisation animation was created using storyboard sketches, using Photoshop and Adobe Premiere
- A 3D animation was created using Maya 2015 which is featured below.