HLSL (Pixel Shaders) Should I just walk away?

Started by
16 comments, last by Hodgman 11 years, 6 months ago
Thanks for the info chaps cheers ;)

Burnhard I know you say you aren't hot on maths yet but do you have another area of speciality?
Advertisement
Sure, I'm good with GUI's. That's my area. Happy days for me are other programmers with bigger foreheads giving me a good windowing/gui system and then for me to go off and design and build widgets/behaviours/paradigms for user interaction. Don't get me wrong, I love doing 3D graphics, but compared to other people (I hate to hero worship, but the Flavien guy doing Infinity is pretty amazing) I don't have the clock cycles in my frontal lobes to really succeed at it.

As it happens I'm actually pretty good with the maths I've got quite a good theoretical background and I'm studying for another degree this time only in maths. Perhaps if you get stuck with anything or if you just want some insight into an area you're grey on right now you could pm me ;)

Afterall I might need help with GUI's at some point.
I don't hold back when it comes to asking questions, no-matter how dumb they may be :p.
Ask away ;o)

On the whole though, I find graphics programming difficult, shaders or not. The reasons for this difficulty are (1) not good enough maths skill [something I'm correcting with some courses] and (2) sending numbers into a black box and then having to use sometimes inadequate debugging tools to find out whether what I sent in, or how I configured the black box was correct. This is notwithstanding the differences between graphics hardware (pre DX10) where some things you try work and some don't!
If you don't get it right away, it's just because it's difficult tongue.png.



I would be in the same boat if I started using Shader scripts (my learning curve).

Doesnt someone out there have the old style effect editor that allows you to test effects immeiately (wizard interface) and then kicks out the shader scripts needed to run the same effect (even simple ones)??? I remember they had them to test settings of the fixed function pipeline long ago.

That at least would generate examples that could help learn manual script generation.

I would be looking at doing collision IN the GPU which would liklely be beyond any 'effect eitor App' , but since I largely stayed away from that programming area anything even to get the process of using shader scripts would help flatten the learning curve. It would eventually lead to looking online for more exact examples, but you have to understand the basics of the script structures/process first and its better to have actually run simpler examples than just read about them
--------------------------------------------[size="1"]Ratings are Opinion, not Fact
Not Using Shaders
-------------------------------------------------
Pros:

  • Less work to do
  • Don't have to learn anything
  • Won't have shader errors
  • Your game won't have to slow down to compile them, ever

Cons:

  • You can't actually get anything on the screen... lol

You have to use shaders... The only other option is a fixed-function pipeline, but the FFP was discontinued after DirectX9... DirectX9 is an ancient dinosaur from the prehistoric age (circa 2002 B.D.X.10. lol), and it would be stupid to go to DirectX9 so you can use the even more ancient FFP... so don't even consider doing that, just let D3D9 die in peace. This being said how did you program games for many years and learn all these other things without ever writing a shader? It seems impossible lol... If you did somehow manage to get that far without shaders I am totally amazed. Even the most basic DirectX tutorial series and books teach basic shaders very early on because it's required knowledge to do just about anything in modern graphics programming (with a few notable exceptions... e.g., Nintendo Wii).

Anyway, shaders are amazing. And once you get familiar with them you will love em. Shaders give you complete control over how things are rendered in several stages. DirectX10, for example, gives you control over the vertex, geometry and pixel processing stages. DirectX11 has all of these and also gives you compute, domain and hull shader stages. You can just use very basic shading techniques if you like, but the capability is there to do beautiful and amazing things that will take your breath away... everything from simulating realistic water surfaces to GPU-accelerated physics to smoke, fire and explosions. What you can do with shaders is limited only by your imagination and the hardware its running on. All of these things you're worried about are complete non-issues... If compiling shaders at runtime is too slow for your game then just pre-compile them... Shaders are NOT an "un-standardized mess"... HLSL is completely "standardized", as is GLSL for OpenGL. Graphics hardware and their capabilities are the only thing that's not "standardized" and uniform across the board, but that's not the fault of shaders or shader languages.

If you want to get anywhere in game developing for any purpose, be it hobby or commercial, then you're going to have to learn shaders. Otherwise I dunno how you plan on getting a single pixel to show up on the screen or doing anything expected of a video game in modern times. ;-)

As for WWII Online, I played that game for several years and was sorely disappointed... I think it's a very poor example to follow if you want to develop, and CRS is a poor example to follow for a company. At the time I was playing the game regularly I could understand the very poor graphics, but it's been years since then and their graphics are STILL bad... almost exactly as bad as they were 4yrs ago... There's little excuse for that, imo... But hey, graphics aren't everything, right? Well, their physics are also terrible...particularly the flight models. As someone who's VERY into aviation (loved flying since I was a kid) and flight simulations it was one of the most disappointing things about the game. One of the worst things about the whole game, imo, is how they try to "balance" the Axis and Allied sides and still call it a "simulation". In war there is no "balance" except the other guy shooting at you, and there should be no notion of "balancing" equipment performance in a simulation. Tank combat is very quirky and full of utter ridiculousness... small Allied guns can sometimes plink a German Tiger a couple times, FRONT ON, and set it ablaze...which is absolute fiction. Infantry combat was always very boring and full of its own problems... the controls are very "static" and old school, you really cant do much more than run/walk/shoot/reload (no dropping weapons, picking up new ones, etc)... they didn't even bother to implement real small arms ballistic physics (they just use range table data and calculate a path, afaik)... About 95% of the time you're playing the game you're bored because you never see enemies. And the reason you never see enemies is because not enough people play. And the reason not enough people play is because A) the graphics suck B) it's not very realistic C) they don't update/fix things in any reasonable amount of time.

One of the main reasons I say CRS is a bad example to follow as a company is all because of their lead programmer (that guy, DOC). He goes on the forums and will actually sit there are argue with players, belittle them and try to make them feel stupid; especially if they suggest changes/upgrades for the game or criticize something that's wrong with it. Those are their CUSTOMERS... a game development company should NEVER try to make a customer feel stupid or try to make them look stupid in front of other people on the forums. If I was the CEO of CRS he would be the first person I fired simply because of that, and I would fire anyone else who did it and also get rid of all their forum moderators who engage in the same behavior. That sort of crap has chased off a good many players from whom the game could have benefited greatly (if anything in numbers lol). The other reason I say they make a bad example is, well... look at how outdated their software is. It has changed very little in, say, a decade... There are much smaller companies and indy developers spitting out vastly superior (complete) products faster than they fix a bug or do a minor update/patch. Don't go on the forums and bring that up though, because you will get attacked by DOC or someone else. They'll make a huge wall-o-text post full of excuses about why the game can't be fixed that makes absolutely no sense. I remember one time, for example, we were discussing the possibility of allowing pilots to bailout of their planes and parachute to safety (I think the game has that feature now but didn't at the time). DOC chimed in and said it was impossible to add that to the game. When asked why he said, to paraphrase, "We thought about doing that but we didnt... so the engine doesn't have that feature, so we cannot do it." I was like wtf, seriously? Bailing out of a plane is a game feature, not an engine feature. I know 12-year-old kids who I could give a 3D model of a plane and a pilot who could code a demo of that feature in all but 30 minutes... That's an example of treating players (paying customers) like they're stupid by assuming they're too stupid to see through your lie... Things like that constantly ticked me off until I just couldn't even stomach the game anymore... If I want to play a real combat flight sim and enjoy some actual realism in physics and aircraft performance I fire up IL-2: Cliffs of Dover. If I want a realistic infantry combat experience I fire up ArmA II...

If you're interested in WWII simulations and the prospect of coding them then shoot me a pm. I could help you greatly. For one thing, I have quite a few 3D models I might not mind sharing... everything from a complete, animated Bf-109F4 to a German infantry helmet. I also used to be a very active IL-2 Sturmovik 1946 modder who coded flight models, and have extensive knowledge of flight physics. I'm also a "gun nut" and I collect historical firearms...have lots of reference images, historical data and personal knowledge of how the real weapons operate. And more... My team is currently working on a new engine, but we have a WWII-themed project planned for the future. We have not started development, but we intend to get to it in the next couple of years. It will be yet another highly ambitious project, lol, but we handle that sort pretty well. :-)

Regards,

--ATC--
_______________________________________________________________________________
CEO & Lead Developer at ATCWARE™
"Project X-1"; a 100% managed, platform-agnostic game & simulation engine

Please visit our new forums and help us test them and break the ice!
___________________________________________________________________________________
N.B. last post before today was 22 June 2010.
Try and avoid thread necroing.

This topic is closed to new replies.

Advertisement