Swigian by Wildbriar_Games (itch.io)
In 2017, I made a minimalist IFComp game called Swigian, which was attempt at pulling a hoax on the IF community /doing an experiment (for more info see here: Swigian - An Epistolary Postmortem - IFComp - The Interactive Fiction Community Forum (intfiction.org))
After playing the game, Marco Innocenti offered to make some lovely graphics for it. I wrote some javascript code to incorporate the graphics into a version of Quixe, but I was disappointed with my own code.
Now that Adventuron is available, and suited for pixel art, I decided to try to port it and see what Adventuron is like.
My experience: Getting started
I was confused at first because I thought that Adventuron Classroom was a tutorial, with the ārealā Adventuron available elsewhere. But it turned out that the classroom is the actual coding area. I didnāt realize at first you could hide the left sidebar by dragging it over; that improved things immensely.
I went through the basic tutorial, and found it useful. However, I found it difficult to discover advanced techniques. At first, I used the quick reference at the end of the tutorial, then I found the Adventuron documentation (Adventuron User Guide) and the cookbook, which has more advanced techniques. However, there were many important techniques I could not find in those two documents but discovered through helpful adventuron experts, so I suspect some other source of documentation is out there. I think it would be great to have a giant sheet listing every command or flag possible for the code.
My experience: Inform vs Adventuron
Iād like to make it clear that I am fairly proficient at Inform 7 and very noobish at Adventuron. So, I wonāt be describing what Adventuron is capable of, only what I was able to do with it.
Adventuron is far better at handling pixel art graphics than basic inform. Vorple can do fancy things, now, but it requires some effort, and Adventuron makes adding graphics smooth and easy.
The very largest difference between Inform 7 and Adventuron for me is that Inform 7 is about systems, while Adventuron was easiest for me to program case by case.
In Inform 7, creating a verb for one object generally creates it for all objects, and you define default behavior for it. Conversely, creating an object immediately defines basic responses for all several-dozen default verbs in Inform 7.
This creates a subtle pressure to create āmechanicsā in Inform games, where similar verbs are re-used over and over (for extreme examples, see Eat Me by Chandler Groover or Take by Katherine Morayati). It also makes it easy to enable clues where using the right verb with the wrong object nudges you towards that object.
Adventuron, on the other hand, introduces authors to parsing at the full command level. While it seems capable of some larger pattern-matching (the advanced features are very advanced!) the documentation, tutorials and sample games tend to code responses for specific verb-noun combinations.
This, I feel, creates more pressure to make one-off situations, where each verb is tied to one spot, to avoid situations where the player is trying a command in many areas and it doesnāt work.
Informās separate treatment of verb and noun takes into account if an object is present. This is generally useful but causes big problems with scope if you have, for instance, a room with a transparent window to another room where you can see but not touch objects.
Adventuron doesnāt have this problem, but it created other problems for me. Since command parsing doesnāt automatically check to see if an object is there, you have to manually add in āif (is_present āobjectā)ā everywhere. My mistakes with this caused some fairly entertaining bugs in my port of Swigian (such as an invisible snake). However, I see this as making some scope-based problems (like those of Inform) almost trivial, which is really nice.
Some things should probably work in Adventuron but I just couldnāt figure out. Every object you create has the message āyou seeā¦ā. Often I wanted to change that default, but couldnāt figure out how, so I sometimes got around it by not putting an object in a room and then adding some text to the room like āIn front of you is a cryptā. Since Adventuron code doesnāt require an object to be present, I thought it was easier. Probably a bad idea of mine.
Another small issue is symmetric exits. I had two ledges that I wanted to have the same DOWN exit from, with no UP exit leading back to it, and I couldnāt figure that out.
I wasnāt sure how to change dynamic text outside of the {boolean ? first_text | second_text} format. This led to pretty silly stuff of mine like:
ask_others : string "ASK OTHERS to ask about the others";
ask_fire : string "ASK FIRE to ask about fire";
ask_hrothgar : string "ASK HROTHGAR to ask about Hrothgar";
ask_help : string "ASK HELP to ask about help";
ask_beowulf : string "ASK BEOWULF to ask about Beowulf";
ask_text : string "{others_asked ? true_fire : ask_others}";
true_fire : string "{fire_asked ? true_hrothgar : ask_fire}";
true_hrothgar : string "{hrothgar_asked ? true_help : ask_hrothgar}";
true_help : string "{help_asked ? ask_beowulf : ask_help}";
true_thirsty : string ". You are thirsty, hungry, and tired";
thirsty_text : string "{said_thirsty ? nothing_text : true_thirsty}";
Now that Iāve actually finished the game, I see that there actually is a āset_stringā function in Adventuronās documentation, which makes me feel quite dumb as that would have been intensely useful and saved me headaches. This is why I think that a master of Adventuron could do pretty much anything.
My experience: Time
I originally wrote Swigian in one long day, then spent a few hours testing it. I was already experienced with Inform 7 at the time.
Learning Adventuron from scratch, porting the game, and testing, I spent probably 10 hours on this port. Overall, I donāt see a clear advantage either way.
My opinion: Capabilities
I believe that at some level of proficiency, Adventuron can do the vast majority of things Inform can do, especially in the hands of someone experienced and practiced. The difference is in whatās easy to do in one versus the other. I think Adventuron is better for games with strong senses of place and an inventory-focused puzzle system, and/or graphic intense games. I think Inform is easier for games with a strong focus on mechanics. But really good authors like Errol ( Errol - itch.io) are making mechanics-based quality games as we speak.
I think overall, I will stick to Inform and that I generally prefer the style of Inform games, because thatās what Iām familiar with and comfortable with. However, Iāve loved the recent adventuron games that have come out, and I hope to see some entered in Parser Comp and/or IFComp.