View previous topic - View next topic |
Author |
Message |
Mattias Gustavsson Mage
Joined: 10 Nov 2007 Posts: 457 Location: Royal Leamington Spa, UK
|
Posted: 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:
|
Posted: 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
|
Posted: 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.
|
Posted: 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
|
Posted: 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
|
Posted: 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
|
Posted: 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
|
Posted: 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.
|
Posted: 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
|
Posted: 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
|
Posted: 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 |
|
|