Dummies for Programming or Programming for Dummies

Discussion in 'Console Industry' started by psorcerer, Dec 30, 2014.

  1. psorcerer

    Regular

    Joined:
    Aug 9, 2004
    Messages:
    605
    Likes Received:
    56
    Hence there are no shader constants. They are emulated, on CPU.

    Therefore the whole process of rendering something has no similarity to any DirectX one.
    But people still use shader constants today, on PS4.
    As usual: make hardware so simple that even an idiot can program one and only the idiots will program for your hardware.
     
    #1 psorcerer, Dec 30, 2014
    Last edited by a moderator: Dec 31, 2014
  2. Arwin

    Arwin Now Officially a Top 10 Poster
    Moderator Legend

    Joined:
    May 17, 2006
    Messages:
    17,723
    Likes Received:
    1,236
    Location:
    Maastricht, The Netherlands
    Maybe more fair would be to say 'more idiots' ... ;)
     
  3. function

    function None functional
    Legend Veteran

    Joined:
    Mar 27, 2003
    Messages:
    5,146
    Likes Received:
    2,262
    Location:
    Wrong thread
    U r hero
     
  4. psorcerer

    Regular

    Joined:
    Aug 9, 2004
    Messages:
    605
    Likes Received:
    56
    Just semantics. That's not the main point of my comment.
     
  5. Arwin

    Arwin Now Officially a Top 10 Poster
    Moderator Legend

    Joined:
    May 17, 2006
    Messages:
    17,723
    Likes Received:
    1,236
    Location:
    Maastricht, The Netherlands
    It's an important difference. You suggest the non-idiots steer clear of hardware that is easy to program.
     
  6. psorcerer

    Regular

    Joined:
    Aug 9, 2004
    Messages:
    605
    Likes Received:
    56
    That's off-topic, but yes, I suggest that.
    Usually great engineers do like challenges and run towards them and not from them.
    But I think I had that discussion previously here and we did not come to an agreement. So probably we can agree to disagree right now. :)
     
  7. Shifty Geezer

    Shifty Geezer uber-Troll!
    Moderator Legend

    Joined:
    Dec 7, 2004
    Messages:
    41,649
    Likes Received:
    12,657
    Location:
    Under my bridge
    Smart people find the easiest way to solve a problem, by and large. That's what makes them smart. The only variation on that would be someone specifically looking for a challenge to exercise their smarts. eg. When trying to get out of a room, whose the smart person - the one who creates an intricate MacGyver contraption to blow a hole through the wall, or the one who uses the door? It comes down to perspective; both are smart in different ways. I'd say its disingenuous to claim the person using the path of least recent is stupid though, no matter what perspective. And there are plenty enough seasoned developers saying they want away from difficult coding because it gets in the way of making games that you can insult a good part of this industry and its heritage by claiming as much.
     
  8. psorcerer

    Regular

    Joined:
    Aug 9, 2004
    Messages:
    605
    Likes Received:
    56
    Okay, you've started it. :)
    I think that graphics programmers are literally "looking for a challenge" all their lives. Otherwise they could just ray-trace on CPU and call it a day (or use 8-bit sprites, doesn't "get in the way of making games"). The whole point of modern graphics is to use various very strange contraptions and non-intuitive solutions to squeeze a little more performance from the GPU. And here comes the question: "what's better for performance: smarter hardware or smarter software?" (not talking about raw power, smart = more sophisticated), and in most modern cases smart software wins, just by virtue of giving the programmer much more control.
     
    Cjail likes this.
  9. Shifty Geezer

    Shifty Geezer uber-Troll!
    Moderator Legend

    Joined:
    Dec 7, 2004
    Messages:
    41,649
    Likes Received:
    12,657
    Location:
    Under my bridge
    You've reduced the problem too far. If the problem is 'put some graphics on screen' then yes, raytracing is the smartest, easiest option. However, the real problem is 'how to put suitably aesthetically pleasing graphics on screen at sufficient framerate to match the requirements of our gameplay?' With that problem, your raytracing solution fails because it can't achieve acceptable framerates (do minutes/hours per frame even count as framerates? ;)). So for 3D games, the solution is very often rasterisation, and often, to get the desired aesthetic (realism), some complicated cheats are needed. Sometimes that solution comes from a middleware engine, saving developers from having to reinvent the wheel time and time again. Indeed, there are so many smart developers out there that middleware is hugely popular catering to these smart developers need for a way to realise their game with the minimum effort.

    The type of smart that gets a graphics engine developer to pack bits into buffer formats and fine tune shaders and come up with clever maths to approximate too-costly rendering techniques is a particular flavour of smart. It's not the only type and people not smart in that way are not necessarily idiots.
     
    iroboto, shredenvain and HTupolev like this.
  10. psorcerer

    Regular

    Joined:
    Aug 9, 2004
    Messages:
    605
    Likes Received:
    56
    If your primary goal is gameplay, you can get away with simplistic graphics just fine. Use sprites, and you'll never go hungry again.

    I think it's a wishful thinking. If middlewre is very low level (see. ICE) then yes, it may save you some time. But usually when people talk middleware they mean UE or Unity. In that case middleware is just a way to burn quite a lot of money with zero result. Game performance is all about data transformation, good performance is not possible without having a lot of insight on what that data would be. Therefore "middleware" that is good for one game probably will perform bad in any other one, unless changed (if you have the source code, if not, you're in an even deeper shit) to suit specific data patterns (usually even different setting has quite a lot of impact, rendering cityscape has totally different set of trade-offs compared to swamp, or jungle). Therefore if you write your "engine" yourself, you get up to speed much faster than first studying the foreign engine code and then changing it to suit your game. And it looks like in 201x most developers did realize that simple thing finally and started using their own code and getting away from middleware.
    P.S. I think middlewares were popular in 2007 because everybody was scared of programming PS3, and that's about it.

    It depends how you define "idiot" I think people can be "idiots" in one area and "geniuses" in another. That's perfectly fine. I'm total imbecile in music (particularly music theory) and I admit that. I think it was self-evident that my "idiots" (in the first post) was related to GPU and graphics programming.
     
  11. Shifty Geezer

    Shifty Geezer uber-Troll!
    Moderator Legend

    Joined:
    Dec 7, 2004
    Messages:
    41,649
    Likes Received:
    12,657
    Location:
    Under my bridge
    But in most games, it's gameplay + aesthetic that's the target. And in AAA games, aesthetic quite probably trumps gameplay for many game. :p

    You seem to be talking only about big budget AAA console games. I point to Hearthstone developed by Blizzard (no strangers to creating their own engines) running on Unity.

    Apparently not, otherwise neither Arwin not myself would have replied. ;) But even then, graphics programmers aren't going to choose difficult just for the sake of being difficult. The developers Sony consulted all wanted easy, standard hardware.
     
    iroboto likes this.
  12. psorcerer

    Regular

    Joined:
    Aug 9, 2004
    Messages:
    605
    Likes Received:
    56
    I'm talking about games that need GPU power. Because if they don't, there is no need to use clever tricks.
    And clearly you can use Unity (or any other middleware) to help you.

    I was not talking about "difficult" I was talking about "smart". Yes, smarter hardware makes things less "difficult" (in some cases, and much more difficult in others) but my point was that smarter software works better than smarter hardware for game development in general. And it's also better from business point of view: you have better control and can fix problems in timely manner.
     
  13. Shifty Geezer

    Shifty Geezer uber-Troll!
    Moderator Legend

    Joined:
    Dec 7, 2004
    Messages:
    41,649
    Likes Received:
    12,657
    Location:
    Under my bridge
    Um, you weren't...

    The opposite of simple is difficult, or complicated. If you don't want simple hardware that attracts idiots, you want difficult/complicated hardware that keeps the riff-raff at bay.

    You reckon XBox with its shaders was worse for game development than PS2's extremely simply operating, and extremely difficult to use, brute-force rasteriser? Surely also the Holy Grail of rendering, the software renderer, is all about smart hardware that lets you run any code you want.

    I don't think any generalisation is valid. Smart hardware that lets you do something easily is just as valuable to game development as smart software design. And a lot of smart software is basically about working around the limits of the hardware which isn't smart enough to just do what you want it to without a lot of work. ;)
     
  14. psorcerer

    Regular

    Joined:
    Aug 9, 2004
    Messages:
    605
    Likes Received:
    56
    Thee is no such thing as "simple" in a modern world of massively parallel computations. Hardware that is "simple to work with" usually needs to be "smart" enough to hide the complexity from the programmer.

    Apples and oranges. Very different hardware, very different time-frame.

    Hardware has no limits. Hardware is the reality. It's just the reality, there is no other. If you think you can have better hardware: design one and everybody will be happy.
    The only choice that engineers should make is: do they live in that reality or they live in an imaginary world of fairies and rainbows (that hardware manufacturer, sometimes, tries to create for them).
    If you live in the reality you just "program the hardware" and if you "work around the limitations", I fear, that you're deep, deep in the imaginary world. :)
     
    Cjail likes this.
  15. function

    function None functional
    Legend Veteran

    Joined:
    Mar 27, 2003
    Messages:
    5,146
    Likes Received:
    2,262
    Location:
    Wrong thread
    Could God accidentally wish himself out of existence?

    I need 2 know.
     
    psorcerer likes this.
  16. BRiT

    BRiT (╯°□°)╯
    Moderator Legend Alpha

    Joined:
    Feb 7, 2002
    Messages:
    13,540
    Likes Received:
    10,433
    Location:
    Cleveland
    Not accidentally. God is infallible. Therefore, if God wished himself out of existence it would not be by accident.

    :twisted:
     
    Scott_Arm and Shifty Geezer like this.
  17. Arwin

    Arwin Now Officially a Top 10 Poster
    Moderator Legend

    Joined:
    May 17, 2006
    Messages:
    17,723
    Likes Received:
    1,236
    Location:
    Maastricht, The Netherlands
    How does a programmer who decides to use a CELL CPU's SPE for culling to get around a bottleneck in the RSX GPU fit into your world-view?

    Reminds me of one of the very few jokes I seem to be capable of remembering:

    A pastor is playing tennis with a nun. They are a good match for each other. At the end of the first set, the father hits just outside the court, and out comes a 'Goddammit I missed!'. He notices that the nun flushes red, and quickly apologises, saying he won't do it again. Right at the beginning of the next set though, he serves and hits the net twice, and out comes a 'god-fucking-damnit I missed again!'. As he puts the nun gets really angry, and the only way the father gets her to play on at all is by begging forgiveness and swearing that God may strike him should he swear again.

    And sure enough, he wins the set, and manages to get to a tie-break in the third set. But then he strikes out, and as he loses the game and out comes another 'god-dammit, I missed again!' ... lightning cracks the sky open, and hits the ... nun! And from above a deep booming voice says 'God-dammit, I missed again!'
     
    #17 Arwin, Dec 31, 2014
    Last edited: Dec 31, 2014
    BoardBonobo, Scott_Arm, NRP and 4 others like this.
  18. psorcerer

    Regular

    Joined:
    Aug 9, 2004
    Messages:
    605
    Likes Received:
    56
    BTW, about Unity + Hearthstone: http://us.battle.net/hearthstone/en/forum/topic/15690348947
    Just in case: Telltale Games engine has a much better performance on Android. Dunno why... :)
     
  19. psorcerer

    Regular

    Joined:
    Aug 9, 2004
    Messages:
    605
    Likes Received:
    56
    Fits perfectly. Why do you ask? :)
    Culling on SPU is perfectly fine, more than that, SPU was clearly designed to handle these tasks.
    If you want a case of bad design: compiler on PS3 (or X360 to even larger extent) inserting LHS randomly all over the code.
     
  20. Shifty Geezer

    Shifty Geezer uber-Troll!
    Moderator Legend

    Joined:
    Dec 7, 2004
    Messages:
    41,649
    Likes Received:
    12,657
    Location:
    Under my bridge
    Except there are many well-performing Unity titles on mobile, plus performance in iOS described in that same forum is reportedly good, hence it's clearly an issue of implementation, not of engine shortcomings. Furthermore, no-one was saying generic OTS middleware is able to match a custom engine, but middleware saves developers from pointless headaches reinventing the wheel. Saving yourself work is not dumb. But then, that wasn't supposedly your argument anyway, so I've no idea why you've raised one badly running Unity game on Android. Makes about as much sense as saying hardware has no limits...
     
Loading...

Share This Page

  • About Us

    Beyond3D has been around for over a decade and prides itself on being the best place on the web for in-depth, technically-driven discussion and analysis of 3D graphics hardware. If you love pixels and transistors, you've come to the right place!

    Beyond3D is proudly published by GPU Tools Ltd.
Loading...