AR Tower Defense

Development Snapshot
Software:
Language: C++

Tasked with creating an augmented reality (AR) marker based game for the PlayStation Vita, I believe I managed produced my best work to date.
Having to create everything except the animation code from scratch in a 3D environment presented a welcome challenge to my skills. I have previously made several 2D games from scratch in Java and C++ using the likes of the Java swing library or SFML, even a 2.5D game previously on PS Vita but never a 3D game.
The closest before was a 3D environment in OpenGL but that was simply a graphics project with little gameplay aspects to it except a drivable boat.

Gif of OpenGL Scene.

This project allowed me to combine everything I had learned up to this point in to one. I do not own a PS Vita and due to a certain global pandemic, I was unable to record a video for this project. The only representation I have are the win and loss sceen graphics. The enemies in game spawn in a random direction from the main marker instead of single route shown in these.

Win Screen
Loss Screen

Gameplay

Marker one represented the player's base that the enemy waves would move towards. This marker is used as the world centre which other game objects base their local transforms off. When marker one is not detected the game is essentially paused, no logic is happening and a messaging requesting the marker to be presented is displayed.

Any other markers that are detected have a green transparent version of the respective tower model shown to represent a purchase location. If the player purchases a tower, it will be placed at the purchase location shown by the marker and become a child object to marker one.
The player earns gold by defeating enemies which can be used to purchase the towers.

Markers

Marker one is the main marker, this represents the player's base and acts as the world centre. Each other marker represented a different tower type.

Markers and their towers

Source

Unfortunately, due to the nature of console development licensing I am hesitant about posting any of the source code to this project in fear of the wrath of Sony lawyers for accidentally sharing something.


Instead of the source code, here is a class diagram and gameplay flowchart that I created during the design stage; hopefully these give some idea of how the project worked. The class diagram is missing things that were added later in development but still represents the core functionality.

Class Diagram

Class diagram for AR Vita

Flowchart

Gameplay Flowchart

Other Projects

Roots being cut in game

Lochsite

Terrain being flattened.

WFFC

Audio project intro

Audio Project

Some gestures.

Honours Project

Grappling to grapple point.

Grapple