StarQuest #14: Encore
Originally posted on July 3, 2016
As you can see from the ending of the last post, I wasn't planning to write another one of these. Yet here I am.
After turning over SQ 3.0 to QuietHelper and Liggo, I faded into the background. I considered myself a consultant. I answered questions and helped out occasionally with the problems that they faced from time to time, but didn't do any real work for SQ. Several months passed in this way. I immersed myself in college life and tried to move on from SQ, but I couldn't really. SQ had been a huge portion of my life for three years and I almost didn't know what to do with myself without it. My thoughts kept on going back to SQ, and I would occasionally catch myself thinking thoughts like "If I had to do it all over again, I would...". I never thought that I would act on any of those ideas, but I had them.
One week, a few months after I retired, I was in a routine conversation with Quiet and Liggo and I heard that somebody had threatened to take down the server again. At the time, this seemed fairly insignificant. Threats to the server are not rare. Every once in awhile we'll permaban somebody and they'll start talking about how their older brother is a pro hacker and they're going to hack our server and make us pay for banning them and we tend to more or less ignore it. In this particular case, it had been awhile since SQ had been threatened, and it made the team think about security, so Quiet began to review and update the server's defenses. Nothing extra-special; just small things like password updates and security checks.
A day or two later, as Quiet was checking through our security, he realized that our main server database system was not taking automatic backups. This was surprising to us at the time. I knew that our auxiliary database systems had automatic backups and I had assumed that the main one did as well. The main database was not set up by me; it was set during the George/Stealthy era and I had historically had very little to do with it. Databases were something that Stealthy and George were both quite experienced with and I was not, so I was quite content to leave those systems to them as much as possible. I told Quiet this and he decided to add database backup setup to his list of things to do. At the time, we didn't really consider the threat credible, so Quiet felt no particular need to rush the backup setup. Looking back with the benefit of hindsight this seems foolish, but the key thing to remember is that we are threatened quite regularly and it's impossible to distinguish a valid threat from a butthurt permaban who is just trying to fool us into unbanning them.
This case was actually a butthurt permaban, too. The difference this time around was that it was a butthurt permaban who had previously been close friends with a member of our development team. The butthurt gentleman used his knowledge of his former friend to guess the team member's password and gain access to our main database system. And then he wiped it.
This all happened late at night on a Friday and at the time I was out enjoying a typical college friday night. I got back to my room quite late and fell asleep without checking my computer. The next morning when I woke up, I checked my phone in bed and saw a huge quantity of Skype messages. Reading them, I quickly realized what had happened, and laid back in bed and considered my options. With its database wiped, SQ3 as we knew it was toast. I could have shut down SQ entirely right then, but I didn't entertain that idea for long. I don't like to quit. I could have asked Quiet and Liggo to start SQ3 over from scratch, but I didn't think that it would have had much success if they did that. At that point, many members of the playerbase were dissatisfied with SQ3, and I was as well. I disliked many of the compromises that I had had to make in creating it, and I thought back to some of the new ideas that I had come up with for ways that I could have created it better. I thought about having Quiet and Liggo and the jrdevs create an SQ4 on their own, but I didn't think that the jrdevs were experienced enough at that point to pull it off.
And so I knew what I had to do. I would come out of retirement and I would guide the creation of yet another generation of StarQuest. I sat down in front of my computer, called up Liggo and Quiet, and we began to talk. We brought in Moneybags118, veteran SQ gameplay designer, and he joined the discussion. I told them what I intended to do and my ideas for how to do it, and they agreed that it was the best way forwards. I told them that I would come out of retirement to see it happen. So we began to plan. First we began to think about the short term - we considered the aspects of the server that were still running, and what sort of product we could make available in the interim before we were able to release SQ4. Then we began to plan out my ideas, turning vague thoughts into concrete solutions. We spent the entirety of that Saturday talking and working on the server, and by the end of the evening we had it all sketched out. We planned an ambitious timeline - we intended to have a minimum playable product within two months at the maximum, one month if everything went according to plan. Nothing on SQ had ever been completed that quickly before, but we were confident in the abilities of our team.
For the next two months, we worked hard. Our interim solution, SQLite (basically a stripped-down SQ3 with everything unlocked for everyone) entertained the playerbase while we worked. Unlike previous SQ efforts which had been developed in secret, we published SQ4 information as it was completed; the playerbase followed the development process every step of the way. The team worked hard, and our productivity had never been better. The junior devs grew in enormous strides as game designers and as coders, and by the end of those two months they had more than earned the right to be called developers in full. After two months, we completed the setup and found ourselves ready to launch an alpha.
Launch day for SQ4 alpha was rough, but it was smoother than any other SQ release by far. Launch day was pushed back several times, as we encountered last-minute issues that hadn't manifested themselves before. Once the actual release was pushed out, things were rocky for a couple of hours, but stablized within a record-low time frame, and it was a success.
That alpha launch, or "phase 1" of SQ4, only included the "rim" planets. As I write this, the "core" space world and the core planet Xira have been released, which were phases 2 and 3. There are two more phases to go, 4 and 5, before SQ4 can be considered fully completed, but I will have no part in their creation. Since the initial launch of SQ4 my involvement has been fading again, as the new developer team has clearly demonstrated themselves capable of going on without me. The launch of the core and Xira was done entirely without my assistance, led by developer Ginger_Walnut and QuietHelper, as was the recent update to Minecraft 1.10. I'm very proud of the developers that the team has become. If the server were hacked tomorrow and all of our code were deleted, I wouldn't feel the need to step in and help, because I truly think that they'd be able to rewrite everything without me.
Nowadays I'm back to my consulting role. I have a summer internship that takes up most of my days, writing code for Norfolk Southern Railroad (which is extremely appropriate for me if you know me, trains are my thing). It's rare for a freshman to get an internship, but I credit SQ with giving me the experience necessary to get into one so early. Just as I left SQ we recruited four more junior devs: dan14941, Elttob, martinjonnson01, and Kaldron. They seem to be doing well, but Quiet & Walnut have been leading their training so you'd have to ask them. I'm happy with the team and the server that I leave behind; I feel that we have plenty of talent to carry SQ into its fourth year and beyond.
As I sit here writing this, I'm in my favorite chair in the living room of my grandmother's house in suburban Atlanta, in the US state of Georgia. It's July 3rd, the night before independence day; there are fireworks going off behind me over the lake. I've written most of these "journey" posts here in this chair over the years, during downtime on family visiting trips. With many distractions and only my laptop to work with, I've never been able to productively write code while I'm here. I usually feel like doing something productive and SQ-related, though, so I use the time to write posts. Unfortunately this is definitely the last time I'll be able to write a post from here, as I'm actually here now helping my grandma to move out; she's moving up to live near my parents. This chair, from which the majority of the story of SQ has been told, is one of the last pieces of furniture that is still here; most everything else is in boxes in the garage. No matter what, there won't be any more Journey posts written quite like these. New SQ team, the story is now yours to tell. I'm not sure which one of you will write, but I hope that one of you chooses to continue this. It's good to reflect.
Fourteen is a good number to end on. Thirteen never felt right.
All the best,
- Drew