SAFTAP - Scott Adams Format Text Adventure Player: Suggs pls

Hello there.

Now that I am reasonably happy with the newly released Visionary v1.00, I will, over Christmas, turn my attention to building a Scott Adams Format Text Adventure Player (SAFTAP) for WIndows in readiness for the future Scott Adams Format Text Adventure Challenge (SAFTAC) (I say 'C’hallenge, not 'C’omp because it will be “just for fun” until such time as anything takes off with lots of interest - does that sound fair?). I think interest will remain small and “fun” as previously mentioned, perhaps to introduce people into writing text adventures before further steps into language based adventure making such as Inform.

I have the code already in Basic4PPC format (from AdvPDA) which plays SAF files and I will be chopping up and reforming it into VB6 to make a Windows executable in the next few weeks. I was tempted to code SAFTAP in Java but I’m still a noob with Java so VB6 first then might port to Java later.

My thoughts turn to what SAFTAC will look like and what options it will have.

Given that I have about three weeks on and off to knock it up before Uni starts, it will be pretty basic, so for those who are interested, what ‘basic’ look and feel options would you be looking for if you were to play Scott Adams games through a GUI?

Many thanks.

Itchy coding fingers at the ready …

Steve.

Great news! :smiley:

I’m currently using under Windows something called “ADVINT” made by Hein Pragt in 1997. It surely looked nicely back then, but it starts as a default in an fixed maximized window with no options at all for resizing either the windows or the fonts… which is both ridiculous and uncomfortable to play nowadays in current panoramic HD screens. So flexibility for handling the window would be very wellcome!

Thank you for your comments Rockersuke.

Yes, I have come across and used ADVINT previously. Hein’s website is http://www.heinpragt.nl/start/index.php

I agree that flexibility of sizing both screen and font is required and will build in these features, as well as letting you choose the colour of background / foreground and font typeface. :slight_smile:

A couple more things - make sure the user can highlight any text in the window, and that Copy and Paste work. Not particularly important for playing games this non-verbose, but always useful. And it’s always aggravating if you ever want these commands to work and they don’t.

Jumping ahead a bit (cos I’m going offline from Dec 20 to New Year, so I’ll talk now :slight_smile:) - I was wondering if people have made Transcript commands in other Scott Adams interpreters, and how they worked? Maybe it would output all player commands, all game responses, but only output the room description again if you move, or if the room description changes. I’m not sure how easy it is to tell when such things happen. Games like The Count and Strange Odyssey have those screen flickering effects and I don’t know how compatible they are with any kind of transcripting.

Anyway that’s my 2 cents for now. I like the idea of calling it a challenge, too.

Good luck with the coding.

Okey dokey, copy / paste facilities will build in. :slight_smile:

I will also build in “up arrow” functionality on the command line to recall previous commands (you know, like when you are at the DOS prompt).

Good point, thanks. I know I discovered bugs in other engines - it may have been ASFDDOS or Scottfree but forgive me if it was other engines - that did not cater properly or at all for pause / refresh for responses which did a kind of “response / pause / clear screen / response / pause / clear screen / response” before giving control back to the user - these functions were needed in Ghost Town (lighting a match in a cave you see a flash of the cave before match goes out) and one Adventure by Brian Howarth in the SAF format (boat voyage somewhere) that I recall.

I will trawl through ither SAF engines to see what they offer for transcripting.

Perhaps build in some control codes such as:

*RDOFF - turn off room descriptions in game temporarily, just show room desc and items?
*RDON - turn on room descriptions again

… stuff like that … similar to ingame console commands in Quake etc … but just basic stuff, not cheatcodes like *GIVEALLTREASURES :slight_smile:

Thanks for the info and luck message, it will help me - have a nice break.

Pragt’s windows interpreter had a 2005 version (just found it at his personal web following realeasterbunny’s link, here) which used just one window and a single flow of text. It was rather confusing as it didn’t include the player’s commands.

On other subject, I would suggest an option to display game header info. I’ve just seen it in the Amiga port of Scottfree (here) and it looks handy to check on the fly game version. It uses a trick with ripped graphics to show the pics, but I can live without that! :slight_smile:

Some pics:

[center] [/center]

Thanks for the info and link Rockersuke.

I will build this in somehow.

Perhaps:

*SHOWGAMEINFO

… or a menu option - but it will be in as its a 2 minute job to do :slight_smile:

Its all good :slight_smile:

Quick update.

The port from AdvPDA (Basic4PPC) to SAFTAP (VB6) is going well.

TIP: If you ever want to check your code for stuff even when you think its good, try porting it!

I found unused variables in my code left over from the very early testing days of AdvPDA as well as recapping how bad my programming indentation was (even after I thought I tidied it up). Other stuff from the AdvPDA code seems pretty solid though :slight_smile:

[Technical programming psychobabble alert]
The "Return {value}" function of Basic4PPC was very useful but in VB6, you cannot simply Return {value}. Initially I got lazy on the port and started putting "...: GOTO"s in after setting the functions value to return, but I convinced myself that of course this is bad form so instead replaced it with ever so slightly less bad form of "...: Exit Function" after setting the variable against the function name. I might go back to these in the future sometime to do some proper recoding, but for now I am just itching to see SAFTAP run.

I am however happily removing all the StrIndexOf's, SubString's and StrCompare's etc of Basic4PPC and replacing them with good old fashioned Instr's, Mid's, and the good old fashioned "="'s for string comparison.  :D
[/Technical programming psychobabble alert]

In the next couple of days I should have something shabby to show which we can then beef up with sexy stuff but for now, back to the port…

OK, a couple of days turned into four to accomodate a back problem and unexpected new years eve jollies.

I now have a running SAFTAP engine and am currently running a few games through to ensure all the cogs of the engine are well oiled. (I think) I have a problem at the moment trying to pull the nails from the rug in a certain ‘flat in London’ and from here I need to test one or two other bits.

Once I’m done, probably tomorrow, I will upload SAFTAP (as a setup kit) to my website for download so anyone wishing to do so can have a play.

A couple of screenshots of it in action so far:


In play with Pirate Adventure.


Inital opening screen and me asking for ‘/Help’

Colours can be changed by hex values in the INI file.

Sample INI file:

’ --------------
’ — SAFTAP —
’ --------------

[GENERAL]

[PRESENTATION]
FontName=Arial
FontSize=14
FontBold=Y
FontItalic=N
FontUnderline=N

Background=FFFF80
MesgText=008000
RoomText=000000
ExitText=800000
LookText=000080

InputBackground=006000
InputText=00ff00


More soon !

Engine now fully tested on Pirate Adventure and works completely. Also tested on the light-match-in-mine on Ghost Town and the sleep routine works great too. Fixed the issue with the nailed down rug in Pirate Adventure. Just one more thing to do now which is very minor and it will be up on my website for you all hopefully tomorrow depending on how work is tomorrow. Its looking good even though I say so myself :slight_smile:

SAFTAP v0.01 now released.

SAFTAP http://www.therealeasterbunny.pwp.blueyonder.co.uk/saftap.zip

Scott’s Game Files with license info http://www.therealeasterbunny.pwp.blueyonder.co.uk/sagames.zip

Please feel free to check out SAFTAP and let me know your thoughts. It should be pretty solid even though its v0.01 as it built on AdvPDA which went through quite a good bash testing.

Custom font selection, sizes and colours can be done by editing SAFTAP.INI.

Hopefully enjoy. :slight_smile:

If you do not like my pastel colour scheme, please adjust your INI file and if its really cool, why not post it here.

Here is a VDU ‘green screen’ config which looks great for the purists of old school text adventuring:

[code][PRESENTATION]
FontName=Courier New
FontSize=14
FontBold=N
FontItalic=N
FontUnderline=N

FormColor=000000

OutputBackground=001000
MesgText=00A000
RoomText=00A000
ExitText=00A000
LookText=00A000

InputBackground=001000
InputText=00A000[/code]

Nice! :smiley: My impressions:

-Under Windows 7 I had run the program with administrator privileges to avoid crashing on loading any file. Even then It will refuse to load .dat files (with a VB run time error 62) but .saf files work OK (save adv13, which will fail for some unknown reason).

-It would be nice if both options and console commands were available through an ordinary windows menu, but of course that’s not a priority at this stage.

-Dying is confusing. You still can input commands and they seem to have an effect, though you get always the “Your adventure is over” message box. At that point what I would expect is an option to either restart, load a new game, or quit.

-I like this “just one window” layout with everything getting cleaned and updated every turn. It’s nice for both usability and comfortable playability. Ideally player should have an option to switch between this and the classic “two windows” display, but I guess that would be complicated at least.

Great job indeed! Thanks a lot for it! :sunglasses:

Hey Rockersuke, thanks for the quick feedback!

OK, just had a rummage…

ADV13 seems to have a slightly different format in that the location room numbers for the items are not on the same line as the item but on the next line. I have edited ADV13.SAF and adjusted this and SAFTAP now loads this Adventure. I have rezipped sagames.zip and uploaded to my wesite.

I have renamed ADV02.SAF to ADV02.DAT and SAFTAP (under Windows XP) is happy loading the DAT file. Are you opening a specific DAT file? If so, can you email the specific DAT file to therealeasterbunny ~at~ hotmail ~dot~ com so I can test it with the source code? From this I should be able to locate the problem.

I have tidied up the game over / player killed routine so it pops up the game over message box and leaves a final message in the output window but any subsequent command asks the player to open a new Adventure. I will load “v0.02” SAFTAP up to the website with this fix once I have checked out your DAT problem.

The additional features you mention could be built in shortly, thanks for the feedback, its most welcome and most useful!

Steve

Quick update - I think the problem with the DAT issue mybe that the DAT file is using just line feeds (Unix derived file) and not carriag return/line feed codes (DOS/Windows derived).

I will cater for this in my code (my “Doh!”) and will whack up v0.02 on my site very soon and then give you a heads up :slight_smile:

v0.03 now available from: http://therealeasterbunny.pwp.blueyonder.co.uk/saftap.zip

[code]-------------------------------------------------------------
SAFTAP - Scott Adams Format Text Adventure Player - WHATS NEW

therealeasterbunny therealeasterbunny@hotmail.com

0.01 - Initial Alpha Release

0.02 - Tidied up ‘Game Over’ routine.

   Tuned up up/down arrow on previous commands.
   
   Recoded Adventure load to cater for DAT/SAF files 
    that only have LF end-of-line and not CR/LF

0.03 - Fixed DROP routine for mutiple items with same item code.

[/code]

The links are not working. Anybody who has the files, can send them to me? I couldn’t reach the author.

Thank you in advance,

Hi M4u,

I appear to have a copy of the Saftap installer. I will send it to you in a PM.

Jason