Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Tuesday, 14 August 2018

BASICally speaking

A long time ago, before blogging was a thing, the Sci-Fi Gene has fond memories of learning to program on an early home computer, the BBC Model B. My efforts were written mainly in BASIC IV, with only a few very minor excursions into machine code. They were stored on C90 cassettes and later on 5" floppy disks - buying the double-sided disk drive was a major life event.

Most of my games and other programming experiments would be of interest only to myself. However one or two made it to the pages of user magazines and their monthly giveaway disks, and a few appeared on public domain lists. I was recently surprised to find that some of these games have been preserved at the Complete BBC Games Archive here - where they are playable online!

I present the games here not because they're particularly good - they're not, they're basic, derivative and barely playable - but because they're part of my journey and experience of the digital world, and because as a geeky teenager I learned a lot by writing them. The challenge of cramming a game into such limited memory (32K, minus anything from 1K to 20K for screen memory) and the limited graphics meant you had to try to be creative.



"Break Down"


"Supersonic Snail Racing"


"Myriapod"


"Telephone Mania"


"Space Detective" (apparently, in the future the word "apartment" is spelled differently)


"Wallaby Wrestling Federation"
Please note that no simulated wallabies were harmed in the making of this game.

Over the years I've experimented with other programming languages including Inform, C and Python as well as other BASIC-based languages including Scratch. I've come to realise two facts: firstly, I'm never going to be the next David Braben, and secondly, my brain's native language appears to be BASIC.

With thanks to the BBC Games Archive, and all who are responsible for maintaining it.

My games are playable here. Thank you for joining me on this pleasantly indulgent trip to nostalgiopia.

You can reach the main archive here. It's an extraordinary collection of full commercial releases - including classics such as Elite and Exile - as well as magazine giveaways, indie and amateur efforts such as my own, and, amazingly, games that are still being written for the Beeb right now.






Tuesday, 20 October 2015

Dystopia City - final version [Scratch game]

This is the final version of my Scratch game Dystopia City - with thanks to Scratch users E1eventeen and alpacaceratops for their comments and to everyone who played the beta. I've tweaked the gameplay, instructions have been re-written, there's a soundtrack composed in MuseScore, a better menu system and six alternate endings.

Grateful thanks to Freesounders leuphana, nathan-lomeli, samararaine, medialint, lebcraftlp, hunter4708. Thanks also to the makers of Blender and MuseScore.

Instructions:

Scroll map - Up and down arrow keys

Build - click to move the build cursor, choose a tunnel from the Build Tunnel menu or use hotkeys: C=coridoor E=elevator V=clone-vat O=office L=life support

Assign Roles - choose a Faction from the Faction-Role menu, then choose a Role to assign to that faction: Construction, Repair, Paperwork or Firefighting. For example if you choose Hufflepuffs and Paperwork then all Hufflepuffs will be assigned to do Paperwork whenever they are near an Office. At the start, all Factions are assigned to Construction.

Clonevats produce cloned citizens. Offices make money through Paperwork. Life Support produces food/oxygen/water for 10 citizens. When these tunnels break down, assign a Faction to the Repair role.

Increase the population of the Citadel to 150 to win. Keep your citizens occupied to prevent boredom - bored citizens will start to light fires or try to break out of the Citadel. You can turn the music score on and off by clicking the music button. Hint: it's not a bad idea to start by building an Office then assigning one Faction to Paperwork.

Tuesday, 13 October 2015

Scores on the Doors [Work in progress: Dystopia City]

Nothing says dystopian future like a double bass...
Working on a final version of my Scratch game Dystopia City - will be ready for release very soon. I've made a few tweaks to gameplay, re-written the instructions, added a few more alternate endings, and I'm working on a score in MuseScore.

Tuesday, 22 September 2015

Another Day In Paradise [Work In Progress: Dystopia City]

The end is in sight: I've put together the main game cycle for Dystopia City, although I'm still doing some work on the various alternate endings plus the soundtrack. Beta very soon - promise.
Where indeed?

Game produced in Scratch. Graphics hand-drawn in Paint, Paint.net or Scratch, with some backgrounds rendered in Blender.

Just another run-of-the-mill day in Dystopia City

Saturday, 19 September 2015

A Lack Of The Clones [Work In Progress: Dystopia City]

Dystopia City is taking shape: I'll release a beta version soon. I had originally planned the game around the task of growing your population of cloned Citizens to 500 - but while playtesting, as I approached a population of 200 other parts of the game started to break down. As well as the Citizens themselves, who are clones in both the Scratch sense and the literal sense, I also use cloned sprites for my scrolling map, for fires and for some of the effects and menu options. A response from a helpful Scratcher on the forum confirmed my suspicion that the number of cloned sprites Scratch can handle is limited to 301.

Factions of Dystopia City

I've re-weighted the game based around a lower total population. Now working on the various possible endings, and thinking about sound effects and possibly music...

Friday, 4 September 2015

Towards A Darker Tomorrow [Work In Progress: Dystopia City]

My next Scratch project is underway - a dystopia simulator inspired by EVERY YOUNG ADULT SCI-FI NOVEL EVER.

I don't want to reveal too much about the plot but I will say that if you are a fan of post-apocalyptic underground bunker-based cities, semi-fascist societies, factions, factions and factions then you may come to like this game.

But first I have to complete it. Programming challenges so far have included creating a scrolling map that can be changed as new tunnels are built, and having large numbers of dystopian citizens exploring it. One of the best features of Scratch is, it's surprisingly fast at parallel processing: so you can have large numbers of active sprites and still keep everything moving quickly, as long as each object has a fairly short routine.

Scratch is a browser-based programming language a little like BASIC, but with an easy to learn object-orientated structure and commands that click together LEGO-style. It's provided free by MIT here in order to encourage the younglings to take up programming.

When I started programming as a child (I was raised in BASIC IV) I learned by experimentation and mistake-making. Over the years I've learned a little of other languages: 6502 Assembler, Basic V, C, Inform, DarkBASIC, COFFEE, HTML and Python. Scratch is the first language I've tried that brings back that feeling of experimentation.

Monday, 10 August 2015

Queen Elizabeth I's Execution Confusion [Scratch game]



Something different: my first Scratch-programmed game, inspired by what may be history's worst ever paperwork nightmare - that occasion when Queen Elizabeth I accidentally signed the death warrant for Mary Queen of Scots, as it was mixed up with all her other documents. I know, happens to me all the time. At least, that's her story - while it's frankly a rubbish excuse for an execution, it's a great excuse for a game...

As your ministers place their warrants before you, sign those deserving of death with your quill, - but beware! beheading the more popular celebrities of your reign will dent your popularity, so make sure you don't sign them, and some treacherous ministers might try to trick you into signing your own warrant.

Remember to dip your quill in the inkwell whenever it runs out.

Although Scratch is a fantastic BASIC-style programming system, for the moment it is Flash-based which means PC only. Apologies to Apple users - but hopefully there will be an HTML-5 version sometime.