Adventuron, a new text adventure engine

It does not appear to be possible to use ${} in a print function:
: print "You have typed the verb: ${verb}." ;

‘lose_game’ does not appear in the documentation in section 3.7.2. Common Commands.
This is also the case of ‘win_game’.

In system_messages: prompt, it doesn’t work properly if there is a line break in the message; input is shifted.
prompt = What next?\n>>

What next?
>         GO NORTH

It’s not really a problem because I can put “What next?” in on_tick{}.

on_tick {
   : print "What next?" ;
}

Updated.

How do I center a text with spaces in a text box? There is a mismatch. I’ve tried with an unbreakable space, but it doesn’t work.

on_startup {
   : print "^c^^n^**********************\n*_LAND_OF_THE_GIANTS_*\n* LAND  OF THE GIANTS *\n**********************^m^" ;
   : press_any_key ;  
}

center-min

Some default system messages are not the same as those displayed in system_messages {}. This is the case for nothing_to_get:

nothing_to_get = You can't find it.
system_messages {
   nothing_to_get = You look around but can't see any ${noun} anywhere!
}

The reason for this is that you are using the “Bamburgh” (default Adventuron) font, and this font is proportional - meaning that character height is consistent but character width varies depending on the character.

If you use the “daad” or “clairsys_10” fonts you will find that they are fixed character widths and everything will line up.

Information on font settings are here:

https://adventuron.io/documentation/#Fonts

You can also import any of Damien Guard’s fonts and they should work as monospace fonts too.

If you really want Bamburgh (perhaps because of French glyph support), then you will have to eliminate the other * characters and the text will still look good as centred text.

Chris

1 Like

I’ve made a note of this in the issue tracker and will address it, but low priority for now.

Thanks. I had stupidly persuaded myself that the Bamburgh fonts were fixed type, but it is obvious that this is not the case!
I transposed Dorothy Millard’s LAND OF THE GIANTS to Adventuron, trying to reproduce the Quill C64 version faithfully.

2 Likes

The Spooky Adventure source code, available in Adventuron (Beta 59a), has obselete code that prevents it from executing:

boundry_message => boundary_message
stagger => print_stagger

Hi, 'im Michael, near my 50th birthday and I really appreciate Adventuron since it’s online and retro and the scripting is very easy.
But… I have some proposals to make… and didn’t find a “feature request” thread around here, so I thought to start it here beneath… feel free to move it to a new home.

  1. I’m german and tried to translate my story. So I hit some walls… first, it’s impossible to overwrite some verbs/nouns in the theme vocab or anywhere. I e.g. tried to overwrite open door into Öffne Tür (Oeffne Tuer) and had no succes, seems like Adv-Engine has some vocab hardcoded… I had to catch it in the on_command section at last.
  2. All Contextmenus (for objects etc.) are english, but I read this will change in near future? Right?
  3. It’s a clever move to add on_command handlers to rooms… but: I would prefer to get also on_command handlers with objects, since it’s not the room, that usually play the main role, but the object. Moreover I would like to introduce new verbs on an per object basis (like in object oriented design), so I can eat something and drink some other and use this and break that… at the moment I have to do lots of match/if_present stuff to realize that kind of behaviour. So my preffered solution would be to make all stuff (rooms/objects/scenery) like a extendable inherited class hierarchy (ok, this is NOT C++, but I anyway come from TCL :-))
  4. As much as I like the retro Design in some situation I really would like to get some modern fonts (in modern size) since printing/reading longer segments of text simply does not really work out with the retro design, so my wish would be to let the author choose on this.

Anyway, really like this IDE and I hope it will be around for a good time! Great work and I found the response of the Team (ok, how many peaople are you?) is quick and proper, thanks for that!

Michael

1 Like

Hi Michael,

Thanks for your suggestion list.

Your translation issues make sense and I’ll probably look at these with priority as they should be fastest. Adventuron currently supports English’ and Spanish natively and the nature of the system means that ad-hoc language support is a bit tricky right now, although I’ve been trying to parameterize as much of the UI and parser behaviour as I can.

As far as making Adventuron more OO like in structure, yes, this is actually planned, but in such a way that the current way or defining things is maintained.

Your final point about modern fonts, please check the documentation which shows how to reference google fonts in your theme, or how to import your own TrueType font.

With the exception of the latter item these particular changes may take several months to arrive, so I can’t recommend building a full adventure in German at this time as it’s quite possible you will hit a block in adventuron.

I will certainly look at German support (and French) seriously, and the more request I get food each language motivated me more to allocate time in these directions.

Oh, to answer your other question, the team size is one currently.

Take care,

Chris

1 Like

Thanks Chris,
Teamsize One was what I suspected already. Don’t stress yourself, any language support/flexibility on prio 1 and the rest is just a wishlist to be postponed.
I look into the fonts thing right away, didn’t try it since I thought the font size would always be some 8bit ish… OK, this gogle fonts thing did not work out properly, but when using googlefonts it falls back to a reasonable default font, that is scalable, great!
Ah now found out, downloading the font and linking it local will work…
Best Wishes
Michael

Hi,

It looks like I didn’t do a great job of the Google Fonts documentation.

I’ve just posted an update, with a working example too.

Adventuron - Webfonts

Chris

Thanks, I was unsure if the woff2 format was responsible for the problem so I downloaded the ttf package form google, but good to know it works over the web with no need to serve the fonts themselfs :slight_smile:

If you’d like to ask a question about Adventuron, raise a bug or suggest a new feature, I’d suggest using the Authoring > Other Development Systems category. If you prefix the subject with ‘[Adventuron]’ and add a tag of ‘adventuron’, it’s sure to get noticed.

A list of the standard (hard-coded) verbs can be found at https://adventuron.io/documentation/#DefaultVocab. ‘Open’ is one of the standard verbs, but you can easily override it in the on_command section, as you’ve already discovered.

It’s not quite object-oriented, but you can do something similar by using a pattern like this:

: if (is_present "cake" {
   : match "examine cake" {
      : print "Looks yummy.";
      : done;
   }
   : match "eat cake" {
      : destroy "cake";
      : print "Mmm, chocolate. My favourite.";
      : done;
   }
}

In other words, you do the if statement before the match statements, then you can do all your verb handling appropriate for that object in the same place. There will be occasions where this is not appropriate, but, as a general rule, I organise all my code like that nowadays and I don’t put any handlers in the locations section any more.

There might only be one person on the team, but he does the work of ten people and he has lots of helpers pestering him with bug reports and feature requests.

1 Like

:+1: :+1: :+1: