Fish AI Game
Fish AI Game For the "Games and AI Techniques subject" at RMIT, I worked with one other student on an AI-focussed game that we designed based on the AI techniques we were required to demonstrate. The game we ended up creating involves: The player controls a single fish that can change its colour at will Fish of the same colour will exhibit boid-like flocking behaviours "Hungry" fish will perform predator behaviours, roaming and pathfinding to prey if within range The player must guide two flocks of fish to their respective "safe zones" before they get eaten by predator fish I was responsible for implementing the pathfinding algorithm for the "hungry" fish (while they are roaming). The course material was mostly around 2D pathfinding algorithms and node structures - which had to be modified and extended to be relevant to our playspace which was not only visually 3D, but actually navigable in all 3 dimesions which required some extra time spent on how to connect nodes and weight them considering distance travelled on diagonals vs. cardinal directions. I was also responsible for the 3D node grid creation system. This involved dealing with a playspace that was arbitrarily shaped (based on a 3D mesh file created […]
Read More ›
Diary Queen - Customizable Diary Storefront For the "Software Engineering Project Management" subject, I worked on a team of 5 to create a custom diary shop website. The main focus of the subject was to create development artifacts and document our production processes. We were free to use any languages/frameworks - from the team we had assembled, we decided to use PHP and Bootstrap for the front-end, and an Oracle DB for our database (which we hosted on AWS) for the duration of this project. The project ran for 12 weeks, split into 3 development sprints (and one planning sprint). The project began just before lockdown and became remote-only from week 4. I was designated as the Scrum Master for the duration of the project. As part of this role, I was responsible for: Creating and managing scrum artifacts such as Sprint Planning/Retro notes, Meeting Minutes, and the Product Backlog Creating and managing development documentation like a Code Style Guide/Deployment Guide and Set up processes Running scrum meetings and assigning the development team to tasks Ensuring smooth communication and understanding between team members working on different areas of the codebase I was also contributing to the development tasks on the project in which I […]
Read More ›
Wayward Strand Technical Art
Screenshot of in-game footage from Wayward Strand's trailer Paintover by Kalonica QuigleyWayward Strand Technical Art Wayward Strand is a real-time narrative game where players explore an airship hospital in the 1970s.Wayward Strand is currently being developed by Ghost Pattern and more information can be found here: https://waywardstrand.com/I was brought on to the project to assist with the Technical Art aspects of the project, as well as some supporting 3D Art work. Some of my work on the project includes:- Creating 3D Environment/Prop Art Asset Pipelines- Contributing to development of art style/how to best achieve these aesthetics in Unity- Collaborating with Architectural consultants and the team to design the layout of the ship's interior and exterior- Creation of the ship's modular interior components and the exterior of the ship- Creation of various Environment and Prop 3D Models- Creation of supporting textures to function as a backup for any non-bespoke assets- Improving Shaders to better reflect our visual goals- Documentation of pipelines, and optimisation of models and Unity project structure
Read More ›
Tri-planar Detail Shader
Concept art - by Jennifer ReuterTri-planar Detail Shader in Unity A shader I created for a project in development called 'I Love You Tokyo'The shader was created to limit the amount of art production time spent creating individual UVs/textures for every asset in the game. The brief was to emulate the concept art's addition of "impressionistic" blobs/shapes on assets.The shader is still a work in progress but currently supports:Flat colour outlinesVariable thickness outlines, generated from either mesh normals or custom normals baked into vertex colour data Rim lightingStandard Rim lighting controls Custom Shadow lighting Color picked for shadow colour, and per material control of how "sharp" a shadow is - intended for cell shading but softer Custom tri-planar overlay texturesAbility to choose from "pattern" textures that convert RGB channel data to HSV offsets. This means that the same pattern texture can be used on any coloured object and still give good results. An extensive amount of control over tiling/offsets of each texture, as well as global scale values.
Read More ›
Mum's Studio in Unity My mum was lamenting how hard it was to visualise where all her furniture could fit in her ceramics studio - so I offered to make a simple tool for her to be able to click-and-drag furniture around and then walk through the space in 3D. This project was very limited in scope - but my mum did submit feature requests for saving/loading and to see the names/dimensions of selected objects, which I obliged. It was created in Unity 3D - and the very basic models were made in Maya.
Read More ›
IoT Project – Car Rental System
Car Rental System - Internet of Things Project As part of my Masters of IT, I worked on a team of 4 to develop a python-based Car Rental System that ran on Raspberri Pi. The complete system had many components, including:- A customer website built with Flask. Customers could view/book/return cars.- An admin website built with Flask. This website had separate functionality for admins, engineers and managers and also connected to Google Maps, Google Calendar, and Google Assistant SDKs. - A RESTful API - A Console-based application that included Facial Recognition, Bluetooth and QR Code functionality. My responsibilities included the front-end development of the website, creating the Flask infrastructure, and then building reusable UI components and Jinja templates. This front-end development involved connecting to external APIs like Google Maps as well as connecting to our internal RESTful API.I was also responsible for the Google Assistant SDK integration - training a Dialogflow agent that connected to the Assistant SDK running on a Raspberry Pi with a microphone. I took shared responsibility of managing the project with one other team member. Together, we set up and created Documentation in Trello, Google Docs and implemented the Sphinx documentation.
Read More ›
Shuttlecats Web App
Read More ›