What should I write about next?


I have a couple more articles planned about aliasing and motion blur, but am curious to hear where you would like me to take this blog next.

Some topics I am considering:

C++.  Dirty secret: although I’ve mostly blogged about C# programming, much of XNA itself is written in C++, so I’ve actually been straddling both worlds for years.  And interesting things are happening in C++ land right now, with the arrival of C++11 and maturity of the standard library affecting best practices and recommended style.  But are my readers interested in such things?  You tell me!

More about how GPU’s work.  Tiling, swizzling, caching, parallelism, predication, etc.

3D Math.  Vectors, matrices, what really is an orientation, how to think in multiple coordinate spaces, and why rotation angles are Teh Evil.

Game design.  What makes it fun?  What makes a good AI?  How does one persuade customers to try/buy your work?  I’ve been reluctant to cover these topics because it’s not really my area of expertise, but I do have some opinions about it so who knows, maybe a few worthwhile articles to be had here.

SIMD optimization, SSE, DirectXMath.

Other?


Comments (59)

  1. GGulati says:

    C++/C# interop at high performance rates is a topic I've always been somewhat curious about. I've managed what I've needed mostly through batching, but what techniques has XNA used to pull off phenomenal performance (just a few percentage points off DX9.0c)?

  2. Joshua Smyth says:

    Can you do SIMD in C# ?

    C# / C++ interop would be a good topic to cover

  3. David Amador says:

    C++, Math and GPU =)

  4. Ben says:

    Hmm, maybe all of them? 😉

  5. Ed says:

    Id like to read opinions about game design, focusing AI. I think its such a interesting topic to read about, if you please.

  6. Jasho says:

    All the topics you've mentioned seem interesting.

    If you want a vote, then I'd go for "3D Math" and "Game design".

  7. Ryan says:

    I second all of them, but if time is lacking then I would vote for C++, 3D Math, and the GPU.

  8. SC says:

    I'd love to see a series on "Modern C++ Style" for C# devs. I imagine there's a large segment of developers who know C++ but haven't been keeping track of the modern developments. I've seen a large number of articles on the *features* of C++11, but not the implications on coding style – particularly when interop-ing with COM outside of the WinFX world.

    Another interesting topic would be correctly reading input in games. Most solutions I've seen are polling based – which obviously creates issues when the frame rate starts to drop. A discussion of the options are available for mitigating these problems – ie/ whether it better to stay within XInput/DirectInput or drop down to window messaging for things such as keyboard input due to buffering and i18n concerns? Even modern high profile games seem to be susceptible to some extent.

  9. guest says:

    C++ issues.

  10. Catalin Zima-Zegreanu says:

    C++ stuff please! Metro apps are right around the corner, and some C++ best practices in game development would be really nice 🙂

  11. David Parrott says:

    3D Math, C++ and Game Design, particularly AI. 🙂

  12. Eclectus says:

    All the topics are interesting ones.

    C# and C++ interop would be ideal, within the context of Metro. In an ideal world I'd write 80% of my code in C#, 20% in C++. Not sure how much can be said about this (XNA in Metro) at this time, but there is no harm in asking 🙂

    Cheers

  13. I vote for game design 😀

  14. sergiy says:

    simd please.

  15. XZodia says:

    I'd really like to know more about C++11

  16. Paul Cunningham says:

    XNA 5.0 please 😉

  17. ShawnHargreaves says:

    > XNA 5.0 please 😉

    Not my team any more, sorry bro!

  18. AndrewD says:

    Game Design please! 🙂

  19. Matthew says:

    Of those topics I'd say more on how GPUs work, 3d math and the internals of XNA/Direct2D/etc. There are lots of people writing on the other topics, but you've got a unique position/view to write about these.

  20. Oh man, is all of the above an option?

  21. Ranieri says:

    I'm slightly partial to C++ and Game Design topics, but i'm really fine with all of those subjects.

  22. ShawnHargreaves says:

    > Oh man, is all of the above an option?

    Given sufficient time, probably, but a couple of these have been on my "maybe someday" topic list for years already so it all depends how patient you are 🙂

  23. Miguel Herrero says:

    I would like to know about tricks you've learned on games and your other project, those simple tricks that actually appear more complex than what they really are. I'm sure that, in the case of AIs, you've found that sometimes a simpler approach has better player response that more complex ones.

    I don't mind if it's a post about AI, Graphics or common programming, but I love those little useful code snippets 🙂

    It would also be nice to have some post about c++ best practices and c++11.

  24. Budoray says:

    Game design most certainly. Where is the famous ShawnMUD?

  25. Raymond says:

    3D Math and GPU would be my preference.

    If C++11, could you manage to throw in a little of your experience on the Windows 8 WinRT preview? Say, maybe a series of posts transferring one of the XNA education samples to Metro/DX11.1? It'd be a good way to cover new things you like in C++11 best while showing us how we might be leveraging it best in the years ahead.

  26. kassyi says:

    game design please

  27. Doug Graham says:

    3D Math and Game Design.

    This was a blog for game dev in XNA and those are probably the two main things I always found here that I was looking for.

  28. Michael says:

    How GPU's work!

  29. The Ignorant One says:

    How does MSAA work?

  30. ShawnHargreaves says:

    > How does MSAA work?

    I already did that one!

    blogs.msdn.com/…/multisampling.aspx

  31. Steve Hazen says:

    C++ please.

  32. MattPD says:

    This: "much of XNA itself is written in C++." It would be awesome if you could go through some of the design decisions, but also implementation details and useful tricks that were discovered when writing XNA and that aren't known to the broader world of C++ devs — I (and I think many others) would find this extremely interesting!

  33. Jedd Haberstro says:

    GPU inner workings + SIMD would be awesome!

  34. Caleb Vear says:

    I'm keen on some more 3D Math and how GPUs work.

  35. BakerCo says:

    Definately all of them 😀

  36. Veikko Eeva says:

    .NET performance and reach — and possible problems with floating points as defined in IEEE 754 — compared to C++ is an interesting topic, likewise just plain C++ or game construction and more abstract issues as you have blogged before (e.g. convolution). Maybe something even more elaborated than Alexandre Mutel's SharpDX measurements (code4k.blogspot.com/…/benchmarking-cnet-direct3d-11-apis-vs.html) for starters? 🙂

  37. Michael Hansen says:

    Please shawn

    tell us that you will be upgrade the xna framework to Directx 11 with smid/neon support for phones , tablets and pc

    so you at microsoft can keep the indie developer happy

    and we are allowed to sell our games on tablets, pc and future phones

    and when we all get our hands on the Nvidia version of windows tablets make shure that are support for nvidia hardware physics

    as thay have now on android and Iphone,ipad and the sony playstation suite tablet,vita,and phones

  38. Michael Hansen says:

    Please shawn take a look at unity

    indie dev and small firms have no trobble paying 1400 dollars for publishing on android and paying again 1400 dollars for publishing on apple platform and there are 350.000 developers and small firms that are doing this

    allso unityengine.dll is pure managed code , there are no native acess , on windows ,apple,android or the webbrowser

    mono has the native acesss , look at the games , so it all can be done

    we are living in a new world where we can publish our game and buy a devkit that simple just runs out of the box

    and dont forget the custom shaders

    best regards

    Michael

  39. Robert Scott says:

    I'm trying to get my head around component based entities.

  40. ShawnHargreaves says:

    > tell us that you will be upgrade the xna framework to [snip]

    Michael,

    I don't work on XNA any more, so you're talking to the wrong person about that.

    Also I'm not sure why I would want to write about Unity, since I have never used it!

  41. Michael Hansen says:

    i know that shawn unity was just an example of things

    rember for a few years ago we herd some rumors about a professional game platform

    can you make that for windows phone happen with out the xbox live stuff

    and please custom shaders for windows phone

    or better implant all the shader lib from qualcomm website it runs on all 1ghz phones

    pehaps that is the best choise for windows phone

  42. Binyamin Galinsky says:

    Game design please, and if you don't choose that, please give as some recommended resources.

  43. Sleepy Daddy Software says:

    I'll go with the group and say C++ on this one, though more along the lines of "how do I move my C#/xna code-base to C++/DirectX11.1/WinRT with the minimal amount of effort and maximum amount of reach". Though, I guess since you work on the phone team now that's perhaps a little off topic?

  44. Beringela says:

    Something I've been wondering about for a long time, is understanding the real low level hardware journey of how a texture goes from being in storage to being on screen.  XNA does a great job of abstracting this away, but I'd love to understand what is happening.

    So I'd love to follow the texture along whatever buses it uses, through the CPU (if it does?) to the GPU and on to the screen.  What does the journey look like, where does caching happen, and so on, really getting down to the low level of detail, understanding how the texture data flows along the physical hardware.

    I imagine the journey on the Xbox might look very different from the journey on the phone or PC… or would it?

  45. Matej Jan says:

    I'd love to hear what parts of XNA are in C++ and why/how/all the juice you can share about making top performant framework.

  46. Dave says:

    GPU please!

  47. Jake says:

    C++ and 3D math

  48. ChaosDev says:

    Shawn please tell me – why WP7 dont support custom shaders ?

  49. Allen Pestaluky says:

    In order of preference:

    -gpu

    -c++

    -SIMD optimization, SSE, DirectXMath

    -3D Math

    -Game design

  50. Julian says:

    XACT garbage in XNA!

    😉

  51. va!n says:

    Would be nice to know about optimisation tricks for developing esp with C# and XNA for real WP7.5 devices. For example having a 10×10 sized texture and want to draw this each frame x=80 * y=45 times, this eats up a lot of CPU ussage (still to much) in the Draw methode! Are there any other ways to speed this up and save some more CPU ussage? (for example drawing the scene on a 800×480 texture or something?

    Another very CPU expensive thing in my Update() methode is something like following very simple code:

               for (int i = 0; i < ( 800 * 480 ); i++)

               {

                   finalData[i] = myData1[ (MyData2[i] + value) ];              // On real WP device == need about 9 % CPU ussage, strange!

               }

               for (int i = 0; i < ( 800 * 480 ); i++)

               {

                   finalData[i] = 0;                                           // This need 9 % less CPU ussage. Why is the other vesion so CPU expensive?

               }

    In generall WP7 optimisation ideas / tricks would be very interested i think.

  52. Krolli says:

    For me, C++, GPU and Math are the most interesting topics, but I know people who would be interested in design too. And SIMD, even though I probably won't use it anytime soon, seems also like very interesting topic.

    In any case, I believe writing interesting articles is more important than writing on specific topic, so I'd suggest writing whatever interesting comes to your mind. 🙂

  53. opq says:

    how GPU's work,  i like this topic, c++ has a lot of material on other website.

  54. Javad says:

    GPU and SIMD please

  55. Dexter says:

    "I don't work on XNA any more" O.O

    I didn't see this coming…. where can I find an article that Shawn is not part of XNA team anymore T.T T.T T.T ?

  56. ShawnHargreaves says:

    > where can I find an article that Shawn is not part of XNA team anymore

    On this blog of course!  🙂

    blogs.msdn.com/…/from-games-to-telephones.aspx

  57. Dexter says:

    Thanks for the link… sorry for being lazy to do a search ^_^y.