This following list (in reverse chronological order) does not contain all the projects I’ve ever worked on, but it contains some of my more notable ones that I did manage to keep a track of.
Mcor Orange is the software used for the Mcor Iris 3D printer to create and manage 3D build projects, and to generate and send all the information required by the machine. It runs on both Windows and Mac. Note that this is still in Pre-Beta, so it’s not publicly available at the moment.
I have worked mainly in the 3D aspect of the application, and built the whole front-end from scratch. I am in charge of all 3D-related programming.
My aversion to Java is not a secret, but we had a lot of working non-3D code that made any other choice unwise. In the end the performance is much better than I expected from a Java application, and it’s more than good enough in our case. Orange with large models runs (for the same models) more smoothly than Blender, for example, which is written mainly in both C and C++.
However, special care still had to be done to work around Java’s flaws, so a lot of the low-level code (particularly when it comes to math) is not in fully idiomatic Java. As a very basic example, several operations don’t return a new object but instead return their output through the method parameters. This allows us to minimize JVM allocations and reuse objects in tight loops, but also to store information in a way that doesn’t compromise memory.
There are more examples of increased performance gained by working against Java’s philosophy (a particular case even helped us achieve a measurable 300% speed boost in the ray-tracing code), but this would warrant its own article.
I’m certain we could squeeze even more power out of our code, but then the whole thing would become unreadable and harder to maintain.
My favourite work to date, this is a puzzle game that aims to promote correct hand washing practices. It was published by Surewash on iOS and Android. I was the writer, graphics artist, primary designer and responsible for a large chunk of the code.
Unfortunately, I do no longer own publish rights to this, so I won’t add any of the improvements that I was planning. These improvements would have included better level balancing and additional levels with more challenges.
Developed in Unity.
Some College Demos
These were created as part of a college project, developed using C++, GLFW, OpenGL and Assimp.
This video demonstrates my own implementation of Inverse Kinematics and procedural character animation.
This video demonstrates my own physics engine developed for this course.
This video demonstrates the implementation of a shader that exaggerates mesh details regardless of how the mesh is lit.
A multiplayer pacman game for the desktop and Android. Play as a Pacman OR a ghost! This was submitted as a term project for my master’s degree, so I kind of abandoned it after the term ended. It is not available for download, because it still needs a great deal of polishing.
To be honest, I’m not that excited about properly finishing this, because I just find it uninteresting for everyone. Technically, however, it is still an interesting game which featured:
- Different maze sizes, randomly generated with varying levels of complexity and customization. The challenge (which I finished successfully) was to eliminate dead ends, useless and/or large isolated segments.
- Scalable multiplayer with varying number of players.
- A custom GUI system developed from scratch for LibGDX. I needed this because of the customization available to the player (expandable lists, etc) and the library did not support that at the moment.
A part of this can be manifested in future projects (like the maze generation, for example), so it will not go to waste.
This was my first project in Unity and the name was a joke about games having names that end with the word “craft”. The full name was Crafticraft: Twice the usual craftiness. It was an experimental innovative multiplayer RTS game, in which you could only control the commander and his scouts. Your other units could only be ordered to escort your commander or scouts, and each had their own attributes. You could also have two positions (defensive or offensive), which changed how those units behaved.
This mechanic led to an interesting fast-paced action strategic gameplay, where you would have to keep switching between defensive and offensive modes using keyboard shortcuts, or transferring escorts between units.
I’ll have to change some code to make it runnable in game mode again, especially considering that the server we used is long gone. I can, however, show a couple of screenshots of the terrain generator:
These were generated randomly and dynamically in run-time, based on a collection of seed values that the server sent to every client.
An interactive story generation tool for Android, developed for Stremble Ltd. You could describe a complex story with just one XML file and then load it by the engine. A graphical editor was in the works before the project was abandoned.
A serious game that aims to promote correct procedures that medical practitioners are expected to follow. This work has received the following publications, of which I am a co-author.
A scripting language developed in C with Flex/Bison that is used exclusively to create scenarios for Virtual Telemedine. It is dynamically typed and state-based.
A very strange experimental game that combined aspects of crafting (as in Minecraft) with defending crops against intruders. It was submitted to the third Logipaignion competition in 2011 and won the 2nd prize. I’d like to think that this was due to the fact that it was still incomplete, or we would have won otherwise. The submitted version featured a custom windowing system, level editor and somewhat interesting AI in which the enemies kept getting more intelligent as time was progressing.
A resource management strategy game. I was the main designer, lead programmer and had a minor role in the graphics. This game won the 1st prize of Logipaignion 2010 in the university league.
An article posted in a newspaper can be found here, although they got the name of our game completely wrong.
A very old puzzle game of mine which I consider to be my first “finished” game. The purpose was to collect all the Monlocks (Like monkeys… mon… keys… monlocks… get it? Ha. Ha.) by luring them with various traps and bananas. I have made various attempts to remake this, but I abandoned my efforts for new ideas instead. This project will come back some day, as it is one of my better game concepts.
The original game was made over a decade ago, with an ancient version of Game Maker – way before it was cool.
I probably have this somewhere, but I cannot find it!