View Full Version : Software 3D library?
Badman
12-29-2004, 08:56 AM
This post is basically in response to the "OpenGL + Windows = tech support nightmare?" thread. Supposing I didn't want to use OpenGL or DirectX but I did want to make a 3D game...does anyone out there have a good, clean, simple, fast software 3D library/API they would recommend?
Wish I could use Pixomatic (http://www.radgametools.com/pixomain.htm), but I don't think I can afford the license...
milieu
12-29-2004, 09:07 AM
OGRE (http://www.ogre3d.org/)
Very well-designed, purely OO API that is cross-platform (Windows, MacOS, and Linux), and API-neutral. It will run using Direct3D or OpenGL, whichever the user wants. This is all handled using an abstraction layer, so you don't end up with tons of conditional logic in your code for each case.
It is free, albeir under the nefarious LGPL license that will steal your soul and kill your dog. ;)
If I haven't sold you on OGRE's merits, try the 3D engine database (http://www.devmaster.net/engines/). It has 160 engines, all sortable by platform, features, user ratings, etc.
otaku
12-29-2004, 01:30 PM
My opinions:
Ogre3D. Just does rendering. Very good. Always improving. Difficult art path. Will blindside you with an obscure "gotcha" from time to time. Nothing of commercial signifigance shipped with it (that I know of). Compiles on just about anything. Uses DX & OGL. Free.
Torque Game Engine. Very good. Complex. Does everything except AI & complex physics. Always improving. A number of commercial games already shipped with it (including big budget AAA titles). Works on Mac OSX, Win32, Linux, XBOX, Win XP Embedded, and soon will be available on "mobile devices." Uses DX & OGL. $100 to $500 depending on how much money you make per year.
Reaction Engine. Has been used on one game. Tool chain is unknown. Only available on Win32. Uses DX. Cheap ($50 I think).
If your budget is $0 I'd recommend Ogre3D. If you can spring for the $100 I'd recommend Torque and another $50 for the Kenneth Finney book that explains it all (in fact you could just buy the book and play around with the Torque engine, you just don't get the C++ source code).
gmcbay
12-29-2004, 02:05 PM
None of those suggestions are software rendering engines.
You might consider using Quake or Quake 2 engines, with their software renderers. They are GPL, though, unless you want to spend $10,000. However, you could still copyright your content and sell the game (this is what Prarie Game's Minions of Mirth is doing).
You might also want to check out swShader, which is LGPL:
http://sourceforge.net/projects/sw-shader/
I'm not aware of any useful projects that use a more developer-friendly license like BSD or MIT.
Badman
12-29-2004, 02:27 PM
None of those suggestions are software rendering engines.
THANK you for noticing!
You might consider using Quake or Quake 2 engines, with their software renderers. They are GPL, though, unless you want to spend $10,000.
Aieee. Both of those engines are heavily optimised for what they do, which means adapting them to what I want to do will be a real pain. Plus, I do want to reserve the right to sell the game I make, so no GPL.
However, you could still copyright your content and sell the game (this is what Prarie Game's Minions of Mirth is doing).
Grrr...not to start a flamewar or anything, but using this tactic suggests (to me at least) that it's okay for designers, artists and musicians to get paid for what they do, but not programmers. The GPL just is not suitable for game software (which is and always will be commercial software, evil in RMS' eyes) and attempts to hack it to fit don't do anyone any good.
You might also want to check out swShader, which is LGPL:
http://sourceforge.net/projects/sw-shader/
That's a much better prospect; I'll check it out. Thanks.
I'm not aware of any useful projects that use a more developer-friendly license like BSD or MIT.
Sigh. That's unfortunate.
BedroomCoder
12-29-2004, 02:39 PM
Isn't software rendered really slow? :-|
Ricardo C
12-29-2004, 02:42 PM
Plus, I do want to reserve the right to sell the game I make, so no GPL.
You can sell the game. The GPL only obligates you to release your source code, and that only if you modify the original, I believe. Commercial exploitation is fine and dandy.
Grrr...not to start a flamewar or anything, but using this tactic suggests (to me at least) that it's okay for designers, artists and musicians to get paid for what they do, but not programmers. The GPL just is not suitable for game software (which is and always will be commercial software, evil in RMS' eyes) and attempts to hack it to fit don't do anyone any good.
The programmers of the Quake engines got paid, and contnue to be paid. Releasing the code to the engine doesn't diminish their royalty payments from the sales of the Quake games, or whatever residuals they might receive for every engine license id sold before going open source.
While I understand why some programmers see the GPL as being dismissive towards their work, try looking at it this way: Code can be replicated, content is unique. It's not meant to be insulting towards programmers, who are the wizards that make those wonderful ideas come to life, it's just the way it is.
luggage
12-29-2004, 02:47 PM
Code can be replicated, content is unique
huh?
I'm afraid I don't understand.
Ricardo C
12-29-2004, 02:58 PM
huh?
I'm afraid I don't understand.
What makes the Harry Potter games sell? That they were built with the Unreal engine, or that they feature the characters from the most popular novels of the last decade?
If the Unreal engine hadn't been available to EA, they would have licensed another engine, or built their own. And to the end user, it wouldn't have made a difference. The more valuable part is the game content. The code can be replaced. The IP cannot.
BedroomCoder
12-29-2004, 03:10 PM
True. Its kinda psychologically amusing, that you could make billions by just going to a PC day after day typing in all the code you need to make a best selling game with a fantastic graphics engine, if you just knew what to type in.
Sadly, not everybody has accsess to that info :(
Badman
12-29-2004, 03:24 PM
You can sell the game. The GPL only obligates you to release your source code, and that only if you modify the original, I believe. Commercial exploitation is fine and dandy.
True. Very true. The GPL does not outlaw attempting to sell your product. It merely makes it impossible by giving any user who buys it the right to make as many copies as they want and give them to as many people as they want. So the GPL does not ban commercial software de jure, just de facto. This disingenuousness about the GPL is one of the things that makes me the maddest about it.
And when you get right down to it, Minions of Mirth's technique of GPLing the code and copyrighting the content may still be a violation of the GPL, since the GPL requires you to provide any data files necessary to make the program run along with the source.
The programmers of the Quake engines got paid, and contnue to be paid. Releasing the code to the engine doesn't diminish their royalty payments from the sales of the Quake games, or whatever residuals they might receive for every engine license id sold before going open source.
Yes, they got paid - because they released the software commercially first, and then GPL'd it after they were sure they had gotten most of the money they were going to get for it.
While I understand why some programmers see the GPL as being dismissive towards their work, try looking at it this way: Code can be replicated, content is unique. It's not meant to be insulting towards programmers, who are the wizards that make those wonderful ideas come to life, it's just the way it is.
Ah. So programmers are interchangeable cog-wheels. They're not creative like artists, designers and musicians, so they don't deserve to get paid for what they do.
Badman
12-29-2004, 03:31 PM
Isn't software rendered really slow? :-|
Depends on your definition of "really". I could try to list all the reasons I'm considering software 3D for my game, but these guys (http://www.radgametools.com/pixowhy.htm) have done a much better job. Basically, software 3D means that if your customer can run Windows, they can run your game. It lowers the minimum requirements and makes the game laptop friendly (both of which will widen your potential market) and allows you to avoid the headache of figuring out why your game won't work with a hojillion vidcard/driver combinations.
Ricardo C
12-29-2004, 03:35 PM
True. Very true. The GPL does not outlaw attempting to sell your product. It merely makes it impossible by giving any user who buys it the right to make as many copies as they want and give them to as many people as they want. So the GPL does not ban commercial software de jure, just de facto. This disingenuousness about the GPL is one of the things that makes me the maddest about it.
And when you get right down to it, Minions of Mirth's technique of GPLing the code and copyrighting the content may still be a violation of the GPL, since the GPL requires you to provide any data files necessary to make the program run along with the source.
Read. The. License.
Yes, they got paid - because they released the software commercially first, and then GPL'd it after they were sure they had gotten most of the money they were going to get for it.
What's keeping you from taking one of the better "sons of Quake" such as Tenebrae and profitting from it? (http://tenebrae.sourceforge.net/)
Ah. So programmers are interchangeable cog-wheels. They're not creative like artists, designers and musicians, so they don't deserve to get paid for what they do.
I referred to programmers as "the wizards that make the games come to life", but somehow you read that as "interchangeable cog-wheels" and "not creative." If you plan on either twisting or ignoring my words, please let me know so I can save myself the effort.
I have great admiration for programmers. I'm a competent coder, but I will never be in the same league as a John Carmack or a Tim Sweeney. Those guys have my eternal respect and admiration for making the industry as a whole take a leap forward and making it possible for designers and artists to craft more immersive, believable worlds. But as impressive as their accomplishments are, they're less so without the content that puts them to work. I am sorry if my views offend you, but I won't apologize for having them.
luggage
12-29-2004, 03:42 PM
What makes the Harry Potter games sell? That they were built with the Unreal engine, or that they feature the characters from the most popular novels of the last decade?
If the Unreal engine hadn't been available to EA, they would have licensed another engine, or built their own. And to the end user, it wouldn't have made a difference. The more valuable part is the game content. The code can be replaced. The IP cannot.
That makes the IP more valuable not the content. The fact that the Unreal engine was used means there must be quite a lot of value in that code.
What engine they used does make a difference to the end user. If they'd have used a very poor engine you can bet it wouldn't have sold as many.
To say it wouldn't have made a difference is simplifying the code too much. The code doesn't just render a scene - it handles the ai, it handles collisions, it handles gameplay mechanics, without code you're just looking at pictures.
Without programmers there would be no games at all. Without artists there'd still be games, they'd just look cack.
Ricardo C
12-29-2004, 03:55 PM
That makes the IP more valuable not the content. The fact that the Unreal engine was used means there must be quite a lot of value in that code.
Ease of use for the developers, sure. I haven't done much Unreal modding, but from what little I've seen, I would certainly pay the license fee if I could afford it. But that has zip to do with the end user.
What engine they used does make a difference to the end user. If they'd have used a very poor engine you can bet it wouldn't have sold as many.
I thought it was obvious I was speaking of comparable technologies. At the end of the day, would Joe and Jane Average know the games were made with the Unreal engine if the developers didn't announce it? And futher, would someone not buy the games because they weren't made with it?
To say it wouldn't have made a difference is simplifying the code too much. The code doesn't just render a scene - it handles the ai, it handles collisions, it handles gameplay mechanics, without code you're just looking at pictures.
But if you take away the code, I can recreate it. Take away the IP and I'm left with nothing.
Without programmers there would be no games at all. Without artists there'd still be games, they'd just look cack.
Without designers, there would be no games at all. A programmer without a design = A large collection of half-baked tech demos.
luggage
12-29-2004, 04:12 PM
You said value is in content but what content is there in the Unreal engine? Yet they make quite a lot of money from just their code.
But if you take away the code, I can recreate it. Take away the IP and I'm left with nothing.
IP does not equal content. Take away the content and you can recreate the content just as you could recreate the code.
I used to work for a company that developed pinball games for PC and console. We had one guy who wrote the engine\editor and a game was developed by working with the editor. No more code was needed. The value here to the developer was the code. Rendering up another table took a couple of weeks. The engine\editor was developed over years.
Without designers, there would be no games at all. A programmer without a design = A large collection of half-baked tech demos.
Everyone is a designer. Show me someone who can program or someone who can draw and I'll show you someone who could come up with a game idea. They're two a penny.
Ricardo C
12-29-2004, 04:23 PM
You said value is in content but what content is there in the Unreal engine? Yet they make quite a lot of money from just their code.
I said content is more valuable, not that code is worthless.
IP does not equal content. Take away the content and you can recreate the content just as you could recreate the code.
Fine, allow me to correct myself: Take away the intellectual property, and you have nothing. You can still make full use of the latest gee-whiz game engine, but without an attractive property and quality art assets to put it to use, you have very little of value for the consumer.
I used to work for a company that developed pinball games for PC and console. We had one guy who wrote the engine\editor and a game was developed by working with the editor. No more code was needed. The value here to the developer was the code. Rendering up another table took a couple of weeks. The engine\editor was developed over years.
My first impulse is to say "wow, it took him years to write a pinball engine?" ;)
My second is to ask "did the guy who wrote the engine create the tables?"
Everyone is a designer. Show me someone who can program or someone who can draw and I'll show you someone who could come up with a game idea. They're two a penny.
That's pretty rude coming from someone trying to defen the role of the programmer. What's next, "everyone's a writer"?
Sure, everyone's a designer. But the vast majority are bad designers. Show me someone who thinks he can make a computer game, and in 90% of the cases, we'll be looking at the kind of guy that makes this type of game. (www.arcadestudio.com)
PS-- I apologize for any headaches you might suffer if you visit that company's site, and if you're brave enough, if you try their games.
luggage
12-29-2004, 04:57 PM
Fine, allow me to correct myself: Take away the intellectual property, and you have nothing.
Thank you - that makes it clearer and a difference to your argument.
You can still make full use of the latest gee-whiz game engine, but without an attractive property and quality art assets to put it to use, you have very little of value for the consumer.
This is where it goes wrong. Firstly, if you had an attractive property and quality art assets you have very little of value for the consumer. It works both ways. In fact you'd have zero value for the customer as a game as all you'd have is pictures.
Secondly, if you had the code base for a game, let's say Harry Potter, and you switched all the artwork for boxes, etc, you'd still have something playable. So where is the actual value if you're talking about having one thing or the other? Surely the value is in having both?
My first impulse is to say "wow, it took him years to write a pinball engine?"
My second is to ask "did the guy who wrote the engine create the tables?"
The engine was designed over several years because of the amount of platforms it works on and features were continually added.
As for your second question I don't see the point to it. I was showing you how that even though the consumer's value is the whole game it's possible for a developer's value to be in the code. In this case the code was more important than the art content.
That's pretty rude coming from someone trying to defen the role of the programmer. What's next, "everyone's a writer"?
Sure, everyone's a designer. But the vast majority are bad designers. Show me someone who thinks he can make a computer game, and in 90% of the cases, we'll be looking at the kind of guy that makes this type of game.
Not really. Just a response to your response. I've worked for several game developers and every single one had more ideas than they could ever work on - and this is without hiring a game designer. But I suppose 90% of the game designs were bad? To say that 90% of games not designed by this mythical "game designer" are bad is a bit outrageous to be honest.
luggage
12-29-2004, 05:09 PM
at the end of the day I believe that all of the assets for a game including the code are what makes that game valuable.
Badman
12-29-2004, 05:19 PM
Read. The. License.
I have read the license. The license states that anyone I sell my game to can make copies of my game and give them to anyone he wants. Or am I somehow misinterpreting this, direct from the GPL FAQ (http://www.fsf.org/licenses/gpl-faq.html#TOCDoesTheGPLRequireAvailabilityToPublic) :
If I distribute GPL'd software for a fee, am I required to also make it available to the public without a charge?
No. However, if someone pays your fee and gets a copy, the GPL gives them the freedom to release it to the public, with or without a fee. For example, someone could pay your fee, and then put her copy on a web site for the general public.
How many copies do you think I will sell if anyone who buys one can give it to as many people as he wants, or even just post it on a website for anyone to download?
RMS and his friends want it both ways. They claim that the GPL is business-friendly, while simultaneously making it impossible for anyone to make any actual money off the software. Why? Because they believe that making money off of software is immoral; RMS has said so many, many times. Well, in RMS' world, there are no computer games, because the only way you can justify the enormous cost of developing one is by selling the finished product.
And dammit, now this thread is completely off-track. All I wanted was a software 3D API, dammit!
Ricardo C
12-29-2004, 05:27 PM
This is where it goes wrong. Firstly, if you had an attractive property and quality art assets you have very little of value for the consumer. It works both ways. In fact you'd have zero value for the customer as a game as all you'd have is pictures.
The technology is available if I need it. I can pay $100 to Conitec or GarageGames or Cipher and have a pro-quality game engine, tech support, and existing code to work from in my hard drive in a day or two. Or I can go open source and use an engine such as Tenebrae.
To anticipate what might be your next point: Do I need to be a coder or hire one in order to exloit this technoloogy? Of course! But I never argued that code was worthless or that programmers were not needed. What I am arguing is that the IP is more important in the long run, because it's unique. A game engine, however impressive, is not, as its features can be replicated without incurring in copyright violation or IP theft.
Secondly, if you had the code base for a game, let's say Harry Potter, and you switched all the artwork for boxes, etc, you'd still have something playable. So where is the actual value if you're talking about having one thing or the other? Surely the value is in having both?
I'm waiting for you to quote the post in which I said code is worthless. I assume you can't find it because I never said it.
Yes, you'd have something playable. Would you have something sellable? No. Can you take the engine an find another IP as sought after as Harry Potter and build a game around it? It would be difficult.Can I take the Potter IP and find a suitable engine on which to build a game? Give me 10 minutes.
The engine was designed over several years because of the amount of platforms it works on and features were continually added.
Thanks for humoring me, but you do know I was just being cheeky, right?
As for your second question I don't see the point to it. I was showing you how that even though the consumer's value is the whole game it's possible for a developer's value to be in the code. In this case the code was more important than the art content.
More important for the developer, yes. But the consumer doesn't care how amazing the editing tools are, unless they're pĂ*rt of the package. They care how well the game plays.
Not really. Just a response to your response. I've worked for several game developers and every single one had more ideas than they could ever work on - and this is without hiring a game designer. But I suppose 90% of the game designs were bad? To say that 90% of games not designed by this mythical "game designer" are bad is a bit outrageous to be honest.
Firstly, you use the term "game designer" as if it were a skill you could acquire in school. It isn't. You either have a talent for it or you don't. Some programmers are also good designers, whereas some people who call themselves designers claim to be so because they really don't have any demonstrable skills.
Secondly, I didn't say 90% of game developers are bad designers. You said "everyone's a designer", which to me is quite a different thing.
For the last time: I did not at any point say programmers are unnecessary, or that code is worthless. As an indie, I wear many different hats, and programming is one of them. But the point I do defend is that all things being equal, the IP is more valuable than the code that supports it. There are engines out there, both open and closed source that are already nipping at Doom3's heels, and they don't cost half a million dollars to license. I don't need the fruits of Carmack's work in order to create. But a great game does need more than great code.
Ricardo C
12-29-2004, 05:35 PM
I have read the license. The license states that anyone I sell my game to can make copies of my game and give them to anyone he wants. Or am I somehow misinterpreting this, direct from the GPL FAQ (http://www.fsf.org/licenses/gpl-faq.html#TOCDoesTheGPLRequireAvailabilityToPublic) :
How many copies do you think I will sell if anyone who buys one can give it to as many people as he wants, or even just post it on a website for anyone to download?
As I understand it, the license covers the part of the product explicitly put under the GPL. If I take id's Quake engine and modify it, then I'm obligated to make the source to my modifed engine available under the GPL. But if the game itself is built from scratch and not based on the Quake game code (different from the engine code), my game code is mine to keep or release as I see fit.
RMS and his friends want it both ways. They claim that the GPL is business-friendly, while simultaneously making it impossible for anyone to make any actual money off the software. Why? Because they believe that making money off of software is immoral; RMS has said so many, many times. Well, in RMS' world, there are no computer games, because the only way you can justify the enormous cost of developing one is by selling the finished product.
The GPL is working just fine for more than a few devs out there. Myself, I'm just waiting for id to open source the Quake III engine.
And dammit, now this thread is completely off-track. All I wanted was a software 3D API, dammit!
Sorry :o I would try to help, but your requirement that it be software-based really leave me drawing a blank.
luggage
12-29-2004, 05:52 PM
You appear to have missed the point slightly.
I said from the start that IP is the most important thing of value in a game. You got mixed up between IP and content. The IP for Harry Potter is worth much, much more than all of the art content for the Harry Potter games.
Not once have I said that you think code is worthless. I just raised a question regarding your statement that game content is of more value than any other part. I'm not arguing that code is worth more, I'm arguing they're both as equally as valuable.
As I've said the entire game is what the consumer finds value in - you can't simply talk about removing one thing or the other - it doesn't work. You seem to think that code is replaceable but it's not as easy as that. You can talk about using one engine or another but the 3d engine isn't what just makes a game.
Even if you could take the source code to a game, then switch all of the art and sell that on (as a PS2 developer is doing to a racing engine I had a hand in) - all that means is there's a heck of a lot of value in that static codebase. In this situation you're saying there's not much value in the code. I say there's a lot of value in being able to use the same set of code again and again and again to make money.
luggage
12-29-2004, 05:58 PM
Secondly, I didn't say 90% of game developers are bad designers. You said "everyone's a designer", which to me is quite a different thing.
Show me someone who thinks he can make a computer game, and in 90% of the cases, we'll be looking at the kind of guy that makes this type of game.
Those are both your quotes, I took a look at the guys page and he seems to have several games on his site and it does indeed look like he can call himself a game developer.
You haven't said 90% of the general public there - you've said 90% and used a game developer as your example. It's not unfair to presume you're saying 90% of game developers no?
Ricardo C
12-29-2004, 06:24 PM
You appear to have missed the point slightly.
I said from the start that IP is the most important thing of value in a game. You got mixed up between IP and content. The IP for Harry Potter is worth much, much more than all of the art content for the Harry Potter games.
Not once have I said that you think code is worthless. I just raised a question regarding your statement that game content is of more value than any other part. I'm not arguing that code is worth more, I'm arguing they're both as equally as valuable.
Not in the marketplace, which, to bring this all back to the beginning, is why people who choose to go open source, release ther code, but retain their rights to the IP and pertaining assets. Not because programmers are "uncreative cog-wheels" as Badman accused me of saying earlier, but because non-developers don't buy code, they buy games.
As I've said the entire game is what the consumer finds value in - you can't simply talk about removing one thing or the other - it doesn't work. You seem to think that code is replaceable but it's not as easy as that. You can talk about using one engine or another but the 3d engine isn't what just makes a game.
But what is the game? Are games tied to their engines? Could Half-Life 2 not be built on the Quake III engine? My point was that if I have the IP (which just so there is no confusion, I'm using to imply the game design, including not only gameplay, but also story, characters, etc.), gaining access to the technology to bring the design to life is quite literally, a snap.
Even if you could take the source code to a game, then switch all of the art and sell that on (as a PS2 developer is doing to a racing engine I had a hand in) - all that means is there's a heck of a lot of value in that static codebase. In this situation you're saying there's not much value in the code. I say there's a lot of value in being able to use the same set of code again and again and again to make money.
No, I'm saying that code is not valuable to the end user. Code is worth a lot to the developer, but the people who buy our games couldn't care less how we brought the games to them, only that they entertain them enough to make them part with their money.
Those are both your quotes, I took a look at the guys page and he seems to have several games on his site and it does indeed look like he can call himself a game developer.
You haven't said 90% of the general public there - you've said 90% and used a game developer as your example. It's not unfair to presume you're saying 90% of game developers no?
You're right, I distorted your original post (unintentionally). Still, while I'm certainly dropping the 90% figure, I do maintain that the majority of would-be designers are not good at it.
As for the ArcadeStudio link I posted... Did you play the games, or merely looked them over? My apologies if the developer is with us here, but those are prime examples of someone with enough skills to program a game, but no creativity to speak of, let alone the skill to design a good game.
Applewood
12-29-2004, 07:05 PM
Isn't software rendered really slow
Depends on your target audience and your code skills.
As a guide, I'm presently porting my admittedly highly-optimised DX 3D engine into a separate build that does all the geometry by hand, then prelights the vertices using proper ray-tracing (1 or 2 reflections for now), then draws this prelit geom using acceleration.
I'm expecting this to just raz along tbh, but it depends on how much time you want to spend writing optimised stuff, even when that means restructuring something fundamental like the vertex struct just to drop a cycle or two.
After I complete this, I'm gonna plug in a s/w triangle drawer (or which there are many on the net to get started with) and ray-trace each pixel. If I can get that to do more than a frame a minute, I'll optimise that out (into span rendering with all the trimmings) too and see how complex a scene I can render on a totally bitchin' pc. My dream is about the complexity of doom 1 but fully ray-traced.
Hell, it beats working for a living! :)
James C. Smith
12-29-2004, 10:17 PM
If you are going to do real time 3D rendering then I would suggest using 3D hardware acceleration. Any time someone suggesting using 3D acceleration to speed up a 2D game I am the first one to point out that software is more reliable. But if you are actually doing 3D, you should let the hardware to do work. OpenGL is more cross platform and generally considered more programmer friendly. But if you want to target as many Windows PC as possible, I would use Direct3D 7 or 8. Not enough computers gave OpenGL or DirectX9 unless you are targeting hardcore gamers. ID and Valve can get away with using GL and DX9, but downloadable game developers would be better off sticking to older versions of D3D.
vBulletin v3.6.0, Copyright ©2000-2008, Jelsoft Enterprises Ltd.