We've said it before, and we'll say it again: The general-purpose, relatively simple programming environments of the BASIC family are a great place to get started with coding. Developer SmileBoom first brought its own variant of BASIC to DSiWare in 2012 with the charming Petit Computer, and now is back and stronger than ever with SmileBASIC (known as Petit Computer 3 in Japan). This edition expands its scope to open up for all of the nifty hardware features the 3DS has to offer, while making some smart changes to become more user friendly.
Just like Petit Computer, SmileBASIC channels the Commodore 64, MSX and similar gaming hardware of yesteryear to create an open environment in which users can code their own applications using the BASIC language. However, this isn't the BASIC of yore - SmileBASIC shakes up the syntax and capabilities enough to be considered its own dialect of the language. BASIC vets won't be able to bring over their old computer-lab code untouched, nor might Petit Computer programs work if directly ported. It shouldn't take too long to get up to speed if you have prior experience with the language, though.
SmileBASIC the application is first and foremost a tool: it's capable of powerful things in the right hands, but only goes so far to teach you how to wield it. If you want to learn, you'll need to do your homework. There isn't a guided tutorial to walk you through how to code - or even how to navigate, which can be a challenge for someone unfamiliar with things as basic as file structures - so you're pretty much thrown into the deep end from the get-go.
Even if there isn't an instructor, there's plenty of documentation to dive into. A handy web manual is accessible from the main menu, which then opens in the 3DS Browser. Thanks to console multitasking you can switch back and forth between the manual and documentation on the same device. Having access to a second screen will help immensely if you need to reference the manual a lot, but this is workable. And, of course, since the manual is online, you'll need an Internet connection to access it - something to keep in mind for those who code on the go. In addition to the manual there are a number of sample programs that you can tinker with and learn how to accomplish both simple and more advanced coding feats; the "Help" button can also offer contextual assistance when coding, but that too can only teach so much. There's a "bigger picture" education component lacking, so for that you'll need to rely on your own experimentation or seek out help in the community.
That said, BASIC is a relatively simple programming language to get the hang of. Of course, that doesn't mean it isn't capable of complicated things, and thanks to the newer features of the 3DS hardware compared to the DSi, SmileBASIC has access to even more inputs and outputs to code for beyond the face buttons, D-Pad, and shoulder buttons. Want to code a game that uses the Circle Pad? Go analogue until your heart's content. Think that game would be cooler in stereoscopic 3D? Do it up with three planes on which to put stuff. The microphone and accelerometer are fair game, too. Go nuts.
You also don't need to be a pixel-art savant to make pretty games with SmileBASIC. Over 2,000 built-in sprites are yours for the using, or fire up the SMILE TOOL to design your own. A large library of sound materials for effects and music are included as well, or you can again compose your own masterpiece.
While SmileBASIC supports all sorts of cool features, it sadly has a keyboard-shaped hole in its box of tricks. Coding in SmileBASIC requires pecking away with the stylus on the touchscreen's keyboard, as there's no keyboard support for 3DS. It's a functional but tedious way of entering text. Niceties like autocompleting commands can streamline the process a tad, but put in enough time and eventually you'll long for an easier way to type.
Community plays a really big part in SmileBASIC. While programming for yourself is great and all, it's just as exciting and educational to see what others can do with the same tools. Mercifully, sharing work is much improved this time around. With Petit Computer, importing and exporting software involved cumbersome QR codes to scan and manage - it got the job done, but wasn't a particularly intuitive way to share anything. SmileBASIC streamlines this process by allowing users to upload their work to a server, which can then be shared with a download key. The download key is a simple string of text, and so much easier to share than a series of images. We cannot stress enough how much simpler this new system is - alone, this one feature makes Petit Computer entirely obsolete. Well, that and Miiverse, which is practically built for SmileBASIC. Share screenshots of your work along with the download key and explore all the cool things other people are up to, all without having to hunt down an off-console community. (Although there's some great stuff outside of Miiverse, too.)
You can store up to 10 of your files at a time on SmileBoom's servers for sharing, with a max file size of 4 megabytes. Splurging for a SmileBASIC Gold Membership will increase these limits to 100 files up to 20 megabytes each. These limits only apply to files shared on servers, not on what you keep on your system - the only limit on local files is the size of your memory card.
SmileBASIC is a crazily powerful sandbox in which to mess around with programming, offering a great entry point for beginners and a rad utility for seasoned coders to play with. Remember, though, that this is a straight-up coding environment - not a Mario Maker-style WYSIWYG editor - so it'll take a lot of work to achieve results.
While it's still cumbersome to type longer stretches of code with the stylus, clunky text entry is a small price to pay to have such a powerful utility with you at all times. The improvements to sharing work go a long way towards making SmileBASIC a more pleasant experience over Petit Computer, and having code access to the 3DS' hardware features propels this suite to the top of the programming heap.
If you're willing to educate yourself in this dialect of BASIC then you just might find yourself pulling off some stellar coding feats. Or, if you don't want to put in the time, you can still check out the cool stuff that others create. Either way, you're sure to be impressed.