For a certain generation, our introduction to coding came via BASIC. Even if you don’t consider yourself a talented programmer, you may recall typing something along the lines of the following:
10 PRINT “You smell”
20 GOTO 10
Invented by John G. Kemeny and Thomas E. Kurtz for Dartmouth College’s General Electric computer system in 1964, BASIC was the go-to programming language for millions of users for decades. It gave people the confidence to dabble and, in some cases, lay the foundations for a glittering coding career.
What made BASIC (or Beginner’s All-Purpose Symbolic Instruction Code) extra-special was that it was built into most 8-bit computers. It was there, ready to use at the flashing cursor prompt, almost begging the user to type something. Today, that may appear rather quaint, but here we are in 2019 with an updated version of BBC BASIC making an appearance on the Nintendo Switch.
Introducing FUZE, then, which has long been available to download for Windows, Linux, and Raspberry Pi. The latest version – FUZE4 Nintendo Switch, or F4NS as it’s also known – aims to provide an accessible coding environment on the console, and invoke some of the magic seemingly lost during the transition from 8-bit to 16-bit computers all those years ago.
“The text-based screens and flashing cursors on 8-bit computers were replaced with graphical user interfaces when 16-bit machines were introduced,” explains Philip Oliver, who, along with his brother Andrew, cut his coding teeth using BASIC on the ZX81, Dragon 32, BBC Micro Model B, and Amstrad CPC. “This removed the ability for the curious to start playing around with programming, and it had a real negative impact.”
During this generational shift, BASIC became something that needed to be booted from a floppy disc on more advanced machines such as the Amiga and Atari ST. “But BASIC was designed to be easy and accessible for first-time users, and it encouraged people to tinker and learn the fundamentals of coding,” Oliver continues. F4NS aims to get people tinkering once more.
Coding back the years
Once F4NS is installed it’ll be available to users with a tap – not quite as quickly as it was on, say, the ZX Spectrum, but not far off. “It’s possible to turn on your Nintendo Switch, load F4NS, and have it auto-start in the text editor with your current project,” says Jon Silvera, managing director of FUZE. “It takes about five seconds from selecting the F icon on the Switch’s home screen, and you can then type some code and enter ‘run’, just like the good old days.”
It’s taken the developers two years to get to this point, having been given Nintendo’s approval for the project in May 2017. From the start, they wanted a system where you could jump right in, and Switch’s portability made it the perfect candidate. “It’s an ideal platform because of the ‘play anywhere’ accessibility factor,” Silvera says.
Ironically, F4NS also opens up the possibility of direct coding on consoles – the machines that originally removed any programming ability. “With the NES and the Sega Master System, programming at the BASIC level pretty much disappeared,” Silvera affirms.
“It was a shame, because back in the 1980s, when the language was widely adopted for the education channel, we had more coders than we knew what to do with after just two or three years. BASIC also transitions to advanced languages perfectly, allowing people to learn about loops, variables, and ‘if-then’ statements – concepts that can be transferred to any other language.”
With that in mind, F4NS focuses on text-based coding rather than a block-based environment like Scratch. But like Python, it isn’t trying to be a simplified, high-level language, either. “Computers don’t think in blocks, libraries or ready-made windows and dialogue boxes,” Silvera says. “Computers think in on and off switches, or ones and zeros and, for me, it’s a case of ‘deal with it’.”
Even so, he insists F4NS can be taught to seven-year-olds. “We have managed to retain the simple-to-grasp syntax of BASIC but allow advanced coding techniques for maximum flexibility and versatility,” Silvera argues.
Switched on
F4NS makes good use of the Switch’s power, with updated commands and built-in functions to allow for fast 2D and 3D graphics. There’s a sprite editor that includes scaling, rotation, animation, velocity, and collision detection, while the language also supports tiles and sprite sheets, ambient lighting and shadows, dynamic 3D terrain, a pick of 1600 shapes, and a 3D camera, among a range of other features.
An important part of F4NS’s offering is its library of assets, and so far, 31 artists have contributed to the various packs that allow coders with little artistic prowess of their own to produce some solid results. There’s an array of vehicles, buildings, backgrounds, and characters available to choose from, and Silvera says more asset packs will be available to download over time.
The Oliver Twins have contributed assets from their past hits, as have scores of other developers. “We’ve even thrown in an animated 3D Dizzy for good measure,” Silvera says, referring to the Olivers’ most famous character. “But it’s also possible to draw your own artwork.”
The decision to make use of 3D has, however, caused some issues. “Users need to be able to choose from thousands of game characters and scenes and to be able to mix them up, edit them, and so on,” Silvera explains. “But 3D adds an entirely new problem, which is why there have been some delays in developing F4NS.
It’s clear that 2D graphics are already in a usable format and are easy to convert, whereas 3D models can be from a variety of different base formats and then bone, animation, and even materials can suffer through conversion. The sourcing, testing, and implementation takes an enormous amount of time.”
The developers have put a similar amount of thought into programmable audio. “We wanted the ability to create sounds and to program them in real-time. It’s probably a homage to the Commodore 64 more than anything, but we also think it’s better if you learn how sounds are made up – although we’ve included thousands of sound files from bellowing orcs to a landlord with a Brummie accent.”
Levelling up
If it’s going to take off, however, F4NS needs to hook in fledgling coders quickly. Despite the Joy-Con and touchscreen support, as well as the option to program via a USB keyboard (“Sitting in front of a monitor is very reminiscent of the original home computer environment,” Silvera says), if the learning curve is too steep, F4NS will still put newcomers off.
Thankfully, a video promoting the language shows would-be users a couple of commands that some readers will immediately recognise:
1 loop
2 print (“hello world”)
3 update ()
4 repeat
Such a simple program with instant results was the best method of encouragement back then, and it could be argued that its impact remains high today. Vincent Baillet, who worked for Loriciel in France between 1984 and 1994, certainly thinks so.
“Unity is good for making games, but you need to spend some time with tutorials in order to start doing anything,” he says. “I suppose F4NS simplifies the first steps. If you can have rewarding results within minutes, then you will have the motivation to continue coding. Only the most motivated people can spend 20 hours learning without results.”
Despite all this, reviving a programming environment from the past isn’t going to be easy. Tech expert Sean McManus, author of the book Mission Python, began coding on an Amstrad CPC, and his encouragement came from the strong ecosystem which surrounded the computer. His BASIC programmes would be printed in magazines such as Amstrad Action, and that would earn him money and feedback.
“The main difference between the 1980s and now is that, back then, the bedroom coders were the ones making the commercial games and selling type-in titles to magazines,” he says. “There was a strong shareware and public domain community too, so you could be confident you could get your programs out there to other users.
“It’s not clear how shareable the programs from F4NS will be, so that might be one limitation on how much impact people can have coding on the platform, and how motivated they will be to stick with it in the long run. People will enjoy coding and sharing their work with their friends and family, though, and this could be an important first step in someone’s coding career.”
Con-fuze-ion?
In order to establish FUZE, the company has been delivering coding workshops to schools, STEM events, and holiday clubs across the country, chalking up more than 600 so far. Tens of thousands of children have been taught as a result, but others can benefit from an assortment of online tutorials, reference guides, and example programs.
“I was lucky enough to be exposed to a small amount of programming in college and again in grad school,” says American programmer Dona Bailey. “It sounds fun and amazing to me that kids and young people – and anyone else too, I imagine – can take up coding as an extension of playing games on a console.”
Bailey knows a thing or two about programming – on joining Atari’s coin-op division in 1980, she created the hit arcade game, Centipede. “Anything that leads someone into coding seems good to me, and it seems like the ultimate prosumer move, in that consumers of an art form such as video games are moving on as a producer of the same art form,” she says.
But are we in danger of being exposed to too many programming languages, ultimately making it more difficult to know which ones are best suited? Not according to some of the people we’ve spoken to.
“Programming languages mostly share a common ground, and it’s not so difficult to switch from one to another,” argues Baillet. “It’s much more difficult to switch from one operating system to another, because differences can be huge between environments: switching from JavaScript to Swift is easier than switching from HTML4 to iOS, for example.”
Oliver agrees. He says the National Curriculum suggests students learn two or more programming languages to encourage variety, and he believes a focus on gaming will spark interest, suggesting motivation is an area where standard studies are “failing miserably.” “Kids love playing games, and F4NS taps into that enthusiasm,” he argues. “They need a programming language that delivers the tools that allow them to make their own games, and so learn important technical skills.”
Oliver also says there’s a huge void between Scratch and Blockly, taught at Key Stages 1 and 2 in schools, and C++, C#, Java, Lua, and Python, taught at degree level. “It’s important that Key Stage 3 and 4 students have an easy and fun text-based language to migrate to, and F4NS can bridge that gap,” he says.
He points to his own past as proof that learning different languages can pave the way to a bright future. “My brother and I progressed from using BASIC to learning 6502 and Z80 Assembly, which resulted in us making more than 50 critically and commercially successful games,” he concludes.
“We also learned 68000 Assembly and finally C with the advent of PlayStation and, in the process, set up Blitz Games. Learning a language like BASIC was far from counter-productive for us, and many IT and software engineers today trace their roots back to the language. We feel F4NS will have the same positive effect.”