Thread: Text-RPG maker

    #1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2007
    Posts
    6
    Rep Power
    0

    Text-RPG maker


    Hey, I've started an open source Project, called RPGwriter.
    rpgwriter.sourceforge.net
    It's a program that lets a user put together a text-based RPG without writing code. (Think of RPG maker without the graphics)

    The only problem is, I'm not sure how exactly to set everything up. I'm used to C++ programming, but Windows programming is new to me. Does anyone know a good place to start?

    I'm willing to work on smaller projects to learn while still slowly progressing on RPGwriter, I just want to eventually put the whole thing together.

    Any ideas?

    Thanks in advance.

    -Rick
  2. #2
  3. <?PHP user_title("gimp"); ?>
    Devshed Supreme Being (6500+ posts)

    Join Date
    Jan 2005
    Location
    Internet
    Posts
    7,652
    Rep Power
    6084
    Oh boy. Oh boy oh boy. This is a big one.

    What you're making is a program that generates code based on user's selected choices.

    There are a few things you must realize. I won't mention all of them because I don't know all of them.
    1) You're going to need a lot a lot a lot of graphics to give the user an adequate selection. I mean sprites for everything, tiles (if you're making this tile-based, that is, as opposed to something 3d, which is a whole different story, and way beyond your means). You're going to need to create menus, then you're going to need to create something to dynamically create menus. You're going to need to draw tons and tons of different tiles, then you're going to need to create something to color them on the fly as you're placing them into maps (so that you don't have to create different tiles for the same thing, except one thing is brownish and the other is grayish, or something). You're going to need to create building sprites, weapon sprites, character/NPC sprites, etc. Long story short: Tons of images and image manipulation.
    2) You're going to have to give the user many many many choices, otherwise it's just a very limited deal. This means the user will be able to create and edit dialogs, npc, items, etc etc etc. You might want to let the user create his own tiles and sprites and graphics of all sorts - and then you'll need the program to be able to manipulate his images, not just yours. With so much freedom, there'll undoubtedly be many things that will be done that shouldn't be done, so you'll need to have lots of checks to make sure the user isn't doing things that he's not supposed to do (or supposed to be able to do).
    3) If you want to keep doing this after initial releases, that'll mean even more work, and initial releases will take up a lot of time too. This means you'll need to sink hours into this. I hope it's worth it.


    Then, some more advice:
    Before trying to create an rpg-generating tool, you will want to make an actual rpg or three of the type the tool should generate. This will help you get the pattern. Also, play some yourself. See what people like.
    And, of course, anybody that makes games with your tool will probably be a kid, because nobody else has time to waste on generating themselves an rpg from a game. Keep that in mind. Target audience.

    And have fun.


    Edit: Didn't read that this is supposed to be a text-based rpg generator. Not too much point in that... to be honest, not many people will want to use the tool to make a (probably) half-arsed game that three people will play.
    Chat Server Project & Tutorial | WiFi-remote-control sailboat (building) | Joke Thread
    “Rational thinkers deplore the excesses of democracy; it abuses the individual and elevates the mob. The death of Socrates was its finest fruit.”
    Use XXX in a comment to flag something that is bogus but works. Use FIXME to flag something that is bogus and broken. Use TODO to leave yourself reminders. Calling a program finished before all these points are checked off is lazy.
    -Partial Credit: Sun

    If I ask you to redescribe your problem, it's because when you describe issues in detail, you often get a *click* and you suddenly know the solutions.
    Ches Koblents
  4. #3
  5. No Profile Picture
    Vegan
    Devshed Newbie (0 - 499 posts)

    Join Date
    Jun 2007
    Posts
    213
    Rep Power
    111
    Originally Posted by CircuitBoard
    The only problem is, I'm not sure how exactly to set everything up. I'm used to C++ programming, but Windows programming is new to me. Does anyone know a good place to start?
    I'm not exactly sure what you mean by making a distinction between C++ programming and Windows programming, but I wrote an RPG maker once and it worked fairly well. A basic starting point is figuring out where your worlds are stored:
    - store data in a database? In a bunch of files? In a single file?

    It'll be easy to retrieve your worlds, but what format will they be in?
    - Are they in XML format? Stored in an array? An array of XML documents?




    Here is basically my experience when I wrote my RPG maker. I decided to mix all three methods:
    - Everything was stored in a database. I had an "Environment" table which held the worlds.

    - My Environment table had three fields: X, Y, and Level. This basically served the purpose of a multidimensional array. I wanted to define each level as 2-D grid, and I wanted to have muliple levels / maps.

    My method was fairly convenient, because it meant I could have a house or some other object occupy a single space on my grid (perhaps X=1, Y=4, Level=0). When a character enters the house, it would enter a new level (the interior of the house) which could be as big as I wanted. The house might occupy a 20x20 unit space that the character could explore, and I didn't have to adjust the space or positions of objects on my main map.

    - Each grid location contained an XML document which did the bulk of work: the XML document looked something like this:
    Code:
    <level>
        <message id="1">
            A neophyte like you should build up some
            experience before moving on.
        </message>
        <message id="2">
            Go to the castle for some reason.
        </message>
        <message id="3">
            You're in a dungeon. You spot a sword and shield 
            laying on the floor.
        </message>
        <if istrue="userstatus &gt; 5">
            <if action="get">
                <add inventory="sword" />
                <add inventory="shield" />
                <add experience="100" />
                <set objective="1" value="complete" />
                <outputmsg>
                    You found a sword and shield! +100 experience.
                    Mission 1 completed.
                </outputmsg>
                <display msg="2" />
            </else>
                <display msg="3" />
            </if>
        <else>
            <display msg="1">
        </if>
    </level>
    I wrote all of the XML pages by hand at first, just to have some test data. Then I create a simple user-interface that would allow users to set up their worlds without having worry about XML or a database.

    Behind the scenes, I used hashtables for storing inventory, objectives, and user status.

    I later extended my RPG maker to allow users to embed images to be displayed on each grid cell. This would allow users to create old-school Mist-like games.

    The hardest part, for me at least, was writing something to interpret user input. I like the old Zork games that could understand entire sentences like "pick up the key and unlock the door", but I wasn't able to write a very sophisticated user-input interpreter. I could understand only the simplest commands, and only one command at a time. "Go left." "Move right." "Fight grue." "Get Key." etc.

    So, I essentially had three intepreters:
    - One for interpreting levels / maps.
    - Another for interpreting commands and actions defined in the maps.
    - And one more for interpreting user input.


    You're free to use my ideas and expand on them if you want, or start from scratch with your own ideas.
  6. #4
  7. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2007
    Posts
    6
    Rep Power
    0

    Thanks Very Much


    Yahweh, that was exactly the kind of reply I wanted, thank you so very much. However, I respect the opinion of everyone here very much, and if you don't think this program will have much of an impact, I'm not sure that I should continue development. I was hoping very much to work on some kind of RPG related project before school began, however, so I was wondering, Does anyone still play MUDS? Most of the code I have already written for this program can be used in that kind of situation, and I would like to be able to run one. I have the necessary hardware, but I don't know if there is still enough interest to warrant such an undertaking.

    Any thoughts?

    Cheers
  8. #5
  9. <?PHP user_title("gimp"); ?>
    Devshed Supreme Being (6500+ posts)

    Join Date
    Jan 2005
    Location
    Internet
    Posts
    7,652
    Rep Power
    6084
    The truth is that MUDs are mostly out. The only ones left make up for text-based-ness (lack of graphics) with an amazing plot and extreme complexity. These kinds of things you probably won't be able to work out very quickly (if ever - it's a form of inventiveness that not too many people have).

    With shiny new flat-screen monitors being the standard, there's not much appeal in playing games lacking graphics, you know?

    I don't want to be the person that says it like it is and makes you give up development, but though the job may be hard, truth is spoken.


    Now, if you're developing this purely for yourself (learning, fun) then you have no reason to stop. If you're developing this in the hopes of gaining a following, the chances are very small that you will succeed.
    Chat Server Project & Tutorial | WiFi-remote-control sailboat (building) | Joke Thread
    “Rational thinkers deplore the excesses of democracy; it abuses the individual and elevates the mob. The death of Socrates was its finest fruit.”
    Use XXX in a comment to flag something that is bogus but works. Use FIXME to flag something that is bogus and broken. Use TODO to leave yourself reminders. Calling a program finished before all these points are checked off is lazy.
    -Partial Credit: Sun

    If I ask you to redescribe your problem, it's because when you describe issues in detail, you often get a *click* and you suddenly know the solutions.
    Ches Koblents
  10. #6
  11. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Aug 2007
    Posts
    6
    Rep Power
    0
    Ok, I understand.

    Is there anything you can think of that I could develop, even if it takes a long time, that would be fun and that I would be able to share with others?

    The reason I enjoy developing is because I can help others have a good time. Is there a genre that a single person can program for, which multiple others will also enjoy?

    Thanks,
    Rick
  12. #7
  13. Not much of a contributor
    Devshed Beginner (1000 - 1499 posts)

    Join Date
    Aug 2006
    Location
    Hidden
    Posts
    1,012
    Rep Power
    1092
    You should catch up with times. Add graphics even if it's not 3D. 2Ds are fine as long as the gameplay rocks.

    You have a background in C++, which is a superb language in creating games. Polish your C++ and search for 2D games tuts. You might want to search a tutorial for using OpenGL.
  14. #8
  15. <?PHP user_title("gimp"); ?>
    Devshed Supreme Being (6500+ posts)

    Join Date
    Jan 2005
    Location
    Internet
    Posts
    7,652
    Rep Power
    6084
    s/may want/almost must
    Chat Server Project & Tutorial | WiFi-remote-control sailboat (building) | Joke Thread
    “Rational thinkers deplore the excesses of democracy; it abuses the individual and elevates the mob. The death of Socrates was its finest fruit.”
    Use XXX in a comment to flag something that is bogus but works. Use FIXME to flag something that is bogus and broken. Use TODO to leave yourself reminders. Calling a program finished before all these points are checked off is lazy.
    -Partial Credit: Sun

    If I ask you to redescribe your problem, it's because when you describe issues in detail, you often get a *click* and you suddenly know the solutions.
    Ches Koblents
  16. #9
  17. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Oct 2007
    Posts
    65
    Rep Power
    91
    If you like C/C++ you may want to check out

    Allegro.cc

    It is a game programming library for c/c++. You can even look into OpenGL or even AllegroGL. Allegro aswell is a multi platform gaming library works on Linux Windows FreeBSD well you get the point. Check it out. I use it and have a lot of fun with it.
  18. #10
  19. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Sep 2007
    Posts
    38
    Rep Power
    21
    I've got a little bit to add here, and I mean no disrespect to any vets here who have already expressed their opinions of the success rate of the original concept.

    Rick,

    I have a question to ask.

    If you had to choose one answer, were you wanting to look into a text-based RPG maker more out of reverant nostalgia, or more because it seemed easier to make?

    If the latter, this post has no relevance, don't waste your time reading it.

    If the former, then I have some suggestions to actually pull this project into something feasible.

    These are all essentially based on the concept of you taking the open source project to your own website to run as a sort of central headquarters and main gaming site.

    1). If it were web-based, each user could store their "world" online for others to play, you could offer to host them all and allow users to go from one world to another either freely or with special items that allow them to travel to "other realities". The rest of the suggestions involve the game being web-based.

    2). This is a hybrid suggestion that kind of touches base on Yahweh's embedded image suggestion. If you were to allow each user who creates their own world to add their own images for their monsters and the such with an easy user-friendly interface, then you would be approaching being on par with standard free strategy games while exceeding such in allowing the users who create and play instead of just play to help customize the game for other users.

    3). If you took a preset percentage of ad revenue and put it into a contest pool, you could offer prizes for things such as "best new monster", "best storyline of the month", "best new world", and so on, as well as interactive contests for all users such as "pan-dimensional" treasure hunts for cash and sponsored prizes.

    4). You could add the possibility of incorporating flash movies for sequences, even if just strictly site-controlled at first for things such as leveling up.

    5). You could incorporate things such as flash games that people can go to taverns to play to win gold in the game.

    6). You could heavily integrate the project's message board into the game to make sure that you get and keep the right target audience. Old school texters are still out there, but you'll have to work extra hard to get the same results that a flashier, graphic-heavy site would procure.

    7). If you stick to a MUD setting, it will probably be easier because you can stick to basic commands and have a compiled list of commands and how to use them. "n" for walk north, etcetera.

    8). You could work out deals with the owners of other small free game sites (such as the rehashes of Lemonade Stand) where their users can win prizes for making RPG versions of the other games on your site in an effort to cross-promote both sites.

    9). You could set aside a portion of any prize pool to save up to have a flash version of a grand prize winner's text RPG made by someone good from Newgrounds. Eventually, enough flash games would be built up of games with really great storylines that the main focus would be the flash games and everyone trying to make such a good game that it gets semi-immortalized with partial credit given to them.

    10). You could get into viral marketing on YouTube or similar making fun of the cheese factor of the whole text RPG thing while advertising for the site at the same time, such as people acting out a scene live-action dressed in medieval garb with purposefully choppy stop-motion video and keyboards for belt buckles, where they type before they move and act.

    I mean, honestly, that's all just a random string of possibilities that I came up with 5 minutes after reading your post. Some feasible, some less feasible, but all possible to yield benefit and fun along the way with enough effort.

    I'm sure you know your goals better and could really sit down for a while and come up with even better approaches than I, there's a plethora of potential if it's something you really want to do.

    You just have to keep in mind with a thing like this how you are going to approach reaching your goals while making it something that someone else would want to interact with. Lots of someone elses, in fact.

    Its possible.

    And if its something that you are passionate about, go for it.

    What's the old paraphrased quote, again?

    Any veteran scientist that claims something is possible is probably correct, but any veteran scientist that claims something is impossible is probably incorrect?

    Something like that.

    If you want to do it, you can do it, and I have full faith that you will.

    Don't second guess it.

    Just be smart about going after it.

    Hope this helped.

IMN logo majestic logo threadwatch logo seochat tools logo