So, once more we reach the end of another year, and conveniently, the end of another trimester of my studies. As such, it is time for me to take all of the stuff I’ve been working on as of late, and put it into one big mega-post. Brace yourselves…
What I’ve Created
- Project Management
- Mechanic Design
- Event Design
- Event Scripting
- Particle Effects & Other Feedback
Arms Race puts two players in the shoes of rival diplomats – one from Russia, the other: America – and pits them against each other in a ‘diplomatic’ battle of focus and determination. Essentially, the two players must mash randomly assigned keys as fast as they can to overpower their opponents.
Over the 48 hours this project was developed in, my primary responsibilities were designing everything, as well as managing the team as a whole. Beyond that I also scripted several of the game’s randomised events, and created all of the game’s particle systems, as well as implemented some other feedback mechanisms. And of course, I helped stand around and show off the game to the barbecue attendees once it was done.
Secret of the Forbidden Groove
(Formerly ‘Synth Spelunkers’)
- Project Management
- Mechanic Design
- Puzzle Design
- Map Importing/Exporting
Synth Spelunkers is a rhythm-puzzle game in which players place small ‘Spelunkers’ onto a grid, which then move one tile every beat of song. When these Spelunkers move, they move based on a predetermined set of logic, the player’s goal being to use this logic to determine when to place Spelunkers so they can reach their goal.
This trimester, I’ve continued to lead this project and further expand on its design and the puzzles players will face within. Additionally, I’ve also expanded the map import system further, to support more types of tiles, and have added the ability to export maps also. Whilst tiles can’t have their positions or types changed at the moment, all of the variables within can be saved out to JSON and reloaded later.
Feeding The Forgotten
- Controller Support
- Scripted Events
Feeding the Forgotten is a narrative-driven first-person game about about putting in the effort to help the less fortunate members of our society. Players move around a city, speaking with and helping out various unfortunate characters they meet along the way, to try and improve their lives, if only a little.
On this project, my main contributions were converting the control scheme to support a gamepad controller, writing a shader that allowed certain objects to be seen through wall and other objects, and creating various scripted events that forced the player or NPCs to move/look in certain directions at certain times.
- Handsome Bot
Killbots is an AI robot fighting arena. The purpose behind the program is to allow students to code their own robot AI and pit them against each other head-to-head or in a grand battle royal.
As you might assume, I’m not responsible for creating the core program here, I just created a bot for the tournament. In it’s final stage, the Handsome Bot was capable of basic path finding, looking around for opponents, and spraying bullets in their general direction. It’s overall performance was sadly lacking though, placing no better than 3rd at its peak.
Other Small Projects
For these projects, my contribution is entirely programming.
Flocking: A small simulation of flocking boids, with variable levels of cohesion, separation, and alignment.
Spatial Partitioning: An optimisation of a program that renders a set of data as an image, done by dividing the screen into section and handling each individually.
Quaternion Library: A C++ library that provided classes and functions for all basic Quaternion behaviours.
Spring Joints: A simulation of basic spring joints, used to create a simple rope.
What I’ve Learned
I managed to create a bot capable of calculating a rational and efficient through a maze using A* path finding. It may not have been very good at following that path, but that’s beside the point…
I have successfully created a Vert/Frag shader to see objects through walls in Unity. I also made an early attempt to create this as a Surface shader, which whilst unsuccessful, gave me an understanding of the functions of both types.
Templating & Operators for APIs
Whilst both topics that have been covered previously, only recently have I properly put them to use. Through the creation of a Quaternion math API, I’ve managed to achieve a proper understanding of their applications.
As I just mentioned, I made an API specifically for handling Quaternion mathematics. to do so, I gained a considerably greater understanding of the nature of quaternions, their purpose, and their uses.
With several projects this trimester, I’ve worked to keep them as small and as encapsulated as possible. Previously, I’ve typically only worked in larger, inter-disciplinary projects. However, I’ve now been working to boil concepts down to their essence, and create projects designed to showcase exactly that.
Cutting My Losses
This trimester I’ve found myself in multiple situations where achieve what I or my team desires simply isn’t achievable. As such, I’ve had to assess the viability of several workarounds, and more seriously consider the cutting of content, or dropping of projects entirely. I feel that through this I’ve improved both my ability to assess these situation, and my willingness to drop larger sections of content and restructure as needed.
Re-Use and Cement New Skills
Whilst I’ve certainly gained a lot of additional skills and knowledge this trimester, I feel that I’ve not made use of them enough for them to be fully retained. As such, I intend to re-use these key skills in small, self-contained projects to make sure I’ve got a proper grasp on them.
More Thorough Playtesting
Playtesting, you can never truly get enough of it. In future though, I think I definitely need to push towards much more thorough and continual testing, and a lot sooner in the project. Deliberately orienting production to move towards several smaller, playtest-able builds, and developing a network of people to distribute them to are the top priorities.
Overall, this trimester I feel I’ve performed adequately. I wouldn’t say I’ve excelled in any particular area, but I’ve managed to get everything that needs to get done, done, and each in a relatively short time frame. All while still producing games on the side. There still plenty more to learn, improve, and build upon, but overall I’m satisfied with how this trimester has turned out.