Blog Posts

My first Kubernetes cluster with minikube

September 14, 2019

So I’m in the process of trying to learn more about Docker and Kubernetes since I feel like its something that would be useful in a professional setting. Usually when I work on side projects I’ll use serverless due to its ease of setup and use however in a professional setting there are often more considerations that prevent us from going completely serverless.

I feel like Kubernetes is sort of an intermediate step between running your own servers and going completely serverless. It allows you to orchestrate your Docker containers and start to think about segmenting your workloads into narrowly focused chunks. As long as you can run your current workload using Docker, you can leverage Kubernetes to manage it which makes it ideal for those who want some of the benefits of serverless such as lower management overhead but have been spooked by talks of cloud lock-in.

I’ve put together a bit of a demo repository which is a .NET Core web API which I have containerised using Docker and I am orchestrating that container locally using minikube. This alone isn’t particularly useful since there is no external calls being made to the service but understanding the difference between a cluster, deployment and pod and how to they all to work together is useful.

Running your local Docker image on minikube

First we need to start (or restart) our local Kubernetes cluster by running

minikube start

This command creates and configures a Virtual Machine that runs a single-node Kubernetes cluster.

Next we need to set our environment variables so that we can pull the local images using

eval $(minikube docker-env)

This just tells minikube to reuse the existing Docker daemon that we have installed locally.

We then create a Kubernetes deployment using

kubectl run <deployment name> --image=<image name> --port=<port the image runs on>

kubectl is the command line interface for running commands against Kubernetes clusters. A deployment is a set of configuration which defines what a single set of pods looks like. By default, Kubernetes looks for the image that you set in the --image parameter on Docker Hub however we want it to find our local image so we have to then edit our deployment using

kubectl edit deployment <deployment name>

Scroll down and find where it says imagePullPolicy and set it to Never. This tells Kubernetes to only look locally for the image.

To access the Kubernetes deployment we then have to expose it as a service using

kubectl expose deployment <deployment name> --type=NodePort

The deployment pod is now exposed but we have to wait for it to show up before we can access it via the service we created. A pod is a single, deployable unit of computing that runs our container.

We can view the status of our currently running pods using

kubectl get pod

If the status is ErrImageNeverPull it just means it can’t find our local Docker image so run docker images to see if the expected image is in the list and if not you will need to rebuild your image.

Once the service is created we can use minikube service <deployment name> --url to get the URL that it is exposed on.

Overall, being able to run our local image isn’t that useful but its a good start in understanding Kubernetes so I can start building more useful clusters with it in the future.

Deploying a static site to AWS using GitHub Actions

August 31, 2019

I was fortunate enough to get a beta invite to Github Actions earlier this week so I figured I would try it out to deploy a static website to AWS as a way of comparing with other tools such as GitLab and AWS CodeBuild.

My initial impressions of the platform was that it wasn’t as intuitive as I was hoping however I can see some real advantages in how much they push creating reusable build steps to speed up creating CI/CD pipelines.

Firstly, lets look at some of the main building blocks GitHub Actions:

  • Workflow - a workflow is the automated process that is triggered by an event, usually a pull request or push to the repository. A single repository can have multiple workflows that handle separate, generally unrelated processes. Workflows are made up of jobs.
  • Jobs - a job is a self contained series of steps which by default run in parallel to each other. Initially I thought jobs were self contained individual pieces of work that form my build and deploy pipeline but quickly figured out that they don’t share any information as far as I can see.
  • Steps - individual pieces of work that perform a small piece of your job.

My approach

I’ve gone ahead and created 2 jobs within my workflow; one to manage building a deploying and another to manage testing my code. Each of these jobs run on both push and pull request as shown by on: [push, pull_request]. They both start by checking out the code using the reusable action actions/checkout@master, setup Node.js using actions/setup-node@v1 and then install dependencies using npm.

From here the jobs differ in that the test job just runs the tests and then is complete. The build and deploy job runs the build and will upload the artifact to GitHub, using actions/upload-artifact@master, before deploying to S3 and invalidating the CloudFront cache only if we are on the master branch (i.e. if: github.ref == 'refs/heads/master')

Keeping your secrets safe

Its as easy as going into your repository settings, going to secrets and then setting them up. You refer to them in your build job using ${{ secrets.SECRET_NAME }}.

Setting secrets in GitHub

The workflow configuration

name: CI/CD

on: [push, pull_request]

    runs-on: ubuntu-latest
        node-version: [10.x]
      - uses: actions/checkout@master

      - name: Setup Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v1
          node-version: ${{ matrix.node-version }}

      - name: Install Dependencies
        run: npm install

      - name: Run Tests
        run: npm test
          CI: true

    runs-on: ubuntu-latest
        node-version: [10.x]
      - uses: actions/checkout@master

      - name: Setup Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v1
          node-version: ${{ matrix.node-version }}

      - name: Install Dependencies
        run: npm ci

      - name: Build Package
        run: npm run build

      - name: Upload Artifact
        uses: actions/upload-artifact@master
          name: public
          path: public

      - name: Deploy to S3
        if: github.ref == 'refs/heads/master'
        uses: actions/aws/cli@master
          args: s3 cp ./public s3://<<INSERT S3 DIRECTORY HERE>> --recursive
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}

      - name: Invalidate Cloudfront CDN
        if: github.ref == 'refs/heads/master'
        uses: actions/aws/cli@master
          args: cloudfront create-invalidation --distribution-id=$CLOUDFRONT_DISTRIBUTION_ID --paths '/*'
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}

You can view the syntax for creating workflows here.

The code I have included is current as of the 31st of August 2019 but could change in future. I’ll be sure to include the updates here.

TeleBlast v0.15 Changes

May 16, 2019

This update marks the first major update during Early Access and has been designed to make the game look and feel better to play. I’ve included a lot of feedback from the playtest events that we have been a part of and rewritten a lot of the logic behind the game.


  • Added new Music and sound FX by (Aaran) Insole Games (check out @InsoleGames on Twitter)
  • Modified player colours. Here are the new colours with purple being added due to popular demand.

    New player colours


  • Fixed issue that occurred whenever you died mid-explosion; it would make your explosion full size before imploding rather than just imploding from the size it was at the time of death.
  • Fixed many issues around the scoreboard and scorekeeping. This should be more accurate and consistent now.


  • Added teleporter trails - dressed this up a bit.

  • Modified “Map Select” images to better reflect the maps themselves
  • Modified map design and effects

    Level 1 changes
    Level 2 changes


  • Added the outer circle - previously a round could take a while to end when players were stuck on opposite sides of a map or just weren’t doing anything attacking. I’ve added a circle that slowly reduces the amount of available space for players which is enabled from 20 seconds into a round or when there are only 2 players remaining.

  • Added 3 more maps - this takes the total number of maps up to 5 and adds dynamic elements to some of the maps.

    Level 3
    Level 4
    Level 5
  • Removed player shields persisting from round to round - this is to ensure that a player further ahead on the scoreboard won’t keep their shield from one round to the next and makes it easier for other players to catch up.
  • Added maximum speed for teleporters - previously teleporters could move as fast as they wanted so when a teleporter hit an explosion, they would usually get an unfair speed boost.


  • Removed “Quick Play” button from main menu - this button served as a way to quickly get into game but it was seldom used and wasn’t really clear with what it did.
  • Added Nintendo Switch Joycon button icons - I’ve been testing the game using Switch Joycons so it made sense to add those button icons to the UI screens.

    Switch Joycon Buttons
  • Modified layout of Game Select screen - makes it clearer for the user what options they have.

    Game Select screen
  • Moved “Modifiers” to its own screen rather than being embedded in the game select screen.

    Modifiers screen changes

What is next?

  • Adding match intensity level which will be something that is detemined in the background and will affect the music, sound FX and graphical effects to increase the tension felt by players.
  • Adding the “King of the Hill” game mode.
  • Adding the option to play out a “practice round” to introduce new players to the game and allow them to get a feel for moving around before being competitive.

As always you can find out more about TeleBlast on our website ( and our community on Discord.

TeleBlast - The Early Access release that should have been!

May 16, 2019

As of right now it has been over 6 months since the last and only TeleBlast update and it is with great excitement that I announce that a new update is coming tomorrow, the 17th of May.

Firstly, I must apologise to the people that put their trust in me and bought the game in Early Access; I feel like I have let each one of you down by taking this long and I hope that I can restore your trust not only with this release but also the releases going forward.

What I am releasing is not going to be a perfect game, nothing close to it but it is going to be a step in the right direction and I have a plan going forward that aims for an eventual 1.0 release later this year.

While I won’t go into all the details of why it took me this long, I think it is important to recognise one of the reasons given it is a prominent topic around the game industry at the moment and that is crunch.

I am forever grateful for the opportunity to showcase TeleBlast to the many people that came and played it at PAX Australia last year, however the pressure I put on myself and the people around me to be there was immense. Game development is not my full time job so most of the work I do on TeleBlast is either on my commute or takes away from the time I spend with my friends and family. In the lead up to the event, I was at a point where I was working 80-100 hours a week which is something that is completely unsustainable for anyone.

At the time I didn’t think about what I was doing; I only focused the goal of producing something polished and exciting for players. Following PAX, I didn’t want anything to do with TeleBlast, I didn’t want to work on it, I couldn’t even look at it; I was completely burnt out. It remained this way for at least the next 4 months.

When I finally came back to working on TeleBlast I was in a position where, because of the crunch, I had used a lot of shortcuts in developing features which had caused a number of bugs. I knew that if I was to enjoy developing TeleBlast again, I had to do things right which meant a lot of refactoring.

I had originally planned on releasing the refactored version of TeleBlast to Steam however it would have been disappointing to wait 5 months for a release, only to get nothing new so I decided to hold it back an additional month and add features to get people excited about the game again.

What is going out tomorrow is what the game should have been in an initial Early Access release; I was probably a bit premature in releasing TeleBlast when I did but I wanted to capture the hype from people playing the game at PAX to being able to buy it as soon as they got home.

This time around, I am in a much better place with regards to adding more features to the game, fixing bugs as well as just mentally and physically. I can’t wait to share with you all what it is in store. I look forward to your feedback and I can’t wait to hear all about the experience of sharing TeleBlast with your friends.

I am in the process of putting together some release notes of what is different in TeleBlast so stay tuned for those but until next time, take care of yourselves and have fun!

Also, please join the TeleBlast community on Discord, I’d be more than happy to talk about the game or anything else on your mind! - My Solo Hackathon

April 15, 2019

Gaming for me these days is very much a social thing, I typically don’t have the time or patience for long, single player or even online experiences or if I do, its usually broken up into small 15-30 minute chunks over a number of months. Most of my gaming these days is party games amongst friends and one of the staples of our group have been the games.

If you haven’t played any of them, I highly recommend picking up one of their party packs particularly during a Steam Sale (party pack 3 is my favorite). Each party pack has a number of games based around the premise of using your phone to join the game with the main gameplay taking place on a TV. The games are typically quite social and often involve drawing or answering questions. They don’t require fast reaction speeds or indepth game knowledge making the barrier to entry very low; you really only need a phone to participate.

What do I hope to achieve?

Something I have always wanted to do is replicate the experience of the Jackbox games where someone can host a game and then a 4 letter code is then shown on screen which all players input on their phone to join the game. For more information about Jackbox games check out:

What I hope to learn?

As with most of my side projects, the real intention is to learn about something I haven’t had the chance to use as much as I would like. For this week, I want to focus on 3 areas:

1. AWS Serverless Application Model (SAM)

I am currently in the process of studying for my AWS Developer Associate certification and a large part of it is using Lambda to build serverless applications. I want to get more experience with the tooling and how to build, deploy and run serverless applications.

2. Behavior Driven Development (BDD)

BDD is something that I have heard about and looked into but never really applied either in a personal or professional setting. I would like to get experience in thinking about and writing tests prior to implementing features and get used to using the given/when/then syntax.

3. Time Tracking

I think this is something I need to get in the habit of when working on side projects because if they ever become more than just a side project then I’ll have a detailed record of what work I have done for the purposes of funding applications. I will be using Toggl to track my time across projects.

Follow my progress

I will be tweeting my progress throughout the week on my personal Twitter with the hashtag #toplaytv and will hopefully have something to show reasonably soon.

My Top 10 Board Games as of the End of 2018

January 04, 2019

10. Sherlock Holmes Consulting Detective - Thames Murder and Other Mysteries

Not Rated Last Year; Designed by Raymond Edwards, Suzanne Goldberg, Gary Grady; Published by Space Cowboys

Sherlock Holmes Consulting Detective

If there is ever a game to make you feel like a detective this is it; everything about it oozes theme and takes you back to 1880s London. I love just pouring through pages of possible clues, maps and newspapers in search for possible leads and each case we have played so far has felt challenging but not frustrating. My only gripe with this game is the scoring versus Sherlock; it often feels unfair and ruins the experience at the end of the case.

9. Gloomhaven

#6 Last Year; Designed by Isaac Childress; Published by Cephlofair Games


Well considering the game was delivered 2 weeks before I did the list last year, I couldn’t justify putting it in my top 5 back then but I did expect it to be one of my top games this year. The reality of it is the game takes forever to set up, teach and play that I have come to the realisation that I may never get to experience a significant portion of it.

Having said that, when I do get to play it and get into a bit of a groove, this game is a fantastic, puzzling, edge of my seat brain burner which I could play for days and thats why its still in my top 10 games.

8. Seasons

Not Rated Last Year; Designed by Régis Bonnessée; Published by Libellud


One of the greatest feelings in games for me is being able to build upon a combo throughout the game to unlesh on all the other players and score a ton of points. Seasons certainly gives that satisfaction through the combinations and synergies between a lot of the cards and how you can manage your resources. I also like how there is a highly visible way for players to influence the pace of the game and there is just the right amount of luck involved which can also be mitigated.

7. Kingsburg

Not Rated Last Year; Designed by Andrea Chiarvesio, Luca Iennaco; Published by Giochi Uniti


Yet another game with just enough luck involved which can be mitigated. In short, I love the dice placement mechanism and how building up your village feels like building up a village in Age of Empires 2. Its quite a thinky game where you have to keep adapting your movements based on your dice results and the actions of the other players.

6. Clank! A Deck Building Adventure

#2 Last Year; Designed by Paul Dennen; Published by Renegade Game Studios


Clank! has more suffered this year from a bit of deck-builder fatigue in both the industry and within my gaming group. Having said that, this is my favorite deck-building game by far and it is only improved by additional maps and cards.

I love that you have to keep an eye on what other players are doing while also having that element of push your luck to see how deep into the dungeon you can go.

5. Santorini

Not Rated Last Year; Designed by Dr. Gordon Hamilton; Published by Roxley Games


I initially held off Kickstarting Santorini because I didn’t want to give into the hype and it was around the time when I was trying to cut down on the number of games I backed. It is just so good as a 2 player game and the chunky pieces and thematic board just add so much to the experience. I love having to balance between managing your position on the board along with the player powers in the game and although there are some unbalanced matchups it is so entertaining.

4. Chinatown

#10 Last Year; Designed by Karsten Hartwig; Published by Z-Man Games


This is the purest negotiation game that I have played; although some people could argue that luck may play too big of a part, there is nothing more satisfying than being able to negotiate yourself out of a tough spot. This game is #4 purely because every time it gets played there are some wild multi way deals being thrown around which also tend to involve anything from personal vendettas to household tasks.

3. Camel Up

Not Rated Last Year; Designed by Steffen Bogen; Published by Eggertspiele

Camel Up

It is Camel Up, not Camel Cup and the second edition cover confirms that. Its a relatively light game that never fails to bring the tension in terms of what is going to come out of the pyramid next. Although I’m not the biggest fan of some of the expansion modules, the addition of “catch-up” dice makes for even tighter races and more tension.

2. Keyforge

Not Rated Last Year; Designed by Richard Garfield; Published by Fantasy Flight


From the moment it was announced, I was so excited about Keyforge and finally getting to play the game in mid November confirmed that I had every right to be excited. Since my gaming group has picked up Magic, the disparity between players that have been playing for ages and those just starting out with basic decks is ridiculous which isn’t a problem with Keyforge. Also every game that I have played has felt like each player is just 1 turn away from coming back but it also doesn’t feel so swingy that the choices you make don’t matter. Overall, this is one game I see having staying power for a long period of time.

1. Rising Sun

Not Rated Last Year; Designed by Eric M. Lang; Published by Cool Mini or Not

Rising Sun

Area control has always been one of my favorite mechanics however games that use it often suffer from being overcomplicated or put a high emphasis on luck. Rising Sun however is so streamlined, from the negotiation of allies to having only a limited number of options depending on which tiles you draw and finally the war phase. The mind games that go into what you can spend your money on is amazing. Rising Sun has so much replayability in the base box let alone the expansions and each clan feels unique and overpowered in its own way giving it great balance. The models and the board really convey the theme well and its the one game that I just can’t wait to get back to the table over and over again.

Removed from Last Year

  • #9 Salem 1692 - Still makes it to the table, its a staple.
  • #8 Kingdomino - Love the simplicity of it, I prefer Queendomino though.
  • #7 Mission: Red Planet - Absolutely love this game, it will always have a place in my collection.
  • #5 Robinson Crusoe - Falls victim to the same problems as Gloomhaven, long setup, long rules explanation but still great game.
  • #4 Mechs Vs Minions - Is the best implementation of a programming game, just can’t get it to the table often enough.
  • #3 Lords of Xidit - Had a really bad experience playing it last time and it has soured my impressions of it.
  • #1 Blood Rage - Completely replaced by Rising Sun simply because it benefits much more from repeat plays.

My PAX Australia Indie Showcase Experience

November 01, 2018

This past weekend myself along with a small army of friends and playtesters showcased TeleBlast as part of the PAX Australia Indie Showcase. It was an absolutely unreal experience not only to have people play the game but also enjoy it enough to bring back their friends and play it over and over again. For context, TeleBlast is a local multiplayer game where up to 4 of your friends attempt to blow each other up using explosive teleporters. It started out as a Global Game Jam game and has somehow made its way to become PAX Australia Indie Showcase worthy within the space of 10 months.

The PAX Rising area of the show floor

The Lead Up

In the lead up to PAX I tried to make sure I was completely confident in the features that were in the game and pulled out anything I had any doubts about, the last thing I wanted was for things to go wrong during the game and for people to have a bad experience because of that. We arrived a day prior to ‘move in’ day which allowed me to run one final playtest and fix any minor bugs that came up and after that point, I had complete confidence in the product we were about to showcase which allowed me to get some sleep that night.

Move In Day

The day before PAX I had planned to go and pick up a television I had hired to showcase the game then make our way to the convention centre. All was going well until we arrived at the venue and found that there was 2 TVs already set up in the booth which I wasn’t informed of. Initially, I had only considered running a single demo at any one time hence I had only brought 4 controllers and a single powerboard; luckily I had brought 2 laptops, one to allow me to fix any major bugs while we used the other one for the game. We ended up having to demo off both laptops which gave us some flexibility if when any issues arose.

The TeleBlast booth

We ended up going and buying more controllers, cables and powerboards to allow us to run the two screens and returned the spare TV that day so we didn’t have to worry about it after PAX.

Move in day was also when I met Chris who owns Salty Studios and is a friend of a friend. Having been through PAX and knowing that this was my first big showcase he was able to give me all the support and advice I needed to remain calm and succeed. Meeting him was one of the greatest parts of my PAX experience; seeing the lengths that people would go to just to help each other out because at the end of the day, sharing is the only way the indie game development scene is going to grow particularly within Australia.

Opening Day

So my original plan was to press the button to release TeleBlast into Early Access the morning of PAX as the doors opened at 10am however due to a mix of nervousness and excitement I couldn’t sleep Thursday night and ended up releasing at around 2:30am. I slept soundly until my alarm went out however it was a mad panic from there because the game was available and people were going to play it that day. Another issue arose upon arriving at the venue. The controllers weren’t working with one of the laptops because conventions are a terrible place to use Bluetooth connected controllers, there is simply too much interference. So for the first hour of PAX we only ran with a single demo machine and a highly stressed out developer. Luckily I had the support of my amazing demo team including my lovely partner who was able to run around doing what she could to get things working properly.

Once the doors opened, people came streaming in however they just kept walking, they didn’t want to see any of these indie games or at least thats what I thought. Turns out people just wanted to make sure they got in line to see the big AAA games and would filter back towards the Indie Rising area later on. Once we started getting our first groups of players I was able to relax a bit more and get in the groove of pitching to people and getting them excited about playing the game. Since there isn’t always going to be a game going on to show people and bring them in, our one sentence pitch became very important. Our pitch was

“A local multiplayer game where you blow up your friends with teleporters”

which was simple enough to tell people what it was about and intriguing enough for them to want to know more.

Our first group of players.

The first day of PAX was very much about learning how to best manage the booth, draw people in and then giving them the best experience possible. Some of the things we were able to learn and adjust during the weekend includes:

  • Only needing 3 people to run the booth at any one time. This gave us the flexibility to have 2 people demonstrating the actual game while we had one person trying to draw people in. Also because it was a local multiplayer game, it gave us the ability to join a game and showcase where it really shines which is at 4 players.
  • How to best showcase the game. We would jump into the basic TeleBlast game mode since the pace of the game is largely dictated by the people playing and it was a simple introduction to the mechanics of the game. It was delightful to see that ‘ah-ha’ moment that people would have after a couple of rounds seeing them understand the game and then become highly competitive. After the first game we would set them up with the Capture the Flag mode with a few gameplay variations turned on, namely ‘Black Hole Explosions’, which draw other players in, and ‘Phase Dash’, which allows players to dash through walls. We chose these options because it allowed people to experience how alternate game modes and variations would change the game in the future and it left them wanting to play and explore more.

The Weekend

Saturday was by far the busiest day of the convention and it went by in a blur. We learnt from Friday and had a rotating roster of 3 people working on the booth which allowed each of us to have some time off to take in the rest of the show or just get some rest in the indie room. By that point we had already understood how to pitch the game and also demo it so it simply became about attracting people to the booth which was easy with a constant stream of players. One of the highlights of the weekend was a kid who played the game for around 6 of the 8 hours on the Saturday; he took on all challengers and won a lot of games but what amazed me was his enthusiasm to go home and show the game to all his friends.

pax panel
The Indie Showcase panel.

Saturday night was the PAX Indie Showcase panel where each of the 6 games were played on stage while we got questions from the crowd. It was mostly about how the games came about and our experience developing them. The disappointing part of the panel was how poorly the time was managed however it was something outside of my control so I didn’t have too much time to dwell on it.

Sunday was a much more relaxing day, the crowds were a bit smaller and our team was well experienced with exhibiting the game. We decided to go with 2 people on the booth at any one time to allow everyone to go and see the rest of PAX. I mostly stuck around in the PAX Rising area and was able to play some of the games I was looking forward to checking out all weekend. Some of my favorites included:

  • Lanterns by Artefact Assembly - a charming co-operative puzzle platformer where you use light to guide your way.
  • Where the Snow Settles by Myriad Games Studio - a narrative driven adventure game where you uncover a world beyond our own.
  • Scouts Honor by INCA Studios - a frantic couch co-op where you build scout camps across a large range of maps.
  • Lawsons Shadow by Salty Studios - a 90s noir inspired stealth game which evokes a realistic breaking and entering feel.

The Indie Community

One glaring mistake that I have made during the development of TeleBlast became very apparent on the Friday night of PAX. Up until this point the game has been developed very much in isolation from the indie game development community particularly in my home city of Perth, Australia.

On the Friday night there was an event called Interface which was an opportunity for everyone in the PAX Rising area to network with each other and also with people from industry. This was my first real indie community networking event and I was quite anxious to just go up and start a conversation with someone. I was lucky enough to catch up with someone I had met before in Perth who was nice enough to introduce me to some of the other people he had met at PAX.

It was amazing to have Rami Ismail come by and play the game. He gave me a ton of feedback and was just an awesome person to talk to.

That was the first time I really understood what it meant to be “indie”. It wasn’t about developing games in small teams with limited funding, its about learning from and sharing with people who want to push the boundaries of what games as a medium can be. It was amazing to talk to people who have been building games for many years about their experiences and what they had learnt. Hearing about why these people make games and what they wanted to achieve from it was awesome and in just a few short days we were able to forge connections that I’m sure will continue well into the future.

Moment of the Convention

Some of my favorite moments of the convention included having Rami Ismail, cofounder of Vlambeer, and Jerry Holkins, cofounder of Penny Arcade, come play the game however none of these moments compare to having my parents come and experience PAX. Growing up, both of my siblings were known for their sporting prowess and despite trying a large range of sports I really wanted to just stay home and play or make games. Up until this point, my parents never really understood the impact games can have on people or that a gaming convention could be this big. When they told me that they were coming to PAX I almost broke down.

My parents came decked out in TeleBlast gear.

I’m really glad that I was able to get them a ticket for Saturday so they could view the game I had made connecting people in a way that they had never seen before. They were able to see how people of all ages were able to come and share this experience, yell at each other and leave with a smile on their face.

I am so thankful that I have parents that have not only given me an amazing life but are also willing to come and support me even if they don’t understand it fully. There were a couple of developers who I talked to throughout the weekend who remarked that it was amazing that my parents wanted to come to PAX because for some of them; their parents weren’t willing to accept that you can make a living off developing games and that it was a waste of time. Although the industry has a way to go within Australia, PAX certainly proved that it isn’t just a waste of time.


Some of the biggest things I learned from being a part of the Indie Showcase and PAX in general included:

  • PAX sneaks up on you and before you know it you will run out of time to get flyers, business cards and other important merchandise printed. I had wanted to get some controller skins delivered in time for PAX however I ordered them too late and they didn’t arrive in time.
  • Things will go wrong as things evidently did on the first day. Have a plan in place for when these things do happen and chances are you will have the first hour of the Friday to iron out any last minute issues as people jump in line for the big AAA releases. Also, people want to play your game, if you have any issues and need to restart the game for any reason they are more than happy to relax for a minute or two amongst the frantic pace of PAX.
  • Don’t be afraid to go out and pitch your game to people. If you can show people that you really believe in the idea and come across as genuine and enthusiastic, they are more than willing to come give something a try.
  • PAX can be overwhelming and it is very important to take care of your mental and physical wellbeing. Having people around you to take the pressure off running the booth for a couple of hours is a blessing but don’t push yourself to see all of PAX in that time. There are plenty of places for exhibitors to just relax and zone out because sometimes we all need that. Trying to push yourself to always be in or around the booth is very crunchy and as we all know from Rockstar, crunch == bad.


My journey would not have been possible without the amazing support and hard work of my friends who came to help me showcase the game. They have all been part of the process from day 1 at Global Game Jam and have encouraged me to continue working on TeleBlast. I must thank my amazing partner Sitara who’s love and support has allowed me to put myself out there and be the best person I can be. Charlie and Scott for help setting up the booth and taking time out from work to come and Perry who, upon finding out we got 5 tickets instead of 4, booked time off work and flights to be there at PAX just under 24 hours later.

Finally I would like to thank everyone that came and played TeleBlast, your laughs, screams, competitiveness and enjoyment is why I will continue to make games. I make these experiences so I can share with my friends, I just hope you find them worthy of showing your friends too.

teleblast friends
The amazing people that made showcasing TeleBlast possible.

TeleBlast will be hitting Steam Early Access on the 26th of October

October 14, 2018
TeleBlast will be hitting Steam Early Access on the 26th of October

It is finally happening, the game that started out at Global Game Jam 2018 will be hitting Steam Early Access on the 26th of October. We will be pressing the GO button live at PAX Australia so you will be able to play the game as part of the Indie Showcase and then go buy it to show your friends!

One of the reasons I am going down the route of Early Access is that I feel that TeleBlast currently doesn’t have all the content that you would expect of similar games in the local multiplayer genre. The features I will be adding during the early access period include:

  • More maps - the game will be released with 2-4 maps which I hope to expand to 10+ to allow for greater variations in play. I will also be adding interactive elements to some of the levels to really separate the good TeleBlast players from the great ones.
  • More game modes - initially it will have just 2 game modes, regular TeleBlast and also Capture the Flag. I hope to add at least one more in King of the Hill.
  • More variants - variants will change how the game is played, the game will ship with 9 different variations and there are another 5 planned. I also plan on adding save slots to allow players to save their favorite combinations.

If you would like to follow the progress of the game check out the game on Twitter, Instagram and Facebook and if you would like to support the ongoing development of TeleBlast please follow and wishlist the game on Steam.

TeleBlast v0.14 Changes

August 26, 2018

TL;DR - there is a whole bunch of changes that were introduced to make the game look and feel better.

New main menu

Firstly, if you would like to support the ongoing development of TeleBlast please follow and wishlist the game on Steam and purchase the game on to play it now for 50% off the release price and we will send you a Steam key when it is done.

This set of changes aims at changing the look and feel of the game to fit in better with the new logo and direction of the game. I am looking to achieve a more retro look and dial back the sports theme that has been present in the game. Here is a comprehensive look at the changes.

User Interface

  • Refactor the look of the following screens to mesh with the new logo and direction of the game:

    • Main menu
    • Player select
  • To go back screens you have to hold down the back button to prevent players from unintentionally going back.


  • Teleporters get deflected by explosions based on how big the explosion is. This prevents players from teleporting into another players explosion and dying straight away.


  • Fix the layering of elements on the screen so that players and effects are behind level details.
  • Adding screen shake to explosions based on how big the explosion is to give more feeling to that action.

  • Adding dash particles and sound FX to give more feeling to that action.

  • Adding dissolve effect when shields are hit.
  • Slow motion for 0.5 seconds when a player gets killed to give feeling to that action.
  • Replace all in game images with SVGs using the new Unity SVG import tool to make them look more crisp at all resolutions.

The new patch will focus on adding variations to the game to keep things interesting and change them from one game to the next. Things such as seeking teleporters and explosions that turn into a hail of bullets so looking forward to showing that in 2 weeks time!


August 26, 2018

It started out development at Global Game Jam in 2018 where I had 48 hours to build a game around the themse of “transmission”. It recieved great feedback at the post-jam showcase and subsequent playtest session with some close friends that prompted me to continue working on the game. The original version was called “Major League TeleBlast” due to its blend of sport and arcade genres but was subsequently shortened to “TeleBlast” closer to release.


I continued working on the game for a number of months and jumped at the opportunity to submit the game for the PAX Australia Indie Showcase which was the first time that anyone outside of my immediate friend group had played the game. To my surprise, it was one of the 6 games chosen for the showcase which turned out to be one of the most enjoyable experiences in my life.


TeleBlast was developed with C# and Unity and is slated for full release in July/August of 2019.

WA Dash Plumbing and Gas

August 26, 2018

I was contracted to design and build a website for a new plumbing company by the name of Dash Plumbing and Gas based here in Perth. I have completed the design phase of this project and I’m moving onto the implementation phase soon.


TeleBlast will be at PAX Australia

August 14, 2018
TeleBlast will be at PAX Australia

I am beyond excited to announce that TeleBlast has been invited to showcase as part of the indie booth at PAX Australia from October 26th-29th in Melbourne. For a game that started out development at Global Game Jam and became something I just wanted to finish to have at least 1 completed project; I would have never imagined that it would end up being showcased at an event as big as PAX.

From now until the event, I am looking to get the game as release ready as possible including an entirely new look and feel along with brand new game modes, variants and maps to play on. If you would like to follow the progress of the game check out the game on Twitter, Instagram and Facebook.

And if you would like to support the ongoing development of TeleBlast please follow and wishlist the game on Steam and purchase the game on to play it now for 50% off the release price and we will send you a Steam key when it is done.

Major League TeleBlast - Development Roadmap

June 26, 2018

To coincide with Major League TeleBlast going into beta this week I have put together a rough development roadmap going forward to give you some insight into my plans for the game. As part of the beta, I have released the game for purchase on for $4.99 which is a 50% discount on what the game will be upon final release. Anyone who purchases the game during this phase will also be given a Steam key upon release.

The platforms I am looking to publish to include Windows, Mac and Linux through Steam, Xbox and WiiU because I own one and my target audience, like myself, have probably bought 4 controllers for Smash Bros already. I would also like to publish to Playstation and Nintendo Switch however their indie game publishing process is a bit more involved than that of Steam or Xbox.

Here is a list of features I am looking at implementing:


The only game mode Major League TeleBlast currently supports is a free-for-all round-by-round fight to see who can blow up the most players however going forward I would like to implement more team oriented modes that are generally 2v2. I would have to implement some sort of menu system for selecting teams and a way of being able to distinguish players individually and by what team they belong to. More on that below.


One of the things I love the most about games such as Towerfall is that it is a simple mechanic that can be presented in a couple of different ways to keep things fresh and interesting. Thats what I would like to do with Major League TeleBlast; have a simple core mechanic that can be played in a couple of different ways. Some of the modifiers I would like to implement include:

  • Gradually slow down player movement speed once they have shot their teleporter.
  • The only way to move is by teleporting.
  • Limited teleporters that get dropped in the position where a player teleported from and any player can pick them up to teleport again.
  • You have to charge your teleporters before firing them with the longer you charge, the faster they move.
  • Instead of an explosion, teleporting causes a circle of projectiles to fire out from the position the player teleported to.

I am always open to new ideas around modifiers for the game and I’m hoping further playtesting will give rise to additional game modifiers.

Additional Game Modes

Capture the Flag

Can be played as either a free-for-all or teams game. There will be a single flag that players have to return to their base however they cannot teleport while holding the flag.

King of the Hill

Will only be available as a free-for-all mode where the “hill” moves around the arena and the players currently in it score ongoing points. I imagine this will be a bit interesting due to the explosive nature of the game that can cover large areas of the arena.



I have gone through and put together a proof of concept for this game mode which can be found here. Two teams will go at it in an effort to score the most goals within a certain time limit.

Paint the Arena

Inspired in part by Splatoon, the idea is that explosions will paint the arena in that players color and they will be able to move quickly in through that area. The game is won by the player who has painted the largest area. This might have to be a trial mode since I’m not sure of how well it will play out.

Additional Maps and Backgrounds


I’m looking to have in-excess of 10 maps to play on at launch with around that many different backgrounds to select from. It would also be a good thing to have a randomise button for those who don’t want to make a choice.

Improvements to Game Feel

Right now I feel like the game is missing something around player feedback; it just feels like some actions have no significant feeling to them. For instance, explosions just don’t feel 100% satisfying. Some effects I am going to trial to improve game feel include:

  • Camera shake on explosions - this is something I tried previously but had a poor implementation of it and the feedback was generally negative.
  • SlowMo when a player is blown up - would add more impact to those moments. I think it would also be improved if I slowed down the music during those moments also.
  • Better sound effects since they seem really hollow. More bass!
  • Improved explosion graphics which make them feared, right now its a circle (of death)
  • Player and explosion trails to give a greater feeling of movement and fluidity.

More Crisp Graphics

Currently my issue is that some of the graphics seem very pixel-ly when rotating them which decreases the overall quality of the game. I would like to make them pixel perfect and more crisp especially at high resolutions.

Better Sound Effects and Music

This relates back to game feel but right now most of the sound effects are those I made in SFXR during the game jam and they have a really hollow feeling to them. I really want to improve them to evoke more feeling and impact in the player actions.

Guidance for New Players

Currently the game has no guidance for those that are new to the game, they just get thrown into arena and could end up blown up 2 seconds later without really understanding what they can and can’t do. So yeah, something to help with that.

Key Rebinding

When I was building my arcade machine; games with rebindable controls were highly favorable and so I started to implement that within my game however it was perhaps a bit early for me to do that. I currently have a screen and some functionality to rebind keys however it hasn’t been tested thoroughly.

Game Analytics

I’ve recently done some work for another project to collect data from a Unity game and send it to AWS. I would like to replicate some of this work to collect player data and put together some interesting statistics such as hotspots of where people get blown up. It will however be interesting to do that in a way that players feel comfortable given all the privacy concerns around the work right now.

I am currently in the process of assessing all of these tasks and trying to put together a timeline of when I would like to have them done. Once I come up with that, I’ll put together a post detailing it further. If you have any suggestions or ideas, feel free to get in contact with me through social media or my Discord channel.

Major League TeleBlast - Football Mode Demo

June 19, 2018

In celebrating the FIFA World Cup I decided to demo an upcoming mode for my game Major League TeleBlast. The new mode was thrown together in less than 3 hours and is a bit rough around the edges however it allowed me to playtest an upcoming mode to see if it was actually enjoyable.

You can download a demo of the game mode below; it requires 2 controllers to play and there is no end time or score, it just keeps increasing. The controls are as follows (assuming Xbox controller):

  • Left Analog Move
  • A Shoot -> Teleport
  • Triggers Dash

The features I would eventually like to add to this mode include:

  • 2v2 Teams which would make the mode quite hectic!
  • Make it harder to defend. Right now it is too easy just to teleport back to your goals to defend.
  • An end condition rather than going on forever.

The download links are below.

Major League TeleBlast Patch 0.3

June 14, 2018

Lately I have been finding more time to work on Major League TeleBlast to prepare for beta and eventually submit to showcase at the PAX Australia indie booth. As a result I have had to get more organised around my task list in order to determine which features need to be completed for beta.

User Interface

The first thing you will notice is that a lot of the UI elements have been changed since 0.2. I have done some extensive work around the design of each of the menus and in-game screens but rather than talking about them here are the screenshots.

0 3 main menu
Main Menu
0 3 player select
Player Select
0 3 game select
Game Select
0 3 level select
Level Select
0 3 round end
Round End
0 3 game end
Game End


  • Added options screens to allow users to change screen resolution and music/sound effects volume
  • Added pause screen for all your in-game timeout needs.
0 3 options
0 3 pause

Gameplay Changes


  • Added shields which saves the player from being hit once. When the player is hit while their shield is up, they are pushed away based on the magnitude of the explosion. Each player starts the game with a shield and each round thereafter, shields are granted based on the number of kills each player has as a form of catch-up mechanic.
  • Added the dash ability. Have you ever misfired your teleporter and found yourself with no way to escape? Well the dash ability is for you! The dash ability can be used by pressing either left or right trigger (left shift on keyboard) and has a short cooldown to keep you flying like a butterfly.
  • Added controller vibration when the player teleports, their shield is popped or they get blown up by another player.
Shield Knockback


  • Modified each of the 3 levels with the following changes:

    • Fixing some of the collision boxes around the corners to make the collisions more predictable.
    • Removing SVG shadows and using Unity inbuilt shadows instead to give me more control within the editor.
    • Allow for the color of the walls to be changed.
0 3 level1
0 3 level2
0 3 level3
  • Added more level backgrounds for additional customisation.

This week continues the push towards beta which means fixing some remaining issues and working on my marketing strategy. I am currently working on creating a page on for the game and from beta onwards, the game will be purchaseable through that page. You can view the upcoming features that are on my roadmap here and I have setup a Discord channel to gather feedback and talk to people so please feel free to join it here.

You can download version 0.3 of Major League TeleBlast below.

The Good and the Bad: Destiny 2

June 05, 2018
Photo Credit - Humble Bundle and probably Bungie

I have so many games in my Steam library and board game shelf and never enough time to play them all. I figured by writing short reviews it would enable me to think somewhat critically about the games rather than just saying its great and moving on. The typically enjoy the part of game reviews where they detail the good and the bad points about the game before providing a short verdict so that is what I’ve decided to do.

I acquired Destiny 2 through the June Humble Monthly Bundle (check out my referral link here) and managed to convince 2 of my closest friends to do the same so this past weekend we got together and played through the main storyline; this is the good and the bad.

The Good

  • The story didn’t overstay its welcome - One of my major pet peeves with gaming is the focus on game length as a measure of value and I believe a game should be just long enough that you can finish it in a single weekend (with obvious exceptions). I really enjoyed the main storyline of Destiny 2 because it never felt like it was dragging on; it provided a gripping hook and finished before it became too incredulous or boring.
  • Player progression was quick and satisfying - Something I was surprised with was how quickly you progress through leveling and building your characters abilities. We reached level 20 before finishing the main storyline and were quick to buy the expansions so we wouldn’t be wasting any of that additional experience. It seems like the grind in Destiny 2 isn’t getting to max level but in getting the best gear to complete the endgame content.
  • The visuals are amazing - Just flying through some of the environments you can’t help but be in awe of how beautiful some of the visuals are. My personal favorite was the planet of Nessus which is controlled by the cyborg-like race called the Vex.
  • Public events - There is something so satisfying about rallying a group of strangers together to complete an event. Even though the events generally repeat themselves, it is still refreshing to participate in them and have a new group of people show up each time.

The Bad

  • The pacing of some of the story missions was too slow - Despite having such a beautiful environment there are a lot of areas you are just running through especially during story quests. I understand that sometimes it is used to build suspense or give the players a break between battles it just seemed like such a waste to have so many great environments where nothing really happens. I feel like there was more suspense built when entering a “Respawning Restricted” area.
  • Crucible maps don’t feel like they flow - This might be a slightly premature criticism but in the 2 Crucible (PVP) matches we played I was slightly disappointed with how poorly the maps flowed considering how well Bungie designed numerous Halo multiplayer maps. It is something I will have to explore further in the endgame.


A solid game made better in the presence of friends. If you can find it for around the same price of $12, it is well worth your time.

Major League TeleBlast Patch 0.2

February 09, 2018

Following on from Global Game Jam and in preparation for the After the Jam event, I have made a series of changes and updates to Major League TeleBlast; in this post, I will detail the changes made.

Gameplay Changes


  • Added delay at the start of rounds in which players can rotate but not move or shoot. This is to prevent the fire-and-hope at the start of rounds to get kills.


  • Increased player move speed from 10 to 15


  • Decreased explosion expansion speed from 5 to 4
  • Player explosion stops expanding if they get killed while exploding. i.e. if you teleport into another players explosion


  • Added minimum teleporter speed which enables it to keep going even if it hits another player/teleporter or generally slowing down because of friction.
  • Fixed bug where teleporters would remain in play if the round ended with another 2 players killing each other.



  • Added ability for 2 players to play on keyboard
  • Added back button control for all controllers, this corresponds to B on an Xbox controller and ESC/Backspace on keyboard.


  • Modified spawns on the original level so that players only have direct line of sight on the player horizontally opposite them when the round starts.
  • Added the plus (+) level where players only have line of sight of the player diagonally across from them when the round starts.

  • Added the L’s level when no one has direct line of sight on each other when the round starts.



  • Removed the player selects from the main menu, replaced them with Play and Quit buttons.
  • Added player select screen which now allows players to choose their colours.

  • Added level select screen where players can choose which of the 3 levels they would like to play and how many kills they are playing to.

  • Fixed bug where the round end screen didn’t show the correct number of kills for each player.

Tried But Removed

  • A 0.3 second slow motion effect when someone gets hit by an explosion was meant to add dramatic effect to the action but it just looked as though the game was lagging.
  • A ‘dotted line’ trail effect was added to teleporters to allow players to see how far they had travelled and therefore how big the explosion could be but instead it just cluttered up the screen.
  • A screen shake effect was added whenever a player caused an explosion which was meant to add dramatic effect but again made the game feel like it was lagging.
  • When the player shot out their teleporter, their movement speed was reduced based on how far their teleporter had moved. This became frustrating for players and didn’t have any visual clues which increased the complexity of the game.

From here I am going to take a couple of weeks off development since it is a pretty busy time trying to organise birthdays and I feel like I will get burnt out if I continue to push myself. Also don’t forget to check out and get the latest build!

Global Game Jam Retrospective

January 29, 2018

Another Global Game Jam has come and gone but I am still on a high from having made a complete game in less than 48 hours. Global Game Jam is a worldwide (duh!) event where people get together and try to make a game in 48 hours based on a theme which is given out when the event starts. This years theme was transmission.

In this post I will detail what I think went well and not so well for me during the jam. But first, the game itself.


Major League TelthemeBlast is a local multiplayer sports game where players use teleporters that explode upon use to destroy other players and become the last one standing.

The idea came about during the group brainstorming session where someone thought of teleportation as a way of “transmitting” an object or person. Since teleportation is relatively easy to create as a game mechanic and I really enjoy creating local multiplayer games, it didn’t seem like too much of a leap to make it something out of the idea.

What Went Well

Scope and planning

This was the first time I’ve ever managed to not go overboard in scope during a game jam and I think most of it had to do with creating a Trello board to manage my tasks. I made sure that I was always working on something that I had planned to implement and if I took too long on a single component, I shelved it and worked on it later.

Another thing that really helped me was the 4:44 principle coined by Rami Ismail which says spend 4 hours getting the core mechanic of your game done and spend the other 44 polishing it (minus sleep and anything else life throws at you). Although it took me slightly longer than 4 hours to get the core mechanic in, it provided a good guideline for me to know if I was on track.

I really enjoyed the game I produced

For once I was proud to show off something I had worked on; I was still nervous to showcase it but I was still proud of what I produced and people really seemed to enjoy it. I also had a lot of confidence in my core mechanic and it is really a game I enjoy playing with my friends. I don’t think this would have been as evident if I didn’t spend most of my time polishing the game.

What Could Have Gone Better

I didn’t find a team

I went into the weekend hoping to find a team to jam with however a multitude of things happened that meant I decided to work alone.

I couldn’t make it to the keynote and theme reveal because of family reasons. I met a group after the keynote and went for a brainstorming session where we narrowed it down to a couple of ideas, one of them being teleportation. I had to leave them after the brainstorming session to go watch the Australia Day skyworks and by the time I got back, they had split into groups and were both working on separate driving themed games, neither of which really enticed me.

By that time I was dead set on using teleportation and had a pretty decent idea to back it up that I just went it alone.

Where to From Here

Lets Make Games is hosting an after jam event on the 10th of February so my goal is to polish it off and add more to showcase it there. I have gone back to my trusty planning tool Trello to add more tasks and keep on track and I have been trying to show it off to as many people as possible to get their feedback.

I really hope to get this game to a somewhat complete state so I can either sell it on or possibly even Steam but that seems far off at the moment. In the meantime I will be updating my progress on this blog so please follow me on Twitter to find out when I update.

Major League TeleBlast on Global Game Jam

I'm in for Global Game Jam 2018

January 22, 2018

So following on from the tradition of posting an “I’m In” when you are participating in Ludum Dare1, here is mine for Global Game Jam 2018.

global game jam

After years of not doing much game development and never actually having somewhat of a reasonably completed game in my portfolio, I have decided to commit to doing Global Game Jam this year.

I will be participating at an event here in Perth, Australia and I’m going with the intention of meeting people and forming a group at the event. Since my expertise has always been programming, I hope to meet some artists/designers/other programmers and work as part of a team to get something done in the 48 hours.

Where I have usually let myself down in previous game jams is through too much scope and pursuit of perfection as opposed to just good enough. I really hope to meet some more experienced game jammers who can help me stay grounded and focused on getting one idea or mechanic complete in as short a time as possible and then polish from there.

As for the tools I will be using:

Game Engine: Unity3D (C#)

Graphics: GIMP, Aseprite

Sound: Audacity, SFXR


while [ 1 ];do vardate=$(date +%d\-%m\-%Y\_%H.%M.%S); screencapture -t jpg -x ~/Desktop/Timelapse/$vardate.jpg; sleep 10; done

I also have one optional goal that I’ve set myself and that is to build a game that is playable on an arcade machine since I am currently in the process of building my own and I think it would be really awesome to be able to play a game I made on it.

Also been looking through the list of diversifiers, there are a couple that have caught my eye:

  • So Sociable - Build a game that uses a social network API
  • Upside down - One or more game systems programmed by an artist, major art assets produced by programmers/coders
  • Look back - Create a game which uses retro controllers of any type. No modern controllers! (which fits in with my personal goal)
  • Created by Warren Robinett - Your game contains some kind of hidden secret or Easter egg.

This week I have started getting back into working with Unity3D so I don’t go into it without any practice. I am very much looking forward to putting something together over the weekend, meeting some people and having fun.

1 So the whole tradition of “I’m In” posts came about because there was a bug feature in the Ludum Dare website where a user didn’t exist until they created a blog post, hence they got people to tell them that they plan on participating and what tools they intend to use. Ludum Dare FAQ

Pathfinder to D&D 5E - The Differences

January 09, 2018


So I have been DMing a Pathfinder campaign (Rise of the Runelords) for a group of my mates for the last couple of months however from my point of view, things just haven’t felt right. As a DM I have been feeling bogged down by the rules, from having to know when to apply minor +1 bonuses or penalties to being able to describe why we have 5 different knowledge skills and what they are used for. I have been looking at a number of different systems to try and adapt to including Savage Worlds and Dungeon World but finally I have settled on D&D 5th Edition. This is a small look at the rule differences as they apply to our group for their benefit as well as anyone else thinking of making the switch.



D&D 5th Edition greatly simplifies both the list of skills and how to apply them. Here is the list of Pathfinder skills with their D&D equivalents:

Pathfinder D&D
Acrobatics Acrobatics
Bluff Deception
Climb Athletics
Diplomacy Persuasion
Disable Device
Escape Artist
Handle Animal Animal Handling
Heal Medicine
Intimidate Intimidation
Knowledge (arcana) Arcana
Knowledge (dungeoneering)
Knowledge (engineering)
Knowledge (geography)
Knowledge (history) History
Knowledge (local) Investigation
Knowledge (nature) Nature
Knowledge (nobility)
Knowledge (planes)
Knowledge (religion) Religion
Perception Perception
Perform Performance
Sense Motive Insight
Sleight of Hand Sleight of Hand
Stealth Stealth
Survival Survival
Swim Athletics
Use Magic Device

In addition to this, players no longer put ranks into skills when they level up. Instead, their class determines what skills they are proficient in and when they use those skills, they instead get a bonus applied to the roll based on their level.

D&D also makes use of Passive Skill Checks, something I couldn’t find mentioned in the Pathfinder rule book. Passive skill checks don’t require dice rolls and is used by the DM to secretly determine whether the player characters succeed at something such as noticing a hidden monster. Passive skill checks are equal to:

10 + skill modifier + proficiency bonus (if proficient)

In addition to this, the aid another action is replaced by simply giving a character advantage (see Advantage and Disadvantage) if two or more are working together. There is also rules for group checks which force everyone to make a skill check and if at least half succeed then the check is a success, otherwise it is a failure.


Proficiency is incorporated into D&D at the expense of Skill Ranks and Saving Throws and scales with your characters level. When you create your character, you choose what skills and saving throws you are proficient in and any time you use those skills, you apply your proficiency bonus in addition to your ability modifier.

In addition proficiency is added to:

  • Attack rolls with weapons you are proficient with
  • Attack rolls with spells you cast
  • Ability checks using tools you are proficient with

Proficiency starts at +2 at level 1 and increases every 4 levels thereafter.

Saving Throws

Reflex, Fortitude and Will saves are “replaced” with ability saves meaning instead you will use your STR, DEX, CON, INT, WIS, CHA ability modifiers for your saving throws. It really is just a naming change but it reduces the number of terms players have to remember.

When you create your character, your class determines which 2 abilities you have proficiency in which means whenever you have to perform a saving throw of that type, you add your proficiency bonus.

Item Proficiencies

Your class will tell you what weapons and items your character is proficient in using. Whenever you use these items, you gain your proficiency bonus to your skill check.

Advantage and Disadvantage

Instead of remembering all the cases where players get minor bonuses or penalties when rolling the dice, D&D incorporates advantage and disadvantage. This makes it much easier on me since I don’t have a DM screen full of when these bonuses or penalties should apply.

In both cases you roll 2 d20s; if you have advantage you take the higher value and if you are at a disadvantage you take the lower value.


Cover is one of these things where I’m somewhat puzzled as to why they didn’t just use the advantage/disadvantage system in favor of +X bonuses but I can also see why. Simply, half cover provides a +2 bonus to AC and 3/4 cover provides a +5 to AC. You cannot target someone in full cover.


I tried to introduce a similar system into our game of Pathfinder under the term Hero Points. In hindsight I probably went a bit too overboard with the description of them and set too many parameters around how they are earned and what they are used for.

Inspiration is awarded when you play your character in a way that is true to their personality traits, ideals, bonds or flaws or otherwise portray your character in an interesting way.

Inspiration can be used to give a player advantage on one attack roll, save throw or ability check.

Character Personality

I love the D&D includes some guidelines for fleshing out a character as part of the creation process; in particular traits, ideals, bonds, flaws and background.

At character creation, a character background or create your own which describes where you came from and how you became an adventurer. This will then define your possible traits, ideals, bonds and flaws or you can create your own.

Your personality traits define your character, you get to choose 2 at creation. e.g. I’ve enjoyed fine food, drink, and high society among my temple’s elite. Rough living grates on me.

You also get to choose 1 ideal, which describes what drives your character. Ideals typically are connected to your alignment. e.g. Power - I hope to one day rise to the top of my faith’s religious hierarchy.

Your bonds represent your connection with the people, places and events in the world. You get to choose 1 at creation. e.g. I owe my life to the priest who took me in when my parents died.

Flaws represent some vice, fear, compulsion or weakness for your character. e.g. I am suspicious of strangers and expect the worst of them.


Feats are optional in D&D and are quite powerful. Every 4 levels, you get to choose if you want to take a feat or increase 2 of your ability scores. In our campaign, feats characters currently have will be reworked slightly to match their D&D power levels.

Combat Turns

Combat turns are mentioned a lot more simply in D&D but that doesn’t mean they lack the depth of Pathfinder, it leaves more up to the DMs discretion and players imagination. Each player turn in combat is simply:

  • Move
  • Take 1 action

Some spells, actions or abilities will also allow you to take a bonus action on your turn. You can only take 1 bonus action per turn.

When you attack, you no longer apply a base attack bonus. Instead, if you are proficient with the weapon you are attacking with, you can apply your proficiency bonus.

Critical Hits

Critical hits mean you roll your damage dice twice, there is no rolling to confirm the critical.

Non-Lethal Damage vs Knocking Out

Instead of stating whether you are doing non-lethal damage; when an attacker reduces a creature 0 hit points, they determine whether the opponent is killed or just knocked out.

Two Weapon Fighting

As long as you have a light weapon in your other hand, you can attack with it as a bonus action. You don’t add your ability modifier to the damage of the bonus attack.

Combat Maneuvers

The terms Combat Maneuver Defense (CMD) and Combat Maneuver Bonus (CMB) are gone in favor of using a characters Athletics and Acrobatics skills depending on the situation. I like this change because the few times I would have to ask for a player characters CMD it would draw blank looks followed by a search through the character sheet to find the appropriate value.

Damage Resistance

In Pathfinder, damage resistance is expressed as a type of damage followed by a number which determines how much to reduce incoming damage of that type. This is simplified in D&D by ruling if a creature or character has resistance to a particular type of damage, damage of that type is halved against it.

D&D also introduces vulnerabilities. If a creature has a vulnerability to a particular damage type, damage of that type is doubled.


When you start your turn with 0 hit points, you must perform a death saving throw. Roll a d20, if the result is 10 or higher, it is a success, otherwise you fail.

On your third success, you become stable. On your third failure, you die.

This is just a small summary of the rule differences between Pathfinder and D&D that I found important for our group, they are in no way all the differences. In a follow up, I will be discussing how the player characters change as a result of us moving to D&D.

WSU VR Nursing Tour

August 26, 2017

I was contracted by a local company by the name of Virtual Guest 360, which specialise in creating VR and AR experiences, to create a dashboard which pulls data from a virtual reality nursing simulation. The idea was that the users walk through the simulation and answer some questions based on what was shown to them and formed part of the curriculum at the Western Sydney University nursing school. The below screenshot is an example of the dashboard that was produced.

dashboard screenshot

My work was involved getting the data from the VR simulation built in Unity and sending it to DynamoDB where it was later accessed on the dashboard via some Lambda function calls. I also designed and implemented the dashboard in React, incorporating user feedback along the way and supported the product for a period after the contract ended.

This job taught me a lot about setting expectations when it comes to what I am working on, what I can produce and my time. I am extremely happy with what I produced and learned along the way.

Releasing is Equal Parts Terrifying and Exciting

June 21, 2017

Just over a month ago I released my small side-project to the world and while the limited hype around it has fizzled out, its an experience I will never forget. I built a web app that showed Board Game collectors to show the games in their collection that they have not played, something commonly known as a ‘wall of shame’; you can view it at Board Game Wall of Shame.

This was the first time I’ve ever built something to the point where I felt proud to put it out in the wild. Normally I would start a whole bunch of ideas but never get to a point where I can look at it and say I’m proud for people to start using it. I feel like I have partly experienced a fear of shipping and partly a lack of motivation to continue working on things.

My approach to side projects

I must say I’ve read my fair share of articles about dealing with a fear of shipping but the most useful by far was a Hacker News thread on it in which, a wise person stated that the only way to get over a fear of shipping is by actually shipping. There are more pieces of wisdom in the thread which I could rehash however here are some of the biggest things I learned from this process.

Know your Target Audience

And know where they frequently go; it helps if you are also part of this community. These are the people that are going to care about what you’re doing and make sure you’re not just telling people you know because you’re not always going to get realistic feedback from them.

So for me this was easy, I was targeting board gamers and the places they most frequent are [/r/boardgames] and [Board Game Geek]. I got my biggest spike in users when I posted my project to the Board Games Subreddit which was an incredibly exciting experience for me. I was able to watch the usage graphs spike and the database fill up with entries which was really fucking cool.

My first week of traffic

Respond to Feedback

No matter how good or bad it is, make sure you have a presence and respond to what people have to say.

This was the hardest one for me, not everyone is going to like what you’ve done and those people are typically the ones that are going to let you know about it. Within the first 10 minutes of my post being on Reddit someone commented with a URL on Board Game Geek that will allow you to do the exact same thing as my web app did. At this point I could have said “how stupid am I for building something that is already easily available?!” and called it a night.

reddit fail
Called out on Reddit

But I think the most important thing is how you respond to that feedback. I could take pride in how well my web app displayed the results and how people found it more pleasurable to use. So make sure whenever you release your product, you are there to respond to people and provide a real presence behind it no matter if the feedback is good or bad.

Continuing Work is Harder than Finishing

One of the most amazing things that happened when I released my app and told people about it was the constructive feedback and additional features people wanted to see. While it was extremely exciting to see people using my product, it was more exciting that they could see the potential of it and give me ideas on how to improve it.

While getting the app to a point where I was proud to show it off was difficult and became a bit of a slog at times, it was a whole lot more difficult trying to continue on working on it. In my head I was done, I had got it to a point where I was happy with it and even though some people provided me with some great ideas to extend it, I just could not find the motivation to implement them.

I think this comes back to my approach to side projects where I always want to work on the next big idea because after enough time I poke enough holes in the existing ideas them that they sink. That is why something like the Board Game Wall of Shame is going to be something I may use from time to time but I think it will eventually fall away.

Having said that, the experience of actually shipping something and getting it in the hands of actual users was a hugely beneficial one, mostly full of ups and involving a sizeable learning curve in how to deal with feedback. It is something I would love to do again, provided I come up with something I am motivated to work on for long enough.

Building, Testing and Deploying your Nuget package with Travis CI

April 03, 2017

This all came about because I am building a Board Game Geek XML API wrapper in C# and wanted to be able to commit a change, build and upload the new version of the package to Nuget. You can view the repository here. If you want to get straight into it without diving indepth, my .travis.yml configuration file is as follows

language: csharp
solution: <Project Name>.sln
  - curl -L -o nuget.exe
  - mono nuget.exe restore <Project Name>.sln
  - mono nuget.exe install NUnit.Runners -Version 3.6.1 -OutputDirectory testrunner
  - xbuild /p:Configuration=Release <Project Name>.sln
  - mono ./testrunner/NUnit.ConsoleRunner.3.6.1/tools/nunit3-console.exe ./<Project Name>Test/bin/Release/<Project Name>Test.dll
  - mono nuget.exe pack ./<Project Name>/<Project Name>.nuspec -Version $MAJOR_VERSION_NUMBER.$MINOR_VERSION_NUMBER.$TRAVIS_BUILD_NUMBER
  - mono nuget.exe setApiKey $NUGET_API_KEY -Source -Verbosity quiet
  - mono nuget.exe push <Project Name>.$MAJOR_VERSION_NUMBER.$MINOR_VERSION_NUMBER.$TRAVIS_BUILD_NUMBER.nupkg -Source  

Also it was quite important that my nuspec file had the following lines. You can view my full nuspec file here.

     <file src="bin/Release/<Project Name>.dll" target="lib/<Target runtime>" />

The first 2 lines of the file should be fairly self explanatory and are required for telling Travis about your project. I’ll start by going into the install section of the file.

  - curl -L -o nuget.exe
  - mono nuget.exe restore <Project Name>.sln
  - mono nuget.exe install NUnit.Runners -Version 3.6.1 -OutputDirectory testrunner

These lines simply set up the necessary dependencies to build your project, namely the latest version of Nuget, any dependencies for your project and the NUnit test runner. I know it may be considered bad practice to bring in the latest version of Nuget for this however until it lets me down, I don’t think I’ll change it.

The more interesting part comes in the script configuration.

  - xbuild /p:Configuration=Release <Project Name>.sln
  - mono ./testrunner/NUnit.ConsoleRunner.3.6.1/tools/nunit3-console.exe ./<Project Name>Test/bin/Release/<Project Name>Test.dll

The first two lines simply build the library using xbuild and runs the unit tests for the project. If you have no tests you can simply remove all the lines that reference NUnit.

Note about using different versions of NUnit - You shouldn’t have a problem most of the time using a different version however I know between versions 2 and 3, they completely changed the directory structure so it did take a bit of fiddling to find the correct test runner.

  - mono nuget.exe pack ./<Project Name>/<Project Name>.nuspec -Version $MAJOR_VERSION_NUMBER.$MINOR_VERSION_NUMBER.$TRAVIS_BUILD_NUMBER

This line simply builds the Nuget package based off your nuspec configuration. It is important to note here that you cannot just reference your csproj as you may do when running on Windows since this feature is not supported as of yet on Mono. I have also added environment variables in Travis for MAJORVERSIONNUMBER and MINORVERSIONNUMBER and then I use the automatically generated TRAVISBUILDNUMBER for generating a full version number.

  - mono nuget.exe setApiKey $NUGET_API_KEY -Source -Verbosity quiet
  - mono nuget.exe push <Project Name>.$MAJOR_VERSION_NUMBER.$MINOR_VERSION_NUMBER.$TRAVIS_BUILD_NUMBER.nupkg -Source  

The final 2 lines relate to uploading your package to Nuget. The first requires you to have set your NUGETAPIKEY in the environment variables for Travis. Also if you have a public build it is very important that you include the -Verbosity quiet option in this step since otherwise your API key gets exposed in your build log.

The final line will simply push your Nuget package to the server.

I hope you have enjoyed my quide to building, testing and deploying your Nuget packages with Travis CI and if you have any questions or comments, feel free to let me know below.

What Did I Play Monday (Jan 16 - Jan 22)

January 23, 2017

What I Play Monday is a weekly look at the games I got to the table and any good stories that came out of them.

So on Saturday I had a board game day and it was the first time I tried setting what games we are going to start with and set them up prior to people arriving. This came about because I was struggling to get lower player count games to the table so I wanted to set the expectation prior to the event. I set up both Inis and Mechs Vs Minions because a couple of people had already played MvM so it was easy enough to leave them to teach any new players while I taught Inis. So here are the games I played this week:

  • Inis (4p) - The first time anyone in our group had played this and it was really enjoyable. I find it the easiest of the “dudes-on-a-map” games to play but it doesn’t sacrifice any depth. The game ended rather spectacularly when my girlfriend managed to preside over 6 other clans in a single territory then cancelled the start of a battle using an Epic Tale card and then cancelled the Festival card with an Advantage card. Overall a very fun game and I can’t wait to play again and not lose both my clans in the first round.
  • Grifters (4p) - Another game we were only playing for the first time and again it turned out to be really good. The mechanic of using cards for their abilities or to complete jobs is really good and difficult to get right. It was hard to catch a player with 3 Veteran cards in their hand though because it allowed them to complete jobs with ease and use their other cards for their abilties. It is one I look forward to playing again.
  • Pandemic: Reign of Cthulhu (4p) - I really enjoy Pandemic and I really love the Cthulhu theme they added to this game. It feels like it has gone from a “cube-pusher” to a highly thematic game with the addition of the Old One cards that occur whenever Evil Stirs or there is an “Outbreak”. We managed to get pretty lucky with the Old One cards and the only one that would have done some decent damage was cancelled by a Relic card. Everything was looking good until we realised we were running out of player cards and we ultimately came up one turn short. I can’t wait to get this one back to the table and try out the other player abilities and hopefully get a win.
  • 3x Secret Hitler (8p) - In one of the games all was looking good for the Libs, we had 4 of the 5 Liberal policies on the board with no Fascist policies in play. Smooth sailing right?! WRONG! Knowing most of the remaining policies in the deck would be Fascist we could be forgiven for not casting suspicion on a couple of Fascist policies being revealed. A Fascist player got the ability to investigate someone else, she investigated another Fascist and said they were a Liberal, of course everyone believed them. Another couple of rounds and a Liberal player managed to get the first kill power and confusion ensued. She asked the Liberal players who to kill and silence! Turns out a Liberal was killed and on the very next vote Hitler was elected Chancellor by a Liberal player. It was quite the turn around.
  • Mansions of Madness: 2nd Edition (5p) - We played the 2nd mission where we have to investigate the Marsh family and then escape Innisport. It was my 2nd time playing this mission and it was much easier with 5 people compared with 2. We made really quick progress throughout this mission because we were wary of taking too long but in the end 2 people ended up going insane and were delaying our escape. In the end 3 of us made an escape leaving the other 2 behind so it was mostly a success.
  • 2x King of New York (6p) - Became something quick and fun to finish the night off. The first game went very quickly since me and another player dealt 8 damage from Manhattan to everyone else. That same turn I was able to get enough energy to buy double damage and proceeded to do 10 damage in a single turn to everyone in Manhattan. However this put me right in the firing line with only 2 health and I died a turn later. The second game drew out a bit more and I tried to destroy as many buildings as possible and then use the military to damage everyone else but it wasn’t as effective.

Normally I would take photos of each of these games to put in this blog post and on my Instagram account but unfortunately my replacement phone is still on its way.

So until next week, play more games!

2016 Goal Retro

January 15, 2017

Following on from my previous post about my yearly personal goal, I would like to write about how I went with my 2016 goal. In 2016 my goal was to play more board games, my collection had ballooned to the point of me struggling to play many of them so I decided to try to:

  • Play 10 games at least 10 times (the 10x10 challenge)
  • Play 100 games at least once (the 100x1 challenge)
  • Play all of the games in my collection at least once (the wall of shame)

So lets have a look into how I went.

The 10x10 Challenge

I chose at the beginning of the year to not do the strict 10x10 challenge where you have to predetermine what 10 games you are going to play. My reason for this is my collection was still growing and it was really hard for me to choose only 10 to play. This one I got pretty close with, I managed to get 7 games played at least 10 times and the remaining 3 were within 2 plays of reaching 10. These games were:

  1. Secret Hitler (58 plays)
  2. Deception: Murder in Hong Kong (45 plays)
  3. Codenames (22 plays)
  4. Splendor (13 plays)
  5. Captain Sonar (11 plays)
  6. Zombicide: Black Plague (11 plays)
  7. One Night Ultimate Werewolf (10 plays)
  8. Coup: Rebellion G54 (9 plays)
  9. Control (8 plays)
  10. Tsuro (8 plays)

The 100x1 Challenge

This one I also got pretty close with, I managed to play 90 different games throughout the year. This one definitely got harder throughout the year since our gaming group loved to play a small subsection of games and everyone enjoyed them. I really could have tried harder to get this one done but the end of the year really crept up on me and it became difficult to get people together since everyone was busy.

  • Secret Hitler (58 plays)
  • Deception: Murder in Hong Kong (45 plays)
  • Codenames (22 plays)
  • Splendor (13 plays)
  • Captain Sonar (11 plays)
  • Zombicide: Black Plague (11 plays)
  • One Night Ultimate Werewolf (10 plays)
  • Coup: Rebellion G54 (9 plays)
  • Control (8 plays)
  • Tsuro (8 plays)
  • Ticket to Ride: Europe (7 plays)
  • The Resistance: Avalon (7 plays)
  • Spyfall (7 plays)
  • Paperback (7 plays)
  • Pandemic Legacy: Season 1 (6 plays)
  • Coup (6 plays)
  • Cuisine a la Card (6 plays)
  • Mission: Red Planet (second edition) (5 plays)
  • Love Letter: Batman (5 plays)
  • Greed (5 plays)
  • BANG! The Dice Game (5 plays)
  • The Lord of the Rings: The Card Game (4 plays)
  • 7 Wonders (4 plays)
  • Onitama (4 plays)
  • One Night Revolution (4 plays)
  • Quadropolis (4 plays)
  • Salem (4 plays)
  • Love Letter (4 plays)
  • Raptor (3 plays)
  • T.I.M.E Stories (3 plays)
  • Roll for the Galaxy (3 plays)
  • Keep (3 plays)
  • Two Rooms and a Boom (3 plays)
  • Good Cop Bad Cop (3 plays)
  • Blood Rage (2 plays)
  • Tsuro of the Seas (2 plays)
  • Carcassonne (2 plays)
  • Machi Koro (2 plays)
  • Mansions of Madness: Second Edition (2 plays)
  • DC Comics Deck-Building Game (2 plays)
  • BANG! (2 plays)
  • Warhammer Quest: The Adventure Card Game (2 plays)
  • Friday (2 plays)
  • Star Wars: X-Wing Miniatures Game (2 plays)
  • Zombie Fluxx (2 plays)
  • Burger Up (2 plays)
  • Mechs vs. Minions (2 plays)
  • The Grizzled (2 plays)
  • Dungeons & Dragons Roleplaying Game Starter Set (2
  • plays)
  • Saboteur (2 plays)
  • Codenames: Deep Undercover (2 plays)
  • Cards Against Humanity (2 plays)
  • Ion: A Compound Building Game (2 plays)
  • The Dragon & Flagon (2 plays)
  • Burgle Bros. (1 plays)
  • Rum & Bones (1 plays)
  • Concept (1 plays)
  • A Game of Thrones: The Board Game (Second Edition) (1
  • plays)
  • Jaipur (1 plays)
  • Cyclades (1 plays)
  • Scythe (1 plays)
  • Betrayal at House on the Hill (1 plays)
  • Ghost Stories (1 plays)
  • Robinson Crusoe: Adventures on the Cursed Island (1
  • plays)
  • Lost Cities (1 plays)
  • Lords of Waterdeep (1 plays)
  • Pictionary (1 plays)
  • Covert (1 plays)
  • Skulldug! (1 plays)
  • Emergence (1 plays)
  • Karmaka (1 plays)
  • Catan (1 plays)
  • Sushi Go! (1 plays)
  • Takenoko (1 plays)
  • 7 Wonders Duel (1 plays)
  • A Game of Thrones: The Card Game (Second Edition) (1
  • plays)
  • Saboteur 2 (expansion-only editions) (1 plays)
  • For Sale (1 plays)
  • Dixit (1 plays)
  • Imperial Settlers (1 plays)
  • Epic Card Game (1 plays)
  • Scattergories (1 plays)
  • Star Wars: Imperial Assault (1 plays)
  • Colt Express (1 plays)
  • Cosmic Encounter (1 plays)
  • Ca$h 'n Guns (Second Edition) (1 plays)
  • Tokaido (1 plays)
  • Citadels (1 plays)
  • Shadows over Camelot (1 plays)
  • Star Realms (1 plays)
  • The Wall of Shame

    The Wall of Shame is a list of games in my collection that I have not or did not play in 2016 and its a ridiculously long list. I did very poorly trying to play all the games in my collection in 2016. My poor effort pretty much came down to 2 factors, my acquisition of board games increased throughout the year and I was struggling to get new games to the table. I fell victim to a lot of hype around some games and sometimes it worked out very well but others I haven’t managed to get to the table yet. Overall there was 50 games in my collection that I did not play and at the start of the year I said to myself I would sell the ones I didn’t play.

    A lot of the games on my Wall of Shame are set to be culled from my collection to make room for new ones. Below is my Wall of Shame with the games that are being culled marked with an *.

  • 10' to Kill
  • Android: Netrunner
  • Ashes: Rise of the Phoenixborn
  • Blood Bowl: Team Manager – The Card Game
  • Boss Monster 2: The Next Level *
  • CapCom Street Fighter Deck-Building Game
  • Castles of Mad King Ludwig
  • Cthulhu Realms
  • Dead of Winter: A Crossroads Game
  • Dominion
  • Dominion: Intrigue
  • Doomtown: Reloaded *
  • Draconis Invasion
  • Dragon Punch
  • Drinking Quest: Journey into Draught
  • Dungeon Roll
  • Elections of US America Election: The Card Game
  • Exploding Kittens *
  • Forbidden Island *
  • A Game of Thrones: Hand of the King
  • Grifters
  • Hive Pocket
  • Killer Bunnies: Heroes vs. Villains – Blue Starter Deck *
  • King of New York
  • King of Tokyo *
  • Legendary: A Marvel Deck Building Game
  • Medici
  • Munchkin *
  • Munchkin Legends
  • Neuroshima Hex!
  • Nexus Ops
  • Pack of Heroes *
  • Pandemic: Reign of Cthulhu
  • Race for the Galaxy
  • Robinson Crusoe: Adventures on the Cursed Island – Voyage of the Beagle (Vol. 1)
  • Samurai Sword *
  • Samurai Sword: Rising Sun *
  • Seasons
  • Shuffle Heroes
  • Star Realms: Colony Wars
  • Star Wars: Empire vs. Rebellion
  • Star Wars: The Card Game
  • Terraforming Mars
  • Tiny Epic Galaxies Deluxe Edition
  • Welcome to the Dungeon
  • Xenon Profiteer
  • You're Fired!
  • Zeppelin Attack!
  • Zombicide Season 3: Rue Morgue
  • Zombies!!! *
  • Overall in 2017 I look forward to playing a more diverse range of games by setting up game days to play specific games and setting expectations prior to meetups. As Wil Wheaton would say:

    Play more games!

    2017 Personal Goal

    January 13, 2017

    I’m typically not one to set myself resolutions, I’ve written or blogged about them in the past but then nothing ever came to fruition and I lost motivation after about a month. At the start of 2016 I decided to set myself one main goal which had a couple of aspects to it but being a single goal it was easy to keep focused on rather than having a whole list of resolutions. Besides even Mark Zuckerberg sets himself a single personal goal each year so it must be effective to some extent.

    In 2016 my goal was to play more board games, my collection had ballooned to the point of me struggling to play many of them so I decided to try to:

    • Play all of the games in my collection at least once
    • Play 10 games at least 10 times
    • Play 100 games at least once

    Even though I didn’t complete any of these goals, it at least had the effect of providing a point of focus and I think I will make a separate post on how close I came.

    My 2017 Goal

    One of the things that has been a point of frustration with myself is never being able to keep focus on a single side-project to the point where I get something that I can give a user. I feel like I have only been able to do this once because I was on a hard deadline so it was difficult for me to deviate from the delivery date. I built an app that simulates The Amazing Race for my girlfriend and I to celebrate 1 year of being together.

    The Amazing Race

    The app was complete with 12 stages and she could only progress to the next stage when she was either at the location or a certain amount of time had elapsed. She was blown away by the whole thing, it was so awesome to see her reaction to it and that is what has inspired my personal challenge for 2017.

    In 2017 I aim to complete 6 side projects that I have previously started or conceptualised and written down.

    This is also partially inspired by 1 Project Per Month (1PPM), 1 Game A Month (1GAM) and the 12 startups in 12 months work of Although I didn’t want to commit to a one month timeline for each project because I know throughout the year things will come up that make me need to put off what I’m working on at the time. I have also made the distinction of working on projects that I have previously started since I would like to get some of them finished and my problem has never been starting projects. That is not to say I can’t work on new ideas, they may be really great, its just my priority will be on the ideas that previously got me excited but then I lost focus.

    One concern I have is the very real possibility of developer burnout. Juggling full time work and side project work has the possibility of causing developer burnout; it is something I have experienced and it typically strikes when you least want it to.

    My definition of complete is something I can put in the hands of users and allow them to use without constant intervention from myself. I think the real challenge comes in delivering a minimal set of features that allows for people to use a product because I have been known to succumb to scope creep.

    Early Thoughts

    I have gone into this with a few thoughts on what I would like to work on throughout the year. This includes:

    • This website. Starting off the year I decided to go down the route of using Jekyll on Github pages with Cloudflare to deliver my website. I have developed my personal site in the past using Angular 2 or React but really a static site is all I need. I am using this great theme called beautiful-jekyll from Dean Attali.
    • The Amazing Race builder and app rewrite. Initially when I developed my Amazing Race app, the race was entirely hardcoded within the app. I would like to change this so anyone can build their race through a web portal and then within the app you can enter a race ID to get access to it. I would also like to rewrite the app partially because I structured it incorrectly and by the time I realised, it was too late for me to rewrite it before the deadline date.
    • At least one game. I have multiple games in progress but I have never put in the effort to complete one. I kind of want to attack these as game jams initially and then polish from there. I would really love to get a game that I have made in the hands of friends and family to see their reactions.
    • Something using either the Board Game Geek API or Riot API. Ever since Riot released their API, I have always wanted to do something with it. Through my job currently, I am doing a lot of work on data visualisations in the browser so I think it would be a good way of getting more indepth knowledge. Last year I started building something with the Board Game Geek API to keep track of my personal goal but it never got completed.

    The last 2 ideas I’m going to leave completely open ended for now and see what inspires me when I go to work on them.

    Tracking my Progress

    Ideally I would like to do something like a “Friday Retro” post on this page with a changelog of the things I worked on for the week but I need to come up with a way of making it automatic so that I don’t ignore it. An easy way would be to set a reminder to do it but I want to automate the process somewhat so I can maybe jot down notes in a branch during the week which automatically gets merged into the master branch on a Friday. I’ll continue to explore this idea as I ramp up my progress.

    I look forward to updating you on my progress throughout the year and I really hope that this is the start of something really productive and awesome!