Best way to learn?
Best way to learn?
Good evening all, I recently got back into using the ZX Spectrum after picking one up in a local charity shop and I'm now finding myself wanted to do more than play classic games. I would like to learn to program the Spectrum and perhaps one day many months down the line, create my own simple game.
My question is this, how you you recommend I learn to program? bearing in mind I have no previous programming knowledge? is there perhaps a good book I should buy or a certain tool I should buy or download?
Thank you all for your help!
My question is this, how you you recommend I learn to program? bearing in mind I have no previous programming knowledge? is there perhaps a good book I should buy or a certain tool I should buy or download?
Thank you all for your help!
Re: Best way to learn?
I think the original BASIC manual is still the best for learning to program. There are a lot of great articles and type-ins from magazines like Sinclair User and Sinclair Programs that could maybe help.
(Also, for some reason the links to the .zips on the website don't seem to lead anywhere?)
(Also, for some reason the links to the .zips on the website don't seem to lead anywhere?)
Re: Best way to learn?
I'm away from my PC for the next few days, but I believe these come from archive.org. I will see when I'm back in the back.
In the meantime, this should work:
http://zxnext.narod.ru/manuals/Basic_Programming.pdf
Re: Best way to learn?
I agree. But before that definitely read Zx Spectrum User Guide if you haven't yet:I think the original BASIC manual is still the best for learning to program.
https://www.manualslib.com/manual/11713 ... mPlus.html
There are quite a lot of short example programs. Try typing them and running. Zx Spectrum Basic
has this extra challenge for beginners that you don't type commands letter by letter but you get a command
typed by pressing a single key. And to get the proper command you need to set a proper "mode" earlier.
So typing the programs in won't be a dumb experience as it will help you to memorize the commands.
Then you may try to change a value or two in the example programs and see what happens. Change some colours,
experiment, generally have fun
Don't be afraid of programming, 10 years old boys were able to get it, you'll be able to get it too
- Ast A. Moore
- Rick Dangerous
- Posts: 2641
- Joined: Mon Nov 13, 2017 3:16 pm
Re: Best way to learn?
If you are serious about getting into programming, you should learn about the Spectrum’s architecture, rather than try and pick up “programming” per se. BASIC and assembly are pretty easy to learn, but in and of themselves, they are just tools that enable you to implement your ideas.
Skim through this. It may be way over your head, but as you learn more, it’ll prove to be a valuable resource in the long run.
There are quite a few threads on this forum dedicated to programming. Peruse them and see if you can pick up bits and pieces. Gradually, you’ll get a fuller picture of what the Spectrum looks like from a programmer’s perspective. And, of course, feel free to ask questions.
The best way to learn programming is to begin programming. A great many of Spectrum coders are self-taught.
Skim through this. It may be way over your head, but as you learn more, it’ll prove to be a valuable resource in the long run.
There are quite a few threads on this forum dedicated to programming. Peruse them and see if you can pick up bits and pieces. Gradually, you’ll get a fuller picture of what the Spectrum looks like from a programmer’s perspective. And, of course, feel free to ask questions.
The best way to learn programming is to begin programming. A great many of Spectrum coders are self-taught.
Every man should plant a tree, build a house, and write a ZX Spectrum game.
Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
Author of A Yankee in Iraq, a 50 fps shoot-’em-up—the first game to utilize the floating bus on the +2A/+3,
and zasm Z80 Assembler syntax highlighter.
Re: Best way to learn?
True, but in a longer timescale.If you are serious about getting into programming, you should learn about the Spectrum’s architecture...
If I understand correctly, OldGamer is completely new to programming. He needs to learn about variables, loops, ifs, jumps etc.
So at this moment I would focus 100% on Basic and leave trying to understand assembler for later. Much later.
Re: Best way to learn?
Yes, assembler is a complete and total no right now as I'm sure that would be so very complex and I'd probably rage quit haha
So I think yes start simple and I'll read up on the basic language. Although doing some spectrum searches today and I found something called game designer by Quicksilva, that might be worth a look.
So I think yes start simple and I'll read up on the basic language. Although doing some spectrum searches today and I found something called game designer by Quicksilva, that might be worth a look.
- Turtle_Quality
- Manic Miner
- Posts: 506
- Joined: Fri Dec 07, 2018 10:19 pm
Re: Best way to learn?
In terms of basic I found the easiest way to get started was to take a very basic basic program and start to add things bit by bit - like take a breakout game and add a high score, then a high score table, find a nice way to show it between games, then make something happen in game to indicate when you overtake a high score etc...
Similarly I found a short basic blackjack game that just gave the player and the computer random cards, let you stick or twist and it was game finished after each hand. Then I added an array called C (a table of 52 numbers using DIM C(52) ) for a pack of cards, worked out a way to shuffle the cards, extra players each with a pot of cash and make the game end when someone is bankrupt.
As for using a game designer, if you can use an emulator then AGD would be far better than Quicksilva's same designer, it can then help you create a tape to load on your Spectrum when you want to try it on the real thing. But personally I think it's better to try some basic programming before using a game designer, they kind of take over the work on your behalf so you're not really learning to program when you go that route.
Similarly I found a short basic blackjack game that just gave the player and the computer random cards, let you stick or twist and it was game finished after each hand. Then I added an array called C (a table of 52 numbers using DIM C(52) ) for a pack of cards, worked out a way to shuffle the cards, extra players each with a pot of cash and make the game end when someone is bankrupt.
As for using a game designer, if you can use an emulator then AGD would be far better than Quicksilva's same designer, it can then help you create a tape to load on your Spectrum when you want to try it on the real thing. But personally I think it's better to try some basic programming before using a game designer, they kind of take over the work on your behalf so you're not really learning to program when you go that route.
Definition of loop : see loop
Re: Best way to learn?
Thank you, that's very helpful indeed!Turtle_Quality wrote: ↑Mon Jun 10, 2019 2:06 pm In terms of basic I found the easiest way to get started was to take a very basic basic program and start to add things bit by bit - like take a breakout game and add a high score, then a high score table, find a nice way to show it between games, then make something happen in game to indicate when you overtake a high score etc...
Similarly I found a short basic blackjack game that just gave the player and the computer random cards, let you stick or twist and it was game finished after each hand. Then I added an array called C (a table of 52 numbers using DIM C(52) ) for a pack of cards, worked out a way to shuffle the cards, extra players each with a pot of cash and make the game end when someone is bankrupt.
As for using a game designer, if you can use an emulator then AGD would be far better than Quicksilva's same designer, it can then help you create a tape to load on your Spectrum when you want to try it on the real thing. But personally I think it's better to try some basic programming before using a game designer, they kind of take over the work on your behalf so you're not really learning to program when you go that route.
- Alessandro
- Dynamite Dan
- Posts: 1910
- Joined: Wed Nov 15, 2017 11:10 am
- Location: Messina, Italy
- Contact:
Re: Best way to learn?
Hi [mention]OldGamer[/mention],
welcome to the forum You might want to take a look at this other recent thread, there is some information and advice that you could find useful.
welcome to the forum You might want to take a look at this other recent thread, there is some information and advice that you could find useful.
Re: Best way to learn?
...I doubt anyone who codes assembly on here can honestly say they haven't rage quit their code at some point..OldGamer wrote: ↑Mon Jun 10, 2019 1:04 pm Yes, assembler is a complete and total no right now as I'm sure that would be so very complex and I'd probably rage quit haha
So I think yes start simple and I'll read up on the basic language. Although doing some spectrum searches today and I found something called game designer by Quicksilva, that might be worth a look.
When I decided to try assembly (eventually - after about 20 years ) I found it a bit of a learning curve just because it's very different from BASIC, but it's doable even for a non-programmer and once you get over the hump it's quite addictive. And of course it's very fast. But BASIC will give you a good grounding for the Speccy.
I don't think that the Quicksilva program you mentioned is actually a 'proper' game designer, it just gives you a load of simplistic pre-written games you can change the graphics, sound etc. for. I don't think you'd actually learn much re: programming the Spectrum, but I have to admit I haven't actually tried it myself...
My Speccy site: thirdharmoniser.com
- Turtle_Quality
- Manic Miner
- Posts: 506
- Joined: Fri Dec 07, 2018 10:19 pm
Re: Best way to learn?
Just to follow up my earlier comment, BASINC is a Basic development environment that can make it easier to write and debug Spectrum games on a PC, these days everyone is used to cut and paste it can be annoying when they are gone. And it includes a bunch of example .BAS files with very simple versions of many games, such as breakout and blackjack (well Pontoon anyway, isn't that the same thing). So even if you don't want to stay on your native spectrum, it's worth downloading the package to get the example listings.
One thing to note, when BASIN exports basic listings as .BAS it defines the variables at the start (see below). A real Spectrum would not understand these, so don't try to type them in
# Run-time Variables
Var a: Num = 0
Var xc: Num = 10
Var yc: Num = 10
One thing to note, when BASIN exports basic listings as .BAS it defines the variables at the start (see below). A real Spectrum would not understand these, so don't try to type them in
# Run-time Variables
Var a: Num = 0
Var xc: Num = 10
Var yc: Num = 10
Definition of loop : see loop
Re: Best way to learn?
That sounds great! Thank you, I'll give it a go.Turtle_Quality wrote: ↑Tue Jun 11, 2019 12:35 pm Just to follow up my earlier comment, BASINC is a Basic development environment that can make it easier to write and debug Spectrum games on a PC, these days everyone is used to cut and paste it can be annoying when they are gone. And it includes a bunch of example .BAS files with very simple versions of many games, such as breakout and blackjack (well Pontoon anyway, isn't that the same thing). So even if you don't want to stay on your native spectrum, it's worth downloading the package to get the example listings.
One thing to note, when BASIN exports basic listings as .BAS it defines the variables at the start (see below). A real Spectrum would not understand these, so don't try to type them in
# Run-time Variables
Var a: Num = 0
Var xc: Num = 10
Var yc: Num = 10
Re: Best way to learn?
Hey, just a heads-up - if you're learning BASIC on a Speccy, give the BASIC group on Facebook a try. It's chock full of really enthusiastic folk who adore our little language:
https://www.facebook.com/groups/ZXBasic/
As well as popping your queries in here, of course. And as a group we all recommend you use BASin as the easiest way to code BASIC on a speccy
https://www.facebook.com/groups/ZXBasic/
As well as popping your queries in here, of course. And as a group we all recommend you use BASin as the easiest way to code BASIC on a speccy