perl.j has asked for the wisdom of the Perl Monks concerning the following question:

I am looking to create my own, in depth, Text-Based RPG (possibly MMORPG). What steps can I take to do this? What modules might help?

Also, if you can help me make an MMORPG client, that would be great too. Thanks in advance!


Replies are listed 'Best First'.
Re: Make a Text Based RPG
by GrandFather (Saint) on Jan 22, 2012 at 01:24 UTC

    I haven't used it but you may find Games::3D helpful, if just to suggest implementation requirements and ideas. I had a quick look in CPAN for a text based RPG oriented gaming engine, but didn't find anything quite like that. List_of_game_engines has a list of game engines, a few of which have Perl bindings.

    You should think about where you want to go with this thing. At one end of the spectrum is a game where everything is hard wired into the code. That sounds simple at the outset, but as the game gets more sophisticated maintenance becomes much harder. Somewhere toward the other end of the spectrum is writing a gaming engine where the game itself is provided as a bunch of configuration files, perhaps using a scripting language purpose written for the game.

    True laziness is hard work
Re: Make a Text Based RPG
by TJPride (Pilgrim) on Jan 22, 2012 at 06:39 UTC
    It might help to know how you visualize the world. As in, is it event-driven, where things only happen if you move from place to place? Or time-based, where things happen periodically and commands are queued for the next tick? Is it 2D or 3D or completely fluid in how things connect to each other? What sorts of ways can items interact with each other, change over time, etc.?

    Obviously, at a minimum you need:
    1) Player profile management (stats)
    2) Player inventory management
    3) Table of game items
    4) Bestiary
    5) Zones

    You have to define your game before you can even think about looking for tools to build it.

Re: Make a Text Based RPG
by JavaFan (Canon) on Jan 22, 2012 at 12:45 UTC
    First, I'd create a business model. Considering MM stands for massively multiplayer, you aren't talking about something that runs on your laptop over your local WiFi network, with the game going down every time you close your laptops lid. How massively do you want to get, how much hardware are you going to need, what's the bandwidth, Are you going to run it alone? If so, who does support when you're sleeping? If not, are you going to hire additional people, or depend on volunteers who may drop of the earth when you least expect it, etc. Once you know your initial requirements, how are you going to finance it all?

    Second, determine what's the theme going to be. Vampires? Star Wars? Tolkien Fantasy? Contemporary? Superheros? Dungeon Crawl? Something else? What's the goal for the players? Hack-and-Slash? Treasure gathering? Puzzle solving? Role-playing? Exploring new worlds? Something else? How are the global game mechanics going to work? Is it going to be turn based? Time based (either real, or in-game)? Event driven?

    Third. Make a list of all the software out there that's already been doing text based RPG, that have been developed over the past 20 years. Sit down in front of the mirror, and for each entry on the list, explain to yourself why reinventing the wheel is better than reusing existing software.

    Fourth. If your plans are now just one sentence "create a text-based RPG", and then next thing you do is ask Perlmonks for meta-help (as you're asking for which software can I use to help me), you're going to need all the luck in the world.

      MMO was an idea. Its probably not going to happen. But the RPG is what I'm trying to make. I have an idea of what I want to do, but I didn't think it would help anybody to post it. If you think it will help I will, but basically, it's a purely text-based "Game of Life"...
Re: Make a Text Based RPG
by dynamo (Chaplain) on Jan 23, 2012 at 08:05 UTC
    First and foremost, get very comfortable with the Curses module. That is my favorite text module and gives you colors, a grid of characters to work with rather than a line-by-line output mechanism, and a few other nice treats. Time::HiRes will help with building smooth animations. Term::ReadKey will let you use keyboard input without waiting for them to hit return and requiring interactive prompts. It's been too long since a great text-based RPG has come out - good luck!
      It's been too long since a great text-based RPG has come out.

      This simply isn't true. It might seem that way if you haven't been looking, so the perception is understandable. Just google "interactive fiction" to see listings. One example hit:

Re: Make a Text Based RPG
by jffry (Hermit) on Jan 23, 2012 at 18:23 UTC

    If I ignore the MMO option, I highly recommend the language Inform 7. Its byte code will run on any of the Z-Machine VMs out there like Zoom.