What should I blog about?

My todo list of future blog topics seems to be growing faster than I'm having time to write them! (maybe something to do with my being busy working on new framework features instead? 🙂

It occurred to me I should find out which areas people would be most interested in reading about. Here is my current topic list:

  1. Cubemaps: what they are good for and how to create them
  2. Understanding texture filtering: point, linear, anisotropic, minification, magnification, mipmaps
  3. The Game timing system: Update, Draw, variable vs. fixed timesteps
  4. Premultiplied alpha: what is it and why should you care? (for avoiding fringes around minified cutouts, or drawing alpha blended things to rendertargets and then correctly compositing the results)
  5. DXT compressed textures: what they are, how to create them
  6. Managing renderstates
  7. How to make aiming feel good with a gamepad: auto-assist, target friction, reticule design
  8. Effects as archetypes: is an effect instance a shader program or a material?
  9. Speed effects: camera tricks, motion blur
  10. Sun effects: lensflare and glare
  11. Why it makes no sense to measure the performance of an empty game loop
  12. Serializing things with the Content Pipeline (XML and binary XNB)
  13. Understanding GPU performance: how do drivers work, why does timing individual methods not tell you anything useful, how to understand the pipeline and figure out where the bottlenecks are

Any of those seem particularly interesting? Any you find deeply boring? Anything else you would like to see me write about?

Comments (20)

  1. errolian says:

    All of those seem worthwhile topics, and for me numbers 3,6,7,9,10 and 12 are the most interesting.

    What I really would like to see is a minimal project appended to each topic that actually shows in an XNA project the topic in discussion.  For example, the Stencil Buffer transitions was a really good post but to be honest I found it hard to actually implement.  An example would make things much easier – if at all possible.

  2. maltezefalkon says:

    As an experienced .NET developer but a graphics newbie, I’m finding the conceptual level and APIs to be the most problematic for me.  I’d like to see something like #8, but with a focus on the concepts.  I’m still having trouble wrapping my head around the relationships between the XNA model/mesh/effect object model and how they map to materials, textures, lighting, colors, special effects, and so on.

  3. Kawe says:

    I would agree to what the previous poster said. Some basic examples on using the stencil buffer (doesn’t have to be transitions.. just something to show it off) would be nice.

    Of the topics I’ll choose 6, 8, 9, 10, 11, 13

    Anything about managing stuff is appreciated to. The biggest issue with making a game is managing things really. And I mean any kind of managing. Making "manager classes" or just managing code in general.. or how to manage drawing many different things with different effects.

    And the topics I didn’t choose are ones that I either don’t know what it is or I already know what it is at all (or I don’t care). The ones I don’t know (1,2,4,5,12) I’d like to hear about too but they’d probably require some more basic explanation. (yes, this is my opinion)

  4. ProD says:

    I think that something good to speak about would be Skinning!. I know that there is an expample in the creators club site but would be nice to know something more about that. I think animation in general is a good topic to speak about.

  5. thomas.aylesworth says:

    I’d say 7, 9, 10, and 13 sound most interesting to me.  As a shader-newbie, I love reading anything you write about effects, so the more the better as far as I’m concerned.

  6. JLarkin says:

    I haven’t really dug into researching any of this stuff yet, so I’d like to see all of it somewhere at one point or another. Here’s what I’d like to see in the order of most wanted to least:

    12, 2, 8, 9, 10, 6, 7, 1, 13, 3, 4, 5, 11

    For me, figuring out how to save things is most important. I’d want to learn how to serialize level data, for instance. That way I could export from an editor into my own format, then load into the game with no problems. I’m also very much interested in shaders, but so far I haven’t been able to wrap my head around them. That’s why I’d like to learn about texture filtering and how different effects are structured.

    Like Kawe, I’d also be interested in anything related to managing assets. As of now, I just load everything up all at once, but I know there are other methods like streaming, for instance.

    Thanks for the blog, Shawn- it helps a lot.

  7. zygote says:

    Altho you could make any topic an interesting read, I’d really like to hear your thoughts on managing render states 🙂

  8. BoJordan says:

    Anything relating to XNA performance is welcomed, so 13 will useful as soon as you can work something up.

    I also echo the encouragement above for anything about effects; effects as archetypes, and specifically the speed effects… yes!

  9. Dark_Nebula says:

    Material systems is a topic I’m very interested in, so I’d like to here more about 6 and 8.

  10. Rim says:

    Definitely 12, Serializing things with the Content Pipeline (XML and binary XNB), as begged for on the XNA forums 🙂

    To ProD and anyone else interested in Skinning, I found Circlesoft’s material on it to be an interesting read:


    More on his take on skinning and other model animation techniques can be found here:


  11. paulecoyote says:

    All of those seem really good.  7 sounds really interesting.

    If possible could you try and concentrate whereever the documentation seems particularly light to you?

  12. I’d definitely like to see a nice in depth article on the game loop (#3).  Specifically fixed step physics with interpolated rendering for true framerate independance.  This is the system I currently employ and I’d love to see how to do it ‘properly’.

    ref: http://fwheel.net/bdb/game%20dev%20wiki/wiki/index.pl?MainLoopFixedTimeSteps

  13. Darks1de says:


    I think the best thing I’d like to see, would be to build up your posts into some kind of series, taking some of the comments here about actual usage of the examples you give.

    Something along the lines of Riemers tutorials but with a simple game in mind.

    I know there are sample games on the site but I remember when i started with Game Development, the thing that really helped me progress was the 2D/3D video tutorials that Digipen did in the old Coding4fun days.

    Now I’m not saying do a full video series, just a series of blogs each building on each other starting from say the GameState Example.

    How’s that sound?

    P.S was thinking of revamping the old digipen webcasts for XNA when I had the time, pah fat lot of good it did me trying to find time!!!, lol

  14. ShawnHargreaves says:

    I hear you about the ask for complete code samples, but unfortunately that isn’t likely to happen.

    We MS employees walk a fine line between being free to involve ourselves in the community versus being hedged about with lawyers. A company like MS is an attractive target for lawsuits, so there are whole departments of people who’s job is to make sure we stay safe!

    Apparently (I’m not a lawyer, but this is what I’ve been told) one of the most scary things from a legal point of view is releasing source code. What if there are bugs in it and people tried to hold us liable? What if it infringes someone else’s copyright? What if it infringes a patent? What if it accidentally contains information about internal product code that we didn’t want to release? (that can happen rather easily be accident if the author was working on that same product code earlier in the same day).

    It’s a big can of worms, and to make sure we stay safe, we have to go through a fairly laborious process of code reviews before we can release anything, and even then the code goes out with a EULA that the lawyers have crafted to take care of all the liability stuff they are paid to worry about.

    Blogs obviously don’t have code reviews or any kind of EULA, and that means I’m not allowed to post large pieces of code on mine. I can write text, and put snippets of code in the text, without needing permission from anyone (and I’m extremely thankful to the powers that be that they were open minded enough to allow this!) but if I want to release a complete code sample I have to go through the proper process, after which it will eventually show up as a sample on the creators.com site.

    Occasionally frustrating, but that’s the situation. On the plus side, though, we do have a nice easy way to get samples out to you via the creators.com site now (it was SO frustrating for me before that site went up when we didn’t have any legally approved way to release sample code at all!), plus I have this blog for more off-the-cuff personal writings.

  15. merrittgraves says:

    I think that a small and clean example of managing render states would be immeasurably helpful to those people who are working on a project with multiple models that have to be animated individually.

    Most of the other topics listed were essentially tactical concerns whereas render state management is more of a strategic or architectural concern.

    If there are other related blogs that talk about architectural concerns for designing a clean game engine in XNA, the (gamestate article on creaters club was great) a mention of those resources would be appreciated almost as much.


  16. Kawe says:

    Hey, another topic I’d like to hear some about is "Getting it right" obviously you can’t write code once and make it be perfect from start. This is also why it’s so daunting on starting with anything like XNA… cause being new you don’t have any experience and figuring out what to do and how to do it can be really nasty.. and figuring out what’s reasonable. Personally the first thing I thought was "wow, there’s no lights. how do I add lights? shaders??? WHAT IS THAT?!?!?" and almost gave up cause I had to learn yet another language (after diligently learning three other languages).

    Also I really like how you write things. It’s fun and personal. Especially with your own stories to go with it.

  17. Somersault says:

    Hi Shawn,

     Maybe a blog about how to create various cool visual or physics effects, both 2D and 3D, sort of like extending the SpriteEffects demo to include more advanced visual and physical tricks that games that make it onto XBLA are likely to use.

  18. Jurassic says:

    I´d be happy to read about #8, #6 and #12 seem interesting as well. By the way this blog is my favorite, great choice of topics so far.

  19. Ultrahead says:

    I like all of them. And would add:

    1) handling procedural texturing (say, Mapzone’s kind).

    2) how to set/retrieve raycasting information (or any other kind of dynamic data) from shaders with XNA -if possible, and

    3) Extending materials: for physics and sounds (say the player steps on a grass material -> XNA plays the proper sound, or the player speeds is affected by the proper friction value).

  20. forensicbroom says:

    1, 9, 10, 12

    That’s what I would like to see, but, I would like to add one thing: Shadows. Yeah, Riemer did tutorials about shadows, but I’m interested in soft shadows. I tried with blurring the shadow map and then projecting it, doing all kinds of things(tried PCF, didn’t work so well) so I think that would be a good subject to talk about.

Skip to main content