Game Development Community

dev|Pro Game Development Curriculum

The Noob Perspective: iterative RPG design

by Chris Harrington · 02/04/2009 (6:21 pm) · 18 comments

What could be more noob than to purchase an indy game engine license in order to, supposedly, develop an RPG with no experience beyond modding? Yes, folks, you have here before you the prototypical noob. Plenty of dreams and wacky ideas, but little grasp of the scope of the task at hand. And worse, no design and obviously no team.

I have been a dedicated single player RPG gamer since I got my first boxed set of D&D (pre AD&D) as a tike only to learn that almost nobody else in the neighborhood had ever heard of it and those that had thought it was a cult (like, Mom for instance: the famous real action RPG cave incident had been on the news. early 80's?). When, several years later, I began to find groups of players, I noticed something especially odd about them, as in poor wardrobe coordination choices, novel approaches to personal hygiene, etc. You know what I mean, or you know who you are....(joke). In retrospect, I understand that while I'm a geek at heart, I'm more of an artsy type in sensibilities. Long story short, I've never quite felt comfortable with the dedicated gamers who played face to face pencil and paper RPG. By the time playable (as in post Ultima Online) MMORPG hit the scene, I had grown a bit long in the ears and now I was no longer capable of enjoying group play with a group of frustrated teens (nothing personal, I was there once too). So, even as WOWC steadily encroaches the mainstream market, I'm still a single player RPG player. Naturally, being as obstinate as you can see I am from the above, I'm never quite satisfied with the RPGs I play, and usually I can't finish the main quest or story line of any game I buy without turning to modding it as my primary source of entertainment. So, recently with the release of the G.E.C.K. for the Gamebryo based Fallout 3 from Bethesda, arguably the best modding tool ever created to date, I have been hard at it for literally weeks of man hours and finally beginning to think, hey, if I have this much dedication and concentration, why don't I just roll my own? Thus began a journey into the world of game engines which finds me here today making my first blog post as a brand spanking new Torque Owner.

So, I want to make an RPG. My goal is to create something that <b>I</b> would enjoy playing till the finish, or lack of finish if I make it open ended, or many finishes if I try something like Neverwinter Nights. I know, I know, the scope of the task is of an order of magnitude beyond an FPS, which, despite the great tools and engines available, is still months of work.

I know I am not alone, from the very fact that there is a stereotype of the starry eyed noob who wants to create the world's biggest RPG etc. etc. Therefore, I've decided to blog my experiences as I go along. No guarantee that I won't drop this and move on to something else tomorrow, next week, or next year, but for the meantime, if you are in any way like minded, follow along with the story.

Before I get to the point of the post, specifically the title above, a note about aspirations. What don't I like about single player RPGs that leads me to want to build my own? Well, there are the obvious little limitations that always result from any project which is limited in scope by budget restraints and sales goals. When making money is priority number one, compromises must always be made, and thus we have a world where a game like Fallout 3, which from a idealist player's perspective (me) has plenty of glaring flaws, can be acclaimed to the extent that it has. Because the industry and the players know this was done on a budget, on time. Amazing. As an aside, I know their secret which is that, important engine changes and great visuals aside, it is basically Oblivion re-staged in post apocalypse Washington DC which complete content replacement but not as many low level changes as you might expect. I know this from modding both games and noticing that many Oblivion specific script functions remain, albeit untested, in Fallout 3 (horse riding related stuff for instance). Anyway, the limitations are too numerous to mention.

The biggest problem I have with current RPGs is the very fact that they tend to be based on linear story lines, which obviates <b>scripted AI</b>. Even in Fallout 3, with its amazing scope and non-linearity, the minute you play outside the scope of their pre scripted quest concept, you begin to see through the cracks to the other side of the facade and it all starts to look like Disney Land. Ai behavior becomes weird, bugs appear, etc.

As a single player RPG fan, this is fatal. I need the AI to behave naturally, as a typical human might, almost no matter what I do. This obviates the discarding of straightforward scripted AI to be replaced with all of the bells and whistles of embodied, reactive AI (I'm reading the book, more on what that means in the future if you don't understand it). With torque, this probably means digging into the source code, but as a learning experience, I'm game.

So there, I have further upped the anti. Not only do I not have a design, a specific goal, or a true understanding of the scope, but I even want to implement true AI. What a noob. (Edit: not true AI but "believable" AI, thanks to Brandon for pointing that out)

So what can I do? Iterative design. And we come to the point.

We've all heard of iterative design, reading forums, books, or actually doing it. Some of us have heard of or studied or done Xtreme programming.

Basically, when I say iterative here, I borrow a bit from Xtreme programming and define it as building only what you need when you need it, and then repeating the process, building more on top of what you built before, scratching and rebuilding older bits as required. This means that you define the first step you make in very narrow, achievable terms, and get right to work on implementing only that. It also means, again from Xtreme programming, that you don't get too concerned about the end goal yet, as that is likely to change anyway. This comes from the Web development world where the customer is always changing their requirements three months in. In the past, the programmers would say *&%` you! and the lawyers would be brought in. With Xtreme programming, they say, OK, well, so far we've only built this much, so we only have to rewrite this much. The point of setting small goals, or steps, and I'm not explaining this well, is that the result of each step must be something that you can actually run and interact with. So, for our RPG, my first step will result in a tiny level, with a player character, for instance. No inventory, no items to pick up, no NPC's with associated AI, no triggers, no portals, no nothing. Just a character you can control to walk around an interior level. That is a very achievable first step, or iteration.

The next iteration would be to, say, add a portal and an extension to the map beyond that portal, in which there may be a trigger, or an item to pick up, or an NPC, each of which would require the associated underlying systems such as inventory or AI. But even then, the AI would only be required to perform the small tasks that that one specific NPC wants to do, or the inventory would only need to handle the one item. Provided you script this functionality in an extensible object oriented manner, than rewriting can be kept to a minimum and you can do more re-factoring and adding on of code rather than scrapping and rewriting as you add complexity. Again, more on that in the future.

Perhaps Xtreme programming is not an option when your goal is to develop a commercial game in time for the such and such trade show and make a profit, but it is perhaps the ideal way to go for a hobbyist (that's me) or small team which is learning as they go.

That's all for today!

Chris.

About the author

Recent Blogs


#1
02/04/2009 (6:32 pm)
Big dream soon to be possible. Give it another few months, and you'll be splendedly surprise to see what GG has in store come september. Contact me for more details.

tsquared@digitalshock.net
#2
02/04/2009 (6:44 pm)
i don't think you will ever get true AI. the big company's are working on true AI but its going to take more then there life time to finish it. humans can learn on there own and do what they want a computer cant it takes years and years to code that in they have made a faster way to do it. which is where the computer learns off of the the people when playing but its still a very slow process.

once its done though the future of games will be very good just i not going to see it in my life time or yours. you can just do the computer learns off of you but that's as close as your going to get but that's going to take you years to rebuild what these big gaming company's have. i just wanted to point that out that a true AI is little over minded for a indie unless you got some $ in your pocket. who knows it might come in are life time if they find a better way to do it but i don't think so. we don't even know everything about are self's yet there's still many things to learn about the brain though computers have helped us learn more about it.
#3
02/04/2009 (6:57 pm)
@Chris
I've got a big dream involving an RPG too. I wish you luck in your endeavor! :)

@T-Squared

You have my curiosity peaked... Can you contact me at chiplambert@crusader-games.com about what's coming, or leave your email address for me to contact you?
#4
02/04/2009 (7:14 pm)
Xtreme programming/iterative design is not alien to the game industry; indie, commercial or otherwise. It's actually very useful in game development, especially once you get to the point of a bare bones playable game, where you can start throwing some testers at it to get feedback on "fun factors" before they become too entrenched.

It's also useful to keep your publishers happy, because they always want to see progress, and with an iterative system there will always be progress to show them.

I agree with you completely about the AI in Fallout 3. Compared to the other areas of the game, the AI was sophomoric. It's a pretty standard pattern in single player RPG games as you've noticed. Strategic/tactical/squad AI isn't usually high on the list of desired features. Bad AI is more acceptable in the Neverwinter Nights type of RPG I think, but when you start combining RPG with a shooter, like Fallout 3, the AI should be a bit more sophisticated.
#5
02/04/2009 (7:49 pm)
Wow. Very excellent blog post =)

It was a real pleasure to read through, since I can relate to your experiences and love of single player RPGs. I agree that the G.E.C.K. is quite possibly the best modding tool I've ever gotten my hands on. If I was not using Torque, I'd be using G.E.C.K.


#6
02/04/2009 (8:00 pm)
@Brandon

Very good point, and a poor choice of words on my part. I shouldn't say "true AI" but rather "believable AI".
As a noob, I'm a noob across the board. I do allot of reading about the mind/body and how they work, but I'm no scientist. I'm aware that there is a way of approaching a problem, not sure what it is called formally, perhaps deconstructive? minimalist? where, when you have a reasonably good idea of how a system works, you put it through a process of, ah, that's it, reductionism? no that means something else, anyway a process of reduction where you eliminate the parts of the system that have minimal effect regarding your modeling purpose until you are left with a model which is computationally practical, and this model, if thought out right, can give you 90% of whatever "true" is. An example would be the open source character modeling program (note different use of word modeling here obviously) MakeHuman, where the designer has artfully reduced the number of variables to only four to take a generic human mesh and generate numerous accurate body types. Another example is the psychologist who spent years videotaping newly married couples having discussions and arguments and playing the tapes back in slomo to catch subtle expressions, eye rolling etc. which resulted in an algorithm which could accurately predict the longevity of a marriage by measuring the use or lack thereof of just a few facial mannerisms during the conversation. I want to do this in AI by modeling, say, a simple memory, simple learning algorithms, and giving NPCs attributes more generic and realistic than the usual vague "charisma", "strength" etc. which together would allow for a high degree of *seemingly* unpredictable procedural NPC behavior, but I'm still reading the book on that so the actual implementation and its limitations are yet to be understood (by me).

@T Squared

Thanks, I will.

@Gerald

Thanks for the comment. It's nice to know the game industry uses eXtreme programming.
#7
02/04/2009 (8:07 pm)
@Michael,

G.E.C.K. is great isn't it? Having all that prebuilt content is what makes it such an incredible learning tool for understanding the ins and outs of an RPG game engine. The hardest thing for me now is switching from G.E.C.K.s prefab kits which consist entirely of, in Torque terms, static models, to using a level editor to create the whole thing from scratch with primitives. In the long run I'd really like to find a way around that part to make my assets portable across engines (why not, I could sell the models etc.).
#8
02/04/2009 (8:10 pm)
If you haven't already done so, I highly recommend getting your hands on the AI Game Programming Wisdom series of books. Very educational and inspirational in the realm of game AI.

#9
02/04/2009 (8:22 pm)
@Gerald,

Thanks. At the moment I'm starting out with "AI Game Development: Synthetic Creatures with Learning and Reactive Behaviors" because its available online at O'Reilly's site. Only a few years old. The first few chapters sound quite reasonable vis a vis balancing ideals with practicality, and the examples are designed to be implemented with existing game engines at an advanced modding level (it seems).

my.safaribooksonline.com/1592730043 <- not sure if the link works for anyone other than myself.

(Whoopee, they just added a book on architectural modeling in Blender! Fresh off the press, just have to wait for a slot to open up....)
#10
02/04/2009 (8:25 pm)
Great blog. Welcome to the community, ignore Brandon the non-owner, and good luck with your game!

I don't know what T Squared was talking about, but maybe he knows something the rest of us don't know. If so, then cool. Hope it's good stuff.

I, too, think true AI is possible. I am currently studying AI as well. Definitely cool stuff.

Edit: Mat Buckland's game programming AI books are probably the best out there. They are certainly worth their weight in pesos.

Edit 2: The author of the book you mentioned runs AIGameDev.com. There is a wealth of knowledge to be had there for free, and even more to be had for a price. If you sign up soon, you get the cheap $75/quarter individual pricing. I think it goes up in a day or two.
#11
02/04/2009 (8:44 pm)
Quote:develop an RPG with no experience beyond modding

Nothing wrong with modding, in fact modding is probably the most useful experience you can hope for when starting out. It means you know how a game works, you've studied the template of a commercial one and altered it for your own aims.

Everything else you have to learn on the fly, scavenge from the resources section or just plain beg others for.

With nothing but modding, determination and (most usefully) the time to put that determination into practise I think anything can be achieved.

... at least that's what I keep telling myself ...
;)
#12
02/04/2009 (8:47 pm)
@Chris: Nice blog!

I think you'll find that believable AI is more important in the long run than true AI. Because face it, we've never been in half the situations games present us with, and if we ever saw the things that people would do in those situations, we wouldn't believe it ;) But I think you're headed in the right direction for what you want to accomplish, and have some nice ideas on getting there.

Best of luck with your project, and I look forward to more of these blogs!
#13
02/04/2009 (9:23 pm)
@Chris, oh yeah that's a great one too, especially for getting started. Once you get through that you'll be able to get a lot more out of the
Wisdom books anyway; they're more of a food for thought series with articles on a variety of different techniques from a bunch of different developers based on modern real-world games.

And yes, believable AI is really all that matters in a game.
#14
02/04/2009 (9:56 pm)
You are not a noob in any way if you notice your limits and have experiece with modding.
I may only suggest you to write a design document and stick to it AND DONT ADD ANYTHING ELSE UNTIL ALL IS FINISHED!!! Focus on your story and gameplay first and completely discard graphics and if you really need graphics just buy as little model packs as possible. Just focus on finishing your prototype.
Good luck! Its a great start!
#15
02/05/2009 (6:02 am)
@Ted,

> if we ever saw the things that people would do in those situations, we wouldn't believe it

Good one!

@Guimo,

Talking about putting the graphics till later, at one point researching engines I was thinking of doing everything with a command line interface and slapping on the rendering engine at the end, just to enforce rigorous program design. Wouldn't that be fun?
#16
02/05/2009 (5:38 pm)
It's not a bad article, but I would get rid of the word Noob. Noob has become a derogatory word that is used to knock people down. While you use it to discribe yourself, I would just use the word beginner. No harm and you still get the point across.
#17
02/05/2009 (6:41 pm)
I saved this post for later reading, as it was long, but seemed promising. It finally resulted absolutely awesome.

About the noob thing... you made me remember Socrates. The man said that we really are ALL noobs. The only difference between men, lies in the fact of those who accept they are noobs, and those who dont. He called them "wise noobs" and "fool noobs" respectively. From this two classes of men, he said, only the ones with chances of learning something, were the "wise noobs". Of course he didnt used that words (oh lordy) but you got the idea.

Have to comment something on the dices and paper RPG games... I also played many times with frikis (we call them like that here), and although I've never felt *at home* with them I really enjoyed the ride. Eventually, got tired of depending on the arbitrariness of another human to resolve some situations. Opted for machine RPG's on that sense.

On the AI side, I will be prone to backup the Joe's recommendation of AIGameDev.com. Alex made an incredible work there; I helped him with the site for some time, and can assure you that the quality and pace of the contents, along with the community there, can be incredible useful at all levels of knowledge. Edit: You have a paid option with more access, but there is also much content that only requires you to have a free account.

About your comments on extreme programming: I will have to disagree -this time- with Guimo. Of course he is right, dynamic requirements are the public enemy number one in the game industry; forbiden from the first page of the manual, under a BIG red-framed chapter called "feature creep".

So probably agile development is not a good option beyond prototyping, and in the end, you'll still have to make your design and stick to it...... However! your case is very particular, and very interesting. You propose some very cool points:

* you could drop the whole thing tomorrow, no hard feelings
* you are learning
* you are doing this very specifically for fun
* will be on hobbist mode

Well then, looking at those points seems to me that extreme programming is the perfect tool! Besides, you are not entirely jumping to the deep, as you comment that you are reading and learning as you go.

Anyway, I'll be following your blogs. Welcome to the madhouse, always happy to meet new romantics and wise noobs.
#18
02/08/2009 (6:53 am)
@Novack

Thanks, you rephrased for me the gist of what I'm trying to do in such a way that I'm less likely to loose sight of it.

I went ahead and took a look inside AIGameDev.com. Wow!