(This is a lightly-edited version of a review I posted to the IntFiction forums during 2022's IFComp).
These days when I’m reviewing a custom-parser game, there’s a little introductory patter I usually launch into where I talk about how back when I was first getting into IF 20ish years ago, seeing that an author had created their own parser for a game was invariably cause for alarm – a sign that I was about to be subjected to an insufficiently-tested, awkwardly-designed system that lacked any of the conveniences that contemporary audiences had justifiably begun to take for granted. But over the years, the quality of custom-parser games has inarguably gotten much better – indeed, one even took fifth in last year’s Comp! – with authors paying attention to what the mainstream systems offer and incorporating most of the same features in their own work.
This trend is a very positive one all around, but here’s a downside – it meant I blithely booted up Jungle Adventure with high hopes for enjoying a round of puzzle-solving and treasure-hunting in tropical climes, and wound up striding gormlessly into a rusty old mantrap of a custom parser that brought me right back to the bad old days.
This is going to be a very negative review, because Jungle Adventure is a badly designed game that’s frustrating in the extreme to play. That’s deeply unfortunate, though, because it’s clear the author put a lot of work and creativity into it. This is most obvious in the detailed, often-clever ASCII art that decorates most scenes – it’s fantastic, with a sense of whimsy and humor (like the bend in the protagonist’s plane once it crashes) that always made me smile. But it’s also reflected in the many different gameplay modes Jungle Adventure boasts; much of it is typical parser fare, but there are also some choice-based sections as well as an extended graphical maze, complete with RPG-style combat.
If the author had a lot of fun putting the game together, though, the player is likely to have no such luck. While most of the puzzles aren’t especially challenging, Jungle Adventure is a beyond-punishing gauntlet of suffering, largely due to the extremely limited capabilities of the parser. From peeking at the python code, in fact it looks like there isn’t really a parser – just a whole mess of hard-coded if-then statements that manually match different input the player types. That means that unless you read the author’s mind and type the exact right thing at every stage, you’re doomed to see a litany of completely unhelpful error messages as the game fails to communicate whether you got a verb wrong, an object wrong, a preposition wrong, or are just barking up the wrong tree.
I’ll restrain myself from offering too many examples, but a few of the most egregious include the fact that neither X nor LOOK AT suffice to examine an object – just LOOK THING; that EXIT means QUIT but LEAVE means EXIT; to get the batteries out of a RADIO you can’t OPEN RADIO or LOOK IN RADIO, just TAKE OUT BATTERIES; and when you’ve got the opportunity to offer an object to another character GIVE RADIO doesn’t work but RADIO does.
Compounding this obfuscated system is an obfuscated game design. While there are hints offered in every room, they’re often fairly cryptic, and I found them inadequate to the challenge of gently leading me to the solutions to puzzles like e.g. the second one, which requires finding the aforementioned radio by intuiting that you’re probably wearing clothing with pockets and typing LOOK IN POCKETS, despite the inventory screen telling you nothing of the sort. Similarly, many of the remaining puzzles require you to squint at the ASCII art and guess what it’s depicting – and which of several synonyms for the object the game will deign to accept. I quickly had recourse to the inauspiciously-named junge_adventure_walthrough.txt (now I really want someone to make the Jung-themed adventure game…) but it only explains the solution to like half the puzzles, and just gestures towards them in general terms when what’s really needed is the exact syntax.
I was able to make it to the end by diving into the aforementioned source code and reading off exactly what I was supposed to do. This didn’t save me from a frustrating time in the maze, though – there’s a lot of randomization here, as well as a bunch of instadeath traps and unbeatable monsters (have I mentioned that there’s no undo, and while there are save slots, there appears to be a bug preventing you from overwriting them?), and a combat system that seems coded such that guns are strictly worse than punching, a fact the descriptions in no way makes clear. Still, I am a cussed, ornery soul on occasion, and I certainly did feel a sense of accomplishment at bashing my head against the maze over and over until I battered my way through – a sense of accomplishment significantly tempered by realizing, after I solved one more puzzle through the expedient of source-diving, that my reward was just a message congratulating me on getting past the first chunk of the jungle, and that there will be more to come once the author gets around to it.
It’s not impossible that part two of Jungle Adventure could be turn out well – stranger things have happened. But to accomplish that, the author will need to do what the authors of custom parser systems have done since they started making them good: look at what the major systems do, imitate them unless there’s a very good reason to drop or change a feature, and test, test, test. As it is, Jungle Adventure Part One is a testbed for some cool graphics and a diverse set of gameplay systems, but I can only recommend it to those looking to bone up on their python-reading skills, or people with disastrously low blood pressure. As released, it’s a frustrating, unrewarding experience that risks resurrecting my old prejudices, though I’m doing my best to fight them.