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.
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).
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:
- Less (Mixins for cross-browser compatibility)
- Responsive Design
- Canvas.js (for Charts)
- Tape (for Tests)
- jvectormap (Maps)
Also, I just found out that this software has been accepted to a conference in Paris (as part of an academic paper). Woohoo!
Here are some more screenshots…