Saturday, July 30, 2011

My Passion for Programming

My first computer was the mighty Amiga. At that time the IBM compatibles were markedly inferior (and still are in some respects). In those days I was working as a part-time cleaner and I had plenty of time to teach myself programming.

I bought the Amiga 500 in the afternoon, and by early evening I had assembled it. The computer came with two 3.5 inch disks, one called 'Workbench' and the other called 'Extras'. On the Extras disk I discovered a program called AmigaBasic. That very night I wrote my first AmigaBasic program using just 3 commands: PRINT, GOTO and STOP. The program was a text adventure game The text was divided into paragraphs. Each paragraph started with a description followed by numbered choices for the player. This was done with PRINT statements, followed by a STOP command. The player would select which paragraph he would progress to by entering GOTO 22 (or whatever the paragraph number was.) in the Immediate window.

My text adventure was inspired by 'Colossal Cave' which I had played years earlier on a mainframe and 'Mystery House' which I had played on a friend's Apple IIe. Colossal Cave was one of the earliest well-known text adventure games. The Colossal Caves are real caves in the USA, and many of the rooms in the game are named after real caves. Mystery House used text input and output, but additionally had vector line drawings. Drawings were very crude, for example crosses were used to represent eyes. Both games can be found on the net. An Apple IIe emulator is need to play Mystery House.

Within a week I had bought some blank disks, learned how to format them and copy files from one disk to another. Copying AmigaBasic to a disk allowed one to create programs.

The AmigaBasic manual was, as one Amiga user put it, about as useful to a novice programmer as someone put it as 'tits are to a bull.' I perservered with it though, and within just 2 weeks created what Tim Strachan, editor of Megadisk described as a 'fully fledged shareware program' and the program 'Chess Tutor' was accepted as part of the vaunted Fred Fish public domain collection. A few months later I purchased a Basic compiler.

Over the next 12 months or so, I released dozens of programs as shareware, I joined the local Amiga Users group, read most of the available books on the Amiga, and read the digital articles in the Megadisk magazines. Later I joined the Melbourne Amiga Users Bulletin board which was a kind of pre-Internet Internet. I became familiar with AmigaDos which I later found was very like Unix.

Two of my PD games were reviewed in the glossy 'Amiga Format' magazine and one of my games received a PD game of the month award.

Some of my programs were written at high speed, one game I wrote in 8 hours and I once wrote 2 programs in one evening (though they needed some polish). A card playing program 'Solo Whist' was written in 3 sittings. Solo Whist is a card game which is something like 500 or bridge.

Amigabasic had major limitations, even when compiled and when Amos Basic arrived it was a dream come true. Amos included a lot of support for graphics, sound and animation that AmigaBasic did not. Unfortunately, early versions were full of bugs as was the first version of Blitz Basic, a rival program. Both programs later released improved versions with Blitz Basic being the best. BB later became available on the PC and included a lot of support for 3-D programming.

Nonetheless over the next 4 years I created quite a few games and educational programs written in Amos, a few of which were released as LicenceWare in the UK and received a couple of grand for. One of my programs was the very first program in the catalogue.
I sold a number of my chess educational software (about 5 programs) privately.

The Backwards Step to the IBM Compatibles
In 1992 I purchased my first IBM compatible and studied the C++ language. I ported about 6 of my chess programs across and converted them to Visual Basic for Dos. In hindsight it would have been better to rewrite them in C++.

I taught myself Windows programming in C++ at a time that it was likely only a few people in Melbourne could do it. I was offered a programming job in a computer games company.

With a relative (who is now frequently in charge of move animation) doing the graphics, I worked on game 'Wizards of Nadroj' (written in C++) which at the time was quite sophisticated. We had a publisher, but unfortunately graphics development was very slow and the game was never published.

I have a large number of Computer books, most of them related to Windows programming.

My early experience with VB for DOS helped me become a tutor both in 'Introduction to Programming' and 3 different 'Visual Basic' courses at the CAE (Council of Adult Education, later to become Centre of Adult Education).

In the 1990s I developed a chess engine and used it to compete in various chess engine tourneys, including the Australian Computer Championship in which it once finished third. It was a highly experimental program, and large sections of it were rewritten many times. It has 100,000+ lines of code.

I have written a programming language 'Easy C' in C++ something like early versions of 'Blitz Basic' , simply because it was something I always wanted to do.

If I wish to become familiar in a language new to me, one approach I have used is to translate an existing program into the new language. For example, I translated my chess engine into Java. Easy C was originally written in Visual Basic 5. I translated it into Visual Basic.Net, a much greater task than translating C++ into Java. Visual Basic.Net proved to be woefully inadequately so I translated it into C++ which proved much better for animation. I would consider translating programs one of my strengths.

I have developed my own websites since 1997, but have not attempted to do anything flashy with them.

Other programs I have experimented with include:

A Sudoku solving program which I wrote in just under one hour.
A scrabble playing program using a possibly original algorithimn to find the highest scoring play from a dictionary of 150,000 words.
A crossword generating program.
A program which teaches Visual Basic.
A chess teaching program which had hundreds of thousands of downloads.
A program which translates source from one language to another.

Commercial Experience
In 1997 I worked at KeyPoint Insurance Systems as a C programmer in a Unix environment. Unfortunately they didn't have enough to do and became redundant.

I converted a Pascal program to Visual Program. This program processed the results of Triathlon sporting events.

I worked for 14 months for a company on a Flight planning program for light aircraft, a large Accounting program and a number of smaller projects.

I also did some C++ work for a commercial Typing Tutor program.

In 2004 I did some Excel and VBA work for the Bureau of Meterology, which involved a database of thousands of spare parts.

I have run hundreds of computer courses at the CAE over a period of 10 years. Most courses involved programming languages including Qbasic, Visual Basic, C++, Java, VBA, VBScript. Other courses included DOS, HTML, XML. Earlier courses included Introduction to the Internet and email courses.

Reent Years
In recent years I have studied the Dark GDK (based on Dark Basic) and used it with Visual C++ to write several games. The Dark GDK allows very high level programming, so coding with it is more like using Amos Basic or Blitz Basic

I have studied different new languages to various degrees such as PHP, Python, C# etc.

I have done a little editing on Wikipedia, including some work on the C++ pages.


No comments:

Post a Comment