The Great Big Blog of Things I Should Get Marks For – Vol 5

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

Arms Race

 

This slideshow requires JavaScript.

My Contributions:

  • Project Management
  • Mechanic Design
  • Event Design
  • Event Scripting
  • Particle Effects & Other Feedback
  • Exhibiting

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’)

 

This slideshow requires JavaScript.

My Contributions:

  • 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

 

This slideshow requires JavaScript.

My Contributions:

  • Controller Support
  • Shaders
  • 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.

Killbots

 

This slideshow requires JavaScript.

My Contributions:

  • 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

Skills

Path Finding

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…

Shader Coding

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.

Quaternion Mathematics

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.

Methodologies

Minimalist Design

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.

Planned Improvements

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.

Conclusion

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.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s