Panic Tycoon: A Global Software Development Game

This semester, as part of a group of four talented developers, I helped to create what is known as Panic Tycoon. This is a technical write up of the game making process. Feel free to play Panic Tycoon online!

In January, we were tasked to create a software development simulator game. Now, as soon as I heard that I was a little alarmed. “Software Development Simulator” and “Game” don’t normally go together, unless looking at some similar attempts such as Game Dev Tycoon (the namesake of our game).

The teams were selected by classmate skill osmosis, nearest neighbour, and a variety of methods which I can’t quite put my finger on. This worked out remarkably well, and so began most classmates first foray into game development. In fact, it also beckoned the beginning of what was the single best executed example of pseudo-real-world, client-developer, faux contract work, that Trinity College has offered us over the course of our degree.

the single best executed example of pseudo-real-world, client-developer, faux contract work, that Trinity College has offered us over the course of our degree.

I was fortunate enough to work in a team with Miles, Kevin, and Tom.

Since Miles, Kevin, and I had a good knowledge of JavaScript, the decision was made to develop using Node.js.

Miles sorted all of our potential ops difficulties within the first few days by hooking up our code repository (Git on GitHub) with a continuous integration tool called Travis. This ensured that our project could be independently built from a blank machine, and would run tests after each commit. Highly useful and well recommended.

We also used another continuous integration tool, called Testling, for the front end. This ran all of our front end tests on various versions of the big five browsers. (IE, Firefox, Opera, Chrome, Safari) this ensured compatibility with our target platforms throughout development.

We used HipChat, by Atlassian, to collaborate and communicate with each other. This proved to be a huge success, since we only met in person once weekly.

The first thing we needed to evaluate was what functionality we needed to support in both the front and back end. We ended up going for a databaseless setup, and using browserify to send the whole game down the pipe to the client. We needed a testing framework, and decided to use Tape since it integrated well with both Travis and Testling (and produces proper TAP output).

We started with a very simple and plain HTML and CSS page, with a tiny bit of JavaScript in the background. This was to be the beginnings of Panic Tycoon.

Panic Tycoon Start Screen

In the end, we used a heap of npm modules, a few JavaScript libraries, and as little HTML as we could get away with.

To ensure maximal resolution independence, we used SVG maps, and Fonts, and refrained from using any images.

We used Less to avail of multi-browser mixins, and to have variables for colours in our CSS.

I’m super happy with the game we produced, surprisingly enough it’s actually fun to play, and we got positive sentiment from classmates. All in all, we have some really nice technology (and research) in the background, coupled with a nice visual style.

A quick overview of the features:

  • Platform Independent
  • Choice of Agile and Waterfall Development Methods
  • Fuzzy Logic Controlled Problem Simulator
  • Allocation of “Home City”
  • Fuzzification of “Man-Hours” Needed per Module
  • Fully Configurable Projects
  • Map Based Progress Display
  • Allocation of Developers per Module
  • Module Task Completion Calculator
  • Culture Influenced Reporting
  • Inquiry Interface to Each Site
  • Pre-emptive Intervention Interface
  • Results Screen with Graph

And a look at the Technology:

  • HTML
  • CSS
    • Less (Mixins for cross-browser compatibility)
    • Responsive Design
  • JavaScript
    • Node.js
    • Browserify
    • jQuery
    • Canvas.js (for Charts)
    • Tape (for Tests)
    • jvectormap (Maps)
  • Travis
  • Testling
  • HipChat
  • Trello

Also, I just found out that this software has been accepted to a conference in Paris (as part of an academic paper). Woohoo!

Feel free to play Panic Tycoon online or to view the source!

Here are some more screenshots…

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s