By a French Nintendo fan, LordSinclair3DS
French people : retrouvez cette interview traduite en français en cliquant ici


Learn how an independent developer managed to work with Nintendo. Here is the interview of Jens Andersson, who created Colors!3D - a fun eshop painting app that is coming soon on your Nintendo 3DS.

 

ABOUT YOU AND COLLECTING SMILES

Could you tell us about Collecting Smiles, a firm name that perfectly fits Nintendo philosophy! How many people work there? Where are you based?

Collecting Smiles started off as a label that I used for various experimental projects while I was working in the games-industry (at Starbreeze Studios at the time). The name has a pretty long story behind it and was the name of a project I was planning to do, but I think it's a perfect fit for what we are trying to do: to use experimentation to create fresh new interactive experiences and offer new outlets for people's creativity.

We're based in San Francisco and while is still mainly just me with the help of my friend Shara on the business side, I'm working together with a few other people on a project basis. For example for Colors! 3D, I've got Ernst who has helped me with the user interface from Amsterdam, Rafael with the gallery from Warsaw and Brian with QA from Portland. I guess we are pretty much the definition of a networked developer.

Before talking about Colors! 3D, just tell us what's your favorite video-game ever? And what's your best 3DS game so far?

Best video-game ever? That's pretty much an impossible question to answer. I tried to make a list some time back, but I couldn't narrow it down below 20 games. Near the top we have games like Another World/Out of this World and Turrican 2 which are both super-old. For newer games I think Demon's Souls is the one that really blew me away. On the 3DS I haven't played too much yet. It feels like it's just warming up and there are plenty of games on the horizon that I'm looking forward to. I had a really good time revisiting Ocarina of Time though, where I finally got to finish it this time around.

ABOUT COLORS 3D

  

Jens Andersson

 

Tell us about the initial idea behind Colors! 3D... Why did you choose to develop a 3DS version of this app? 

Well, I've been working on Colors! as a hobby project since 2007. The community has kept the project alive and kicking and once the 3DS came out I felt that it was time to take it from a hobby project to something real. It's just a great platform some something like Colors!.

Colors! 3D brings several unique features for a painting app: in-app gallery, painting playback, 3D layers, simultaneous painting through a local multiplayer mode... According to you, what's the key feature?

 Definitely painting in 3D. This is a key feature on the 3DS and this hasn't really been possible to do before, and Colors! 3D really highlights this. I still remember the first time I got it up and running and could play with it on the real hardware. It's just something that you have to try. 

ABOUT COLORS 3D FEATURES


You wrote about latency as a key component of the user experience. Did you manage, in the end, to get the responsiveness on the 3DS? 

Yes. I don't think I would have shipped it otherwise. It's running in 60 frames per second everywhere where it counts. Hopefully people will be able to appreciate all the work that went into that. :)

On the iPhone version, you use some kind of a tilt opacity/tilt thickness option. Is it something you considered for the 3DS?

 Tilting was never an option on the 3DS. I don't think that feature was very popular on the iPhone but even if had been, tilting your device makes it hard for you to view the 3D effect and I wouldn't have wanted to put the user in that position. However, the 3DS has buttons. I've dedicated up and down on the Control Pad (or two of the standard buttons for the left-handers) for something that I call an opacity-modifier. Basically you will be able to tune opacity on the fly as you are painting. I was surprised on how well that actually worked and play-tests seem to suggest that while it's not as good as pressure-sensitivity, it's pretty darn close.

About the painting itself: how do colors blend? Does the ink behave like gouache or something? 

Yes, sort of like gouache. It's nothing very complicated. You can control the opacity of your brush and that is used to blend your current stroke onto the canvas. Each layer has transparency though, so the only physical comparison would be like painting on multiple layers of glass.

About the online gallery: what kind of browsing options are available in the gallery? Is there a way to "star" a painting, to see the best ones, to search for a keyword and to comment on paintings?

It's very similar to what you can see on the web-page (https://colorslive.com). You can browse, comment and like paintings. This is one of the best features of Colors!, which is all thanks to the helpful community. I just provide the tools. 

Are there keyboard shortcuts/hidden features we could use when painting? 

I've made sure to make good use of all the 3DS buttons. Mapped to these are features like zoom/scroll, eyedropper, change layers and the opacity modifier I talked about above. Basically everything you need on the fly. This is all designed the way it is to keep you in the "flow" and focus on what you are trying to create rather than the tools.

ABOUT DEVELOPPING FOR THE 3DS

Are you happy with the 3DS Dev Kit and Nintendo support for you (as a very small studio, not exactly the size of Capcom or UbiSoft) ?

It's been a very interesting development process. I have a background in big console games development and getting to do everything myself has definitely been a challenge. This includes things like coordinating localization for 7 languages and going through age rating process with ESRB and PEGI. These are things that the publisher takes care of on big development teams. As for Nintendo's support they have been great. I think that Colors! 3D is a very different project for them and perhaps even a bit out of their comfort zone, which is why it is taking so long for it to ship. However, they have been super helpful with trying to accommodate everything I wanted to do with it. I think they understand what we're trying to do and want to see more of this on their platforms.

For someone fluent with C++, how much time does it take to get a first 3DS simple app up and running?

The tools that Nintendo provides includes samples and demos, so getting something up and running is very quick. After that it all depends on what you want to do. Colors! already runs on a bunch of different platforms, so it took about a week for me to get the first working version of it up and running. 

Just for fun, could you give us a few C++ lines from Color! 3D?

It browsed through the code to find anything that felt relevant and understandable, but it was really hard to find a short snipped of code that did that. But here's the function that sets the current painting brush to the settings it had on the last save. This code is run after you have loaded a painting and before you start to paint.

 

void CDrwCanvas::SetLastBrush()

{

  for (int i = 0; i < MAX_USERS; i++)

    m_lUsers[i].m_Brush.Clear();

 

  int iCurUser = 0;

  int nCommands = m_DrwFile.GetNumCommands();

  for (int i = 0; i < nCommands; i++)

  {

    CDrwCommand Cmd = m_DrwFile.GetCommand(i);

    if (Cmd.IsSetLayer())

      m_lUsers[iCurUser].m_Brush.m_iLayer = Cmd.GetLayer();

    if (Cmd.IsColorChange())

      m_lUsers[iCurUser].m_Brush.m_Color.SetARGB(Cmd.GetColor());

    if (Cmd.IsBrushChange())

      m_lUsers[iCurUser].m_Brush.ApplySizeCommand(Cmd, m_OrthToImageScale.m_X, m_DrwLayers.GetMinBrushSize());

    if (Cmd.IsSetUser())

      iCurUser = Cmd.GetUser();

  }

}

 

What's the most difficult programming issue you went through with Colors! 3D? 

Performance. While it might not look like I'm rendering too much on screen, I'm using huge textures that are completely dynamic. This is not something the hardware is optimized for and I had to do a ton of extra work to get it working in full frame-rate.

What's the thing that ended up being easier than expected?

I think getting the actual 3D up and running and working went quicker than I thought it would. Nintendo has really thought through how games can and should use the 3D features.

Is there middleware for the 3DS ? Did you use any?

There are middleware like video players and stuff available, but I didn't use any. 

ABOUT THE ESHOP AND NINTENDO

Is it totally wrong to say that a developer like you gets about 60% of the public price (VAT excluded), for each copy sold?

I can't talk about the actual numbers due to our confidentiality agreement with Nintendo, but yes, it's a sort of revenue sharing deal like you are describing.

Do you think, like some do, that the future of portable gaming belongs to Apple, or do you think Nintendo will always find unique gimmicks and keep their portable systems alive? As a developer, do you think it could be more profitable to release a downloadable game for the eShop than for the App Store ?

Apple has certainly made a splash the last couple years, but Nintendo if anyone has proved that you can succeed by innovation over and over again. Right now the market on iOS devices is way bigger so the potential for profit is greater there. However, so are the number of developers and it's very hard not to drown in the noise. Personally, I'm excited to see the 3DS taking off as it has in the last couple of months, and I believe I made the right choice in focusing on the Nintendo 3DS with Colors! 3D.

If you had a magic wand that could make Satoru Iwata fulfill 3 wishes, what would they be ? 

Haha. Wouldn't that be something? I'd wish for pressure sensitivity for the Wii-U, a new Advance Wars and finally for him to call me and ask if Colors! 3D could be bundled with a Nintendo 3DS Lite. :)

ABOUT YOUR FUTURE

So, what's next? Do you have other games / app in mind? In development? Are they TOP SECRET or can we have a few hints about them?

I will keep focusing on Colors! for the near future. The community has been begging for an Android version for a long time, and now is the time to make that happen. There are other new platforms as well that I want to look into. Both the PlayStation Vita and later on the Wii-U look super-cool and I definitely think Colors! would be a great fit for them.

So, will you apply to develop Colors!3D for the Wii U?

I hope so. The Wii U should a great platform for Colors!, but I can't say if it's going to happen or not yet. It depends on the cost and availability of development kits, how Colors! 3D does, and in general what platform would be best to prioritize.

Thanks a lot, Jens !

Thanks for all the questions and the opportunity to talk about Colors! 3D. I can't wait until it is finally release and I get to see what people can do with it.

 

MORE ABOUT COLORS!3D

https://www.collectingsmiles.com/news/