Do you really need shaders?
by Ryan Armstrong · in General Discussion · 11/19/2002 (1:12 am) · 40 replies
Ok I am just posting this in response to all of the people out there who seem to need shaders, DOT3, Melv's great fxFannyPack etc and post a lot about this rather then just focusing on making their game now, and worrying about competing with Unreal 2 and DOom 3 later.
Download this movie, it's all taken from Tribes 2 (you know, that little game that used the same engine as Torque) and then tell me that you can;t make a sweet awe-inspiring game with just some good old fashioned hard work, and excellent artwork. No shaders or bumpmapping here folks, just a great game at it's best:
Great Tribes 2 Movie
Download this movie, it's all taken from Tribes 2 (you know, that little game that used the same engine as Torque) and then tell me that you can;t make a sweet awe-inspiring game with just some good old fashioned hard work, and excellent artwork. No shaders or bumpmapping here folks, just a great game at it's best:
Great Tribes 2 Movie
About the author
#2
Alright... so I am annoyed...
It's not like DOT3 bump mapping is some friggin' deep dark secret requiring much thought and research...
If you want DOT3 just go and grab some freaking source code...
www.opengl.org
www.nvidia.com
If you are all hot and bothered about Quake III styled shaders... throw some together... I remember seeing an almost full implementation of the Quake III shader spec in an Open Source Q3 BSP renderer... in a single not so big source file...
If you want vertex/pixel shaders... maybe think again... if you still decide you want (not need) them... see the web sites above...
If you do a really bang up job... consider releasing your work as a resource... or not... but my god... get on with it already...
-J
11/19/2002 (1:43 am)
[EDIT] This isn't directed at you Tim ... Alright... so I am annoyed...
It's not like DOT3 bump mapping is some friggin' deep dark secret requiring much thought and research...
If you want DOT3 just go and grab some freaking source code...
www.opengl.org
www.nvidia.com
If you are all hot and bothered about Quake III styled shaders... throw some together... I remember seeing an almost full implementation of the Quake III shader spec in an Open Source Q3 BSP renderer... in a single not so big source file...
If you want vertex/pixel shaders... maybe think again... if you still decide you want (not need) them... see the web sites above...
If you do a really bang up job... consider releasing your work as a resource... or not... but my god... get on with it already...
-J
#3
For the amount of time and energy people have spent complaining, they could have already implemented whatever they are complaining about themselves. (And in fact some have)
That being the case, this discussion is pointless. Some people like to complain, end of story. If it pains you so much, instead of getting Torque just buy 20 happy meals.
11/19/2002 (2:21 am)
The following statement is undeniably true:For the amount of time and energy people have spent complaining, they could have already implemented whatever they are complaining about themselves. (And in fact some have)
That being the case, this discussion is pointless. Some people like to complain, end of story. If it pains you so much, instead of getting Torque just buy 20 happy meals.
#4
I certainly hope they will still be releasing that code! Whether it's easy or hard, it's not been made a resource by anyone either way--and that is alot easier on other programmers. :)
--Eric
11/19/2002 (3:32 am)
I think you are all saying the same thing: that a great game can be made without the extra toys. I believe Ryan was trying to downplay the need for them, even though his team is working on them.I certainly hope they will still be releasing that code! Whether it's easy or hard, it's not been made a resource by anyone either way--and that is alot easier on other programmers. :)
--Eric
#5
To sum up my sob sob story, its always nice for a little help now and then.
11/19/2002 (4:42 am)
I understand you James, but unforunatly some of us like myself lack the knowledge to code the engine, sure I can make a mod and models and such and end up with a great game. If the engine was easy to add to then there would be multiple resources on adding dot3, shaders and cg wrappers but there isnt. Some may say I'm a fool for buying Torque since I dont know C++, but let me be the judge of that. I am learning and understanding it and I know it will take time but it sadens me to know that when Im done learning the engine some of the other teams will have advanced 50 fold over my project though thats something I have to live with.To sum up my sob sob story, its always nice for a little help now and then.
#6
For me, DOT3 bumpmapping is an interesting subject - it's not key to my game, and someone else is already handling implementation, so I'll wait until Ryan's group gets it done. I've got a lot of other stuff I'd rather work on (I keep contemplating terrain, and better editors) that I feel my time would be more valuable on.
But I totally agree with the concept of the amount of energy spent on complaining about the lack of features could have already resulted in multiple-implementations of those features. All you have to do is dig in - when you run into something that you just can't get after looking at it for a few days, come back and ask in the SDK forums - there's more than one person there interesting in the subject, so, there's more than one person who might have an opinion on your problem. Same goes for just about any other feature you want to put into Torque.
You don't have to know a heck of a lot going in - look through the resources. There's a couple to help ya' learn C++ if need be. There's stuff that helps explain how parts of the system all comes together (ok, I'll admin it - the networking layer is a bit of a mystery to me still. I haven't spent enough time researchin' it :-)
11/19/2002 (8:39 am)
Sam: Use the engine to learn. It's a great resource for that. Not because it's heavily documented (it isn't - *grumble* ;-) but because there are so many resources that teach about parts of the engine.For me, DOT3 bumpmapping is an interesting subject - it's not key to my game, and someone else is already handling implementation, so I'll wait until Ryan's group gets it done. I've got a lot of other stuff I'd rather work on (I keep contemplating terrain, and better editors) that I feel my time would be more valuable on.
But I totally agree with the concept of the amount of energy spent on complaining about the lack of features could have already resulted in multiple-implementations of those features. All you have to do is dig in - when you run into something that you just can't get after looking at it for a few days, come back and ask in the SDK forums - there's more than one person there interesting in the subject, so, there's more than one person who might have an opinion on your problem. Same goes for just about any other feature you want to put into Torque.
You don't have to know a heck of a lot going in - look through the resources. There's a couple to help ya' learn C++ if need be. There's stuff that helps explain how parts of the system all comes together (ok, I'll admin it - the networking layer is a bit of a mystery to me still. I haven't spent enough time researchin' it :-)
#7
Team B decides they would like to do advanced AI.
Team C decides they are adding pathed interiors, elevators, and working doors.
Each of the teams realise that they could use something another team is working on, but sticks with their individual tasks of completing what they signed up for. After reading the comments above, each team decides "screw it, I'll do the feature the other team is working on, and since that's the attitude, I'm not releasing the feature I'm working on." Hence the wheel gets reinvented over and over and over, blah blah blah.
Doesn't fit engineering logic, doesn't fit "community" logic.
11/19/2002 (8:46 am)
Team A decides they would like to implement DOT3. So they do.Team B decides they would like to do advanced AI.
Team C decides they are adding pathed interiors, elevators, and working doors.
Each of the teams realise that they could use something another team is working on, but sticks with their individual tasks of completing what they signed up for. After reading the comments above, each team decides "screw it, I'll do the feature the other team is working on, and since that's the attitude, I'm not releasing the feature I'm working on." Hence the wheel gets reinvented over and over and over, blah blah blah.
Doesn't fit engineering logic, doesn't fit "community" logic.
#8
For instance, Team A writes DOT3 bumpmaping. Team B looks at Team A's implementation, and decides it sucks - it only works with terrain, etc., and does it from scratch. That's one scenario - just because someone releases a resource, dosn't mean it works for everone, or even that it's of the greatest quality.
And not everything about Torque is about collaboration, IMHO - there's already a couple o' teams that aren't as interested in sharing thier toys as others already. That's just fine - the license allows for it, and I don't think there SHOULD be a problem within the community about it. It's part of the edge factor - sometimes, when it's about the graphics, I could see someone tryin' to get and keep and edge on other teams for a while. In that case, Team A could be developing an in-house implementation, while Team B releases a community implementation.
And keep in mind - some people are no longer as interested in releasing thier cool new toys because of the amount of work that goes into them. No, not into programing them, but, into creating the resources, making sure it's well documented, and providing some support for the subject when someone has a problem. So Team A may not release thier work simply because they don't have time - in which case, of Team B wants it, they better get crackin'!
But I also don't completely disagree with you - while the IGC motto of "World Domination Through Collaboration" is meant as a joke, there's still lots of power to be had by everyone leveraging everyone else's efforts. In that case, Team B talks to Team A, and finds out if they need any help. See some of the work getting started at the TEP to see that starting to happen, and it's happened here on the GG boards too.
But that wasn't the original subject or point here - it was the fact that if people want to complain about something so much, they can provide it themselves for the same amount of energy they spent in the forums ;-) If people don't want to look around and see what people are looking towards contributing, and would much rather complain about what they want in the engine... well, you see the problem. It isn't helping the teams or singular people who are implementing cool new toys. It's just agrivating the hell out of them instead. People should be asking questions like "Need any help?" after they look through the forums, instead of saying "Torque needs this... everyone else has it." (Even if it's not true ;-) The former assists in getting results that people want. The later doesn't get results.
----- EDIT -----
Ever miss the point of someone's post? I just did... sorry Madcap - I missed your meaning, and for some reason AFTER posting, read it again. Sheesh.
I see what you are meaning - but - unless someone intends to be the overall manager of these independant projects, there will always be independant teams working on implementing different stuff. There's nothing too wrong with that - only what GG wants (the overall maintaner) ends up in the TorqueHEAD, so there's at least some consistency. The rest of it - well, projects like TEP might help, but, who knows.
I want to implement new editors, for instance, so my first job wasn't to go out and hack up a new interior editor. Instead, since I know there's going to be all sorts of hackery go on, I'm starting by looking at frameworks that make it simple for the next person who's commiting hackery to build off of, and everything stay consistent. But who knows... ;-)
11/19/2002 (9:05 am)
Duplication of efforts isn't nessisarily a good or bad thing.For instance, Team A writes DOT3 bumpmaping. Team B looks at Team A's implementation, and decides it sucks - it only works with terrain, etc., and does it from scratch. That's one scenario - just because someone releases a resource, dosn't mean it works for everone, or even that it's of the greatest quality.
And not everything about Torque is about collaboration, IMHO - there's already a couple o' teams that aren't as interested in sharing thier toys as others already. That's just fine - the license allows for it, and I don't think there SHOULD be a problem within the community about it. It's part of the edge factor - sometimes, when it's about the graphics, I could see someone tryin' to get and keep and edge on other teams for a while. In that case, Team A could be developing an in-house implementation, while Team B releases a community implementation.
And keep in mind - some people are no longer as interested in releasing thier cool new toys because of the amount of work that goes into them. No, not into programing them, but, into creating the resources, making sure it's well documented, and providing some support for the subject when someone has a problem. So Team A may not release thier work simply because they don't have time - in which case, of Team B wants it, they better get crackin'!
But I also don't completely disagree with you - while the IGC motto of "World Domination Through Collaboration" is meant as a joke, there's still lots of power to be had by everyone leveraging everyone else's efforts. In that case, Team B talks to Team A, and finds out if they need any help. See some of the work getting started at the TEP to see that starting to happen, and it's happened here on the GG boards too.
But that wasn't the original subject or point here - it was the fact that if people want to complain about something so much, they can provide it themselves for the same amount of energy they spent in the forums ;-) If people don't want to look around and see what people are looking towards contributing, and would much rather complain about what they want in the engine... well, you see the problem. It isn't helping the teams or singular people who are implementing cool new toys. It's just agrivating the hell out of them instead. People should be asking questions like "Need any help?" after they look through the forums, instead of saying "Torque needs this... everyone else has it." (Even if it's not true ;-) The former assists in getting results that people want. The later doesn't get results.
----- EDIT -----
Ever miss the point of someone's post? I just did... sorry Madcap - I missed your meaning, and for some reason AFTER posting, read it again. Sheesh.
I see what you are meaning - but - unless someone intends to be the overall manager of these independant projects, there will always be independant teams working on implementing different stuff. There's nothing too wrong with that - only what GG wants (the overall maintaner) ends up in the TorqueHEAD, so there's at least some consistency. The rest of it - well, projects like TEP might help, but, who knows.
I want to implement new editors, for instance, so my first job wasn't to go out and hack up a new interior editor. Instead, since I know there's going to be all sorts of hackery go on, I'm starting by looking at frameworks that make it simple for the next person who's commiting hackery to build off of, and everything stay consistent. But who knows... ;-)
#9
I agree 110% with this. I believe strongly in the GG philosophy. I also feel a strange loyalty to GG. I do not (yet) have a license for Torque. I'm assesing Qube myself. However, one of my teammates does. When I consider such a huge amount of effort that went into Torque, AND that it's only $100.00, AND that GG is providing such a launch pad for indie's all over, it would be disheartening to think that there are teams working on additions to the engine without giving a little back. The additions aren't going to make you money, the games are.
Anyway, it's ultimately up to the individual team. If we do go with Torque and not Qube, I will be getting a license and will be willing to help in any way that I can.
11/19/2002 (9:47 am)
Quote:It isn't helping the teams or singular people who are implementing cool new toys. It's just agrivating the hell out of them instead. People should be asking questions like "Need any help?"
I agree 110% with this. I believe strongly in the GG philosophy. I also feel a strange loyalty to GG. I do not (yet) have a license for Torque. I'm assesing Qube myself. However, one of my teammates does. When I consider such a huge amount of effort that went into Torque, AND that it's only $100.00, AND that GG is providing such a launch pad for indie's all over, it would be disheartening to think that there are teams working on additions to the engine without giving a little back. The additions aren't going to make you money, the games are.
Anyway, it's ultimately up to the individual team. If we do go with Torque and not Qube, I will be getting a license and will be willing to help in any way that I can.
#10
But I have to say there are some gamers who only want the best graphics. I was talking to someone about a game and how it was really well made. And all he says is thatit looked crap, so he didn't even try it.
There the people that many worry about. So i think if we can just get it to look pretty good just made using all the art work skills we have and code some great stuff in there, people will see it been ok, and by the time they play it they find it fun(hopefuly).
Bump-mapping, well it'll just make it look even better!
11/19/2002 (2:27 pm)
I think Torque can make a great game, with abit of hard work etc.But I have to say there are some gamers who only want the best graphics. I was talking to someone about a game and how it was really well made. And all he says is thatit looked crap, so he didn't even try it.
There the people that many worry about. So i think if we can just get it to look pretty good just made using all the art work skills we have and code some great stuff in there, people will see it been ok, and by the time they play it they find it fun(hopefuly).
Bump-mapping, well it'll just make it look even better!
#11
My response to the whole bump map thing is this... if you don't have the programming savvy on your team to get it into your engine, then just go the extra mile with your 2d artwork, i.e. textures and skins and achieve nearly the same effect.
If you build it... they will come.
11/19/2002 (2:50 pm)
When I walk into my local computer shop and I look at who is buying what I can see that there is a few people who are the kind of people who actually know what kind of sound card and graphics card they have. Most of the people I see and meet don't even know the first thing about the computer they are buying games for. If a game is fun they play it. If it's not then they wait a few weeks and go and buy another game and hope it's a good one.My response to the whole bump map thing is this... if you don't have the programming savvy on your team to get it into your engine, then just go the extra mile with your 2d artwork, i.e. textures and skins and achieve nearly the same effect.
If you build it... they will come.
#12
11/19/2002 (3:58 pm)
Amen, Robert. I agree completely, and I couldn't have said it better myself.
#13
As for what people have been saying here, yes, people should be saying how can I help, and work together to improve the Torque engine. That is why myself and Eric Forhan started the Torque Enhancement Project. Our goal is to get the coders of Torque organized so everyone knows who is working on what. If a coder needs help, there is a community to help him out. This way, if someone needs help, they can get it, the community knows who is working on what, and the code is shared with the community thus providing a closed testing service, so coders can test their code with other programmers and make sure its running as fast as it can with a few bugs as possible.
TEP has already gotten a large showing of support, but we intend to keep growing. YOu guys seem to have the right mindset, and seem to want such a community, well TEP is providing that. We need you guys to support us though.
TEP Community
Anyways to cap this whole topic off, my goal was to show that the current engine is perfectly capable of creating a breathtaking game. But the TA Team is still committed to releasing Cg support, DOT3, etc to the community. And finally, head over to TEP and join up. That is also the same place where the TA Team updates it's progress with all enhancements we are creating.
11/19/2002 (4:59 pm)
Wow, andI just posted this last night. Ok to answer Phil's question, yes the TA Team is till dedicated to releasing most of it's improvements, DOT3 included. THe point of this post was to get you guys to download and watch that movie, and see what some old fashioned good artwork can do for a game. Basically my point was that you can make a great looking game without all the bells and whistles that say Doom III has. That's all.As for what people have been saying here, yes, people should be saying how can I help, and work together to improve the Torque engine. That is why myself and Eric Forhan started the Torque Enhancement Project. Our goal is to get the coders of Torque organized so everyone knows who is working on what. If a coder needs help, there is a community to help him out. This way, if someone needs help, they can get it, the community knows who is working on what, and the code is shared with the community thus providing a closed testing service, so coders can test their code with other programmers and make sure its running as fast as it can with a few bugs as possible.
TEP has already gotten a large showing of support, but we intend to keep growing. YOu guys seem to have the right mindset, and seem to want such a community, well TEP is providing that. We need you guys to support us though.
TEP Community
Anyways to cap this whole topic off, my goal was to show that the current engine is perfectly capable of creating a breathtaking game. But the TA Team is still committed to releasing Cg support, DOT3, etc to the community. And finally, head over to TEP and join up. That is also the same place where the TA Team updates it's progress with all enhancements we are creating.
#14
Still I'm wondering if even that is necessary, and especially for some portions of the rendering I think its overkill (the Gui / menu system for example). Realistically you'd only need shaders for certain key points within the rendering chain, the rest can be created using simple things like just blending, alpha testing etc.
Now in my next engine I will do something like that.
11/19/2002 (6:54 pm)
Implementing shaders is not such a hard thing to do, or rather the way I did it in my thing the shaders are "surfaces" and basically describe how to render polygons with that surface.Still I'm wondering if even that is necessary, and especially for some portions of the rendering I think its overkill (the Gui / menu system for example). Realistically you'd only need shaders for certain key points within the rendering chain, the rest can be created using simple things like just blending, alpha testing etc.
Now in my next engine I will do something like that.
#15
I agree with most of you guys with the make your game initiative. I too grow tired of reading threads about how torques graphics arent on par with next gen engines.
IMO thats the reason those engines are priced the way they are. I also agree that graphics help make a game sell, but at the same time, I dont think shaders, and all the new buzz words people are throwing around are the things holding people back, I think it has more to do with artists tools, and the artists.
I have seen some really good looking stuff in TGE, its all been with out the things mentioned above. Make your game, this shader crap goes in last anyway....if you dont have good art...shaders arent going to make it look better anyway, garbage in -> garbage out.
~Myk
11/20/2002 (8:40 am)
I've downloaded that movie, and I have to say that It is a great movie indeed....and that guy is way too good with the disc launcher..I agree with most of you guys with the make your game initiative. I too grow tired of reading threads about how torques graphics arent on par with next gen engines.
IMO thats the reason those engines are priced the way they are. I also agree that graphics help make a game sell, but at the same time, I dont think shaders, and all the new buzz words people are throwing around are the things holding people back, I think it has more to do with artists tools, and the artists.
I have seen some really good looking stuff in TGE, its all been with out the things mentioned above. Make your game, this shader crap goes in last anyway....if you dont have good art...shaders arent going to make it look better anyway, garbage in -> garbage out.
~Myk
#16
We here at GG totally agree with you. The art pipeline in Torque could be much better, and would result in better games. We think that making games easier to make will result in more and better games. That is what we will be concentrating our efforts on.
Here is another point about shaders that I think everybody should consider. When shaders become one of the primary ways to handle materials, then you can forget about competing as an indie game. Why? Because instead of having your artist spend an hour to create a texture for your "teapot", you need to have a programmer spend three days with Cg to get the look you want.
Now multiply that expansion of effort for every shape or effect you want in your game. Can you afford this?
Jeff Tunnell GG
11/20/2002 (11:51 am)
Myk,We here at GG totally agree with you. The art pipeline in Torque could be much better, and would result in better games. We think that making games easier to make will result in more and better games. That is what we will be concentrating our efforts on.
Here is another point about shaders that I think everybody should consider. When shaders become one of the primary ways to handle materials, then you can forget about competing as an indie game. Why? Because instead of having your artist spend an hour to create a texture for your "teapot", you need to have a programmer spend three days with Cg to get the look you want.
Now multiply that expansion of effort for every shape or effect you want in your game. Can you afford this?
Jeff Tunnell GG
#17
Fact is I've learned more about graphic arts with computers since I started my project than I have combined in my whole life. Plus I got the bonus OPENGL kick in the butt forcing me to finally get out there and learn some GL. And of course I just had to set up and administer Apache, and PHP so that I could have some persistence and stuff. All this I have learned and more.
BEST 100 dollars I have ever spent. Thank you.
11/20/2002 (1:12 pm)
Jeff, I'm no GIMP expert but wait til I show you this slick black armor on my Joust model. The detail and bump mapping in the texture is shweet shweet. Aren't layers da dank!? I'll be sure to make a dev shot for GG when I have it just right ;)Fact is I've learned more about graphic arts with computers since I started my project than I have combined in my whole life. Plus I got the bonus OPENGL kick in the butt forcing me to finally get out there and learn some GL. And of course I just had to set up and administer Apache, and PHP so that I could have some persistence and stuff. All this I have learned and more.
BEST 100 dollars I have ever spent. Thank you.
#18
That is my point exactly (just stated a bit clearer then myself ;) ) Couldn't agree with you more.
@Jeff, from what my coder has been saying, working with Cg actually isn't all that bad. He has a lot of experience with graphics code, so that probably has a huge factor. But I agree, making a shader for a certain effect definitely takes a lot longer then doing something via a texture.
11/20/2002 (2:09 pm)
Myk,That is my point exactly (just stated a bit clearer then myself ;) ) Couldn't agree with you more.
@Jeff, from what my coder has been saying, working with Cg actually isn't all that bad. He has a lot of experience with graphics code, so that probably has a huge factor. But I agree, making a shader for a certain effect definitely takes a lot longer then doing something via a texture.
#19
11/20/2002 (4:56 pm)
On the other hand, the increasingly procedural nature of the graphics pipeline gives programmers more power to create artwork. In other words, I think programmer art is actually becoming more viable.
#20
The way I see it is that we'll have certain disciplines of dedicated artists in the future, but more than that we'll have a broad category or programmer-artists, those with the artistic skills and know how to create something that looks good, but with the technical expertise to perform decent scripting, such as with shaders, maybe also with other more involving products / languages.
From this other forum there was a post about this device that would scan a 3d object creating a 3d model on the computer with it, now the thought there is that even though this device allows to cut the 3d modeller's work by a large margin, the data still needs polishing, and it can only scan things in that already exist. What this would do is force the artists to move into different directions, and to try and experiment more with theoretical worlds and objects.
There was also heaps of talk about all this new middleware making programmers obsolete, but it hasn't happened, and it will not happen ever. This is because even if there is a large amount of middleware, there will still be programmers required to glue it together.
Anyways I got a bit off topic there, but to sum it all up I believe that the positions we now know in the industry will change, evolving and merging (like gaming genre's). So all those artists / 3d modellers / texture artists out there, I would suggest that you tinker with some graphics shader programming, well starting with quake3 is a good idea.
-Dom
11/20/2002 (6:27 pm)
I gues this is the evolution of the industry hard at work. Programmers were here originally, and then some artists joined on, and now the artists have to be trained in more technical aspects of game development.The way I see it is that we'll have certain disciplines of dedicated artists in the future, but more than that we'll have a broad category or programmer-artists, those with the artistic skills and know how to create something that looks good, but with the technical expertise to perform decent scripting, such as with shaders, maybe also with other more involving products / languages.
From this other forum there was a post about this device that would scan a 3d object creating a 3d model on the computer with it, now the thought there is that even though this device allows to cut the 3d modeller's work by a large margin, the data still needs polishing, and it can only scan things in that already exist. What this would do is force the artists to move into different directions, and to try and experiment more with theoretical worlds and objects.
There was also heaps of talk about all this new middleware making programmers obsolete, but it hasn't happened, and it will not happen ever. This is because even if there is a large amount of middleware, there will still be programmers required to glue it together.
Anyways I got a bit off topic there, but to sum it all up I believe that the positions we now know in the industry will change, evolving and merging (like gaming genre's). So all those artists / 3d modellers / texture artists out there, I would suggest that you tinker with some graphics shader programming, well starting with quake3 is a good idea.
-Dom
Associate Tim Newell
Max Gaming Technologies