The Gamebook Engine 0.2.0 Beta 2 Released

I have just released TGE 0.2.0 Beta 2. The main improvement in this version is that gamebooks can use Javascript, instead of Lua. I have included a javascript version of Ring of Thieves, which is playable, and finishable, but does not include everything the Lua version does. For example, you can not use items.

I have removed hyWaitForClicks() from the Javascript API, because it breaks stateless protocols. For example, if there was a interpreter, such as one built using CGI, which created a page, and then asked the user for input, then while the player is thinking, the interpreter would have to keep track not only of the page the user is on, but the entire scripting engine, because after the user gives their input, the interpreter will have to continue execution after the hyWaitForClicks() line. Without this function, the user is only asked for input at the end of a page. The Lua engine will continue to support hyWaitForClicks() for backward compatibility, at least for now.

Anybody who chooses to write a gamebook with Javascript will have to use extra pages, and hyGotoPage(), instead. For example, there is a part in Ring of Thieves where the player can choose to take from 0-3 daggers off their newly fallen foes. This page is split into 4 pages, the original page with text, and 3 tiny pages to add the appropriate number of daggers if the player so chooses. Combat, etc, is still possible with this new interactive system. I have also added a tag, #tge_module. I will document it before I release 0.2.0 Final, but to summarize, it is like a programming function with book pages.

As a bonus from removing hyWaitForClicks(), hySaveGame(), hyLoadGame(), etc, are no longer needed. Interpreters, and the players, will have more control of where they can save games (any page), and writers will not have to worry about it so much. RegisterIO() will still be necessary to keep track of essential variables across sessions.

I have not included Flight From the Dark in this latest version. Because of the audio files, it is about 40MB, and I only have 100MB of space on the Project Aon servers. I will be adding this shortly as a separate download, but until then, you can still find the full FFTD gamebook including audio files in the first 0.2.0 Beta release. I will be removing the first 0.2.0 Beta release when I create the separate FFTD archive.

Previous versions of TGE could use any version of Qt from 4.2, and possibly earlier. This version uses the Qt Javascript engine, which is only available in version 4.3 and later.

The official Linux binary is linked against Qt 4.3. There is no Qt Script 4.3 Debian or Ubuntu package available, because the Debian packager didn’t add the libqt4-script package until 4.4, so I found 3 RPMs with rpmfind.net. One for the gui library, one for every other library, and one for the development header files. The development rpm I found included a newer version of moc which was incompatible with the rest of the package. So I got the correct moc version from Ubuntu. Linking against Qt 4.3 was a huge hassle, and if I had known in advance, I would have just skipped it and linked against 4.4.

This Beta version includes src, Linux, and Windows binaries.

These are the remaining goals for 0.2.0:
* a conversion utility to convert gamebooks into HTML.
* status/inventory window

2 Responses to “The Gamebook Engine 0.2.0 Beta 2 Released”

  1. George says:

    Where can I find the Windows binaries? Thank you.