As an MMO, Tau Station is obviously a construct of various high-level technologies directed toward the creation of a great user experience. In this section, our team shares some knowledge about what, how, and why we use various technologies and the outcomes they have on the development of the game.
When reading through the literature of how games are built, we find that a common pattern for many games is the Entity-Component-System (ECS) pattern, first used in one of our favorite games Thief: The Dark Project. Tau Station uses ECS for items the characters can find and it’s proven very flexible and since we’re not a traditional “graphic” game, some of the known drawbacks of ECS don’t apply to us. However, we also make use of traditional object-oriented programming (OOP) and that’s where we wish to avoid a common trap that many software developers fall into: multiple inheritance.
There’s a little-known secret in the software industry. If you’re in the industry long enough, talk to other people in your field, and maybe head to developer conferences, you’ll hear the secret whispered about from time to time.
In one of our recent posts we described some of the work we’ve been doing to improve Tau Station’s star map. This week we’re going more in-depth about the process and will even show some of the code we’re using.
Initially, a canvas map was all we offered the player.
When we approached this, we asked ourselves one question:
We’ve always envisioned the Tau Station Universe as a place of escape and adventure, somewhere you can go when you want to step away from the world for a time. It’s important to us that we create it in such a way that everyone who wants to can explore and enjoy the universe with us. We’re doing our best to build a user interface that is accessible to as many people as possible, and in today’s post we’re going to share a little bit about the technical work that goes into that.
Previously we discussed the tech stack that Tau Station runs on, but today we thought that we’d give some in-depth examples of the software hurdles we face. There will be Perl code in this blog entry, but the concepts should be generally familiar to anyone with a software engineering background.
As we mentioned in the tech stack post, we use Catalyst for our Web framework. For those unfamiliar with Perl, you could think of Catalyst as “Ruby on Rails” for Perl, but that’s not really accurate. What makes Catalyst so powerful is that unlike other Web MVC (model-view-controller) frameworks, it doesn’t have strong preferences for how you implement the various components. You’re not forced to choose a particular ORM for your model—you can even skip an ORM entirely—and you can choose whatever tools you wish for rendering your view (typically, the stuff you see in a Web browser). As a result, you can choose exactly the tools you need for each component of your system.
Mission Builder is one of the most important components of Tau Station and yet, ironically, it’s one that not a single player will be directly exposed to at any point in time. So what is Mission Builder, and what makes it such a valuable part of Tau Station? It’s the most heavily used content creation tool in the game, used by our narrative designers to create jobs, missions, NPC dialogues, and more. While Mission Builder isn’t quite one-stop shopping for the narrative team, it’s the equivalent of a Swiss Army chainsaw hanging in the team’s toolshed.
The inventor of the web, Sir Tim Berners-Lee, famously said:
“The power of the Web is in its universality. Access by everyone regardless of disability is an essential aspect.”
We share Sir Berners-Lee’s vision. As we design Tau Station, we’re making sure we meet level AA of the W3C’s Web Content Accessibility Guidelines, and are developing the game to be playable across a wide range of devices and browsers. We have some passionate developers on the team to help us reach our goal, and one shares their thoughts below.
People have been asking about our technology stack, so this post will be a bit “tech heavy.” Further, it will be opinionated tech-heavy. You’ve been warned!
When I started Tau Station, I knew that I was primarily looking for a robust Web framework, a flexible ORM (object-relational mapper), and a strong database. Due to my having been heavily involved in open source for years, only open source products were considered.