Considerable Content Games:
I’m currently working on two games for Considerable Content, The Establishment and Cargo Chaos, both of which were developed using the Unity game engine.
The Establishment is Considerable Content’s first and main game currently. It has turned out to be a rather ambitious project. We wanted to play around with different game mechanics in small levels that we would develop and release in instalments via a web player at regular and hopefully, short intervals. As far as programming is concerned, I am in charge of programming a lot of the base systems while Ed has used a visual programming editor to add a lot of the first level’s scripted events.
More specifically, some of the systems I’ve programmed are a level streaming and caching system, a level-of-detail system, GUI and inventory systems, various trigger scripts as well as modifying the Unity first person character controller to so that it could crouch, sprint and pick up and interact with objects. These systems where programmed in C# and you can download the source by clicking on the links above.
Cargo Chaos started as an interesting idea for a mobile game. We decided that we wanted to try our hand at the challenge of creating a game within 48 hours and it sounded like a good candidate. I was in charge of all the programming for this game which required, amongst others, a simple (faked) buoyancy system, a procedural wave mesh creator, a level generator that reads from XML files and scaling scripts to correctly display all of Ed’s 2D sprites. Our webpage for Cargo Chaos includes more detail on what I have done and how. Samples of any scripts I created are available on request.
Considerable Content Website:
The design of this website was done by Ed with all the programming and backend done by me. It was programmed in HTML5, CSS3 and PHP 5 and used the CakePHP rapid development platform which is all connected to a MySQL database. It’s hosted on a number of Amazon EC2 instances running Linux with all static images and games hosted on an Amazon Cloudfront distribution. Being hosted on Amazon servers like this allows our website to easily scale to serve any number of users at any time.
During my time at The University of Melbourne, for my Bachelor of Computer Science, I worked on a large number of programming projects and assignments. Sadly, a lot have been lost but a few have been included here with descriptions and sources.
Grid Computing System (Cluster and Grid Computing): This was a group project for groups of three or four in which the task was to design and develop a Grid computing system. This system required a single Master which would control what a set of remote Workers were computing. We were allowed to use any programming language, protocols and libraries to accomplish this and we chose Java, Sockets and Swing as all three of us had experience with them. Our project report can be downloaded here and the full source code here.
Parallel Matrix Multiplication (Cluster and Grid Computing): The task was to write a program that computed the result of a matrix multiplication of two square matrices using parallel programming. To implement the parallel programming side, we were asked to use an API called Message Passing Interface (MPI). We had to create matrices of different sizes with randomly generated elements, split up the work between different numbers of worker nodes and prove that using more nodes would speed up the computation time. This was a solo project and I programmed my solution in C. The report can be downloaded here and the full source code here.
Nim (Programming and Software Development): In this subject we were tasked with creating a playable text-based version of the game Nim over three solo assignments which built upon each other. Nim is a game played between two people where there is a starting number of stones and each player is allowed to take away a number (up to a maximum) per turn until one player is forced to take the last stone(s) causing them to lose. We were also tasked with programming an A.I. to play this game (for which there is an optimal algorithm). This was a solo project and I programmed my solution in Java. The source of my final submission to these assignments can be downloaded here.
Multithreaded Math Server (Cluster and Grid Computing): The task was to write a multi-threaded server which returns results of mathematical functions and a companion client to invoke these functionalities from a remote machine. This was a solo project and I programmed my solution in Java and used Sockets. The report can be downloaded here and the full source code here.