Sponsored By

AdventureText is a recently-released, freeware Text RPG inspired by Cleft of Dimensions. I interviewed its developer to find out what it was like going through the entire process of programming and designing a small text RPG from scratch.

Leo K Rogue, Blogger

February 24, 2016

12 Min Read

Recently, I interviewed Hehehe426, the developer of the freeware indie Text RPG AdventureText, for which I was also a playtester. As a game analyst and a consumer of digital games, I was driven by my own curiosity, and the questions I asked were a cross between ones that interested me, and ones which I thought would be of interest to a general audience. AdventureText is free to download and play on all major operating systems from its SourceForge link, found both here, and at the end of this interview.

Download AdventureText at SourceForge (AdventureText.zip):

Without further delay, let’s get into the interview, below.

Leo K: How did you first get the idea to build AdventureText?

Hehehe426: I was taking a Java course, and learned the Scanner class, so I could now take input and print output. The logical course of action? I began screwing around and developed a simple program to walk around a 3x3 grid manor, text-adventure style. I gradually improved the system to add items and such. This was also where I learned the majority of my Object-Oriented principles, as my dad told me how to improve my room-positioning code. Without him telling me how to improve the room system, the dungeon would have had a lot more trouble being the weird shape it is in the current version. Basically, it just sort of happened, and then next semester I was like, “Hey, can I take a guided seminar to make a video game? Thanks.”

Leo K: So AdventureText wasn’t always an RPG, right? Traditionally, most Text Adventures don’t quite work like the RPGs the gamers of our generation would have grown up playing, whereas AdventureText does. It has weapons, armor, consumable items, a turn-based combat system and an economy that lets you buy and sell the items you have. In short, AdventureText has all the facets of an RPG, condensed into a simple, text-based format. When did you decide the game would be an RPG? How did that come about?

Hehehe426: Well, when I started developing the actual game, yes, it was an RPG. I was always sort of leaning toward Cleft of Dimensions. I take a lot of inspiration from that game. That one’s basically a Text MMO or a Text Online RPG, if you will. It’s a MUD.

Leo K: For the people who don’t know this, that stands for Multi-User Dungeon, right?

Hehehe426: Yes. But yeah, very early on, no, there was no RPG, just the gradual development of a text adventure system. But I sort of was always leaning toward that? Like, what I developed very early on was the items system, how I was gonna deal with picking up and dropping items, inventory, etc. I really like Cleft of Dimensions because a whole lot can happen and you can do a whole lot and suddenly realize that you have not once looked at any graphics while playing. And yeah, it was just the simplest video game I could make with the tools I had available to me. Or, more like the most complex video game I could make with the simple tools I had? Yeah, that’s more like what it was.

Leo K: It’s reasonable that a text adventure would have the ability to move through rooms, to look  at things, and to pick up, store, maybe even drop items. So all of those things are pretty common actions in a text adventure, it makes sense you’d develop them first. Now, given that, I have to ask. After that, what was the next thing you did?

Hehehe426: After that was probably when I didn’t do anything with it for a while, because it was summer. When I came back to it when school came back in session, I developed NPCs first, I think. I think my first NPC was a little Drizz’t Do'Urden. I can’t remember if I also tested the Talk feature with him as well. I turned to him because I’d read a bunch of his books lately and the Items I used to test my nickname system were his two scimitars.

Leo K: Your nickname system, meaning, how the same objects or nouns could have many different names that would successfully call that noun and have the game respond to it? Like how things could be, “Blue Sword” or “Sword”? Because as a designer you’re not sure what a player might type in, so you want to try to cover as many possibilities as you can, right?

Hehehe426: Yes. I used the two scimitars because they could both be called “Scimitar,” but they could also be told apart with “Blue Scimitar” and “Green Scimitar,” or “Icingdeath” and “Twinkle.” When you typed “Scimitar” it would pick up the first thing it found of that name. But if you wanted to get the second thing, you could use the more specific name.

Leo K: In Alphabetical Order, right?

Hehehe426: Not really. Just in object creation order. Or “added-to-this-room’s-list-of-items” order. That’s really what the nickname system looks through so it’d be that order. First item it found on the list.

Leo K: That’s good, no need to make things complicated for yourself. Especially since you coded this game from scratch. As I remember it, you didn’t use any pre-built engines, assets, or anything like that. A lot of people praise how much control that gives a developer over what they make. Would you say that’s true? Is there anything else you can say about that process of making every little thing on your own, and how it made you feel?

Hehehe426: Yeah, it was nice to know how to do everything since I made it myself. It was challenging, like problem-solving. Having to figure out how to program this or that. I enjoyed doing that. I like that sort of problem-solving. “How can I make it so consecutive Talk commands will have the NPC say things that advance a conversation?” “How can I make it so that monsters will respawn?”

Leo K: Speaking of monsters respawning, what was the process you went through to design the combat system? What were some of the problems you ran into and how did you resolve them?

Hehehe426: Making combat be continuous was definitely a problem. Like, making it so that your normal commands didn’t apply, that you were in this “special state” for combat. Also, having the different combat commands, and having the turns and all the rest of the combat essentials until it ended. The entire game runs on a loop until it is exited. I had to set up a loop within this loop. The combat loop, which, until it is resolved, takes place on a single “loop” of the main game. Another issue was deciding how stats were going to work. They’re sort of arbitrary numbers until you figure it out. In the end, Defense contributes directly to your Health, and Attack is based on rolls. You’re actually the one who suggested that Defense tack directly onto Health. But yeah the combat loop was the biggest problem to get set up. I basically had to set up the game all over again WITHIN the game. Just, a game with different “rules.”

Leo K: Yeah, I found that having Defense directly raise the player’s HP made it not only less of a headache for you, it’s also just easier to grok and understand at a glance. When I buy that Iron Helm and that Iron Chestplate, I can immediately and clearly see the difference in my character’s survivability. I think I’d suggested that idea based on my recent experiences reading about Monster Hunter, and I think I saw something about how in that franchise you don’t level up your character, you level up their equipment and stronger equipment just gives your character better stats. I thought that was a genius idea, and in the final game I think it works out really well. Now, at the risk of being incredibly cheeky, was there any unexpected or game-breaking issues you saw with the combat system at any point? [laughs]

Hehehe426: Okay, so yes! At first, the Escape command instantly stopped combat. Oh, and also, I had added aggression rolls to the monsters, so by chance you could walk into a room and be attacked by the monster(s) there, or not. Kind of like random encounters, so that, you know, you had to fight them. In theory. When I had my game playtested (by YOU) you Escaped literally every fight and Speedran the game by running to open all the chests without having to fight anything. After that, I also had to add Escape rolls. I mean, now, I see how it couldn’t really work without the Escape rolls. Chance of being attacked, and then, difficulty of escaping, those two concepts provide more of a motivation to fight, and more tension too.

Leo K: Yeah, especially since in the final build, winning a Combat Encounter and Dying to one both restore your HP to full (with dying also respawning you at your base camp right next to the Forge) but Escaping from fights in the new build doesn’t restore your HP. So if you want to heal, you’ll either be popping a potion (which you would need Gold from fighting monsters to buy anyway) or you would eventually have to accept playing an actual fight. It was a pretty elegant way of fixing it, and I had a bit of a laugh that my tactic was literally patched out.

Hehehe426: Wait, what? Escaping doesn’t restore your HP? Don’t credit me with genius where simple oversight can also be an explanation. Hahaha, oh my God! This is like the “respawning at the start of the dungeon right next to the Forge is brilliant!” and I’m like, “Oh I just sort of did that.” Accidental brilliance. Excellent.

Leo K: What were some of your favorite parts of building AdventureText?

Hehehe426: Um, definitely the easter eggs for my playtester (you), those were super fun.

Leo K: Not just one rogue, but two~!

Hehehe426: Those easter eggs were the Shockblade dagger, the Rogue based on one of your characters, and the Shade out in the dungeon. The Shade and Shockblade got removed, but the Rogue lived on in a modified form which would let him be a generic character for a player to interact with, and as a tip-giver. Aside from that stuff, though, when it comes to the rest of the actual game design process, writing the lore was great, too. “Lore” being the semi-storyline I wove in for observant players, and the room and item descriptions. The dungeon environment was another one. I love the treasure chest rooms, they’re all different elements. One of them is Normal-type though, I think. Hehe.

Leo K: Reading it was pretty cool. I remember when I first figured out that leaving an item in your Inventory without equipping it (or by unequipping it) and accessing the Inventory would print that item’s ‘look’ description. I was like, “I am going to read all of the item descriptions.” I quite liked the atmosphere of the dungeon rooms as well. The black background with the white text tends to work out well in giving the dungeon a kind of dark, dungeon-y feel, along with the fact that the graphics are all in your head.

Hehehe426: Yeah, the game wasn’t originally that color. It was originally beige with white text areas to type in, but you asked if I could make it white on black, which allowed me to mess around with my frame code and realize that I could! I think it looks much sleeker now.

Leo K: I hope that wasn’t too much of an inconvenience! I just wanted to see if it were possible.

Hehehe426: No, it looks good, and I learned that I could change the color of text and text areas.

Leo K: Awesome. A few more questions and we’re done. First, what’s your favorite part of AdventureText, the finished game playable right now?

Hehehe426: The item descriptions and the chests/their rooms. Partly because I’ve forgotten some of it and I’m like “Oooh, I like that.” “That’s really good.”

Leo K: Do you have anything you want to say to new players of AdventureText? Any tips to offer, or things for them to keep in mind, anything like that?

Hehehe426: If you know text adventures, and you know RPGs, you’re probably going to be fine. The game gives you prompts if it doesn’t like your syntax. If you know RPGs but not text adventures, the game comes with a helpfile in its folder. That should hopefully familiarize you with the necessary stuff. Also, if you die, you pop right back up at the start of the dungeon. That’s a good time to see if you can spend your gold on potions or new equipment. Oh, and if you talk to the Leader NPC, he’ll tell you how many Chests you haven’t opened yet, basically alerting you to your current progress in the game’s main quest.

Leo K: I think another good thing to tell them is to not despair about there being no Save Points, because the game is one “Quest” long if you want to go by that terminology. So it won’t take an insane amount of time to beat, you can clear it in one sitting.

Hehehe426: Oh, yeah. If you close the game, though, you won’t have saved!

Leo K: Awesome. Last one. After AdventureText, what’s next for you in terms of game development? What do you think you’ll be making or be involved in next, and when can we look out for that?

Hehehe426: I’m in the Game Development club at my school, so I’ll be working on a little story-driven sidescrolling RPG called Homeland. I don’t know if that’ll go up online, or what. I’d hoped at one time to make an AdventureText 2 with some of the features I didn’t get to implement, like a minimap or abilities or leveling or a quest system. But since I don’t have any clue how I’d make a Minimap work, I don’t know about that.

Leo K: You’ve got lots of time to learn. In the meantime, I think you’ve made a very playable, and definitely enjoyable first game. Thank you very much for taking the time to answer these questions, and maybe I’ll interview you about your next project, whenever that happens.

Hehehe426: Thank you.

AdventureText Download Link (AdventureText.zip):

Read more about:


About the Author(s)

Daily news, dev blogs, and stories from Game Developer straight to your inbox

You May Also Like