Wanting to create a "Retro" IF system in a retro language, BASIC

thanks Joey, I completely agree with all of your points. I am initially going to teach myself the syntax at the same time I am writing it. My thoughts are "how would I accomplish a, b, c, etc. My guideline so far
is to release the text (or game) for each solution I am trying to solve.

  1. CYOP, the easiest way to get started introducing branches and text.
  2. Cloak of Darkness, the is an absolute MUST although I see some tools
    that cannot accomplish this. I will need to add user variables to what is done in (1)
  3. text adventure, just enough to wet ones interest. This will include what is done
    in (2) and system variables like randomness (dice 1d6, 2d6, 1d100, etc), keeping
    track of what branches have been visited, and last branch visited so as to simulate
    sub routines.
  4. full IF

This can be nothing more than a side “retirement” project to amuse myself.

PS although running the program in JustBasic would (by far) display the game
in progress the best, just the text files are enough to critique the syntax.

1 Like

Somebody successfully taught Inform to a bunch of illiterate 3rd Graders. It’s quite recent, too. [1]

How about spending time figuring out the best way to do that [2] instead of saying “It’s so hard and takes years to do!” even in roundabout way. Isn’t that why people got frustrated and quit? What are you trying to do here?

[1] This proves that there is an easy way to do it. Just need to figure out the way to do it.

[2] I got it. But conveying the ease of the method requires unseating deep set beliefs, and I’m not going to even try. When I’m done, I’ll be looking for a bunch of 3rd Graders, but hopefully not illiterate ones.

1 Like

This. A lot of systems become surprisingly accessible with the right tutorials.

Similarly, a lot of systems become insurmountable with the wrong tutorials lol.

Inform 7 aside, the “text type” products out there seem to say to me, we can easily build a CYOP but for IF or text adventure needs, you need to call JS, JSON, etc. In one product I switched so often to JS, that I should of just wrote the whole thing in JS.

In regards to Inform 7, it seems to be extremely explosive and able to do just about anything. Rules based is much different than coding but it sounds more like one I would love to master.

1 Like

What are the existing tools that people would use to make a CYOP game and what are the issues with them?

2 Likes

Twine has Macros and Squiffy has JS.

I take it that you feel that macros and JS are where those two systems become difficult, then? So, whatever system you’re looking at developing has to be at least as user friendly as those two systems from the outset (for the basics) and then also be more user friendly when it comes to implementing the type of behaviours that they use macros & JS for. Is that going to be a realistic aim? Perhaps create some mock-ups of how your game code/script/language might look.

(A major selling point of those two systems has to be the online play side of things. Is your enhanced user friendliness going to be enough to overcome the lack of that feature? BASIC really might not be the way to go if you’re looking at creating a system for CYOP-style games. Like Adventuron, you might need to look at a browser-based system. Or perhaps you could come up with an intermediate coding system that converts to something that will run using Twine or Squiffy… something that generates all that nasty JS and those horrible macros. Building stuff that works on top of existing systems can be very successful… look at Inform!)

I dont’ feel that JS is nasty. Just if I switch to it so much, I might as well just write the whole thing in JS. The “displaying” of my syntax would start in Basic (quicker to write) but may very well be a candidate to be displayed by JAVA or others. Many thanks for a lot of great input.

An extreme drawback to using Justbasic is that the user would need to have it installed. I found
Small Basic which creates an exe file, so the user would not need to have it installed. Comments ??

1 Like

What if they don’t run EXEs? if you have the source for a Basic interpreter, you could maybe transpile to web (emscripten) and publish just a link?

1 Like

Experience with Adrift shows that clean exe-files can still sometimes cause false positives in your anti-virus software. The problem goes away with time if you submit to various anti-virus companies but each time you update your program you may have to go through it all again.

Having said that, I think a lot in my generation (i’m 46) and slightly younger have a passion for Basic due to the simplicity, experience with it plus nostalgia.

If it is easily ported, I would reconsider if JustBasic should be the first choice. Assuming RunBasic (or similar web aimed Basic) is good enough I would “invest” the 60$ in it and make a small demo game to show it can be done. Then the player does not need to download anything.

I would be very interested under the following assumptions:

  1. It has a parser with Infocom quality
  2. Games playable in browser
  3. Save-files stored in browser or on player’s pc
  4. High user-friendliness
  5. Easy to customize
  6. Decent speed
2 Likes

#1 and #5 is very contradictory. Inform is a wonderful piece of technology, but it’s not an easy thing to do. You likely won’t see anything more sophisticated than USE N1 ON N2 type of parsing.

I don’t know if there’s a standard way to save locally on browser. I need to research that, but who knows if it’s going to be stored properly for a long time, or if the browser suddenly decided that it’s old data that needs to be deleted?

3 Likes

“Zork I” quality is sufficient. Inform versatility isn’t the goal, just Infocom-like.

2 Likes

There are already some examples of fairly decent BASIC parsers out there (such as Jim Macbrayne’s). If anyone wants an Inform-level parser then they’ll use Inform. Any users of a “retro IF system”, as this thread is about, should be okay with a more limited retro parser.

Re. the .exe thing… I’m always very reluctant to download any modern .exe files myself; due to security worries. I’ve never played an Adrift game, for example (although that too is because it’s not like I don’t already have an endless supply of retro text adventures to be working through… new games are always a harder sell).

BASIC in a browser is always a possibility but not necessarily the most elegant solution. I often play/run old DOS (or other retro) games written in BASIC on the Internet Archive which basically runs all the necessary emulators (such as DOS box) through the browser.

I think if anyone was looking for a system capable of producing browser-accessible adventures then they would probably start elsewhere. However, my understanding, from clarifying response from the OP was that the BASIC-powered version of the system is potentially only the first step here. There was talk of the fact that a common source file could be used to play the game in a differently-powered interpreter; such as one running in a browser, written in a suitable web language.

Keeping the original poster’s “unique selling point” in mind, of producing a system that’s “really easy to use” by the author, has to be the main first step. I think deciding what that involves, what authoring a game with the system will actually look like, is the real key part. And getting feedback early on whether people would actually find that easy to use. It has to be “easier to use” than the other “easy to use” tools.

Getting distracted by browser-delivery at this point might derail the project before the important groundwork is put in place. To be perfectly honest, if someone wants an easy-to-use browser-based retro IF system, then there’s already Adventuron. And ngPAWs. Also DAAD should be fully browser-ready quite soon too. If you want this system to be used by authors then it’s really going to have to bring something special to the table. Or target a very specific niche of users.

9 Likes

I don’t quite agree. I would very much like a strong parser in BASIC. Your example, Jim MacBrayne’s games are only available on Windows, the code is not public etc. I would love a PunyInform-level parser in BASIC as I feel much more in control when using a programming language compared to an IF tool and the learning curve of Inform is very slow. A lot of things in Inform are not intuitive, at least for me.

I think @TomTAP is targeting a niche by making it in BASIC. It is my impression that a small portion of the IF community likes BASIC a lot, mainly because it is probably the most simple “real” programming language. But as you say elsewhere, the program must be very easy to use, otherwise there isn’t much point.

FORTH might fit that bill better than BASIC. It is a post-fix stack based language that is very small.

But, it suffers from the same problem as BASIC. It must be installed on the device that will be used.

3 Likes

Sounds interesting. I hope to check it out in the near future. I guess the most simple of all might be a pseudo-code interpreter if it exists or perhaps something like Matlab or Matlab clones which can create web pages.

2 Likes

A classic intro text is Starting Forth. It is available on the net as a pdf. A commercial version is available on the online bix box store.

Systems that I find most useful are gForth and win32forth.

A very nice SBC is available from Udomonic in Australia.

4 Likes

We currently only have one game listed on CASA as being made with Forth. I’d love to hear if there are any more… sounds like a niche waiting to be filled. :slight_smile:
http://solutionarchive.com/game/id%2C1114/Black+Island+Adventure.html

I can definitely see the attracting of directly using BASIC. I definitely don’t dispute that. However, from comments by the OP, it would seem he’s looking at making an “IF tool” with BASIC. So you’re not necessarily directly using BASIC as the end-user or have any more control that with any other IF tool.

It’s all very theoretical at the moment, anyway. Whether it’s BASIC or Forth. I’ve used BASIC-powered adventure creators in the past (and BASIC-powered creators that generated fast machine code) but they were always really lacking in the “easy-to-use” department. So getting that aspect right is going to be key.

2 Likes

Most Basics would need the software installed. Microsoft Small Basic creates an .exe so that the end-user does not need the software installed.

2 Likes