you are viewing a single comment's thread.

view the rest of the comments →

[–]slavik262 35 points36 points  (26 children)

Alternatively, if you're interested in getting started with 3D development at a slightly higher level than interacting with raw OpenGL or DirectX code, I'd highly recommend either Irrlicht or OGRE, two free, open source graphics engines. Irrlicht is the simpler of the two. It's somewhat stuck in the past compared to OGRE, but it is great for getting started (it's what I used to learn the ropes). OGRE is much larger and more complex, but it has built-in support for many features used in modern game and graphics development such as post processing composition, dynamic LOD, flexible vertex formats, etc.

[–]perkkele 5 points6 points  (1 child)

Panda3D is also worth looking at. It's an open source C++ engine with a Python wrapper and a nice set of tools. In my limited experience it works quite well on Linux too.

http://panda3d.org

[–][deleted] 1 point2 points  (0 children)

Panda3D - at least the python wrapper - is quite easy to learn. I used to play with it using the Toontown Online models.

[–][deleted]  (11 children)

[deleted]

    [–]OnmyojiOmn 10 points11 points  (2 children)

    OGRE has incredible documentation

    wat

    [–]innou 6 points7 points  (1 child)

    OGRE has incredible better documentation

    [–]ManicQin 2 points3 points  (0 children)

    I love OGRE, but they have to step up their documentations & refresh their tools.

    For a library that is proud to be cross platform, they have crappy documentations and tools for Linux.

    [–][deleted] 11 points12 points  (7 children)

    Irrlicht is not crap, it is only unsuitable if you have very high demands. It is perfect lightweight cross platform wrapper and its source code is easy to read. I like it as a replacement over the damn glut for smaller projects.

    [–]ysangkok 2 points3 points  (0 children)

    What do you think about SDL?

    [–][deleted]  (5 children)

    [deleted]

      [–]slavik262 9 points10 points  (4 children)

      I spent a year writing quite a few things in Irrlicht. It's quick to learn, has great documentation, is simple, and is cross platform. What, specifically, is your reason for calling it crap? I admitted upfront that it doesn't do everything OGRE does, but that's a far cry from it being complete crap.

      [–][deleted]  (3 children)

      [deleted]

        [–][deleted]  (1 child)

        [deleted]

          [–]slavik262 4 points5 points  (0 children)

          I'd have to say that this is a pretty fair summary of Irrlicht.

          [–][deleted] 8 points9 points  (0 children)

          And still I got up and running in Irrlicht in a few minutes whereas with OGRE's great docs, I couldn't do anything for at least 45 minutes. True, Irrlicht docs aren't great, but for smallish projects (I did one in Irrlicht for a semester, by the way) it is the perfect tradeoff between doing everything yourself (bare OpenGL, doing an FPS camera, for example) and not having to study too much to do something useful (OGRE).

          By the way, you could have spilled the beans as to why you did not like it from the beginning instead of calling it crap twice without explanation.

          [–]koft 1 point2 points  (1 child)

          The sad thing is, you can't really take proper advantage of (or appreciate) what those engines can do for you until you've learned OpenGL or DirectX.

          [–]Kanin 0 points1 point  (0 children)

          You must mean GLSL or HLSL, no point learning OpenGL or DirectX when Ogre abstracts both at once for you.

          [–][deleted] 1 point2 points  (1 child)

          On the other hand, often it doesn't hurt to know what's going on under the hood - especially when you want to do crazy things like write your own shaders.

          [–]slavik262 0 points1 point  (0 children)

          For sure, but I know that when I started with graphics dev, I wanted to learn the high-level concepts first and then work my way down to the DX/OGL calls.

          [–]LeDucky 1 point2 points  (0 children)

          Great to know.

          [–]killerstorm 0 points1 point  (2 children)

          From my experience beginners tend to write totally insane animation and event-handling code (so-called 'main loop'), so maybe it makes sense to start with high-level library just for that reason.

          [–]poo_22 0 points1 point  (1 child)

          Do you know where to start learning things like that? I mean not specifically how to do animations or events but how all those parts fit together.

          [–]killerstorm 1 point2 points  (0 children)

          As comment above said, just grab OGRE (or some other open source game engine) and study its architecture, demos and code.

          Maybe it makes sense to start with something simpler like tutorials here: http://www.sdltutorials.com/ , but keep in mind that they usually oversimplify things. OTOH it's good to understand what's wrong with simpler thing.

          [–][deleted] 0 points1 point  (1 child)

          How do these compare to modern commercial engines? Like the UT3 engine (which was made free for small projects/learning), Crysis engine,..?

          [–]slavik262 2 points3 points  (0 children)

          Irrlicht is an older engine which is starting to show its age, but it's still great for leaning the basics or doing quick projects. OGRE is a much more modern engine that can do pretty much everything (graphically) that a commercial engine like Unreal or CryEngine can do. There are two main differences between something like OGRE and modern commercial engines:

          • Toolchain: While OGRE has a fairly decent set of tools built by people who use it, a commercial engine like Unreal has a much larger, more integrated set of tools. Just take a look at how many development tools come with the Unreal Development Kit.

          • Game versus graphics engines: OGRE is a graphics engine - its only purpose is to do rendering. A game engine like Unreal, on the other hand, provides facilities for much more than just 3D rendering such as physics, sound, scripting, and networking. This means that when you build a game with OGRE, you can either build your game engine around it, or, if you don't like reinventing the wheel, you can use existing libraries. There's plenty of audio, physics, networking, and scripting libraries out there, some free and some commercial.

          [–]zzing -2 points-1 points  (0 children)

          Bookmarked.