AndyPandyV2

Members
  • Content count

    139
  • Joined

  • Last visited

Community Reputation

298 Neutral

About AndyPandyV2

  • Rank
    Member
  1.  Well I figured it out..  and it did give a significant speed up which surprised me.   Rearrange the VS output like so. Moving the SV_POSITION value to the last location.   struct VS_OUTPUT_SIMPLE{     float3 Normal     : NORMAL;          float4 Color : TEXCOORD0;     float4 Position   : SV_POSITION;  };   And using this as PS input.   PS_INPUT_SIMPLE{     float3 Normal      : NORMAL;           float4 Color : TEXCOORD0; };   I had assumed the order wasn't relevant because it is being bound to NORMAL/TEXCOORD0 etc, but it appears that it is.
  2. From this PDF of performance tips by AMD:   http://amd-dev.wpengine.netdna-cdn.com/wordpress/media/2013/05/GCNPerformanceTweets.pdf      This statement isn't making much sense to me based on testing this in a VX/PS combo.   Take this VS output.   struct VS_OUTPUT_SIMPLE{     float4 Position   : SV_POSITION;      float3 Normal     : NORMAL;          float4 Color : TEXCOORD0; };   If I write these in the VS, and create a PS like so   Output PixelShader(VS_OUTPUT_SIMPLE In){}   The AMD statement would lead me to believe I can create an alternate struct that lacks SV_Position, and use that as input to the PS.   PS_INPUT_SIMPLE{     float3 Normal      : NORMAL;           float4 Color : TEXCOORD0; };   Output PixelShader(PS_INPUT_SIMPLE In){}   But this does not compile   It fails with this error.   Stage linkage warning: Semantic NORMAL has been placed in different registers in the two stages.   (which is what I'd expect, aside from this mysterious AMD statement).   Anyone grok what AMD is saying here?
  3. “When these shared pointers get assigned to either default constructor or NULL, they allocate a reference counter and then free it when scope ends since they are just temporaries.”   Not true, they allocate nothing until used  Whatever broken implementation you had might have done this, but it is not how it is supposed to work.     Though I agree that in general to avoid shared_ptr, or use as a a last resort, the vast majority of the type value semantics or unique_ptr are the right choose.      I would avoid std::vector for similar “not made for games” reasons.   Also not true. A legitimate complaint against vector was that in C++03 its allocator model was stateless, which frankly sucked.  This is fixed in C++11, stateful allocators are fully supported, and there is no reason at all not to use vector.
  4. EPA Declares Wind Turbines Illegal

     The giant spinning blades are really loud, when I hiked through SoCal on the PCT they were everywhere and sounded like trains.  I can only imagine how disruptive to wildlife they must be..
  5. VS2013 always online requirements?

     I only have the release candidate (2013 RC), but it works fine for me offline.
  6.  I don't think C++ is going anywhere any time soon.  There is no practical replacement for it.  Also the C++ committee has recently become very active; C++11 was a large improvement, making C++ feel almost modern, and C++14/17 will be out soon enough.     Which language you should learn for game development depends entirely on what type of games you wish to make. If you don't mind being stuck in Unity land, C# it is.     You say you want to "become serious in game dev". Serious to me means knowing C++.    Languages like C#/Java/Javascript/Python are fairly brain dead and don't require much effort to learn, so learning them once you know C++ isn't difficult.   Alternatively Languages like Haskell/Lisp are a tad bit more interesting, and I think an understanding of functional programming will get you farther than just tacking on junk language X.
  7. Just how complex are AAA games?

     I found Bullets code pretty easy to read, it is fairly basic C++.   Most AAA game engine code is garbage.  Hacked together under deadlines and generally using outdated or overly simplistic standards.     Lots of people would love a better C++, but there isn't one yet.  Go = garbage. D = not ready.  Haskell = not ready.    snacktime - what language would google be dumping C++ for?     Also Rob there is no reason to be using an old compiler like 2005, grab 2013 RC, it is free, has at least moderate C++11 support, a better/faster IDE, and of course produces much more optimal code(especially when dealing with SSE, where older compilers like 2005/2008/2010 were utter trash).
  8. Physics with a huge scene

    Bullet does apparently build in double precision mode, you could try that.
  9. I'd be nice if it doesn't tie you to using OpenGL, alot of the current cross platform windowing solutions seem to force OpenGL upon you.
  10. Pitfalls to VS2010?

    I don't use the VS help system so I didn't notice anything with that-- I've found VS2010 to be a huge upgrade from 2008. -All the windows can be dragged outside the main window, nice for multiple monitors -New 0x language features like lambda's, R value ref's, auto etc ..also additions to standard library such as unique_ptr. Makes C++ feel far less clunky. Of course you need VAX, but you have always needed VAX anyway The managed side also has new stuff like dynamic keyword in C#
  11. World Cup 2010

    I thought that spain game was pretty boring to watch(first time I've seen spain), hope the final isn't like that..
  12. [C++] Tree class

    hash_map is called unordered_map and can be found in std::tr1 namespace(comes with VS2010 and is optional download for VS2008). #include <unordered_map> Interface is just like map
  13. gcc vs. VC++ code optimization

    Are you using VS2010 or VS2008? If using 2010 then _ITERATOR_DEBUG_LEVEL=0 should enabled by default in release, but if in 2008 then you need to add _SCL_SECURE = 0 or all STL functions will have extra bounds checking(even in release mode). Though given that you are using very recent versions of GCC, it would probably be more accurate to compare against the most recent version of MSVC-- so VS2010. One flag you appear to be missing is /arch:SSE2, I also don't see your inline flag? It should be /Ob2 Also /Oy is more optimal than /Oy- You didn't post linker settings, but just make sure these are enabled: /LTCG /OPT:REF /OPT:ICF
  14. C4 Game Engine

    The old C4 demo worked correctly for me, but this new one seems to suffer from a few problems(at least on my i7/nv 260). -everything besides the terrain is black(I suppose this might be intentional, programmer art?), the mobs, the graves, the trees, and the wall things are all black -when i press escape in game it brings up a menu with unreadable font(had to guess which one was the quit button)
  15. Since it sounds like you are just attempting to preallocate a large # of contiguous 'GameObjects', I'd suggest boost pool with the desired # passed to the pool in the constructor. -can safety grow without pointers becoming invalid -contiguous memory just like the array or vector(as long as you don't exceed your preallocation size--and even then it just becomes 2 separate contiguous chunks) -if using object_pool can also use constructors/destructors But if you are really loving the array, try std::tr1::array or boost::array.