The Great Big Blog Of Things I Should Get Marks For – Vol 4

So, for the unaware, I’m currently undertaking a bachelor’s degree in Games Programming to compliment my Bachelor of Game Design. In order to get that, I’ve got to explicitly showcase a whole bunch of stuff I’ve done so that it actually counts towards me passing the course. This is that.

What I’ve Created

Synth Spelunkers

This slideshow requires JavaScript.

My Contributions:

  • Project Management
  • Mechanic Design
  • Puzzle Design
  • 2D Tile Art
  • 3D Tile Textures
  • Beat Resolution
  • Advanced Map Importing
  • Minor Scripting (Small mechanics, aesthetic flair)
  • Playtesting
  • Exhibiting

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.

My particular contributions cover effectively the entirety of the game’s design, as well as multiple major programming aspects. Namely, the resolution system – which determines how the Spelunkers successfully navigate the grid whilst all moving simultaneous – and the Advanced Map Importing – an expansion on pre-existing import code that allowed for levels to be automatically set up with a greater degree of detail.

Additionally, I provided nearly all of the 2D placeholder art, and textured several 3D models for the final version of the prototype. And on top of that, I also ran playtesting and exhibited the finished prototype to the public at a local gallery.

Ricochet Continuum

This slideshow requires JavaScript.

My Contributions:

  • Project Management
  • Mechanic Design
  • Puzzle Design
  • All (Non-GUI) Scripting
  • 2D Art
  • SFX
  • Playtesting

Richochet Continuum is a physics-puzzle game of sorts, wherein players must shoot targets by ricocheting their shots off of the levels’ walls, and also through time itself. When bullets hit certain ‘gates’ in the level, time will be shifted forward of back by a number of seconds. This means that players must heavily consider not only where they’re shooting, but when.

For this game, I am responsible for literally everything. Except the UI. That was developed by my teammate Callan, and I re-purposed it from Synth Spelunkers. Otherwise, the most notable parts of this creation are the ricochet and time systems (ie. the two core mechanics). The ricochet system uses a bunch of complicated math which I’ve previously discussed here, whilst the time system is integrated with the game’s AI and animation curves in a way that I find to be exceptionally elegant (even if I do say so myself).

Architectris

Architectris.PNG

My Contributions:

  • Gameplay Scripting
  • Player Controller Scripting
  • 2D Art

Architectris was a small and simple prototype centered around catching falling tetrominos and trying to stack them into specific on-screen zones. However, these tetrominos were entire physics based, and did not lock into place. Additionally, various status effects would change how the blocks behaved and would at time destroy blocks entire, compromising your structure’s foundations.

My contributions to this project came mostly from scripting core gameplay systems such as the level clear system – that determines if the player has adequately filled the required zone – and the player controller – that allows players to grab and manipulate tetrominos.

What’s The Matter

einsteincard.jpg

My Contributions:

  • Game Design
  • Playtesting

What’s The Matter is a three player competitive board game focused around manipulating chance in order to gain an advantage over your opponents. All players possessed a bag of coloured tokens (relative to the player), and aimed to get their coloured tokens onto specific board spaces. Tokens could only be added to the board by drawing from one player’s bag at random, and thus players had to try and control which tokens ended up in which bags so that the draws would come out in their favour.

Compared to other projects, my contributions here were less pronounced. As this game was a board game, I served mostly by assisting with design by providing feedback and suggestions for solving game design issues. I also aided in running playtests and analysing the results thereof.

6 Chambered Rogue

My Contributions:

  • Project Management
  • Game Design
  • Some Scripting

6 Chambered Rogue was a prototype for a top-down rogue-like shooter set in the Wild West (essentially, Enter The Gungeon with trains). The defining feature behind the prototype was that the map was procedurally generated… as you go. The rooms (train cars) around you will change and shift as you move through the train, keeping you on your toes.

My main contributions to this project were the entirety of the game design, as well as the player weapon system. Players could find and swap between a large number of weapons, all of which had their own set of stats and attributes.

Key Database

Keytest

My Contributions:

  • Everything

This project was designed to create a form of key server the could be integrated into several games, to which players could send keys (most likely provided by the developers via social media) and would receive some form of reward in return. Essentially, a system like Borderland’s ShiftKey system, that rewards players with golden keys.

Unfortunately, major complications arose with making the actual database function and so the project remains unfinished. However, I did successfully manage to create a system whereby one could send date to a server from Unity a receive data in response, so at least that much worked.

What I’ve Learned

Skills

System Design

One my most pronounced improvements I feel lies in system design. As a designer, functionality was key, but as a programmer, efficiency and elegance also factor into the equation. I feel that both my ability to plan and implement more efficient and refined solutions has increased significantly.

Programming Patterns

Whilst I admittedly did not make great use of them, I now posses a better understanding of several types of programming patterns and their purposes. (Flyweight, Observer, Prototype, Singelton, States)

JSON

In multiple projects I’ve made use of the JSON syntax for importing large volumes of structured data. I’ve worked with both the manual parsing and the creation of these files. I’ve found it to be exceptionally useful.

Basic ASP Razor & Server Interactions

Though a less grand achievement, I now have a basic grasp on the nature of interacting with servers via Unity, and the functions and syntax involved on either side. Assuming the server side is using ASP Razor that is.

Methodologies

Efficiency

Whilst not something that is specific to this particular chunk of education, but I’ve noticed my overall work efficiency has improved markedly. A game that would once have taken me four weeks and a small team now takes me only two weeks alone. This is something that I can’t necessarily attribute to a specific methodology, but I feel is rather a representation of a passive accumulation of skill.

Multi-tasking

I found that this trimester I was able to run multiple projects simultaneously with relative ease. It did help significantly that one project was a solo project where I didn’t have to manage an entirely different team, yet still, I managed to effectively distribute my time and resources to bring both projects to satisfying conclusions.

Prototype Mentality

Initially, both myself and the rest of HDG were approaching prototypes from the standpoint of ‘make the gameplay, if the gameplay is good, then the game is good’. However, this created issues with making use of our artist and musician. As such, we’ve now shifted our approach to prototyping the experience rather than just the gameplay.

Technical Planning

Throughout this trimester I’ve found several ways to build on my methods for planning the technical aspects of my various projects. The first of which, is actually planning them. Beyond that, expanding on how I explore the links between various systems, and the way I evaluate the efficiency and effectiveness of a system.

Planned Improvements

More Thorough Technical Planning

Whilst I planned out systems to a considerable degree, and was able to make use of these plan to implement effective systems, I feel that my technical documentation could still be improved by a significant margin, especially if I’m going to have others building games based on my tech docs. The two main things to improve here are: a greater focus on system interactions, and better ongoing upkeep. All to often small changes are made on the fly and not reflected in the document.

Programming Patterns

I feel as though I could have made better use of more varied forms of programming patters to greatly improve the overall structure of my games this trimester. I admittedly didn’t properly look into them until much too late, and now that I have a better understanding feel that they could be of exceptional benefit. Whilst planning a project, I intend to take several patterns into consideration to see if they would benefit the systems we’re aiming to create.

Less Singletons

And on the topic of programming patterns, one I intend to use less of is the Singleton. I think the general architecture of my systems could be improved if I worked with less Singletons, or worked with them in better ways (such as using them as Service Locators).

Conclusion

On the whole, whilst I had something of a slow start this trimester, I feel as though once I re-established my momentum, I was able to create high quality work in relatively small timeframes, to a degree that I’ve not achieved before. Whilst I think my number of totally new skills has not increased much, I’ve certainly improved on a lot of existing ones considerably. It’s been a hell of a trimester, and must say I’ve rather enjoyed it.

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