10 Things Touched by BASIC
There’s been an enormous amount of software
programmed in various BASIC dialects over the decades, some of which proved
financially very successfully, spawned bigger follow-ups, or were impressive
simply from a technical point of view. Releases from the past 50 years are too
numerous to count. Here then are 10 interesting things, either programmed in or
somehow influenced by BASIC. Presented in alphabetical order.
Black Onyx, The
Henk Rogers, best known for negotiating the
Bullet-Proof Software deal that brought Tetris to the west on Game Boy,
also created one of Japan’s earliest RPGs, using a combination of BASIC and Z80
assembler. Contrary to what some sources say it definitely wasn’t Japan’s first
RPG, but it certainly grew to be popular and influenced many subsequent RPGs.
Also the manual was written by Hisashi Suzuki, who later became president of
SquareSoft.
Google Maps
David Ahl explains how far the influence of
BASIC goes: “My final computing book was Basic Computing Adventures
published in 1988 by Microsoft. The programs in it are fairly elegant in
construction - no spaghetti code - and some of the efficient routing routines
(think travelling salesman problem) from Subway Scavenger are being used
today by Google Maps and some GPS mapping software. Which just goes to show
that BASIC is an incredibly versatile language for all kinds of general purpose
problem solving.”
Little Brick Out
Steve Wozniak explains Little Brick Out in
Integer BASIC: “Once I put in commands for color and graphics, the first thing
I wrote was Breakout - we called it Breakout at first. Then I put in a command
that said if you type in command-Z it would automatically start playing, but
never miss the ball - it would fake people into thinking they were playing it
perfectly. I did this on my apartment floor, in Cupertino. I just remember the
green rug, and the wires going into the TV set, and I called Steve Jobs over
and showed him how I could quickly make one little change in my BASIC program
and the bricks would all change color. And I could make another change, and the
paddle would get bigger, or I could move the score to a different place. We
knew that games would never be the same - I was shaking, because games were
software finally. Not only software, but in easy-to-program BASIC. With
hardware at Atari it was a very hard job, now I sat down and in half an hour I
wrote Breakout with tons of options. I realised that if I did this in hardware
it would have taken 10 years what it took me half an hour in software.”
Kagirinaki Tatakai
Developed in just one month in 1983 for the
Sharp X1 computer by Professor Hiroshi Ishikawa, who was only 16 at the time,
this represents a spectacular achievement with Hudson’s BASIC compiler. It
features distinct left and right facing sprites, three functionally diverse
weapons, plus real-time damage to the level structure which results in emergent
enemy behaviour. Unsurprisingly it was one of the 10 winners of that year’s
programming competition held by Enix. Still astounding to play, even 30 years later.
Pitman
Developed for the Sharp MZ-700 computer by Yutaka Isokawa in 1985, using only Hudson’s HuBASIC, this fun
puzzler started out as a type-in listing for Oh!MZ magazine in Japan. It
received some BASIC follow-ups by Isokawa and was eventually updated for the
original GameBoy in 1990, being renamed Catrap (and is now available for
download on 3DS). There were also several unofficial remakes and ports, for
MBasic, DOS, GBA, plus a variety of official mobile phone upgrades. Isokawa
maintained a lengthy career in games, recently being involved with some Gundam
titles. A detailed history of Pitman, along with source code, is available onHardcore Gaming 101.
Portopia Renzoku Satsujin Jiken
Yuji Horii would later go on to helm each
of the Dragon Quest RPGs, but this was his first big success. You play
the role of a detective investigating a murder mystery. It was converted to
almost every Japanese computer of the era, made easy by being in BASIC, and
later was remade for Nintendo’s Famicom to become a best seller. Portopia
is regularly listed by Japanese developers, including Hideo Kojima, as being
one of their earliest influences - its similarities to Snatcher are
plain to see.
Quinty
Known as Mendel Palace for the NES in the
west, this was the work of Satoshi Tajiri, best known for creating Pokémon.
Although he would have needed a language more complex than BASIC to achieve
what he did with the Famicom, his understanding of the hardware came from
tinkering with Family Basic and then grafting circuit boards bought at
Akihabara onto the machine’s components.
Rebelstar Raiders
Given how many BASIC games there are for
the ZX Spectrum, it’s difficult to choose just one. Considering Julian Gollop’s
expansive career though, and the fact it spawned a series, it has to be this
strategic combat game from 1984. A variety of single screen maps and surprising
depth have made Rebelstar Raiders a well loved classic. Was followed by Rebelstar
written in assembly language, though even its manual attests to Rebelstar
Raiders’ BASIC origins.
Star Trek
An ingenious little text game requiring the
player to travel through 64 quadrants of space hunting down Klingon ships, all
while managing a limited number of years (turns) to accomplish the mission,
along with finite supplies of photon torpedoes, shields and phaser energy. The
Short and Long Range Scanning is well implemented despite being in ASCII. Ported
across a variety of systems under various names, it was also included in David
Ahl’s best-selling 101 BASIC Computer Games book, cementing its enormous
popularity.
Ultima
The follow-up to Akalabeth (also
made in Applesoft BASIC and recently distributed with QB64), this was the start
to Richard Garriot’s massively expansive RPG franchise. From this humble beginning
it spawned numerous sequels (admittedly moving on to assembler language for the
second), eventually leading up to the genre-defining Ultima Online.
What’s especially interesting is that Garriot apparently developed 28 smaller Dungeons&Dragons-style
games in BASIC before reaching this stage.
-------------------------------
10 BASIC Dialects
There are over 280 variants of BASIC - in
fact that there could be over 300, given how poorly documented some obscure
versions are. While broadly speaking they all do (or should do) the same thing,
some versions are particularly noteworthy.
Dartmouth BASIC
This is the original created by Dr John Kemeny
and Dr Thomas Kurtz, first made available in May 1964, and from which all
others eventually came. It underwent many revisions and improvements, the
biggest of which was probably INPUT statements in 1966, thereby making it
interactive. In recent weeks Dr Kurtz has recreated the original: “It turns out
that one of the original student programmers, Steve Hobbs, obtained an assembly
listing of BASIC from a General Electric programmer, the listing being dated
approximately late 1964, long before GE had made any changes to it. I hand
copied the source code from the listing, wrote an assembler in True BASIC, and
assembled it into octal. I then proofread by eye the octal from my assembly
with the 1964 octal. I then wrote an emulator of the GE-235 hardware. I had to
fake the user interface, which was constructed on the companion Datanet-30
hardware, but the result is a realistic recreation of what it was like back in
1964.”
Altair BASIC
As the first product from the then-named
Micro-Soft, this is the language that launched a multi-billion dollar empire.
According to David Ahl it was largely based on RSTS-11 BASIC: “I was pleased
with this as I was very familiar with it and really liked that version of
BASIC. Also, I had a folder of programs in RSTS-11 BASIC which I could roll out
in Creative Computing magazine and which later served as the start of
the next book, More Basic Computer Games. One of my projects, along with
Steve North, was to convert all of the programs in Basic Computer Games
to Bill Gates’ Altair BASIC. We put a crash effort into it and the new books
rolled off the presses in October 1978. Over the next few years the book was
translated into five foreign languages and a mass-market version was produced
by Workman Publishing.”
Integer BASIC
Coming on all early Apple II computers,
Integer BASIC was short-lived due to not supporting floating points. Steve
Wozniak explains why: “I wrote down a complete syntax chart of the commands
that were in the H-P BASIC manual, and I included floating point arithmetic,
decimal points, numbers and everything. Then I started thinking it was going to
take me a month longer - I could save a month if I left out the floating point.
I was a mathematician of the type that wanted to solve things with integers -
all you need for games is integers. I said: I’ll save a month and I’ll become
famous like Bill Gates if I write it the fastest I could. So I stripped out the
floating point. It’s too bad. I’ve thought back and that might be my one regret
on the Apple II - because eventually we licensed Microsoft BASIC, which was
floating point. They walked in the door, they had a BASIC for the 6502
microprocessor, and I was working on a floating point BASIC at the time, and I
thought ‘Oh my gosh, that’ll free me up to work on other things.’ So I was
happy to go along with licensing it.”
Sinclair BASIC
It’s very tempting to put BBC BASIC here,
by virtue of its connection to school education and being much faster, but the
ZX Spectrum’s equivalent wins out by being the more popular vote. An extension
of the BASIC in the ZX81 (the monochrome predecessor to the Spectrum), which in
turn was based on the 4KB ROM code of the even more primitive ZX80. John Grant
of Nine Tiles, the company which designed the Spectrum, wanted to rewrite the
way variables were stored to improve speed, but Clive Sinclair refused on cost
grounds. Despite being very slow and with an excess of commands overlaid onto a
tiny chiclet keyboard, it was nevertheless used by countless Spectrum owners.
N88-BASIC
In Japan NEC’s PC-88 and PC-98 computers
totally dominated the home market, right up until the late-1990s when Windows
started being integrated. This BASIC, or a version of it, is what came with
those earlier models - therefore N88-BASIC was probably the most commonly
available dialect. Having said that, there were BASIC dialects for all the
Japanese computers, including for the MSX, Hudson’s BASIC compiler for the
Sharp X1, and even a version of BASIC for the powerful X68000. In the case of
the X1, programming a game in BASIC was easier than on equivalent platforms,
thanks to the hardware’s Programmable Character Generator - hence why even when
using assembler language, it was impossible to port Kagirinaki Tatakai
to the PC-88. Of course better hardware doesn’t always mean better sales, and
the PC-88 reigned supreme.
Family BASIC
Nintendo collaborated with Hudson and
Sharp, which had prior experience in the field, to bring a dialect of BASIC to
its Famicom console. This wasn’t the first example on consoles, BASIC Programming
on the Atari 2600 predates it, but it’s certainly one of the more impressive.
Arriving June 1984, priced at ¥14800, it came with a burgundy toned Japanese
QWERTY keyboard and oversized cartridge, and had 2K of memory. The Nintendo
branded tape recorder, to save programs, was sold separately, though any
recorder which accepted input would do. The final revisions, V3, doubled the
memory to 4K.
YaBASIC
(Sony’s PS2)
Yet Another BASIC was available for Unix,
and was officially ported by Sony to the PS2, coming bundled on one of the
original demo discs. Marc-Oliver Ihm tells his story: “Some years ago I
received an email from a Sony official, asking if they could bundle my YaBASIC
with their device. I was pleased and said yes. Some weeks later I received a
PS2 for free by mail. That’s it. Sony also added some features for using
graphics. As far as I know, the real reason was to save taxes within Europe. If
they bundled the PS2 with a programming language, they could declare it as a
computer, instead of consumer electronics. That made a difference in the amount
of duty they had to pay when shipping to Europe.”
Batari BASIC
Not to be confused with the BASIC
Programming cartridge released for actual use on the system. Batari BASIC
allows you to programme a game using BASIC, and then compile it into a ROM for
use on an Atari 2600 emulator or hardware. Given the well documented
difficulties of creating anything for the system, this is an astounding
achievement. You won’t be able to replicate Pitfall 2, but by golly, you
can actually make some pretty good games for the system using BASIC!
QB64
Microsoft’s original DOS-based QBasic used
to come bundled with its Windows operating systems, and included some extremely
comprehensive tutorial files. The original release was just a BASIC
interpreter, but later versions of QBasic allowed you to compile your programs
into executables. As DOS compatibility faded from Windows, so did QBasic.
QB64 is a modern update by fans of the original, designed to work with the latest Windows operating systems. In truth it’s only a compiler, so booting a program will take a few seconds, but along with excellent backwards compatibility it features a whole bunch of new easy-to-use features to make games look and sound better than before.
QB64 is a modern update by fans of the original, designed to work with the latest Windows operating systems. In truth it’s only a compiler, so booting a program will take a few seconds, but along with excellent backwards compatibility it features a whole bunch of new easy-to-use features to make games look and sound better than before.
TrueBASIC
John Lutz, former CEO and owner of True
BASIC, recalls its history: “In 1982 and 1983, with the growth of
microcomputers, the gold rush was on to develop software. Much of the focus was
on programming tools and the early success of Microsoft was being noted. Three
graduating students of Dartmouth College lobbied professors John Kemeny and
Thomas Kurtz to create a commercial software company and recreate their
successful BASIC programming language into a cross-platform product. They regarded
Bill Gates rewrite of BASIC to be substandard and felt they could do better.
The alumni of Dartmouth ramped up a development staff and by 1985 produced
versions of True BASIC for DOS, Macintosh, and Atari. Sadly, no one seemed to
foresee that programming tools would become a VERY small niche product for
microcomputers and applications would reign. By 1992, it was clear to the
investors of True BASIC that major changes needed to be made. Without going
into all the details, a ‘survival’ plan was accomplished and, by 2000, all the
original shareholders were made whole and I took the company ‘private’.”
What, they didn't use the "10 Things touched by basic"? That's a shame...
ReplyDeleteAh, that Gorilla game from good old QBasic! Modifying that was my first programming experience. Good times...
Well, technically they didn't ask for it. I had the material, pitched the article, and they decided to squeeze it in at short notice - there was no room for boxouts.
ReplyDeleteRelating to the Woz's lamenting about Microsoft beating him in implementing floating point BASIC, Microsoft made BASIC languages for several home computers at the time. Their version for the Commodore 64 is EXCEEDINGLY bare-bones: no high resolution, no sprites, no controller support, and no sounds. ALL of these things you have to resort to using POKE commands, cryptic numbers and memory maps, and the language is slow as heck too because it does all its math using floating point! Even if you add together two integer variables, the numbers are converted to floating point, added, then converted back, so integer math is actually slower than floating pointmath
ReplyDelete(Gah, iOS bug cut that last comment off) More on Microsoft BASIC's suckiness: http://www.lemon64.com/forum/viewtopic.php?p=385428&sid=4767ef9d43b67265002028d582ad347d
ReplyDeleteI've read that even Sid Meier's Pirates contains lots of Basic code (the C64 version at least). Considering the game was released in 1987, I find that quite amazing if true.
ReplyDeleteIt certainly would explain why parts of the game are so slow :).
In general, I suppose Basic was mostly used for text adventures when it comes to commerical early computer games though.
The QBasic that was bundled with MS Operating Systems was actually a subset of Quick Basic 4.5 which had commercially available with a compiler.
ReplyDelete