Text Based Role Playing Game (RPG) Authoring Tool

in #gaming7 years ago (edited)

Games like Colossal Cave Adventure and Zork, in my mind, encompass the purest form of gaming. Although I missed their prime because I was born in the 90s, I always felt like I would make one of my own one day.

Like most people I was introduced to coding with html. But the markup didn't do much for me so I looked further and tried C++. The language was hard and didn't sit too well, so even though I finished a tutorial for making a CLI calculator I tried my hand at Python because the syntax was said to be cleaner and easier to learn. I remember convincing my IT teacher at the time to let me write a tic-tac-toe program instead of doing a Flash MX project.

So I went to work, and starting writing the thing one if-statement at a time. Soon enough I realized that this was a fruitless task, and gave up for simpler programs that lent themselves to what little I knew.

A few years later I took a class with a very knowledgeable teacher. We liked to discuss text RPGs because he liked to play them when he was a student. So when the time came to pitch an idea for the course project, I suggested that I could make one of those games. And although he loved the idea, he told me to think of something else because a game wouldn't fulfill all of the project requirements.

Despite my disappointment, I couldn't shake the feeling that this was the time to do it. The course project was going to keep me busy for months, which meant that the RPG would fall by the wayside. So I went back to him and suggested an improved challenge.

I told him that I would write a program that wouldn't just let me play one of those games, but that would also let me make one of those games. It would let any user make their own text world with monsters and items and descriptions of all the areas.

My project was going to be a text-based RPG authoring tool.

Little did I know what I was really getting myself into.

So I went to work with Java Swing and tackled the challenge one step at a time. I settled on a hex-tree structure using a Random Access File. Each room had a description and nodes connecting to up to six other rooms. Creature and item objects could be saved within them, and those had descriptions too. Creatures could be customized in terms of damage and health and items could be used for battle and utility.

Unfortunately, I never solved the problem of how to make utility items more dynamic. That's why my program doesn't allow for more intricate utility items like rockets and poison.

Either way, I wrote everything up in a 170 page report (100 pages are source code), and decided to share it with the internet for the first time.

You can grab a copy over here while the post is active. I removed the first page to keep the teacher anonymous.

I'm thinking of basing a new version of this program on Node, so stay tuned for some post about it the future!


Image Source


Check out my Steemit profile for more prose, philosophical essays and tutorials!
If you want to know what I'm up to, or get in contact with me, check out my portfolio website.

Sort:  

I'll be keeping the link live for another 24 hours. In future leave a comment and we can find another way. Thank you :)

this is genius.

Posted using Partiko Android