RPGDXThe center of Indie-RPG gaming
Not logged in. [log in] [register]
 
What features do you want from an RPG engine?
 
Post new topic Reply to topic  
View previous topic - View next topic  
Author Message
Mattias Gustavsson
Mage


Joined: 10 Nov 2007
Posts: 457
Location: Royal Leamington Spa, UK

PostPosted: Fri Jul 11, 2008 10:20 am    Post subject: What features do you want from an RPG engine? [quote]

I'm thinking about making my little library/game engine a bit more suited for making RPGs. Mostly because I think it would be fun to do :D

Also, with all the code being public domain, I guess it could potentially be useful to others as well...

So, I'd love to hear what you guys think would be the best things for me to add. What features would you expect from an RPG engine, what would you want in terms of tools/editors, etc...
_________________
www.mattiasgustavsson.com - My blog
www.rivtind.com - My Fantasy world and isometric RPG engine
www.pixieuniversity.com - Software 2D Game Engine
Back to top  
Ninkazu
Demon Hunter


Joined: 08 Aug 2002
Posts: 945
Location: Location:

PostPosted: Fri Jul 11, 2008 3:50 pm    Post subject: [quote]

It should make cake. And blow me.

In all seriousness, there's really no way to cover all your bases without making an extremely bloated engine (that people might still demand more out of), or a very minimalistic engine that requires so much scripting you should have just written it yourself.

My suggestion is to make everything that's controllable modular and able to be hooked either by scripts or dynamically linked libs that developers could add. Allowing compiled code can be very empowering if you provide good enough tools that are easy to interface with.

Step 1: Make your map render in a viewport. This way the developer can make multiple views of the map show onscreen if he so wishes. If you write this with 3D acceleration (which I suggest you do), then you can render the viewport to a texture and allow some funky effects to be added.

Step 2: Use LUA. No one wants to learn a new incomplete and most likely slow scripting language. Make all your API calls conform to a naming scheme you define so your engine looks uniform and well-made; not thrown together.

Step 3: Use threading to handle different tasks. This means rendering should be in its own thread AND IDEMPOTENT. Do NOT let your map renderer change state. This is a bad practice.
Your scripts should also run in a separate thread. You can do a thread for each, or all iterated through inside one thread (the latter is probably better to avoid resource conflicts).
Also, if you plan on allowing (and supporting) large amounts of data, file loading should be multi-threaded. You can lose a lot of loading time by having different modules load their files at the same time. The reason for this is because while one interprets the data it just loaded, the other is blocked waiting on IO. No more idle blocking.

Step 4: Support virtual filesystems. Hell, make everything load out of one or a small amount of zip files. It make distribution so much easier and the user doesn't have to look at a crap ton of folders and flat files everywhere in the game directory.

That's all I have for now. I gotta get to work.
Back to top  
Mattias Gustavsson
Mage


Joined: 10 Nov 2007
Posts: 457
Location: Royal Leamington Spa, UK

PostPosted: Fri Jul 11, 2008 8:05 pm    Post subject: [quote]

thanks. although, I was thinking more of higher-level stuff than what underlying tech to use...

I should have been more clear about this, but it's more of a library than a moddable game, in that the expected use is you write your game in C++, calling helpful functions of the library/engine.

And it's that functionality I'm considering adding. Things like dialog systems, pathfinding, procedural generation of environments, stuff like that. As basic helper functions, not as an already functional game you would just drop a few scripts in.

But maybe it's not such a good idea, and maybe noone really wants it? Is it perhaps the case that most people wants a scriptable game rather than a library?
_________________
www.mattiasgustavsson.com - My blog
www.rivtind.com - My Fantasy world and isometric RPG engine
www.pixieuniversity.com - Software 2D Game Engine
Back to top  
Jinroh
Scholar


Joined: 30 May 2008
Posts: 173
Location: U.S.A.

PostPosted: Fri Jul 11, 2008 8:11 pm    Post subject: [quote]

Mattias Gustavsson wrote:

But maybe it's not such a good idea, and maybe noone really wants it? Is it perhaps the case that most people wants a scriptable game rather than a library?


I think it all depends on N00B or Pro.

If you're a Pro you want a LIB, if you're a N00B you want a Scriptable Game just look at RPG Maker or RPG Toolkit.

I think though most Pro's will make their own engine most of the time. But a lot of people who want to make RPGs are Non-Coders that have good story or game idea most of what I've seen anyway. Don't get me started on those MMOs lol.

I think just a good scripting system will be wonderful for developers personally.
_________________
Mao Mao Games
The wolf and his mate howl, taking solace in the silver moon. Pressing ever foreward to see what the future holds.
Back to top  
RedSlash
Mage


Joined: 12 May 2005
Posts: 331

PostPosted: Sat Jul 12, 2008 12:49 am    Post subject: [quote]

Quote:
But maybe it's not such a good idea, and maybe noone really wants it? Is it perhaps the case that most people wants a scriptable game rather than a library?

I don't speak for others but I think most people who program in C++ are usually building their own engines and doing very game specific things and have no use for such a RPG library. These people probably prefer to have a general game library which would cover the common aspects of a game (graphics/sound/input/etc..).

In any case, I think stuff like pathfinding, colllision detection, etc.. would be great additions to a general game library, but really RPG specific stuff like a character stat manager or displaying dialog conversation boxes would be best left to the user to implement themselves.
Back to top  
Mattias Gustavsson
Mage


Joined: 10 Nov 2007
Posts: 457
Location: Royal Leamington Spa, UK

PostPosted: Sat Jul 12, 2008 6:46 pm    Post subject: [quote]

Yeah, I guess you guys are right...

I've already got the basic stuff implemented (graphics, sound, input, platform abstraction etc) so I might just leave it at that...

Thanks for the input :-)
_________________
www.mattiasgustavsson.com - My blog
www.rivtind.com - My Fantasy world and isometric RPG engine
www.pixieuniversity.com - Software 2D Game Engine
Back to top  
valderman
Mage


Joined: 29 Aug 2002
Posts: 334
Location: Gothenburg, Sweden

PostPosted: Sun Jul 13, 2008 6:30 am    Post subject: [quote]

Why care about we think? If you want to build it, build it for yourself and reuse for a game or two. If it's any good, others will too.
_________________
http://www.weeaboo.se
Back to top  
Mattias Gustavsson
Mage


Joined: 10 Nov 2007
Posts: 457
Location: Royal Leamington Spa, UK

PostPosted: Sun Jul 13, 2008 8:13 am    Post subject: [quote]

Yeah, I'm using it for my games, obviously... What I was thinking was to add functionality to the library/engine to aid rpg development specifically, but I've reconsidered now, and I'll leave that functionality to my games (I usually give away the source code to those as well, so if anyone wanted to make use of it they certainly could, but I won't add it to the engine).

There's certainly valid points made by the people in this thread; and I do care what you guys think :-) I guess most programmers want to implement the game oriented things themselves.
_________________
www.mattiasgustavsson.com - My blog
www.rivtind.com - My Fantasy world and isometric RPG engine
www.pixieuniversity.com - Software 2D Game Engine
Back to top  
Hajo
Demon Hunter


Joined: 30 Sep 2003
Posts: 779
Location: Between chair and keyboard.

PostPosted: Sun Jul 13, 2008 10:56 am    Post subject: [quote]

There are so many engines made ... and I must admit I like to work on the engine often more than to make actual games with it. I often think it'd be good to work more together, instead of making new engines all over, but it seems to be difficult to organize.

My experience is that interest in game engines is low, almost no one is looking and since there are a number to choose, chances are very small that they pick just yours ... but it definitely will give your projects a boost if you can find interested people.
Back to top  
Nodtveidt
Demon Hunter


Joined: 11 Nov 2002
Posts: 786
Location: Camuy, PR

PostPosted: Fri Jul 25, 2008 5:06 am    Post subject: [quote]

I would expect it to be procedural-based, not object-based. Of course, that's because I'm a procedural coder, not an OOP coder. Individual results may vary. :)
_________________
If you play a Microsoft CD backwards you can hear demonic voices. The scary part is that if you play it forwards it installs Windows. - wallace
Back to top  
Bjorn
Demon Hunter


Joined: 29 May 2002
Posts: 1425
Location: Germany

PostPosted: Thu Aug 07, 2008 12:01 pm    Post subject: [quote]

Ninkazu wrote:
Step 1: Make your map render in a viewport. [...] with 3D acceleration [...]
Step 2: Use LUA. [...]
Step 3: Use threading to handle different tasks. [...]
Step 4: Support virtual filesystems. [...]

Ha, the Moonlight Engine does all of those except for threading! However threading is solved partly by allowing sequences of actions to be executed in parallel in Lua, so nothing really blocks.

Of course, the latest version never saw a game produced with it, since our Lilith's Enticement entry On a dark Sunday was never finished. However I'll see if I can put the code in a public Mercurial repository sometime, maybe somebody wants to help creating an actual game with it. Or maybe Mattias is interested in looking at it to see if it can be used as a base for the pathfinding and procedural generation of environment stuff he has in mind?
Back to top  
Post new topic Reply to topic Page 1 of 1 All times are GMT
 



Display posts from previous:   
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum