Ramus is a system for authoring (and reading) self-contained non-linear documents, a.k.a. hypertext. Though not exactly a game, it can be used to make one, as well as learning tools and interactive literature.
Ramus is more than a little inspired by Undum, which I think is a very good concept, needlessly complicated.
- Ramus documents are self-contained by default -- a single HTML file which you can copy around effortlessly.
- You write Ramus documents in plain HTML, unless you need state management -- and then you use a simple template language, with a minimum of Javascript code.
- No game-specific features are built-in. As core Ramus is powered by only 40 lines of Javascript, tweaking and adding to it is simple enough.
In fact, I see Ramus more as a starting point than a finished product -- which it isn't in any event!
News
The 2012-01-22 release includes an example of how to link to several fragments at once, and a new F.A.Q.
As of 2011-07-06, the full version features smooth scrolling. I also fixed a bug whereas the starting fragment was not being parsed for templates when initially displayed.
Download
- Full-featured version, with templating and animation.
- Intermediate version, with animation.
- Basic version, with only the essential code in.
License? What license? All right, here we go:
If you are asking what license this software is released under, you are asking the wrong question.
Links
Textallion, an electronic literature preprocessor, supports Ramus as an output format.
Credits
Ramus makes use of two excellent libraries:
Smooth scrolling code based on this ITnewb tutorial.
Frequently Asked Questions
- Why raw HTML? Wouldn't wiki markup or Markdown be easier on beginners?
- No, not really. In my experience, people who are baffled by HTML are equally baffled by wiki markup, BBCode and the likes. Moreover, people who do get wiki markup often have very strong opinions on what makes a good syntax. Markdown may be less controversial, but it takes quite a bit of code to parse, and I want to keep Ramus small.
- Why doesn't Ramus hide all links from previous turns, like Undum? It's weird.
- Because you may want to have a type of link that displays a
couple of sentences and sets a flag, but doesn't otherwise advance
the action. If you know you want previous links to vanish when you
visit a particular fragment, put
[?do clear_links(); ?]somewhere inside it. Or you could use[?do clear_text(); ?]instead to clear the previous text completely. - Can I include a fragment inside another?
- Sorry, no. That's because of how I'm using the Mold library. If there's enough demand, I'll consider changing the code to maybe allow for it. Consider linking to multiple fragments at once instead.

