Reviving Ramus


Hello, everyone! I set aside one interactive fiction tool for the moment to work on another. Except the Ramus hypertext system isn't new; its first release was in 2011, fully nine years ago! At the time, various factors caused me to abandon it much too early, which was a shame because people had actually used it...

Well, now it's back, better than ever, and this time I plan to keep at it.

Like with so many other things, to write version 2.0 from scratch I needed one afternoon; what took years was the learning process. Barring a longer analysis, here's a few hints:

  • even tiny Javascript libraries of the sort listed at microjs.com are dangerous dependencies unless you're willing to take over maintenance yourself;
  • modern web standards are flexible; you don't need to invent your own tags and attributes, or twist them to the point of breaking to use them in novel ways;
  • for that matter, web browsers have all kinds of neat stuff built in; even smooth scrolling has been available in some browsers for maybe five years now.

A black box you can only drop into your project untouched isn't code reuse.

Come to think of it, that might as well be the motto of Ramus going forward. I now call it a template, and that changed my entire attitude towards the project. Just like that, I have a roadmap, with clear signposts along the way. Ride on.

Get Ramus hypertext system

Comments

Log in with itch.io to leave a comment.

(+1)

I recently added auto saving of variables to HTML storage, and a way to restore a game. Information is posted on a Reddit post: Ramus IF scripting : interactivefiction (reddit.com)

Good work, thanks! I hope people find your extended version useful.

This is great. Any chance you could add save and restore to/from html storage?

(1 edit)

I could never get local storage working for me, in any game. Sorry.

(+1)

My apologies if you've tried this already - I'm new to javascript and am still learning. I have added a couple of new commands at the bottom of your template file and am able to save a variable to localstorage, and then read the value from local storage. 

To test, I used the template.html and at the start, I saved a variable and reset the value, and in a later part of the template I echo'd the current value, restored it, and echo'd the new value. 

I am going to see if I can incorporate into a simple game to test some more but I thought I'd share. 

You've really done a great job at making it simple to create a game.

commands["save"] = function (name, value) {
localStorage.setItem(name, value);
return "";
};

commands["restore"] = function (name) {
value = ( localStorage.getItem(name) );
variables[name] = value;
return "";
};

Really excited to discover this! I look forward to exploring what you are building. Is this open source?

Um, yes? Says as much in the description. And thank you!

That's good. Where are you hosting the sourcecode? Github link?

Right... here? This is the source code. None of it is minified or anything.

I see. I understand.  In the past when I have seen folks referring to their project as open source it would imply that they have it up on some version control system so that other folks could contribute changes and improvements in a systematic manner. And in that repo you'd see the license for which to share the code. I see that you do have a sharing license ( https://opensource.org/licenses/Artistic-2.0 ). Thanks for answering my questions.

(1 edit)

Uh, no. Open source refers strictly to how the source code is licensed. It says nothing about collaboration, let alone version control systems. And the only part licensed as Artistic 2.0 is the sample game. Hope this helps.