Saturday 24 September 2022

The Adventure V1.1 - It's here... at last


 The Adventure V1.1 - It's here... at last



Finally, after a few months of work ironing out bugs the first playable version of my 1986 game is completed.



There is still a lot to do but the game now works exactly how the 17-year-old me first envisioned it. 

The game uses only text characters for all the graphics, maps, and commands. My long-term goal will be to upgrade the graphics to use bitmaps or ANSI art. 

There are lots of other improvements I want to make to the gameplay, story, and controls so plenty to get my teeth into.

If you would like to have a play then please download it from here and let me know any feedback. The game is an executable file that has no viruses. Please let me know if you have any problems running it.









Monday 20 June 2022

The Saga Continue ... The Adventure V1.0

 The Saga Continue ... The Adventure V1.0


After approximately 10 months I now have time to finish the first release of 'The Adventure'. A game I wrote in 1986 on an ICL DRS 20 Model 50 minicomputer using Microsoft Basic V1.0

Converting the game to run in a modern Basic Interpreter has been fun. There are lots of changes I had to make and lots more I want to make but the first working version of the game, now written in QuickBasic64 (QB64), is almost complete. Just a few bugs to iron out.

I had to completely document the source code as I had not done this back when I first wrote the code. That was fun tracing variables through the code to see what they were used for and following the game logic again.

The game used no graphics, instead it relies on just the normal character set for anything visual like the top-down map. The map itself I had to recover from a printed listing and check every character manually to ensure I had it all exactly as it was first developed.

Here is the map for reference.


Once I have ironed out the final few bugs then I will release an executable of the game. This will be a version that is faithful to the 1986 final version, warts and all. 

Version 2 of the game will be with optimised code, and improved gameplay and I may see if I can work with Ansi art to display both the map and monsters you meet along the way. 

Watch this space......

A Little Update

 How time flies

At the time of writing, it has been 4 months since my last post. In that time, I have had little time to look at the recreated source code for my adventure game but I have made some progress

I have decided that I did not like myself very much. The code is undocumented and used variable names that are not very descriptive. I can guess what some of them mean but the others will take some working out as I follow the logic through my code.


Documentation

I know I need to document the code and create some flow charts. The trouble is this is the bit I hate the most but it has to be done so I can understand the code again and recreate the game on modern platforms. So, I will break out Visio and get to work and get heavy with the REM statements.


Code Structure

I have certainly learned a lot since 1986. As I look at my code I can see many ways I could do it better, way too much jumping around using GOSUB and RETURN. However back then we could not create subroutines (using Procedure and Functions) that you could call, at least not in the version of BASIC I was using.


What Language?

So I always said I would recreate the game to play exactly as it was back in 1986 but reprogrammed in a modern language. To this end, I have been looking around for modern implementation of the BASIC programming language as a good place to start before I branch out to other languages. 

I have settled on using QuickBasic64 which is open source, backward compatible, and allows many modern features such as calls to windows DLLs and displaying PNG files, etc. 

QB64.org – BASIC for the modern era






Monday 3 May 2021

Recreating My Adventure Game

 Recreating My Adventure Game from 1986




In the Beginning....


The year is 1986. I was working at the local council in the I.T. department. I was a Youth Training Scheme (YTS) trainee. 

Towards the end of my YTS year, with only a couple of weeks left, my manager had no further work for me so I spent my time working on a computer game. 

The game was a top-down adventure. The player moved around a map finding objects and fighting monsters. The game used only text characters to display everything including the landscape. This was a limitation of the platform. An ICL DRS 20 Model 50 computer.



I completed the game in those two weeks and got it running. I stored the game on an 8-inch floppy disc which may now be lost to time and printed out copies of the listing and the map.


And Flash Forward to Today

I came across a dusty A4 folder on my shelf. I had overlooked this for many years. Opening the folder provided a surprise. My Adventure game listing and map printouts.

The ink was fading so I decided to rescue the code and map. 


Digitising

Digitising the printouts gave me some technical challenges as the prints were on wide carriage printer paper so simply placing them on a flatbed scanner would be difficult and even more awkward would have been piecing together the scans. 

So, I looked for a more modern solution. I have a Samsung Galaxy S20 mobile phone which has a really good camera. I also had the Microsoft Lens app which would allow me to take images and save them to the cloud.

A few minutes later I had them scanned but this was not enough for me. I wanted the actual text in an editable format. So how to convert? 

OCR

OCR or Optical Character Recognition would be my savior. Partially that is.

I played around with some free OCR software however results were very poor so I turned to online OCR services. I first had to edit the images and enhance or darken them to make the characters more legible. 

After a few minutes, I had text files that, while far from perfect, were reasonably close. 

What followed was several hours of checking through the printouts and comparing against the OCR text to finally build a listing in a text file that was 100% accurate to the original and also accurate map Data. Of course, when I say 'several hours' this was actually, due to work family, and other projects spread over several weeks.

So What Next?

So, what should I do with the game? I could leave it to gather digital dust in a corner of my hard drive or I could do something with it.

I really want to do something with it.

I don't have access to the original hardware so I have decided to rewrite the game to run on a modern computer as a faithful recreation. I'm not just satisfied leaving it there though, I also want to enhance the game, improve it and maybe create it on other platforms with graphics.

Target Platforms

Off the top of my head, I want to port the game to the following
  • X86/X64 Windows PC using Visual Basic or modern equivalent using Visual Studio Code
  • COBOL on X86
  • Sinclair ZX81 with classic ZX81 chunky graphics (an opportunity to learn Assembler)
  • Recreate in Minecraft using command blocks for the game logic (an opportunity to learn Java)
  • Visual Basic for Application (VBA) - It may be fun to recreate the game running in a Microsoft Office app such as Excel or Word.
My first job though is to fully understand the code as I was not very kind to myself. I did not provide any comments in the code.

Watch this Space...

More blog posts to come in the future when I have further thoughts, progress to share, or a finished version of the game.....



Sunday 10 July 2011

Life, Death & What's In-Between

When we are born, we are a small bundle of hopes and dreams. When we die, we are the sum total of our experiences. And what are we in-between?

We are ever-changing. We can mold ourselves to be whatever we need to be and whatever we want to be. We have the power to mold our environment and others around us. We surround ourselves with those things we like and find comfortable.

In short, we are the architects of our own destiny.

Thursday 7 July 2011

What's it all about?

My first blog. Well.... what will I write in my blogs? I see this place as somewhere I can unload my mind. There may be posts about my everyday life, the state of the world around us or thoughts and meandering about almost any subject that enters my head. So basically a mind dump. More to come....