Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I'm interested in dabbling in Nintendo DS, 3DS, or GBA development. I would like to know what my (legal) options for development tools and IDEs are.

In particular, I would not consider moving in this direction unless I can find:

  • A programming language that has managed memory (garbage collection)
  • A unit testing tool akin to JUnit, NUnit, etc. for unit tests

I would also prefer if other tools exist, like code-coverage, etc. for that platform. But the main thing is managed memory and unit testing.

What options are out there?

share|improve this question
    
You'll be struggling, but good luck. –  The Communist Duck Mar 15 '11 at 17:26
3  
Don't expect anything for NDS or GBA that's a) Completely legal and b) Managed –  Ray Dey Mar 15 '11 at 17:34
2  
Well, I guess GBA/NDS dev is not for me, then. –  ashes999 Mar 15 '11 at 18:14
    
I wouldn't completely disregard it though. If you get a basic game working on the NDS, you can easily show it off at interviews, not only does it show your passion about creating games, but it also shows that you're the kind of programmer that takes things like memory allocation and performance seriously (which is a very desirable trait in a game developer) –  Ray Dey Mar 15 '11 at 18:16
1  
I doubt there'll be managed runtimes for the NDS in a few years. You just can't do managed code with 4MB. I don't think 3DS specs are public yet, but I would be surprised to see over 64MB. –  user744 Mar 15 '11 at 19:14
show 5 more comments

3 Answers

up vote 3 down vote accepted

GBA and DS dev is not open to individuals, neither the software or the hardware used in development can be acquired unless you are an employee of an established game development company.

That being said, there was a fairly good homebrew GBA dev community back in the day, and I think it has carried on into the DS somewhat.

Check out http://gbadev.org, they have a lot of good info on what it takes to make a GBA game.

Personally, my first game before getting into the industry was a homebrew GBA demo. I had about 6 months of programming experience after reading a book on C++(which I didn't finish) and I was able to make a small demo, so it's certainly doable with the rights tools.

As I recall, I used VBA, tonc's awesome tutorials and Programmer's Notepad with GCC(info at tonc) to make my little demo in C++. It was a great learning experience and really not terrible difficult for someone who's coded before.

share|improve this answer
add comment

Don't let the lack of memory management scare you off. A rudimentary smart pointer class is surprisingly easy to create on your own, and there are lots of other easy ways to simplify managing your memory:

  • Use static objects for things that you need one or a fixed number of.
  • Use object pools for objects you need to create and destroy dynamically and whose lifetime you don't know.
  • For transient objects (things that you don't need for more than a frame) a simple per-frame allocator (similar to auto release pools in Objective-C) will work well.

If you want to code for the GBA or DS that implies to me that you do want to go a bit lower-level than the average Flash game, and memory management is part of that. Give it a try and you may find it's not as bad as you feared.

share|improve this answer
    
+1 - When you only have 256KB of RAM (as in a GBA), it's probably more a chore to find a place for new pointers than figure out where bad ones went! –  user744 Mar 16 '11 at 23:12
    
I spent years coding (enterprise) C++ applications. I may eventually do what you say; but the lure of managed memory is the lure of productivity, and given scant resources, I'd rather spend time worrying about features than pointers. –  ashes999 Mar 17 '11 at 2:21
    
I was worried about the same thing when I started writing an interpreter for a little language in C++. I spent literally a couple of hours writing a smart pointer class and that was the last I had to worry about it. I just pass Ref<T> everywhere and I'm 90% of the way back to a GC language. –  munificent Mar 17 '11 at 5:34
add comment

Your legal options? None short of getting a Nintendo dev license. And I doubt that's going to happen.

Unit testing, managed code? I seriously doubt that. AFAICS, you need to code it in assembly, or native C/C++. I feel some C++ unit testing framework will probably work though..maybe not for the DS specific bits.

For actual development, the one that came up a lot from Google was DevKitPro. Tutorials are available here. (Though the library doesn't seem well documented.)

share|improve this answer
    
Why would you doubt the feasibility of getting a Nintendo dev license? Is it intentionally designed to be difficult for small companies and one-person teams? –  ashes999 Mar 15 '11 at 18:14
1  
@ashes999 Pretty much. Nintendo (like Sony and Microsoft) is a business at the end of the day. They need established teams that they know can deliver and make them a profit. Plus the devkits are pretty expensive. –  Ray Dey Mar 15 '11 at 18:18
1  
IIRC Nintendo requires that you have a brick-and-mortar location (home office doesn't count) w/ adequate security before they will allow you to get one of their development kits. –  Noctrine Mar 15 '11 at 18:55
    
@Noctrine you're right (at least, they had that for GBA dev kits). I may or may not have a brick-and-mortar building in the future; I'd rather not depend on that, and explore other options. –  ashes999 Mar 15 '11 at 19:17
    
Nintendo have been very clear that they do not want to deal with 'garage' developers. They want to deal business to business so any development work you do will be using Devkitpro and a device like the R4 or you'll work for a larger developer. Unless you want to make DS titles as a learning exercise or as experience for a future job, I'd develop for more open platforms where you have a chance to legally selling what you create. –  Luther Mar 15 '11 at 22:02
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.