OGRE GPL'ed 3D Engine
Steve Streeting writes "Version 0.99b of OGRE (Object-oriented Graphics Rendering Engine) has been released! OGRE is a well designed, flexible and easy to use 3D engine released under the GNU Public License. This version adds highly customisable, scriptable particle systems, generic billboard support, compatibility with VC.Net, performance improvements and various bug fixes."
Judging from the screenshots, the engine is very capable, as it can even render Quake3 maps rather well. The problem is, does the open-source community have the artists needed to take this and make it into a playable and interesting game ?
OGRE is a well designed, flexible and easy to use 3D engine...
I hope this doesn't compete with my badly designed, rigid and difficult to use 3D engine I have been working on.
Outdoor digital photography, mostly in New Engl
Judging from screen shots and feature lists it's pretty much on par with Crystal Space. Although the latter doesn't have built in support for Q3A levels. (Would have been a nice way to compare them otherwise.)
I do know that some game engine courses at my uni use Crystal Space as the engine of choice. (But I haven't taken that course yet.) Seems like lot's of fun in any case.
Besides, I think OpenGL is extremely hard to implement efficiently in software.
A nice man call John Carmack would probably disagree with you there.
Dave
I write a blog now, you should be afraid.
From the site:
Temas joined the project in April 2002 and has been working hard on Linux porting and also generally on ANSI C++ compliance. He comes from a background of open-source development, and is currently a lead contributor to the Jabber open-source server as well as working on OGRE.
Linux port will probably be here shortly, I think.
Well be happy, it already compiles under Linux. I've been working hard on the Linux port and have the Core and Engine compiling currently, and should be in CVS now. I'm also working on the OpenGL renderer as I type this. I'm actually hoping to get some OpenGL screenshots tonight. It will just be a basic version, but it's a starting point.
JC writes to OpenGL, he does not implement it, that's the job of the driver writers. Writing to OpenGL is piss easy. Writing an OpenGL driver, or worse, a complete software implementation of OpenGL, is a fucking nightmare.
Uh, you did notice the part saying "last modified on 23.6.2000", didn't you? Two years is a long time; Crystal Space and others have come a very long time since then.
3d engines have become a much larger project since two years ago, what with people wanting platform independence, 3d acceleration, and lots of other technically demanding features. The only 3d engines that are getting anywhere have lots of developers coordinating.
He says smugly, as he pushes the Submit button and millions (if not billions) of lines of code are executed for his message to be posted.
Unfortunately, Utah-GLX was crappy and crashed a lot. Well, it did on my machine. I got a MGA G400 on the strength that their HW specs had been opened and a driver was being developed. Oh well, it's not like many other choices are well supported on Linux today. (I'm not too bitter now, tho, as Xfree 4's DRI version seems to work good)
I'd imagine so, OpenGL is pretty big. Of course, Brian Paul has already done the complete software implementation with Mesa (I guess everyone knows that nowadays, right?) but I doubt that any commonly available PC graphics cards support a full OpenGL state machine. It has too many features that are of little interest to the average games programmer for most companies to care that much to do it properly.Well, IMHO, y'know.
Be careful! New moon tonight.
Ogre is a "high-level scene graph engine". This is a level above a standard 3D rendering API, like OpenGL, but a level below a general-purpose game engine. Unfortunately, while high level scene graph engines seem plausible, they're not very useful.
There are quite a few of these things. SGI Inventor was the first major one. Apple had one in Quicktime 3D. Direct-X has one, but Direct-X is mostly used as a low-level drawing API. One was announced for OpenGL (it was called Farenheit) when SGI and Microsoft lost interest, it didn't really bother anybody.
You need a low-level graphics API to abstract different types of hardware. That's the real job of OpenGL and Direct-X. You might want a full game engine if you're building a game, and you can get those from a number of vendors. But mid-level APIs just aren't all that useful. You have to do things their way, but they don't do enough of the job to justify the trouble.
I've been looking for a full-featured 3D gaming engine for a while, as I wish to write a hobby game in my spare time. But since I want to keep the option of selling my game open to me, I can't use any of the currently existing 3D engines. Nor can I use the Quake 1/2 source. Why?
They are all GPL. While I will be the first person to admit that Free Software has its merits, it simply does not work for game software. Releasing a core component of a game under the GPL means that only GPL games can be made with it "That's great!" you may be saying. The only problem is that games are not just programming. They are programming, music, art, and level design. Musicians, artists, and level designers (even hobbyist ones) are used to making money for what they do. But since the core engine of the game is GPL, no money can be made on the game.
(Aside: And don't give me that line about how it's perfectly legal to sell Free Software. Sure, it's legal, but that doesn't mean it works. It's like another poster in another thread said: "Sure, I't's LEGAL for me to try to sell my used car for retail price, but it doesn't mean I'll be able to." Aside over.)
And you guys wonder why FreeCraft and FreeCiv have such lousy art. It's because there's no Free Art Foundation going around saying, "You should give your art away! It's immoral to charge for art!" Same thing for musicians. Same thing for level designers. Hell, same thing for just about any skilled work that combines technical expertise with creativity EXCEPT FOR PROGRAMMING.
The GPL doesn't work for gaming. Please, I'm begging you, stop releasing game libraries under the GPL. Release them under the LGPL or the BSD license. If you do, it means professionals can use and maintain them, benefiting and giving somthing back to the community. And we can all stop having to start from scratch (or use crappy middleware like NetImmerse) whenever we want to make a game.
I would agree with this - but I would go one step further and say that what is really hard (other than making it fast, which is pretty tough) is going beyond simple polygons with shading (which isn't the easiest at first), to full texture mapping, then shading, then all the other effects.
Also, moving from a single "cube" (your standard first object, IMO) to multiple cubes, to world representation with cameras, light sources, etc - gets tough, especially in regards to speed (ie, object culling based on view, etc). Most of the time, you have to learn funky methods of object culling (bsp trees, quad trees, etc) that are almost an art/science in themselves, that to get the required speed...
Let's just say I learned a long time ago that when it comes to 3D graphics I knew I would never become the next "Carmack" and that those that can do this stuff, and provide us engines that bring the coding and knowledge down to a more managable level for us more average 3D coders - these guys are worth their weight in gold.
Not that I don't enjoy reading and trying to learn about the latest in 3D coding - but I know that such coding isn't something I excel in, and probably never will (my best project: before I got into Linux I used to do a lot of personal coding in VB - I managed to code a custom perspective correct texture mapping 3D engine in pure VB, later added a custom Visual C DLL that did raster rendering to speed the thing up - I wanted to do the actual poly rendering in the VC DLL, never got around to it - at that point, DirectX still couldn't be accessed easily in VB, so the whole thing was a complete rendering engine - learned a lot, though)...
Reason is the Path to God - Anon
The only problem is that games are not just programming. They are programming, music, art, and level design. Musicians, artists, and level designers (even hobbyist ones) are used to making money for what they do. But since the core engine of the game is GPL, no money can be made on the game.
This is completely and totally wrong. (Or it's an artfully constructed troll; can't tell which.)
You are only required by the GPL to release any changes you make to the engine itself. If you take the Q2 engine and make a game with your own models, textures, levels and game logic, you are not required to give away the models, textures, levels and game code.
Remember, the engine and game logic are seperate codebases: Id Software releases the game logic seperately from the engine code, and usually years before, so that mod authors can play with it. And of course, the GPL does not "infect" anything but code: your textures, skins, models and levels remain your own no matter what.
If you really need to make changes to the rendering engine itself (highly unlikely for a hobbyist game programmer) without giving away your code, consider looking at the Torque Engine, which you can license for $100 and a revenue-sharing agreement with GarageGames.
News for Nerds. Stuff that Matters? Like hell.
Crystal Space not active for a while!!!??? Based on what information do you make that statement? I'm the project manager of Crystal Space and the project is extremely active now. There are updates to the source nearly every day and lots of CS related/using projects are emerging. Especially take a look at http://www.planeshift.it, a free MMORPG using Crystal Space. They have very good artists.
Greetings,
Project Manager of Crystal Space (http://www.crystalspace3d.org). Support CS at http://tinyurl.com/cb3x4
The first poster is wrong in that he won't be able to make money from the game. Most GPL:ed 3D engines are available under dual licenses, the GPL and one commercial license that comes with a fee. That is perfect for him since he can start developing without a commercial license and then get a commercial license if/when he decides to release the game commercially. Just be sure to check the details of the license first though and possibly get some kind of guarantee that they won't change the commercial licenses during your development.
The second poster is somewhat wrong in his interpretation of the GPL. You do have to release your entire codebase under the GPL, but not the textures, models etc.
The GPL works on a program-wide level while the LGPL works more like the above poster described (but not entirely, you are for example required to keep the LGPL:ed codebase in a DLL, which shouldn't cause the developer any bigger troubles but gives the user the benefit of being able to modify or replace the LGPL:ed part of the program), so I guess he mixed them up a bit.
It's a nice piece of work, but it solves a problem that nobody needed solved.
I'm glad you don't have a problem with calculating and drawing all visible polygons in a 50 000 poly-based world as quickly as possible. Some of us do.
Ogre is a "high-level scene graph engine". This is a level above a standard 3D rendering API, like OpenGL, but a level below a general-purpose game engine. Unfortunately, while high level scene graph engines seem plausible, they're not very useful.
I'm not sure what you mean by plausible - since Scene Graphs are not just theoretical: they work extremely well for their purpose. They are very useful, probably the fastest general purpose method for drawing large scenes available today.
There are quite a few of these things. SGI Inventor was the first major one. Apple had one in Quicktime 3D. Direct-X has one, but Direct-X is mostly used as a low-level drawing API. One was announced for OpenGL (it was called Farenheit) when SGI and Microsoft lost interest, it didn't really bother anybody.
Meanwhile in the year 2002, there are quite a few scene graphs available for many platforms. One of the best is Open Scene Graph, an LGPLed library which is used for games, demos and high-end visualisation systems. Not to mention Ogre itself which looks very sweet indeed.
You need a low-level graphics API to abstract different types of hardware. That's the real job of OpenGL and Direct-X.
Direct-3D I think you mean.
You might want a full game engine if you're building a game, and you can get those from a number of vendors.
You might also want to consider what 95% of game writers do and that is to select the best tools for the job and assemble them yourself. Graphics and rendering tends to be 10% of the typical code base for a commercial game - the bulk is AI, gameplay logic, resource management, menus, and supporting tools.
But mid-level APIs just aren't all that useful. You have to do things their way, but they don't do enough of the job to justify the trouble.
I suppose if you're looking for a game engine which does everything for you while wiping your nose and holding your hand, then a mid-level API won't be very useful. For a game writer looking to solve the one big problem of overdraw, a mid level API like Ogre or OSG is an excellent solution. Plug it in and it does the clipping, culling and drawing work for you. I know from personal experience that OSG is superb at this job - adapting equally well to visualisation, flight simulation and terrain rendering. Ogre's screenshots tell a similar story. Want a Quake 3 level? Load it and Ogre adds it to the graph and takes care of the rest.
--- Hot Shot City is particularly good.