Saturday, June 14, 2014

Text Adventure Game Engine.

Even though I grew up in 1970-s and 1980-s, I kind of missed the whole era in personal computer technology revolution, being born on the wrong side of iron curtain and in a remote part of the country. However in the West the micro revolution (technological and commercial) was at full swing. I bought my first micro computer in the early 1990-s and because it was an outdated 8-bit Commodore C-64, I learned to love whatever genre of software was available for this kind of hardware. I also was kind of "forced" to learn programming (well, not really forced, since programming a computer appealed to me since I was 14 years old and I learned BASIC long before I bought my first computer). Today, your typical teenager will not even take a second look at the text adventure or interactive fiction game. Because of that, it became kind of a lost art on the video game market and in programming and game design area. However it is still a great way for a young apprentice of the profession to learn programming techniques and language while making one's own text adventure game - the genre that was once considered the most technically advanced in the video game category. Today I live in the West. I buy old books and hardware to make up for lost years and being a geek and a professional programmer I enjoy my hobby projects, which include creating this kind of games using various technologies, including good old (some would say - "bad old") BASIC as well as modern languages like Java or C++. To re-introduce myself to C++ and its new standard called C++11 I started my Text Adventure Game Engine project in C++ early this year. I learned C and C++ in in the late 1990-s and worked for a local software company as a programmer, but very briefly. When I came to the US in 2000 on the Y2K bug wave, my job duties slowly drifted away from programming as my company outsourced most of the development to overseas, and now I spend most of my time reading the code and looking for the bugs rather than developing new software. This is a professional death for a programmer, so to keep my programming skills at the least minimum, I spend big chunk of my spare time on non-commercial private programming projects. The Text Adventure Game Engine is such a project and I'd like to use this opportunity to create a guide in this blog to describe the principles of the Text Adventure Game genre in video games category and the process I went through while creating my software.

This projects is still under development, perhaps it will be for a long time or it will never reach a "production" grade since nobody pays me for that and spare time becomes scarce these days for me - the future will show. My initial thought was to finish the project first and then create one or more blog entries about it and publish it for others to enjoy. However I can not wait any longer and while my passion about the project is still at its peak, it is I think the best time to write about it. So I start this series now and I will see where it leads me. I believe that writing about some technical issues I've had or will have will actually help me to resolve some of them. Therefore this blog should be helpful for me and I sure hope some beginner programmers and/or Text Adventure genre enthusiasts will find this guide helpful as well.
In the next episode I shall summarize the Text Adventure Video Game genre, its history and where it stands today. In the episode after that I will start my technical guide to programming your own text adventure game system.

I started a similar project for the old outdated hardware of Commodore Plus/4 in BASIC 3.5, although I cheat a bit by using modern development tool: CBM Prg Studio, a free software by Arthur Jordison which allows the cross-development for various historical Commodore hardware platforms, like C64, C128, C16, C Plus/4, VIC20 and PET.
It is (arguably perhaps) a far more enjoyable way of creating applications (due to severe limitations of BASIC editors on these old computers) for these retro machines. I plan to create a blog about that one as well. Currently though the C++ game engine project is far more advanced and I think I am going to focus mostly on this one.

This is all for now.

Bye, bye!

Marek Karcz, 6/14/2014