Text Based RPG Framework Questions
Hey guys! I've been at java for a few months now, and I just started to get at my first, majorly ambitious project.
As I kept thinking about it, the more complex my originally simple idea became, to the point where I almost don't know what to do. Some insight would be deeply appreciated!
To put it in a nutshell, I wished to make a run-of-the-mill Text based RPG (E.G.: INSPECT Cave, GO West, ATTACK MAGIC Fireball) in order to better understand, and to have some real fun using java. I decided to go along and attempt a shot at this without reading a tutorial (...Don't even know if one exists for this kind of thing), or using any form of API (Is that the right word?) to assist me. This runs in just a standard terminal/CMD window, and uses System.out.print/println(); for the output, so the "Animation" is real simple, which lets me focus on the core of everything.
Yet, I'm starting to move into fuzzy territory, and, for example, I'm now thinking I need to extend different maps off of the original map base, and then parsing different item ID's into their proper places, and it's getting really complicated, and I'm not too sure what's the best course of action to go from here.
What I have so far: A completed beginning sequence that "Registers" players, and creates a save-file for them with their player object. The player object holds basic player information, like Location, name, stats, and (Soon to be) inventory and achievements. You can port the save-file, and read/write to it on different computers or locations. But this is where I get lost... I can't figure out a sensible way to implement loading the "player" into the correct "map" area. My first thought was to have a map engine figure out where to place the player based on information saved in the player object, but I can't seem to grasp at how to do that. My second problem was inventory; I envisioned a system where a class would take Item ID's saved by the inventory (Array, was my first thought), and then return the proper item using some wizard magic (Switch statements? Seems redundant for something potentially 1000's of entries long), and then I'm only limited to returning perhaps a single variable, like a name, and not potential effects, stats, and modifiers that I'd require with the said item. So then I figured I'd make a class that extends the base item class, yet I figured I'd run into problems like mismatching object types (E.G. Having the variable under Item, yet I'm trying to receive a WeaponAxe or ItemPotion), and I can't write enough statements to cover every single type of "Item".
Basically, I'm asking for thoughts on how you guys would tackle this base structure; would you have a class to handle players, a class to handle maps, and a class to handle things like database? Or would you handle it differently? I can honestly say I have never done something like this before, so suggestions would be awesome!
I know from my vague (Sorry!) descriptions this sounds like it's out of my grasp at the current point in time, but I find I learn best when I'm pushed to the limits. I hope I made a sensible amount of sense, and feel free to point out ANY inconsistencies or flaws you see, and ask for clarification if you need it! I'll also gladly post source code for you to take a look at!
Thanks a TON for paying enough attention to get down to here! :D