Uncategorized

Game Developers Lounge

Photo 18-05-15 19 12 50

So finally Game Developers Lounge is over with. It was awesome, but man did all the preparations distract me. And I didn’t really do anything(!?). My biggest achievement was convincing EA Ghost to pay for all the beer. This, I am monumentally proud of, however. Huge thanks to everyone who helped organize the event and to everyone who contributed in whatever way. Extra big up to all you awesome folks who demoed your games at GDL, that’s what it’s all about! :)

Certainly feels like the event was a massive success, so I’m confident we’ll be pulling something similar off again.

Now onward forward with TJD3! 😀

Monitoring and tracking

slack_incoming-webhook_128

Disclaimer: This is going to be a nerdy rant so unless you’re into iOS development and/or server maintenance, feel free to ignore :)

Last week I discovered that one of our web services had gone down. It was not a critical incident, but I realized (something I’d known for long but kept ignoring) that now that we work 100% on TJD3, we tend to pay very little attention to the well-being of chapters 1 and 2. So in an effort to monitor the health of our existing apps and services, I set out to automate a couple of things.

Uptime Robot

First off, I set up an Uptime Robot account and configured a simple keyword monitor that makes 5 min periodic checks to the web service that broke down the other day. If my service breaks down again (or gives a weird response), Uptime Robot will notify us instantly on email and on Slack.

slack

The other web service we have is used to store tokens for iOS push notifications. Whenever someone gets a “TJD would like to send you notifications”-popup and accepts, a token is stored on our server so that we can send that user a push notification later. This is really important to us, because it’s pretty much the only way we can contact existing iOS customers to let them know the next chapter is out.

So to make sure the subscriptions are working properly, I asked veteran SkyGoblin Markus to setup a little cron job to deliver daily subscription stats directly to Slack. Now, if the subscription stats stop or stagnate, we’ll know something’s wrong.

What’s this Slack then? It’s a super nifty tool for team communication and I love it with all my heart.

Then I went on to set up a Crittercism account and integrated their SDK (one line of code) with our iOS apps. Crittercism offers a pretty smart way to automate symbolication for crash reports using post-build events in xCode. Now we can properly monitor and investigate iOS crashes during beta and production. (iTunes Connect already supports some crash reporting but it’s very limited.)

crittercism

Last, I finally got off my ass and setup a proper bug tracker! Up until now I have collected bug reports for TJD in scattered email conversations, twitter messages, paper notes and excel documents. Mostly, issue tracking has been kept in my own head and lord knows that’s not a safe way to store business critical data. With multiple versions of multiple products on multiple platforms, that simply isn’t sustainable.

leantesting

After reading up and trying out a couple of trackers I decided to go for Lean Testing, mostly because it is.. well, lean. You create an account, set up a project and invite testers – then anyone can read, create and comment on bug reports for that project.

Some people prefer more enterprise-like solutions like Jira (and I’m sure it’s awesome for larger teams) but that’s way more bulky than what I need. Rule of thumb: if your support & maintenance systems require support & maintenance, you may be wasting time.

On a final note, each of these monitoring services are super easy to setup, a matter of minutes literally. And they’re all free (for my purposes anyhow, costs may vary). What took me a few days was to read up and decide which services to use. Got a better suggestion? Please write a comment and let me know!

HONOR NIGHT VI

honor
Team “REIGNING CHAMPIONS” (Anette, Mårten, Tindy, Oscar, Linus) took home the highly coveted prize once again, their honor proudly defended in the brutal bloodbath that became of the SkyGoblin office, as the sixth HONOR NIGHT came to a close, last Friday.

For those unfamiliar with the concept, HONOR NIGHT is something we made up many years ago, and has become a bit of a company tradition that we host every time we find a good reason to, such as say, wanting to PARTYYEH (said with growling neanderthal voice). This time around we’re actually celebrating a bunch of stuff (such as the awesome best-music award but also the fact that our company now has existed for 10 years. holy balls!) We also wanted to make sure to use this great office of ours to the max before we are kicked out, which sadly happens next week, when our host Senri moves off to a new location. (Where will we wind up? Not sure. Possibly collaboratory, for a while.)

honorpeople
This sixth HONOR NIGHT may very well have been the biggest one to date, with people showing up from the majority of Gothenburg’s development studios to get in on a slice of the action. Among the contestants were Zoink, Image & Form, Hello There, and lots of other studios, big and small. Some of the games honorably contested in include Elasto Mania (We actually bought the game! I wonder if anyone ever did that before?), Sumotori, Mortal Kombat II, Towerfall, and the awesome, gut wrenching grand finale was held in Mount Your Friends.

band
There to entertain us with extremely freaky music were the band with no name and their armada of mindbogglingly rad home made instruments.

Big Thanks to all who joined in on the event and also a big hug to Jon who helped organize the actual tournament, something we SkyGoblins were too busy socializing to handle ourselves!

goblins

Mathias, Theo, Henrik, posing for the IGN article

In other news, we were recently visited by IGN Sweden, who made a nice (swedish) write-up about the history and current state of Skygoblin, check it out here. Thanks Gustaf for the interview and for the excellent photo shoot, I’ll save the nipple pics for another post! :)