Iwata Asks is a series of interviews conducted by former Nintendo Global President Satoru Iwata with key creators behind the making of Nintendo games and hardware.



Iwata Asks Home

Nintendo 3DS



Iwata Asks: StreetPass Relay Points

You Do This Here Too?!

Kawahara

When tag mode relay points existed for the 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

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 is 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 the 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 plazas of their favorite 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 ultimate 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.

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 utilize 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 mange 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 analyze 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?!”

Konno

Nonetheless, it’s quite different compared to the days of the Nintendo DS. We’ve made a lot of progress. Back in the Nintendo DS, 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 points, 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 the 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 going to stash DS systems in coin lockers all over the world! (laughs)

Everyone

(laughs)