views:

97

answers:

2

Hi! First, let me tell you, I am not really interested in making my own rpg engine (at least not in the near future, hehe), but I do feel like I want to understand the internals of how a rpg engine works. Why? Well, because I like to read about programming and design, It keeps me motivated and excited, and because I know I will learn a lot, for, even when I have been programming for some years now, I never stop considering myself an ignorant... there are simply SO many things involving a game engine (specially rpg ones, like branching storylines, and items and economics!) I'm eager to know.

I've been searching (and thus, finding) lots of info online, but it is never focused in what I'm interested (most of it talks about the mathematics and AI algorithms implementation, which I know quite well), which is the design of overall structure, patterns, scripting engine, decision engine... damn, so many things I can't even imagine, since I've never done any game programming.

I hope you know have an idea of how I feel, and how I want to learn for the sake of learning, and why would I want you to tell me if you know if there exist books touching the topics that interest me the most.

+2  A: 

I can relate. This same motivation is what caused me to write MUD++ back in the early 90s. In it, I taught myself UNIX system / socket programming, threading, event handling, complex data structures, disk and in-memory database management, bytecode and interpreter implementation, parsing, etc.

I wasn't aware of any books, but I just took a look and found:

http://www.amazon.com/MUD-Game-Programming-Development/dp/1592000908

Not that I recommend it, but you might give it a try.

Try to make use of available tools and technology, try not to spend all of your time working on reinventing the wheel. That was my mistake and I didn't develop the game side enough before finally tiring after a couple of years, but if not for the experience I would not have learned what I learned that helped me through my career. I later was able to work on a game for Disney, and used those skills.

If I did it over again, I'd do the performance sensitive engine in C++ again, but I'd do all the rest of the game logic in an embedded language (Python, Ruby or Perl are all embeddable). Lesser known, but good are Lua, Tcl, and even Javascript.

Also, something to look into, the sort of persistent puzzles / quests inside the game lend themselves to what we call a "continuation." Ruby supports them, plus some Virtual Machines do as well (Parrot has full blown continuations, Mono also has a 2nd class flavor). If you can wrap your head around it, it is a powerful tool for adventure game implementation where you have to retain the state of a puzzle or quest over a long period of time, even persistent between playing sessions.

mrjoltcola
The idea of continuations seems indeed very interesting, I'll try reading about them and, by the way, I'll read comments about that MUD book. Thank you a lot.
Fabzter
A lot of the game industry uses Lua as an embedded high-level language because its memory footprint is more easily controllable and definable than it is for Python or Ruby. When you're working on a target with fixed memory (and no virtual memory, unless you write it yourself), these things become important. :)
dash-tom-bang
Agreed about the memory usage of those, but most game servers will run on a server OS like Linux or Solaris, so they will have virtual memory and probably lots of it. Concerns like this are still critical for massive multiplay, which is why I literally wrote my own interpreter so I could control everything. Lua wasn't around that I knew of, at the time, and neither was Java, but times have changed a lot, and I'd try to reuse something rather than invent my own nowadays.
mrjoltcola
+2  A: 

The best book I've read on the subject of game engines is 'Game Engine Architecture' by Jason Gregory. It gives a bigger picture view and covers a broad range of game engine systems. And the book doesn't give much implementation details (only where necessary to explain a specific concept).

Covering such a broad range makes it impossible to go into depth on any one subject, so the gameplay part (which it seems like you're mainly interested in) is only covered in one chapter, but still; if you want a good overview of the systems in a game engine and their interactions then this book is on the top of my list of recommended books to read.

The book requires a certain amount of previous coding experience, but not game specific experience. So I wouldn't recommend it to someone who just read a 'Learn C++ in 21 days'-book and wants to create a game engine, but from your question i get the feeling you won't have any problem with it.. ;)

http://www.gameenginebook.com/

http://www.amazon.com/Game-Engine-Architecture-Jason-Gregory/dp/1568814135

Daniel Dimovski
I've heard good things about that book; now I'm convinced to buy it. I feel you've got some experience in game programming, so I'll take your advice ;)
Fabzter