Advice sought for first project.

Hey everyone - I've been wanting to dip my foot in the river of game design for awhile, and I have a fairly good idea about what I want to accomplish. That said, with virtually no experience in game design or programming whatsoever, I've come for some advice if any of you wizened programmers would be gracious enough.

I'm not a fool - I don't intend to have my first project be a complex 3d masterpiece with cutting edge physics, etc. What I want to create is a text adventure game. I've investigated various pre-made text-adventure engines, but the problem I've encountered is those engines tend to be incredibly simple and limited. That said, I *do* want this project to be simple per se, but it's my goal to include at least a few RPG elements, such as attributes/statistics (that can be modified/improved/affected), and random number generation. Additionally, it'd be nice to be able to have certain events happen at certain times, etc.

This has sort of left me in a bind, as the engines that I've found have been far too simplistic to pull this off, and yet my aims seem simple enough that I'm intimidated by actually trying to write an engine myself, mainly because I have no idea where to begin. I haven't found much information on text-based adventure/RPG creation.

I've thought about potentially using Python as it seems one of the least scary of languages (if I'm forced to write my own engine), but again, I have no experience.

If Python looks good to you, you might also want to take a look at Ruby, if you haven't already.

As for getting your feet wet, don't be afraid to experiment. If you haven't done any programming at all, you might not want to start on the actual game right away - building a few test programs solely for the purpose of learning your language and environment would be advisable.

A text-based RPG should be a relatively easy first project, because it's almost pure game logic. Once you have the experience of that under your belt, you should be more ready to jump into something more graphical if you wish.

Good luck, and don't be afraid to ask questions! We were all beginners once.

I'm not very familiar with Ruby - I'll investigate it a little more. And you're right, even this text RPG project may be a little too ambitious for someone with zero skills, but I'm not sure where the truth lies between that project and making a terminal say "hello world" when it comes to learning.

If you want to know more about Ruby, head to http://www.rubycentral.com/book/ If you find that useful, you can also buy the second version. I would highly recommend it, It's practically the end all Ruby book.

One thing I'm curious about - is there a clear preference toward Ruby over Python? I've heard good things about Python, but I'm not sure about the differences between Python and Ruby as far as learning curve, speed, etc. The one thing I do like about Python is that the commands and just the way it looks actually seem friendly and logical to me. A friend of mine works with Perl, and oh my god, what an ugly language!

However, that said, I have little experience with Python, and if Ruby is better for X, Y and Z, just say the word

Not to pick that apart to much, but PlayCode is just Lua with useful modules for writing games. It's not like Lua was designed for video games. Same with TNTBasic, It's just another BASIC-like language. Saying that either are "made for games" is a bit of a misnomer. You can find game libraries for just about any programming language, and any general purpose language will work just as well as another.

Please try to not let this discussion drop to an argument over language/IDE preference. The bottom line is that the problems and obstacles he will have to overcome to write a text-based RPG are present in all of the languages.

My advice: pick the language/IDE that interests you and go for it. Every one mentioned so far will get the job done.

Once you start learning the language, to actually write the text RPG you'll need to look into the following (not complete, off the top of my head list):

1) simple text input/output (user can send commands, you can display results).
2) random number generation
3) file I/O (to save the user's game, also later on to read in level/monster files)
4) a bi-directional graph data structure (simplest way to provide your "world"... assuming you world consists of connected "rooms")

If I were doing this for the first time, I'd start by doing some simple emot-like commands. For example:

>smile
You smile graciously.
>frown
You frown menacingly.

Brainstorm and make a plan of where you are, where you want to go, and the "common sense" steps you'll need to take to get there. Then just start doing it.

I appreciate the advice - makes a lot of sense. I guess it boils down to doing a little more research on the various languages availible. One other question, though - obviously other people have done projects like this before, and I'm wondering if anyone knows of any good, or even basic tutorials on such a project.