How does game development back in the early 80’s compare to game development today?

For starters, the computers of that era were far less powerful  and didn’t have anywhere near the graphics and audio capabilities of today’s power houses. My TRS-80 was monochrome and offered a graphic resolution of only 128 x 48 pixels and sound was generated by toggling the cassette output port on and off.

Back then, a computer generally ran at around 2 megahertz and a fast one did 4 megahertz.  We played with RAM sizes of 4K to 64K and unless you were lucky enough to afford a floppy disk drive, you saved all your work on cassette tapes.

Compared to today, programmers worked with quite primitive equipment but we just got on with the job and developed to the best of our abilities with whatever we could afford.

There were no boundaries to creativity.

I developed most of my TRS-80 Model 1 games in Z-80 assembly language. This code compiles to raw machine language and almost all commercial arcade style games of the era were created in this language since it allowed the maximum processing speed from the technology of the day.

 

Programming in assembly language was not for the faint hearted, not so much because it was a hard language to learn but because each instruction did so little in comparison to other higher level languages. To print a word on the screen required a mini program in itself whereas languages such as BASIC could achieve this by simply executing the command PRINT”HELLO WORLD”.

Assembly language requires a thorough understanding of the operation of the computer and how the hardware operated and I enjoyed this feeling of total control of the system. Being tied so closely to the hardware also made for some spectacular system crashes when errors were made. Assembly language was a very “precise” language with little margin for error. A programmer had to have a clear understanding in his mind of what the computer was doing at all times.

I wrote all my code, routine by routine, with pencil and paper. I didn’t have a printer so my hand written notes served as the hardcopy of my code to peruse at any time. It also meant I could create code anywhere… even during classes in high school!

The teacher may have been talking chemistry but mind was piecing together the code to my next blockbuster game!

This also filled in the time during cassette tape loads. Loading data from cassette tape would take about 3 minutes to load the assembly language development program (Editor/Assembler) into the computer. It would then take another 5 minutes to load my source code that I had created so far. During this time I was creating new code on paper or debugging an error with my current code. When the tape finished loading, I transcribed my new lines to the Editor/Assembler.

  

I then saved my new work back to cassette tape (another 5 minutes) then compiled my code to machine language (3 more minutes) into an executable file.

After resetting the computer, I would load the compiled code into the computer for testing. If it worked, I would move on to create the next piece of code. If it failed, then the whole cassette loading process would repeat until I finally had it debugged and working correctly.

I would always use high quality cassette tapes for my development work and I would frequently clean the cassette tape heads with alcohol to maintain reliability.

For graphics design, there was no Photoshop or fancy graphics editors back then. I designed all of the graphics on graphic worksheets with a pencil and eraser. I would create pages of graphic objects and level layouts.

Designs for the graphics for Donut Dilemma

Then I would create a simple program in BASIC to recreate these graphics into the memory of the computer and save these to a cassette file. I documented all of the dimensions  and memory locations of all the graphics so that I could access them from within my code.

When a game was finished, I created my own packaging and recorded each distribution cassette on my computer. My artwork was all hand drawn and quite amateurish but it was all I could afford.

Handrawn and Photocopied Artwork for Donut Dilemma Cassette Packaging