Jump to content
  • Advertisement
Sign in to follow this  
Thaumaturge

YAET - Yet Another Engine Thread

This topic is 3699 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

At the moment I primarily develop my games in C++, using OpenGL (and will probably continue to do so for some projects, at least). While this is fun, and I think that I do reasonably at it, I'm reaching the point at which I'd rather concentrate on the game itself than the lower-level elements, for at least some projects, and in particular for a larger project that I have in mind. To this end I am currently hunting for a game engine with which to build this project. Thus far, as I recall, I've looked through this list, looked up reviews at the DevMaster database, browsed the forums of the engines in the list below (selecting those sub-forums that looked relevant or interesting, and picking out threads from at least the first pages of those that looked relevant or interesting, as I recall), performed some searches here regarding the engines in the list below, and looked at those threads here on engine selection that seemed interesting or relevant. Unfortunately, I still find myself uncertain, with a list of seven (perhaps eight) engines that have caught my interest. Downloading and reasonably testing out that many engines would probably take some time, I would imagine, and, given that I have a data transfer cap (reset monthly, although additional gigabytes can be bought to add to the cap), I would prefer to not download too many engines or examples. ^^; So, I come here, in the hopes of advice. ^_^ If I come to the conclusion that no engine suits my purposes and "budget", I may well fall back onto my original plan of combining various separate component engines via C++ (using OGRE for rendering, for example), or perhaps look for a way to design the regions so that they work with a 2.5D or first-person node-based (as in many of the Myst games) engine. Similarly, an intermediate acceptable path would be a partial engine, with which I integrate other components, such as physics, via C++. The game, in (very) brief: A first-person 3D adventure game (as was Sherlock Holmes: The Awakened) set in a forest Otherworld (although I believe that I have enough variation in environment, including some areas that are not tree-bound, for this to not become boring). My requirements:
  • Free or low in price.
  • Should be capable, whether out-of-the-box or via plugin or add-on of some sort, of rendering a large forest environment.
    • I intend to have the tree type vary throughout the forest, with certain "regions" being dominated by a single type, and "blending" between adjacent regions. If the engine allows for tree types in a density map, this can always be specified via such a file, rather than calculated.
    • I don't believe that I'll be wanting overhead views of the forest; ground-level views are likely to be all that I'll use (in the cases of such things as lakes, I'll probably just make the far side inaccessible and use a large textured quad strip).
  • Smiilarly, should be capable, out-of-the-box or via plugin or add-on, of heightmap-based terrains
  • A GUI system, preferably reasonably flexible (I would like to be able to specify or add to GUI panels at run-time, in particular).
  • Support for conversation trees would be a plus. (There seem to be lots of "trees" in this game. ;P)
  • Should include sound support.
  • Should include basic collision detection.
  • Aside from any GUI-based design, should rely on C++ or a scripting language (whether an externally established on such as Python or an engine-specific scripting language). I might be tempted to look at another language (such as C#) if the engine looks sufficiently preferable to its competition, but I'd prefer to not do so.
  • Naturally, I'll want to run the resulting game, and any engine components/tools involved in creating it, on my current machine; as a result, they should run under the following specifications:
    • Windows XP
    • P4 2.4GHz
    • 1GB RAM
    • FX5200 graphics card
    As you may guess from those system specifications, heavy shader-work is probably not going to happen in this game. ;)
Notes:
  • I don't require complex collision detection or physics for this project; although more complex physics might be nice, I'm happy with fairly basic collision detection (polygonal collision detection and response, and perhaps circle or cylinder support as well), as long as it works well. 2D collision detection could work, for that matter.
  • I do want sound to be handled by the engine; I'm more willing to integrate an external physics, rendering or logic engine than an external sound engine, just by matter of personal preference. This is perhaps silly, however. ^^;
  • If worst comes to worst, I might manage to find some way of splitting the game world into sections.
My current list of candidate engines:
  • Panda
    • + I seem to have generally heard good things about this engine, as I recall.
    • + Free.
  • NeoAxis
    • + Again, I seem to recall that I've generally heard good things about this engine
    • + Free for non-commercial use
    • - Commercial for commercial use
    • - Involves the use of C#, I believe
  • Delta3D
    • - While looking through their forum I came upon suggestion that their vegetation system isn't ready; I'm not entirely confident that this is so, hwoever.
  • E76
    • - Appears to be new, may be immature?
    • - Commercial
    • Note: I found little other information on this engine, it seems.
  • Yake
  • Baja
      (Based on the free episode of a game apparently made using the Baja engine.)
    • + Looks nice, seems to run reasonably well (albeit with a small environment in that case, as I recall).
    • - A small amount of odd physics (not descending stairs properly, specifically). This might be a minor concern in my case, however, as I doubt that my environments will call for much.
  • Raydium
(I don't remember why I excluded CEL, and a quick look around the CrystalSpace site hasn't revealed anything, so, unless someone knows of a reason that I shouldn't, that might be added to the list. ^^; ) My current favourites are Panda and Baja. If anyone has another engine to suggest, then please do so! I'm more than open to suggestions. ^_^ Thank you for any advice given - I appreciate it. ^_^ Finally, my apologies that this is so long a post; I wanted it to be fairly complete, I think. (I do hope that this is the appropriate forum for such a thread; if not, I do apologise for that as well! ^^;; )

Share this post


Link to post
Share on other sites
Advertisement
Of the ones you had mentioned, Panda3D, Yake, CrystalSpace and NeoAxis were the only ones I'd heard of before today.

The primary advantage of Panda3D is that you can write your scripting entirely in Python instead of C++ but note: Python's execution speed could do with a fair amount of improvement so you might find yourself rewriting some of your routines in C++ later on. (At least it offers the option to use either Python or C++.)

Yake is kind of unique but isn't very mature.

CrystalSpace has a lot of dedicated editors internally so it makes design a much more streamlined process compared to rolling your own scripting engine in Lua or Python with Ogre3d as your rendering engine. It's great for beginners but somehow wasn't considered to be quite current to modern rendering practices for a while, IIRC.

You seem to have the advantages and disadvantages of NeoAxis mapped out already.

Based on what I've seen in the documentation to Baja, it requires you to do scripting in Lua. This isn't entirely bad but doesn't leave you as open to hand optimization as mentioned in Panda3D. (Panda3D lets you rewrite some or all of the scripting in C++ if you prefer to do it that way.)

BTW, just so you know, I'm not a 3D game designer myself and am just passing along what advice I have heard on the forums and can give without having actually used the engines myself.

Share this post


Link to post
Share on other sites
Thank you very much for your input. ^_^

Hmm... Presuming that your sources are accurate, it sounds as though I should perhaps look further into CrystalSpace. Depending on what, precisely, you mean by the rendering practices not being terribly modern, that might not be a great problem for me, given the fairly old hardware on which I'm developing.

If the Python used in Panda is indeed slow, then it might not be the best bet - although working in C++ from the start might work (albeit presumably requiring recompilation that Python would not).

Depending on the decisions made on those, and any other input given, Baja might still be a viable option. If Lua isn't too slow I might just forgo the optimisation available to Panda.

In what ways is Yake unique?

I'll admit that I'm attracted to those engines that use OGRE, as I seem to recall encountering a module for that which intended to allow forest rendering...

Share this post


Link to post
Share on other sites
OGRE is a bit heavy, but it does offer many stock effects that you can easily plug into your game. I also would recommend looking at Irrlicht. It has a bit less bloat then OGRE and offers functionality similar to that of high end engines.

Share this post


Link to post
Share on other sites
Torque could work for you, though the 1.4 version has a limitation of the size of the terrain (I think its about 2 square km), this limitation was removed for the Torque Advanced, but that one requires shaders, I don't know whether or not a FX5200 would be able to handle it, and I don't know if version 1.5 also has the 1.4 limitation.

Not Free, but relatively cheap and you get the source code.

Share this post


Link to post
Share on other sites
Quote:
Original post by ThaumaturgeI'll admit that I'm attracted to those engines that use OGRE, as I seem to recall encountering a module for that which intended to allow forest rendering...


I guess you mean this: http://www.ogre3d.org/phpBB2/viewtopic.php?t=36655

But remember, just because an engine uses Ogre it doesn't mean it exposes the functionality of that plugin.

Share this post


Link to post
Share on other sites
Thank you all for your replies. ^_^

Quote:
Originally posted by Kwizatz
Torque could work for you ...


Hmm... It does, admittedly, look very good. According to their site, an indie licence costs $150, which, according to a currency converter, comes to a little over R1000 - a little less than I'm likely to spend on flying out to and attending a local gaming expo that I intend to visit this year (most of that price, I think, being the air-fare).

Quote:
Originally posted by RealMarkP
I also would recommend looking at Irrlicht. It has a bit less bloat then OGRE and offers functionality similar to that of high end engines.


Hmm... I had previously decided against Irrlicht on the grounds that it doesn't include sound, as I recall, but the engine does, admittedly, look pretty good, and it is free, it seems. Come to think of it I seem to think that I've heard of a module or companion engine to Irrlicht that does handle sound - Irrklang, is that correct?

Either way, it does look good - perhaps it would be worth integrating sound from an external system...

Having returned to Irrlicht's page tonight, I see that the SDK download - including a demo - is only just over 16MB, so I may well download it and have a look, unless someone has some indication that it's not likely to work for me (I'm particularly concerned about my low system specs at the moment).

Quote:
Originally posted by PolyVox
I guess you mean this: http://www.ogre3d.org/phpBB2/viewtopic.php?t=36655


That looks like just the one. ^_^

Quote:
Originally posted by PolyVox
But remember, just because an engine uses Ogre it doesn't mean it exposes the functionality of that plugin.


Very true, but it can at least offer a lead. That said, since there do seem to be other engines that at least appear to offer the sort of functionality that I'm looking for, I'm not weighing the inclusion of OGRE too heavily, I don't think.

I don't suppose that anyone knows where I might find resources on the minimum system requirements that I might be looking at for each of these engines? Naturally the requirements of any given game made in a particular are likely to vary greatly, but I imagine that one could at least say that this system should work for at least some projects, while that system is likely to not be up to the task...

Share this post


Link to post
Share on other sites
I personally have used Irrlicht. It is small and does a lot, but you will have to work around a few things. For example, you can do blended animations, as in between two different sequences, like starting one before the ending of another. But if you want to have two animations going, like one controlling legs and the other controlling arms, and you want those to change separately, then you'd have to create two entities one for each animation, and then the one that is actually rendered, you manually apply the bone rotations of the other. So like you have the entity you see onscreen doing the animations for the arms. Then you have another (hidden) doing whatever animations for the legs. Then you copy just the leg bones of the second onto the first one and get both at the same time.

There are other little details, including a lack of art pipeline, that you'd also have to work around, but is tends to have a shorter and easier learning curve that other engines.

Share this post


Link to post
Share on other sites
Hmm... Well, you comment seems to be overall positive (and thank you for it ^_^), although the example that you give of working around the lack of skeletal animation blending seems odd to me - I wonder why that feature wasn't included, at the least via a wrapper around some trick such as the one that you mention.

Well, thus far, based on what I've read here, I remain interested in (in no particularly good order):
  • Panda (presuming that I stick to C++ instead of Python, given the mention of slowness when using that)

  • Yake (I'm primarily curious to find out what makes it "kind of unique"

  • Irrlicht (I'm currently most interested in this engine)

  • Baja

  • and CrystalSpace


Naturally, I'm still very much interested in any comments on other engines, including those mentioned in my first post but not the list in this post! ^_^

The next step, I think, is for me to go to the forums of the engines that I settle on and ask there about the suitability of those engines to my project, and the viability of using them on my machine.

[Edited by - Thaumaturge on May 27, 2008 9:21:19 PM]

Share this post


Link to post
Share on other sites
If you've developed other games, what's to stop you from re-using the code from those for low-level elements? I'm pretty sure that that would suit you better than someone else's code in the long run. This way, you should have no problem including the stuff you want to keep, and chucking the stuff you don't. It would probably be better for keeping the game size down, as well, rather than having to lug about OGRE, or any of the others.



Disclaimer:
I have nothing against other peoples engines, and have dabbled in OGRE, Unreal and Quake, with a cursory glance at SDL. I just see no reason to DL someone else's engine, when you may already have the majority of the stuff you need anyway.

[Edited by - webwraith on May 28, 2008 9:48:28 AM]

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!