The Griffin Trust Website was developed as part of my CPD (Continued Professional Development) coursework, during the second year of my foundation degree.
During my work, I collaborated with the trust to determine their requirements and worked with them to develop a fresh new look for their ageing online presence.
The website's appearance reflects the look they had been trying to achieve in their posters and informational assets, including the logo, colours and title fonts. The project took a total of 4 months to complete, however much of this time was spent waiting on the trust to decide on such things as content, images and information to be added to each of the originally implemented 42 pages, many of which have been removed post completion, at the trust's request.
The website continues to be maintained by myself and the trust are still using it happily.
Click the image below to visit The Griffin Trust website.
The intelligent home project was developed over a few days after
being asked to develop a concept and a design for an intelligent
The program seen in the video was developed as a proof of concept for the project using XCode and Cocos2D libraries. The goal was to support the design and discussion developed for coursework. It demonstrates an intelligent autonomous home responding to the tenant (green) and not an intruder (red).
The space shooter program is an iOS game developed for coursework during my
final year. The finished project was to resemble the classic Space Invaders
and AstroWars games but with a more modern play style.
The game has 2 endings, which will be selected depending on how well you do and is developed to have a retro game feel and atmosphere.
The product demonstrated in the video is the game in early stages of development showing the ship animation, background scrolling and touch controls on an iOS simulator.
I plan to continue work on this in my spare time and eventually release it on the app store, at which point, this page will be updated demonstrating the full product.
This AI project was developed for my dissertation which explored
the use of AI in video games and designed a basic AI to be used
in games implemented on mobile technologies.
With the particular focus on using mobile technologies, a prototype was developed.
The prototype contains a small bug, which causes the app to hang for a lengthy amount of time when more than 1 of the agents in the game are calculating a path. The issue was later identified as being caused by the 3 instances of the pathfinding algorithm sharing the same CPU thread.
Bringing a second thread into play to handle the calculations would have fixed the freezing issue. But this was identified too late for the demonstration which ultimately swayed my mark.
The AI's logic was fundamentally based on state machines. Each AI has 3 states which are represented by a colour.
State 1: Patrolling (Green)
In this state, the AI will select a patrol point
at random (from set points pre-allocated around the map).
In this mode, the AI will choose random points on the map and patrol
between them using path finder. The AI agents will move at relatively
low speeds in this mode as there is no sense of urgency.
The AI will enter caution if the player is detected to be within a given range while it is patrolling.
State 2: Caution (Yellow)
In this state, the AI will be aware of the players proximity.
If they happen to stop moving while in this state, they will disregard
the preset points on the map and calculate 4 new points around the player's
approximate location, then choose one at random to navigate to in
an attempt to pin-point the player.
If they find the player, then the AI will immediately change to the 3rd state.
In the design itself, the AI's in the caution stage also have an extra move, which is to decide whether or not to call in reinforcements by sharing the its own location with other AIs. This decision is based on how many times the AI has already been put into this state.
State 3: Alert (Red)
In this state, the AI will know of the exact location of the player
and attempt to attack.
In the design, the AI also has the option to alert the other AI's of the players exact location upon entering this state.
Much like with caution mode, the AI's would first check how many times they have entered the alert state.
The video shows the prototype in action. Please note however that when this video was made, a number of bugs were still present and the app needed to be restarted a number of times.
Bugs at this stage included:
AI not moving when in cautioned state if
they have not yet moved from their start position.
AI occasionally deciding not to attack as they detect the player
when already moving to a selected destination.
Slow down / freezing issue when more than one AI decides to calculate a path to a new destination. This issue was later discovered after many hours of debugging to be due to the path calculations for the AI taking up too much processing time on a single CPU thread. A separate thread for the calculations would resolve the issue, but was not able to be implemented before the project deadline.
The white circle represents the player, and the green circles are the AI's.
While the program itself still needs some work, the design represents a foundation for an AI which could be developed into any number of frameworks for future mobile games, albeit with some refinements to the pathfinding process.