I am currently involved in two projects. One is maintaining and updating Front Mission Online (FMO). FMO is an online action game, which is available on PC and PS2. It has been in service for over a year now, but we continue to have a steady stream of additions and changes to keep us busy. My other project is the development of an unannounced project which began just recently.
|Front Mission Online|
May 7, 2006, 10:15
I say goodbye to my wife and kid before leaving for work. My commute consists of about 10 minutes of walking and 10 minutes on the subway. By Tokyo standards, my commute is ridiculously short. For a game programmer though, a short commute is key.
Square-Enix is located in Shinjuku, one of the busier parts of Tokyo. One advantage is that there is a major electronics shopping area here. Sometimes I stop by one of the major stores to shop or simply look around for various console and PC games coming out. On major release dates (such as for the recent Nintendo DS Lite), I also swing by to look at the long lines.
I arrive at work. The company requires us to be at work by 11:00am. I usually get to work closer to 10:00am, but I got distracted doing some reading this morning. On one hand, it's great to have time to do stuff at home before work. On the other hand, I would prefer to go to work even earlier if that meant I can go home earlier (having a newborn baby has changed my priorities quite a bit). As the company becomes larger though, I expect that we will start moving towards a more normal schedule. A few years ago, whole teams staying at the company overnight was not uncommon. Now, the vast majority will go home by around 10:00pm at night.
My first step at work is to check my email and get some batches running. A lot of the work for our team is already automated. Before we even get to work, we have various scripts run automatically to build and distribute the latest version. I just have a few tasks which I never bothered to automate for my own personal environment. (As I write this, I am realizing that I probably should automate them…)
I also have several emails waiting for me concerning what happened to FMO during the night. There are usually a few reports from various users that need to be checked out.
After finishing a few email replies, I have a visit from another programmer. We spend a few minutes discussing the server configuration for FMO. As much as we like to spend most of our time on the new project, out of necessity we spend significant amount of time maintaining FMO.
We have a very casual work environment. A lot of discussing and deciding is done at various people's booths. I personally like this atmosphere, but we have had problems because such decision-making does not leave a paper trail. Now we try to enforce a rule where decisions have to be written and posted on an online system.
I start preparing for our programmer's meeting at noon. This is a meeting for the new project. Because we're in the beginning phase of a project, a lot of time is devoted to meeting and talking, and very little in actual coding. There's a whole bunch of issues that I want to talk about, so I spend some time preparing.
We start our programmer's meeting. We spend about an hour talking about everything from development environment and tools, to coding standards. Until recently, much programming has been done ad hoc, without much structure. Development environments were often designed and implemented by one or two "superhero" programmers. Though that worked well to a point, it's definitely showing signs of age. Now we're in the process of trying to add more checks and control.
Lunch is definitely a good time in Shinjuku. There is plenty of great cuisine to choose from. We could easily go months without visiting the same restaurant.
Today, I gather several programmers to go to a tempura restaurant in the same building. Wednesdays tend to have a lot of meetings, so we keep lunch short.
On Mondays, on the other hand, we often eat at the office while playing various card games or board games. It seems Germany is the only country making new card games these days, but they're really great for looking at different game designs. On Fridays, we often take a little bit extra time to go to one of our favorite restaurants or try out someplace that's somewhat out of the way.
We're back at the office. There's a bunch of things I can do for the new project, but I suppress my urge and move onto my bug list for FMO. The next update is still a little bit away, but I figure getting these bugs fixed first will make me feel better in the long run.
In our project, we have one tester who works closely with our team. We also have a larger testing team at a different location, but the in-house tester works as a point man for bug questions.
I have a question about one of the bugs on the list. I go ask the in-house tester about it, and have him show me how to reproduce the bug. I then go back to fixing bugs.
Right as I am preparing for my next meeting, I am told that the servers for the testers have gone down. I quickly look at the logs and the core dump, and figure out what is wrong. Servers have a tendency of crashing when you have meeting or when you are about to go home.
We have our weekly progress meeting. This is the meeting where developers, testers, marketing, and online support come together. Online games, unlike packaged games, require ongoing coordination between various people to keep both development and service running smoothly. New features and new events require all these different divisions to work together.
The weekly progress meeting ends, but is followed by a quick developer meeting. Some scheduling issues come up, so we spend half an hour rearranging the tasks.
I am back at my desk. I fix the servers that went down earlier. The problem was simply a version discrepancy between the server and client. (Although the server shouldn't have crashed. That's just a bug.) The biggest issue with online games as opposed to package games is maintaining all the different versions. We constantly have 4 or 5 versions in progress that we have to juggle around.
After the server is back up, I go back to fixing the bugs. I have knocked out all the easy ones, so I now have to dive into some of the more difficult ones.
I wasn't able to recreate one of the bugs that was listed. I try to ask the tester about it but realize he's already gone home. Since I need to ask questions regarding the rest of the bugs on my list, I end my work on Front Mission Online for today and move on to my other project.
There's still no coding involved in the new project, just a lot of document writing. But there's nothing quite like the excitement of a new project.
On some days, we clock out at 8:00pm and spend an hour of playing games. Our current game is Warhammer 40,000: Dawn of War. Today was a pure work day though.
20:45I call it a day. I am often the first to leave work. I used to worry and stay later, but I have recently realized that more hours at work does not mean more work done.