Fuze4 Nintendo Switch, a developer's review
- Chris Wallace
- Mon Jan 06 2020
Fuze 4 Nintendo Switch is a new programming tool for those learning to code, but is it any good?
Back when I first started writing online I wrote video game reviews for titles both new and old. Those days are behind but one 'game' has brought my attention this Christmas, that game being 'Fuze4 Nintendo Switch'.
Today's there's so many more STEM toys and products for kids than when I was in school, it's great to see programming is being made accessible to a younger audience.
But with this change I've had my reservations towards some products that claim to 'teach you to code'. My main doubt being products that use a proprietary or unknown language. In today's world of online learning, using a custom 'training-wheels' language instead of a 'industrial' language like JavaScript or Python seems counter intuitive ("if you're going to learn programming, why not learn real-world programming?"), furthermore it results in having to learn the difference between a 'training-wheels' language and an 'industry' language. So how does 'Fuze4 Nintendo Switch' 'stack up' as an entry-level programming learning game?
What is it?
Fuze 4 Nintendo Switch is the latest iteration of the Fuze product line. Fuze is a UK company providing products and workshops for learning programming mostly aimed at school kids or programming beginners. Helping them learn the core concepts of programming and the promise of becoming proficient in games development.
Fuze has released proprietary hardware in the past, providing workstation computers reminiscent of the BBC Micro. However, 'Fuze4 Nintendo Switch' is the latest iteration, available as a single download on the Nintendo eShop.
How does it work?
Fuze is an all-in-one development environment, reference guide, asset library, compiler and sharing platform. All the development tools and materials come as a part of the 'game', providing a self-contained environment for program and game development. This isn't a 'Mario Maker' style game building tool, this is proper coding.
The game comes with a series projects installed to showcase the 2D and 3D capabilities that can be achieved with the Fuze editor and compiler. Most of these are beginner tech demos or the makings of more sophisticated platform or arcade titles.
Along with a program library, we have have library of Media assets at our disposal as well, including 2D sprites, background, 3D models and sounds. All the pieces one would need to develop a game.
Because the Fuze game is a self contained environment, there's no way to import or export your own content (most probably why Nintendo allowed this game in the first place). However, what's there has been 'donated' from other developers in the industry, and is growing through subsequent updates.
Most surprising for me was the presence of assets for the character 'Dizzy' created by the Oliver Twins. I grew up on the Dizzy games (particularly 'Fantastic Dizzy' on the Amiga 1200), so having the ability to (in theory) make my own 'Dizzy' mini-game, using the same sprites and backgrounds from my childhood no less was exciting!
Now onto the main part of the 'game', the code editor. The development environment for Fuze is a simple text editor with some handy highlighting and line numbers.
Now the main question
"How am I supposed to code on a Nintendo Switch? There's no keyboard!"
Have no fear, the team at Fuze have not only added a touchscreen keyboard when on the go, they've provided USB Keyboard support out the box. So you can properly type and navigate around your code just as if you were using a computer. Not only can you type, but there's some basic handy shortcuts available as well. Cut/Copy/Paste/Undo/Redo are all here. Once the switch was docked, I unplugged my mechanical gaming keyboard from my PC, added it to my dock and suddenly I was typing on my Switch.
There's no mouse support sadly, but the more I used the editor, the less I found myself reaching for the unplugged mouse on my desk. JoyCon and bluetooth 3rd-party controllers are supported, providing using build/run/cancel operations from the press of a (physical) button, and the controller buttons also prompt other handy functions such as showing/hiding the keyboard and documentation.
Is it any good?
So after spending the good part of a day getting to grips with 'Fuze', and going through the core concept tutorials, I found I got a grasp of basic programming in Fuze quite quickly.
Fuze itself DOES use a proprietary language, which appears to be a hybrid of JavaScript, Python and BASIC. Fuze is clearly a love-letter to the 80s and early 90s BASIC bedroom programmers, using a procedural programming based language. Although it uses a form of BASIC, the language and building with the language is more modern than a ZX Spectrum for sure.
For reference it supports the following:
- Print/Console Writeline
- Inputs
- Sleep
- Infinite Loops (to run a game environment)
- For Loops
- If/Else Statements (but no 'else if', however nested ifs are supported)
- Arrays
- Data Structures
- Functions (but not closures)
- Screen/Input/Sound/Rumble APIs
- File Imports
I'm sure there's more it can offer, but these are what you're introduced to at the beginning. Despite the language being proprietary, the offering here is a good start for getting to grips with programming.
Of course as someone who works in code everyday, I was curious as to how much I could push the language ("can I do closures? can I do arrays of functions?"), most of my (high) expectations weren't met sadly, then again I'm not exactly the target demographic! But for a total programming n00b this is a good start (with a disclaimer that in the real-world there's a lot more you can do).
By the end of my adventures with Fuze, I was generating moving shapes and sprites on screen calculating their positions and boundaries just as I've done in my professional life. I was listening to controller interactions and tackling the common quirks with locking/unlocking inputs in a loop, and refactoring my code into reusable functions.
Although the video tutorials are a bit rough around the edges, they're very clear and informal for the beginner. They break down core concepts into plain english, and address them at a good pace. I highly recommend these videos and have linked to all of them so far on my resources page.
In terms of other support, there's a comprehensive suite of docs to work with, explaining the core concepts of the language, and a suite of tutorials from 'Hello World' to full game development. There's API references as well to integrate with the Switch hardware.
Although I found the docs hard to navigate at some points, it was a welcome addition to the dev environment.
There's a growing community for Fuze over at Fuze Arena, and you can also share your programs with your friends. Sadly there's no source control or anything like that (your code stays on your Switch, so don't lose it!)
I know for a fact that Fuze is still being actively developed and there's a few things I'd love to see it add over time:
- Classes
- Closures
- Design Pattern Documentation
- Asynchronous code
- Intellisense (or documentation shortcuts)
- Mouse Support
- Source control support (even if it's a proprietary solution)
Is it worth it?
If you want to get into programming and are intimidated by setting up proprietary single-board computers or complex dev environments on your laptop (you just want to write code to get a taste for it) this is the product for you. Although the language is a bit 'training wheels' it will help you step over to an industrial language, particularly if you're looking to get into game development. And importantly, it's a portable dev environment with everything you need baked into a single game on a handheld console.
If you're a hardened professional in the industry with a Switch, I'd still recommend it. It has certainly refreshed my passion of programming for fun. If nothing else, it will help you exercise your craft using only the basics, and make you think how you would solve problems that are typically solved in more mature languages.
Overall I'd say 'Fuze4 Nintendo Switch' is a rare and unique gem on the Switch for programming enthusiasts and future developers. 'Fuze4 Nintendo Switch' is available now on the Nintendo Switch eShop.