Quadrilactic Glitches

Some interesting glitches from refactoring my Quadrilactic game to use an entity component system

Quadrilactic Glitch 1

Quadrilactic Glitch 2



Quadrilactic is a small game project I have recently completed, you can check it out at https://bencoveney.itch.io/quadrilactic.

Quadrilactic Icon

Bounce, jump and platform through space as everyone’s favorite polygon. Quadrilactic is a simple browser based game about a quadrilateral that has gone intergalactic.

Its written in TypeScript, uses HTML canvas to render to and uses Grunt for the compilation pipeline. The project is open source and the source code can be found at https://github.com/bencoveney/Quadrilactic.

Quadrilactic Menu

Quadrilactic Menu

Now that the project is finished I figure it would be a good idea to take a look at how the project went.

I kept the scope of the game pretty limited. There is only really a couple of moving parts to the game and the interactions aren’t very complex. On the plus side this allowed me to actually get it to a complete state unlike the many other game projects I have started before. Despite this it still took about 3 months (going by GitHub commits) to get to this stage which could possibly have been shortened by using some third party libraries.

Quadrilactic Gameplay

Quadrilactic Gameplay

Another issue to possibly address in the next game is building some interest in people playing it by posting in forum threads and keeping a development log. I think the game is fun to play and the feedback I have received has mostly agreed however despite this not a huge number of people have played the game, probably down to a lack of promotion.

More Quadrilactic Gameplay

More Quadrilactic Gameplay

Finally with regards to the technology I found TypeScript and Canvas to be very good tools for creating the game quickly without getting bogged down too much in the graphical presentation. One downside is that I found it slightly limited in terms of the graphical effects I could produce in Canvas in 2D mode.

The Next Game

I have ideas and am going to begin my next game programming project soon. Learning from Quadrilactic I will try and do the following things:

  • Continue to favour making something fast rather than worrying too much about code quality as it is the best way for me to make significant progress on these projects.
  • Refactor code out of my Quadrilactic project to make future development quicker and easier.
  • Find communities where I can post my development log and help build interest in my next game.
  • Explore WebGL to allow for more interesting graphical effects.


Regular Expression Fractals

Regular Expressions were posted as a challenge on the daily programmer subreddit the other day and I decided to give it a go making my own. You can see my implementation on GitHub (requires PNGLib)











More Github

I have been experimenting some more with github. As well as uploading some of my own code I have begun to try to contribute to other people’s projects as well. One example is a simple image processing application. After seeing a post on reddit that sounded interesting I asked the author to consider uploading the code so I could contribute.


When I first looked at the project it consisted of lots of separate interfaces which each performed one image manipulation operation. Each image transformation worked well however the UI could be improved. Currently each image transformation was completely compartmentalised and it was possible to crash the program by filling in the parameters incorrectly.

Old Menu

A screenshot of the old menu

Old Image Transformation Screen

A screenshot of the old image transformation screen

I figured the best way i could add value to this project would be to improve the UI and standardise the way the image transformations are defined in order to make it easier to add more in the future.


One of the first things I did was to create a new main User Interface with the aim of having one main screen where users could load, save and manipulate their image instead of having to load and save the image at every different screen.

Main UI

The new main user interface

Another feature I implemented was the standardisation of the image transformations. I did this by defining an interface and then refactoring the existing transformations for comply with the new interface. The interface consists of two parts, a method for showing the user a parameter screen and a method for applying the transform.

interface IBitmapTransform
    /// <summary>
    /// Launches a dialog box which allows the user to set the transformation's parameters
    /// The image is supplied in case any transforms require the source image for parameterisation
    /// (ie for selecting where to insert an image).
    /// </summary>
    void ShowParameterDialog(Bitmap Image);

    /// <summary>
    /// Creates a new image by applying the Transform to the Source
    /// </summary>
    /// <param name="source"></param>
    /// <returns></returns>
    Bitmap Transform(Bitmap Source);

Below is an example parameter screen. These are hard coded currently however it might be interesting to create a way of automatically generating them in the future.

Parameter Screen

Parameter Screen

Some of the parameters were straightforward such as numerical or text inputs however others were more complicated such as selecting an of the screen to apply a transformation to. To facilitate this I made a interface for selecting areas and points on an image.

Area Selection

An area selection dialog


Overall I’ve enjoyed playing about with someone else’s code and I think the changes I have made have been worthwhile. In the future I’m looking forward to working on some larger and more difficult projects.


In an effort to get familiar with GitHub I’ve uploaded a small C# library from another project.

ChromosomeLibrary provides bit-string functionality for use in genetic algorithm projects:

  • Creation of Chromosomes (from random or given data)
  • Reproduction (including single-point crossover and mutation operations)


Now that I’ve got the hang of the tool I’m looking forward to getting into contributing to some open source project.


Due to a couple of bugs I have decided to release a quick update to my map.

Bugs fixed:

  • Reflections no longer showing missing textures.
  • Gap into void in pond sealed.
  • Over-powered gap between crates removed.


Download from Google Drive.


Thanks to Anis for help testing.

Thanks to TWayne and the guys from Crazy Platoon for trying the map on their Sniper Only server.


Sn_caldera is my first Finished Team Fortress 2 map. It is intended to be played on a sniper server.





You can download the map Here!