SmallCode
Generalist Software Development
Featured Projects
NES
Minesweeper
26/11/2023
Personal Project
This is a project I've been working on for a good couple years on and off, though realistically it was more like a few weeks worth of actual work, maybe a month at most. But it's finally done! Or as done as it's going to be.

Press start!

The board at the start of a game

They got all the mines! Look at how cool they look now!

Press start!
Environmental Roguelike
16/11/2021
AIE Cert III Coursework
In the second year of my Cert III at AIE, myself and 3 other students formed a group to design and develop a game from scratch, using the Unity Editor. We had decided on making a roguelike in which the player has no way to directly harm enemies, and must instead lead them into traps to defeat them. I chose to work on AI and gameplay elements such as trap tiles, as well as general optimisation and code cleanup. For the AI, I decided to go with a behaviour tree system, which was a challenging choice for a first shot at AI development, but taught me a lot in the process. We had much higher ambitions than what we ended up with as the final product, but we had managed to make a functional demo that demonstrated the core ideas of our design nonetheless.

A demonstration of a few of the mechanics - stationary (green) and moving (red) enemies, non-damaging weaponry, and fire & pit traps.

A demonstration of a few of the mechanics - stationary (green) and moving (red) enemies, non-damaging weaponry, and fire & pit traps.
NES
Minesweeper
26/11/2023
Personal Project
This is a project I've been working on for a good couple years on and off, though realistically it was more like a few weeks worth of actual work, maybe a month at most. But it's finally done! Or as done as it's going to be.

Press start!

The board at the start of a game

They got all the mines! Look at how cool they look now!

Press start!
Options
Menu
31/08/2022
Personal Game Project
Not much to say about this one. A little UI demo made for a school project, this project just demonstrates competent UI design and ability to put together an interface in Unity. The settings don't save to a file, but it wouldn't really be hard to put that in.

Data
Visualisations
19/08/2022
AIE Diploma Coursework
This project was mostly made to show my ability to create certain data structures in code for school, and... well, it certainly does the job! The first structure is a double linked list, which I've depicted as a series of nodes with arrows showing the connections. It's sortable in ascending and descending order, and can be searched for a specific number. The second is a binary search tree, which I've depicted, similarly, as a group of connected nodes, and can be searched for a number, and re-sorts itself if a node is deleted. They're both rather basic, but I think they're solid examples of some fundamental concepts.




Bullet Hell
Demo
26/05/2022
AIE Diploma Coursework
Bullet hell is one of my favourite genres of video game, so when I was tasked with creating a small game demo for my diploma, I thought it would be fun to see how i would do making one! The main spirit of an arcade-style bullet hell isn't exactly here, specifically things like enemies with varying behaviours, scrolling levels to fly over and such, but there's enough of the core mechanics here to call it a successful tech demo.

The green bullets bounce once off the walls before despawning

The red bullets wrap around to the other side of the screen once before despawning

The bubble bullets are attracted to the centre of the screen, and bounce off the edges. If they're hit by a player bullet, they pop, sending a blue bullet your way. After some amount of time, they pop on their own.

The green bullets bounce once off the walls before despawning
Initiative Counter (unfinished)
09/10/2022
Personal Utility Project
This tracker was intended to streamline battles in D&D, leading to less downtime where the DM is doing bookkeeping. This current version is pretty barebones, and when I work on it again, I plan on moving it to a different UI framework than Raygui. Currently, it has a few boxes for various key player stats, the ability to create new, empty stat bars, the ability to sort by initiative, a button to delete exiosting stat bars, and finally, a placeholder button which I intend to later turn into some sort of popup menu to inflict status conditions.



Top-Down AI Pathing
& Level Editor
26/08/2022
AIE Diploma Coursework
The AI portion of this project was interesting, and it was good to revisit state machines, behaviour trees, and A* to see where I could improve from my previous attempt, but the main star of the show is the level editor! The levels are stored as binary data, with a header defining the hight and width of the level in two bytes, and a main data portion in which one byte represents one tile. The file size could have potentially been halved if I had decided to use only half a byte to represent each tile. This would still give me a decent 16 tile types to play with, but the level files already took up such a small amount of space that, for this project, it wasn't worth the bother.

Demonstration of the AI Pathing as seen by the end user.

Demonstration of the AI Pathing as seen in debug mode.

Demonstration of the level editor as seen in debug mode.

Demonstration of the AI Pathing as seen by the end user.
Mario
Clone
16/06/2022
AIE Diploma Coursework
One of the projects I was tasked with completing for my diploma course was to create a clone of a classic game. I decided to go all out and make a recreation of Super Mario Brothers for the NES, which was more than what was asked, and needless to say, this was more ambitious than I had the time for, especially given that I spent a lot of the project time experimenting with OpenGL instead of just using Raylib as recommended. The end result isn't much to look at aside from regular Mario, and I've already made a better recreation of that game's mechanics in the past for a roguelike project of mine. The part I'm actually proud of is the sprite and animation system I'd cooked up! If you'd like to learn more about that, this wiki details exactly how it works: https://github.com/EmmaStittAIE/MarioClone

Mario's animations are based on how they work in the original game

Mario's animations are based on how they work in the original game
Text-Based
Roguelike UI
14/04/2022
Personal Game Project
In my first semester of my diploma with AIE, I was breezing ahead of the assessments and wanted to try a project to further my C# skills. Inspired by a small bugfixing exercise involving a tiny text-based adventure game map, I set about trying to make a game engine that would run in a computer's terminal emulator. I ended up dropping the project after a while, when schoolwork got harder and took more of my time, but not before making what I consider to be a very well-constructed UI system. A lot of the UI is explained in the image descriptions, but essentially, the menus are all made up of individual modules that affect eachother in different ways, and essentially work like self-contained windows and widgets.

The main tab of the pause menu.

The inventory displays the name, price, image, and flavour text associated with an item.

For example, if a box is placed behind another box, we would want that box to flow into the one in front, rather than being oddly cut off with white space.

The main tab of the pause menu.
Environmental Roguelike
16/11/2021
AIE Cert III Coursework
In the second year of my Cert III at AIE, myself and 3 other students formed a group to design and develop a game from scratch, using the Unity Editor. We had decided on making a roguelike in which the player has no way to directly harm enemies, and must instead lead them into traps to defeat them. I chose to work on AI and gameplay elements such as trap tiles, as well as general optimisation and code cleanup. For the AI, I decided to go with a behaviour tree system, which was a challenging choice for a first shot at AI development, but taught me a lot in the process. We had much higher ambitions than what we ended up with as the final product, but we had managed to make a functional demo that demonstrated the core ideas of our design nonetheless.

A demonstration of a few of the mechanics - stationary (green) and moving (red) enemies, non-damaging weaponry, and fire & pit traps.

A demonstration of a few of the mechanics - stationary (green) and moving (red) enemies, non-damaging weaponry, and fire & pit traps.