The Adventure Gaming System (AGS) was created in the late 70's after I had been a DM for several years running Advanced Dungeon and Dragons role playing scenarios. It was a system (not computerized) that was used to create worlds for my own scenarios.
The first port to a computer was very simplistic (LSI-11, DEC's 16-bit personal computer) and did no more than generate mazes.
It was then ported to our HP desktop computers (HP 9845) at GTE running HP's Rocky Mountain Basic operating system. It was used to generate object specifications, players, player sheets and statistical sheets.
In the early 80's it was ported to a TI computer where it was also used to help me with game play (graphic displays of areas, dice roles, encounter outcome etc.).
In the mid-80's someone decoded the language used by Scott Adam to create his text adventure games. They called the programming language, Adventure Game Language (AGL for short). This information allowed me to port two of my game scenarios (in a simplistic way) to a computer. In addition to this my own deciphering of Adams' language allowed me to add multiple players, graphics, concealment of data structures and the ability to move game information between modules which allowed multi-part games.
During this same time period I was releasing my own commercial software for the TI computer. It was written mostly in assembly language to run standalone, under basic or in a cartridge. With enough experience I wrote my own AGL which added true multi-player games with sound, true (rather than simulated) graphics and animation.
By the late 80's GTE cut a deal with Apple which allowed employees to purchase a Mac at the corporate discount. With the aid of a loan I bought my first Mac , a Mac II with color. The Mac was used exclusively to generate the documentation for my applications created for the TI because the documentation generated by my software distributor was of very poor quality. In those days an author submitted his program and the distributor read the author's notes, used the program and them wrote the user documentation.
The reason I did not develop on the Mac was that the complexity of the Mac GUI and the extreme primitiveness of C. C was a text based language created to develop UNIX. What I could do in basic or asl in a few weeks on the TI or HP took almost a year to do with C on a Mac.
At the end of the 80's I was introduced to a new programming language called Prograph. It was a futuristic language. It was not text based. It was not based on C or Basic. It was not procedural. It was designed around the GUI and the event loop system. It was completely graphical. It did not use graphics to represent procedural code as all other so called graphical programming languages did. It flows data through the code that is designed to work on the data. In all other systems data is stored and a set of code routines is called in sequence that acts on the data in those stored locations. Change any of the structures or try and add, change or replace the code and a major rewrite with a whole set of new bugs is generated. In data flow a change in anything only causes different code to be automatically called.
There is no write, link, compile, debug or tracing assembly code in low level debuggers cycle. I could write entire applications in a single week that completely supported the Mac GUI features. In all other languages it took me that long just to get the menu event loop working correctly.
It took me about a year to learn and port Concentration ][ and Wizard's End to it. As good as it was it made large applications difficult to maintain since it did require a lot of patching of the supplied classes and relative to C rather slow.
Less than a year after my release of Concentration ][, Prograph (the company) released a new version of Prograph (the development environment) called CPX. CPX's design fixed all the limitations of Prograph and is from 5 to 10 times faster. In fact several tests demonstrated that it generated faster general purpose applications than even C, C++ or Mac App. You could extend the CPX language yourself by subclassing the ABC's (application building classes) or adding new primitives (core code) with C. Primitives are what make CPX as fast as C and when dealing with the GUI, faster than C in many cases. Because of CPX, I was able to learn OOP much faster and in greater detail than with books on programming in C++. In fact, C++ code became easier to write.
I received CPX one week before going to my sister's for Thanksgiving. That was enough time to learn the basics of CPX. CPX did things different enough, that it required a new way of thinking from my Prograph experience.
After the Thanksgiving meal my sister was complaining about the difficulty she had using the accounting software at work and the complexity of the accounting programs she bought for home use (Quicken, M.Y.O.B where two of them). She began explaining what she wanted them to do and the way they should do it. I told her that I had just received a program that would allow me to create an application to do all that she wanted by Christmas. She wasn't to sure about that, since all her experiences with software development was in waiting years for software to be developed and when delivered, didn't work right.
Since I brought CPX with me to play with when everyone else was a work, I decided to show her how fast it would be to write the application. I pulled up two chairs and had her sit down and watch me. I fired up CPX. Clicked on the edit application selection. Within a few minutes I had the menu bar defined and working. I then created the About window and main window that showed the dummy record entries. All she had to do was point at the screen and tell me what she want to see or have the application do. In less than an hour I had it compiled and running. It didn't do much, but the initial application was created only to prove the concept. Yes she was very impressed. It was christened, Home Accounting. I still have the source code to this original version.
I had three weeks to put a working application together. I added the preference and data entry system. I created a budget window that could save the data to a text file in a format that could be read by her word processor. She used this method to print the budget reports sice there was no print support in CPX for this type of application and I new a complex print engine would take more time than I had.
She basically wanted one window to show her what ever she wanted and could be arranged the way she wanted it arranged. She wanted a single data entry window for all data entry types.
To help debug the application after compilation I added an error management and reporting system and a user editable help system.
The Save As Text menu function could save the data of any window to a text file. I made sure there was at least three different ways an application function could be accessed (menu, keyboard or floating tool bar).
The last item on the list was to be able to save and restore a data base. The general solution is just convert the class data structures to a data stream and save that. However, this only works if the class structure doesn't change. In CPX the ability to change anything on the fly is the primary reason application development is so fast. To solve this problem I designed a method that could convert any class structure into a data stream unrelated to the original class. Then I built a version translator and placed it in the input/output function of the application. The translator could then translate any older version of a data base into the current structure without operator intervention. Warnings were issued when conversion took place or why the data could not be translated (older app reading a newer data base structure which it couldn't translate).
When I demonstrated the application at Christmas time she was very impressed. I told her I would send updates to her over the next year since Home Accounting was the first of two applications that I would be working on; Home Accounting and Concentration ][. The features of Home Accounting produced three other applications; Home Video Library, Bishop's Draw and Progress Window Demo. By 1996 three more applications were added to the list; Word Sort, Adventure Gaming System, and Convert AVHRR.
Last updated: Mar 4, 2011