Hi Gaz, I read your post and also share many happy memories of the ZX Spectrum. I liked the part about changing the artwork
I can relate to a lot of what your wrote.
I was once a novice...
Playing games wasn't enough. The magazines around at the time, Crash, Your Sinclair and Sinclair User covered programming and development of games. Magazine features such as "Hewson's Helpline", "Code Talk" and "Cecco's Log" were big influences for me. There were also books such as "Input" and "The Complete Spectrum". Ocean and many other companies placed adverts for programmers and artists. All this fueled my desire to program games from the age of 14
I played with BASIC but it wasn't capable of delivering the performance needed so I turned to Z-80 assembler and I was HOOKED! A friend of mine was into graphic art so he introduced me to the O.C.P Art Studio. He also gave me his copy of the O.C.P Full Screen Editor/Assembler written by the same author as programming wasn't for him. Somebody had recommended a book titled "8080 And Z-80 Assembly Language Programming" by Kathe Spracklen which I would use for many years and still refer to now. Christmas 1987 gave us the 128K Spectrum +3 at a cut down price of £199 (RRP £249) so I was able to upgrade from the original 48K to something more practical. The price of the Next is quite fair when comparing the prices of Sinclair hardware back in the 80s. In fact, the price of the Next was not going to be an issue because of the amount of enjoyment is was going to bring me!!! I also got my hands on a Multiface 3 (£49) which made life easier. I spent a lot of hours programming, hacking games and drawing graphics with only books, magazines and my thirst to learn, create and progress!!!
Looking back, I lacked a proper development system which made it difficult to develop using the Spectrum alone. I didn't realize this until I entered the UK games industry. I was introduced to a cross-development system called PDS (Programmers Development System). This blew me away as it used a special interface to connect to a PC ISA card allowing me to download my code from the host. I bought a 386 PC with a 40MB hard drive and hooked it up to the Spectrum and was able to develop larger scale projects with ease and also use Deluxe Paint PC for graphics. My ZX Spectrum demos were enough to get me a job but I quickly progressed to Amiga which used PDS v2 (P2) connected to the parallel port and Mega-Drive which used SNASM development tools (the CPU was replaced by a black box connected to a SCSI card). I'd studied Motorola MC68000 and found it really easy to pick it up as assembly programming is very similar across different microprocessors. The hardware on those platforms was far more complex than the humble Speccy and I would spend hours on a night and weekend studying. I pretty much lived at the office during that period.
I have to admit that I had picked up some bad habits from the days of being a "bedroom coder" and these would get addressed one by one lol. For starters, self modifying code was now BANNED because of caching and ROM cartridges!!! The Spectrum relied on a lot of crazy methods to gain performance. I started using terms such as 'Game Engine" and started to keep my hardware access completely separate from my game logic. I also wrote a lot of library code that I would reuse. I had an empty project known as a "Shell" that I could lay the foundations of each new project on. It contained a set of input/output routines for that particular platform. I also wrote a lot of my own tools on both Amiga and PC and PC is where I settled in recent years.
Sadly, I never got anything published on the Speccy so now the Next has arrived, it's a great opportunity to use those skills I acquired many years ago and be there during the beginning.
That's my story.
So, where to begin with the Next... tbh, I find this a difficult question to answer because there are so many choices and it's down to personal preference and how far you want to stray from your comfort zone... it can be a difficult process getting to grips with a system at such low level if you've never programmed hardware before. I've always done software development when I've had plenty of time on my hands. Learning Next BASIC should be easy as you have programmed high level languages in the past. It really depends on the the level you wish to progress. I would say learn Z-80 but then that's because I am biased. I would also recommend learning the hardware. You could keep things simple and just program the original 48K system to begin with and progress to the more advanced areas of the Next's hardware over time. A mixture of both BASIC and Z-80 wouldn't hurt either.
As for games... knowing Z-80 or the Spectrum's hardware does not make you a games coder and that's something I realized when I read my first assembly language programming book! Game algorithms and methods are something that come over time. There are plenty of tutorials on the web. Back in the day, there were tips and examples in the magazines but nothing to the level of the modern day. You had to think for yourself most of the time. I do admit that a good storming session with other coders can be very rewarding. Studying the work of others did help me initially and I can never deny that.
For Next development, I'm taking advantage of the UART with a serial link wired into the ESP8266 socket to send code to the TBBlue 2A from a PC but this has required my own R&D: viewtopic.php?f=6&t=895
I'm sure other members can share their knowledge of Next development tools and directions to take. Everyone has a story to tell