Shawn Hargreaves Blog
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:
Any of those seem particularly interesting? Any you find deeply boring? Anything else you would like to see me write about?
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.
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.
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)
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.
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.
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.
Altho you could make any topic an interesting read, I'd really like to hear your thoughts on managing render states :)
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!
Material systems is a topic I'm very interested in, so I'd like to here more about 6 and 8.
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:
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?
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'.
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
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.
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.