4. “You Do This Here Too?!”

Kawahara:

When Tag Mode relay points existed for Nintendo DS, you used the system itself to exchange data with another person, but now data uploaded from access points such as Nintendo Zones is stored on a server for a bit. So we decided to prepare a server at the company, but we had to wait about a month for delivery.

Iwata Asks
Iwata:

But you had to hurry.

Kawahara:

Yes. So we decided to use a cloud20 service, which you hear a lot about these days. To be specific, we used AWS21. Because of this, whenever we decided to use a certain number of servers, we were able to use new servers within that day. We were now able to use a very convenient service.20. Cloud: A type of computing that saves and processes data over the internet on an as-needed basis.21. AWS = Amazon Web Services: Amazon.com provides remote computing services that are used by many major corporations worldwide.

Iwata:

Using the cloud as servers is very suited to making a service when, as with StreetPass relay points, you cannot predict ahead of time how many hits will come in from the 100 thousand access points around the world. This way, you can easily increase the number of servers in line with circumstances, or decrease the number if they aren’t necessary.

Kawahara:

That’s right.

Iwata:

Actually, Miiverse22 for Wii U has a similar structure. Many large-scale web service companies out there are switching their server structure over to the cloud.22. Miiverse: A network service that allows people all over the world to connect through their Mii characters and more fully enjoy video games integrated with Wii U console at the system level. People can interact by sharing their thoughts in the communities of their favourite games and by posting handwritten illustrations and comments.

Yamazaki:

Yes. It’s impossible to imagine starting this kind of service in such a short time without a cloud. Another reason was a need to speed up response time. When a player comes to a relay point, we have to take in that person’s data and pass on someone else’s data.

Iwata:

If there’s a lag, the players will leave.

Yamazaki:

Right. So during development, we talked about potentially placing servers for America in America, and other servers within their targeted regions. But after evaluation, we ultimately decided on placing all servers in one single location. But just the fact that we were able to consider these things in the first place and being able to work flexibly when we needed to, was an advantage with a service like AWS.

Iwata:

How long does it take to complete a StreetPass exchange at a relay point?

Konno:

This is data I measured myself, but 20 to 30 seconds when it’s fast, and if it takes longer, about one minute.

Iwata Asks
Inoue:

It depends on the connection speed, but since it takes a little while to connect to the server, it would feel like it takes that long. However once the connection is established, the actual processing on the server takes less than a second for most cases.

Kawahara:

Um… to begin service quickly, we adopted a number of methods. Can I go on?

Iwata:

Yes, please.

Kawahara:

Internally, there are several server development teams that proactively utilise open-source software. We’re one of those teams, and we used a number of open-source software programs.

Iwata:

Programs, manuals and other information for open-source software is available on the internet, and they’re available to anyone. It’s “open”, so the world’s programmers can continually polish it up. A representative and well-known example is the operating system Linux23.23. Linux: An operating system developed by a university student in Finland. It was later released as freeware and improved by many developers.

Kawahara:

That’s right. Out of those open-source software, we adopted a data management software called HBase24. HBase can handle high amounts of processing, while being good at increasing system performance by adding on servers. I thought it was suited for our scenario where data would be processed constantly, and how we could easily build upon it to expand the infrastructure when we needed to depending on the workload. We were already testing it out on another project since about the end of last year, so we had learned quite a bit about it already.24. HBase: A product developed by a non-profit corporation in America that supports open-source software. It is used by major social network services such as LINE and Facebook.

Iwata:

Since it is open-source software, general web companies aside from Nintendo are using it.

Kawahara:

Yes. We also used Puppet25, another open-source software program. It’s a server configuration management program. Actually, we’ve been using it for three years now, and we’re able to reuse its existing settings as a starting point whenever we start working on a new project.25. Puppet: A configuration management tool for automating system management. The programming language is Ruby.

Iwata:

To start a large-scale network service you first have to configure multiple servers to work together. Managing that configuration takes a lot of work, so you use a specific software to manage them. You prepared ahead of time so we could begin this project any time.

Kawahara:

Yes. We were able to release this three months after starting the project because we adopted Puppet ahead of time. We also adopted a tool called Fluentd26, another open-source software program. It provides a mechanism for collecting access logs that accrue on a server, in real time, and makes it easy to analyse them.26. Fluentd: A tool for collecting large amounts of log output. Fluentd makes it possible to process big data for particular purposes.

Iwata:

By using Fluentd, you can understand in a flash what kinds of users are having StreetPass encounters, how many hits there are, and at which access points.

Kawahara:

Yes. That made it possible to grasp the entire situation with a time lag of only about one minute. And just one more…

Iwata:

Yes, go ahead. (laughs)

Kawahara:

A lot of our team members are good at working in Ruby27, so for this system Ruby is used in a lot of areas.27. Ruby: A programming language developed to engender stress-free programming.

Iwata:

Ruby is a well-known programming language developed by a Japanese person, Yukihiro Matsumoto.

Kawahara:

Yes. Other teams use languages like Java28 and Perl29, but this time we needed to begin service as quickly as possible, so we adopted Ruby, which is a light language.28. Java: A programming language used in a number of fields from utilities to video games to business applications.29. Perl: A programming language suited to writing programs for web applications, system management, text processing and other uses.

Iwata:

It is well known around the world how Nintendo is a company with lots of people making video games, but so many people must assume that when it comes to constructing server systems and the work of managing and operating them, we entrust that to external companies, with no one in-house doing it, but that simply isn’t true.

Yamazaki:

That’s right. The Network Development & Operations Department alone has over 100 members, most of whom are engineers. There are also engineers who work on client-side, so it’s not all server engineers.

Iwata:

I’ve heard that when someone new joins, they’re often surprised and say, “You do this here, too?!”

Iwata Asks
Konno:

Nonetheless, it’s quite different compared to the days of Nintendo DS. We’ve made a lot of progress. Back in the Nintendo DS days, we used an actual DS as the relay spot! (laughs)

Iwata:

Yamazaki-san and others were putting them into coin lockers by hand! (laughs)

Everyone:

(laughs)

Iwata:

But this time, we use the already existing Nintendo Zone infrastructure at shops and aimed to begin the service by simply changing Nintendo 3DS software30 and the servers, all the while making sure it would work with every existing access point, so we were able to begin service rather quickly.30. Changing Nintendo 3DS software: Nintendo 3DS system version 6.2.0-0U or later is necessary for using StreetPass relay points. Nintendo 3DS systems running an earlier version must be updated.

Kawahara:

That’s right.

Konno:

Actually, I had two ideas for plans to begin this project. One was using the existing access points, and the other was the method of physical placement such as back with Nintendo DS, so at first I asked, “Which is more realistic?”

Iwata:

I suppose you were told the latter was impossible. (laughs)

Konno:

Yeah. That’s right! (laughs)

Yamazaki:

I was like, “Give us a break!” There’s no way I’m going to stash DS systems in coin lockers all over the world! (laughs)

Everyone:

(laughs)