Sign in to follow this  

YAET - Yet Another Engine Thread

This topic is 3485 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
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
I don't think that I've yet developed anything of this scale, unfortunately. Similarly, there are a number of features that I have not yet implemented myself, largely, I think, because they haven't really caught my interest as personal projects in and of themselves, as opposed to being encountered as solutions to elements of game projects.

Indeed, if I had the components already, I probably would use those (depending on their speed, utility and robustness, I imagine).

Since I find that I'm more interested in game creation than engine creation, it seems to me that finding a piece of middleware is the way to go for me, in this case, at least. ^_^

Share this post


Link to post
Share on other sites
Don't write off Python just because it's slower than C++. While I haven't done any testing myself, I've heared that it's still very fast, and should you need increased speed for something, you could always "optimise" by writing that part in C++ and providing access to it from Python. From what I've seen, the usage of C++ from Python is relatively easy

Share this post


Link to post
Share on other sites
Hmm... Fair enough. I think that I had the impression from samuraicrow's post previously in the thread that Python is significantly slow, which concerns me primarily because, as I've pointed out, I'm doing this on a slightly old machine.

Does anyone have any other reports or first-hand experience of Python's speed?

Share this post


Link to post
Share on other sites
Quote:
Original post by Thaumaturge
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.


My other post was positive. This one is a little more negative. In response to your question about why this example wasn't properly implemented, it is simply that it hasn't been done yet. Progress is being made though. I mean to say that though Irrlicht is currently released as 1.4 and has lots of features, the skeletal animation feature has recently been rewritten in order to support animation blending and other advancements, but it also has the effect of not being done yet. So if you want to use it as is you have to work around that problem. Irrlicht has advanatages and disadvantages like any other engine.

Share this post


Link to post
Share on other sites
Aah, I see. Well, that's fair enough.

Quote:
Originally posted by kburkhart84
Irrlicht has advanatages and disadvantages like any other engine.


Of course - the trick is uncovering any that are relevant to my current purposes and weighing up those of each candidate engine against those of the others. ;)

Share this post


Link to post
Share on other sites
Quote:
Original post by Thaumaturge

Of course - the trick is uncovering any that are relevant to my current purposes and weighing up those of each candidate engine against those of the others. ;)


Well, according to your first post, Irrlicht may very well work. I myself started similar to you learning OpenGL with NEHE. In fact, I have made a couple of things like the Space Battle 3d game that is on NEHE's download section. It has been a few years, and it was never completely finished, but you can get an idea how far I got with vanilla OpenGL. I since then found and liked Irrlicht. It is simple enough for me and has the advantages/features I needed at the time. In fact, I still haven't needed anything it can't do except coding the projects for me :). But I also looked at Ogre3d, while it is more mature and complete, it is more complex to get started with, but then in the long run it may be worth it. It doesn't have as many "work-arounds" like Irrlicht needs. The actual feature list between the two is pretty close though. Both are free, though Irrlicht's license is a little more liberal. The Ogre3d license is LGPL or GPL I can't remember which. Irrlicht uses another license which is completely free. As in, you don't have to release source code mods or anything, or show Irrlicht's logo or anything like that. If I'm not mistaken, the Ogre3d license requires you to support the OpenSource community by releasing any source modifications to the community. There are a couple of other details as well, but they don't stop you from using Ogre3d commercially.

On another note, both have huge helpful communities as well.

Share this post


Link to post
Share on other sites
Hmm... By "Ogre3D", do you mean a game engine based on OGRE? (I seem to recall that there are at least one or two such.) If so, then you make it sound like a good possibility - perhaps I should make a note to investigate it (although I imagine that I did look into at least one such during my earlier explorations)...

I'm not too bothered by the use of GPL or LGPL, to be honest, although admittedly it can be a little bit of a pain at times to figure out what, precisely, I'm supposed to do. ^^;

(By the way, I seem to recall that something that I visited recently used the zlib licence; it may well have been Irrlicht.)

A helpful community is indeed a positive "feature", come to that, for engine-specific concerns. Thank you for pointing that out. ^_^

On that note, I think that in a few days' time (in case someone mentions something that puts me off of one engine, or adds another to my list, as you may have just done) I will head out to the forums of the engines that I'm interested in and start asking there.

Quote:
... except coding the projects for me


Aaw - you mean that it won't code my projects for me? T-T ;P

Share this post


Link to post
Share on other sites
Actually I was referring to Ogre itself as a rendering engine. Then you would have to add everything else. And yes, it was Irrlicht with the zlib license, I just couldn't remember what it was called. Good luck in deciding. Just remember you can always switch to another one afterwards.

Share this post


Link to post
Share on other sites
Aah, fair enough.

Funnily enough, that had been my plan at one stage, as I recall (I even went as far as downloading OGRE and, if I recall correctly, ODE, although I didn't get around to starting work with them). I think that I would prefer a single engine (or an engine that handles most of the elements) simply because, this being a bigger project than most (perhaps any) that I've undertaken thus far, I would rather increase the proportion of time spent dealing with the game itself, rather than underlying systems. Naturally, this may well end up as a compromise of some sort - as I think that I've mentioned, if I don't find an engine that suits my purposes, OGRE + other systems is one of my potential fallback solutions.

Quote:
Just remember you can always switch to another one afterwards.


True - it's just that I fear the download sizes accumulating too much and thus eating too much of my cap (I was rather pleasantly surprised to see the fairly small size of the Irrlicht download, as I recall). I could simply wait until the month in question is over, I suppose, of course. ^^;

Quote:
Good luck in deciding.


Thank you. ^_^

Share this post


Link to post
Share on other sites
If you mean to decrease download time and increase included stuff, then Irrlicht is going to be better. It provides a little of it's own collision detection, but no sound. Ogre has neither of those. but on the Irrlicht forums are a few projects that wrap around Irrlicht with different physics APIs. Also, I would recommend possibly using IrrKlang or OpenAL for sound, as these are both pretty small libraries and you experience is similar. As in OpenAL has some codeing practices similar to OpenGL, while IrrKlang is made by the same original creator of irrlicht, and also has things similar with Irrlicht. Both apply, but different ways. And you already know about the different download sizes between Irrlicht and ogre. The wrappers I mentioned above are pretty small in size as well.

Share this post


Link to post
Share on other sites

This topic is 3485 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.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this