Gruescript is a tool for creating point-and-click text adventures which feel like classic 'puzzlebox' games while eliminating the need for the player to type, making the games friendly to modern devices and players.  You build your game online and download it as a playable HTML page, which you can host on your own itch.io site or elsewhere.

Click "Run Tool" (above) to run Gruescript. Documentation is available under "Download" (below).

If you prefer to develop offline, download "gruescript-beta.zip" below. This contains a copy of Gruescript for offline use (it's exactly the same as the online version), as well as a template HTML page that you can work on directly, and a syntax highlighting file for Notepad++.

For an example of a full game made with Gruescript, see The Party Line. (The source for The Party Line is available from the "Examples" menu in the Gruescript editor.)

Gruescript is currently in beta. Please report bugs to robindouglasjohnson@gmail.com, with details of what happened, what you were doing, and what browser you were using, or post in the comments here, or raise an issue on github below. Thanks!

Gruescript is released under the open-source MIT License. There's a public repo at https://github.com/robindouglasjohnson/gruescript (issues and pull requests are welcome.) Share and Enjoy!

last update: 2021-09-18: fixed bug where "assign conversation 0" didn't end conversation cleanly
(For full changelog, see commit history on github)

Thanks to: Leonardo Boselli, Ruber Eaglenest, Eve, Stephen Fowler, Laurent Gontier, Ninja Kitty Go, and all my Patreon supporters

Design principles (click to read)

Interactive fiction (IF) is broadly divided into "parser games" and "choice games". Parser games are the ones you type instructions into. Probably the most famous ones are the old ones, like Colossal Cave and Zork. Choice games give you buttons or links to make decisions, a bit like "choose your own adventure" books (with a little more state).

In the last decade or so there's been an explosion in IF forms, and a bunch of new authoring systems like Twine, Ink, and Choicescript. These mostly target mobile and web playability, because it's the 21st century, and mostly make choice games, a natural fit for mobile interfaces. (I want to make one thing absolutely clear: that is awesome. There's a subset of parser game fan who resents the fact that choice games exist. Gruescript is neither by, nor for, those people.)

Authoring systems, game interfaces, and game design are closely linked. Choice interfaces tend to favour story-centric rather than puzzle-centric design. Puzzle design is a Hard Problem if the player has to be able to see all their options all the time. This isn't to say there aren't excellent examples of puzzly choice games; but none of those systems make it particularly easy, at least with the type of puzzles parser games are remembered for.

Parser games still have an active subculture (just look at IFComp) but they've become more and more unintuitive to outsiders. It's not just that modern mobile devices don't have keyboards. Command prompts just aren't a familiar way of interacting with computers now.

So, this is my attempt to create a web/mobile-friendly authoring system for parserlike games, that identifies and preserves the qualities that make the parser interface suitable for those puzzly games -- snappy prose, a tight world model, rapid back-and-forth interaction between the player and the game, with generalised verbs that don't give away your options before you think of them yourself -- while eliminating the parser itself. It had to go.

(You may have seen the front-end before; I've used it in homebrew Javascript games, including Detectiveland, which was the first non-parser game to win IFComp in 2016. Like many "first non-X"s, it couldn't have won without imitating X as closely as possible.) 

Gruescript's online editor is modelled after two tools I admire for their accessibility, cuteness, and strong followings among fringe gamedevs: Bitsy and Puzzlescript. My aspiration for Gruescript is to be IF's answer to those.

Download

Download NowName your own price

Click download now to get access to the following files:

Creating Text Adventure Games On Your Computer With Gruescript 718 kB
gruescript-beta.zip 92 kB

Development log

Comments

Log in with itch.io to leave a comment.

In the built-in Party Line game, the first clickable command result has a typo:

prompt knock on $this

should be

prompt knock on {$this}

otherwise it prints "$this" into the transcript. Only pointing out the nitpick because the example is supposed to teach the syntax.

(+1)

I put one of your sample games up on Observable to test out the export. It works great! ( Except save game which depends on prompt() but that's easily fixable ) 

https://observablehq.com/@triptych/hello-gruescript

(+1)

Ah, interesting! I actually rewrote the save/restore interface without prompt() for Gruesome (which, despite being a parser game, uses much of the same engine), so I'll try to make that change to GS soon.

(+1)

Thanks! Google Chrome folks are out to get things like alert and prompt deprecated. I don't think they should but it's good to not depend on those methods for the engine.

(+1)

The latest version gets rid of the prompts and uses nice slidey modals instead.

(+1)

This is amazing! Since it's open source does that mean you might accept pull requests? As a webdev passionate about IF it'd be great to contribute if possible?

(1 edit)

yes, pull requests are welcome! Somebody already spotted and fixed a mistake in the build log.

(+1)

Awesome! I'll take a look and see how I might help in some way.

(+1)

I’ve only played with it a little bit but I really love it so far. 

Looks like a great engine! Pity it doesn't support non-Basic Latin names for rooms and verbs...

Deleted 67 days ago
(3 edits) (+2)

It's just the internal names that have to be basic letters, numbers and underscores, if that's what you mean. You can set the display names to anything you like:

game Dïåcritics
id diacritics
room hagatna You're in downtown Hagåtña.
thing cajon Cajón
name cajón
loc hagatna
verbs play
verb play cajon
display plåy
prompt plåy {$this}
say It sounds better than Motörhead!
(+1)

Looks like what I was looking for, thank you!

(+2)

Exciting! Thanks for providing, I'll have to check this out...

(+2)

A brilliant idea. I hope this takes off, and will use it if I find the time.