Managed World

Techno-babble from yet another babbler RSS 2.0
# Wednesday, May 18, 2005

I realize ranting is pretty juvenile. However, I have proved time and time again that I'm not above juvenile behavior (quite the opposite, I imagine). With that in mind, I have decided to actually post my rants here even though it may mean I get severely flamed and I might look like a tremendous donkey's ass. Oh well, that's the price that comes along with the territory I suppose. "If you can't stand the heat, get out of the kitchen," as my mum used to always say (okay, she only said it once; and in her defense, the house was ACTUALLY on fire at the time).

::BEGIN_OF_RANT::

You know, if I was Microsoft, and I was holding a big conference on Microsoft technology, I, for one, would not want to have one of my public facing portals to be down quite a bit. Of course, by the time you read this, it will probably already be resolved.

I've tried getting on to the site numerous times over the last week in order to prepare and make my schedule for Tech Ed. However, 90% of the time that I try to load the site, I get a big white "Cannot Find Server" page. Not only that, when I can get in, it seems that one out of every five schedule requests time out.

I may be the only one here, but I consider this unacceptable. Especially when it is hosted by the world's largest software company, and built on their own software. Is there a better way to show how absolutely infallible your software is than putting out into the world and having it fall on its face over and over (and it's not like it's suffering from the Slashdot Effect or anything).

For some reason, it brings back memories of dreams of going to school naked and having everyone laugh at me (quite the opposite of the effect that Rory had on fellow schoolmates). Or, if you will, it reminds me of several stupid Adam Sandler skits ("They're all gonna laugh at you, they're all gonna laugh at you!!!").

Please, do me one favor. You're Microsoft. You have perhaps the largest software budget in the world, and technology that I know is fully capable of large amounts of up-time. The last you could do is provide all of us with a site that a) works and b) works most of the time.

::END_OF_RANT::

Posted in Rants
 #       Comments [10]

 I never got around to posting this originally, so there's no better time than now to post it!!!

If you've been Hussein-ing it lately (being stuck in a whole) or just bobbing for crawdads (sticking your head in the sand, hardey har har), you probably haven't seen the new Coding4Fun site over at MSDN (not to be confused with "Codeine For Fun").

Even though Scott Hanselman does have a series there, it is not what I'm most excited about. I'm excited about the fact that it appears that we hobbyist game developers are finally going to get some much-needed love spread all over us (and not in the physical sense). In the past, I've complained about how out-of-date the DirectX developer center was and how, even though Microsoft wants to be a major player with Managed DirectX, Microsoft was not producing quality content on its own product. I'm glad to announce that it appears that this has changed.

You see, the new Coding4Fun portal also has a series of Game Development articles and resources (funny I still hear "Codeine For Fun" every time I say it to myself in my head (yes, I talk a lot to myself if you must know)). There is even a "Q&A" section with the ZMan himself. However, this is *still* not the thing I'm most excited about. Nope! I promise! What I'm excited about is the potential that these webcasts show (that reminds me of this really cheesy physics joke (and I may vary well be butchering it here): Why did the chicken cross the road? Because he has great potential! Hardy har har). The webcasts are being done by instructors from the infamous DigiPen.

If you haven't checked it out lately, make sure that you do so. You will not regret it at all!

 #       Comments [0]
Are you going to be there? Well, I will. If you're going to be there, shoot me an email so we can meet somewhere. I look forward to meeting all sorts of interesting people.

You know what I just realized? This post is dumb. I'm sitting here right now thinking that I should totally NOT post this and just delete it. But perhaps that thought itself can salvage this post and make it at least somewhat useful (although I have absolutely NO clue how that might happen). The one thing I want to avoid here is not posting something because I feel it might be pretty lame. Well, the posts might be lame, but so are all my jokes. And at least people laugh at my jokes, sometimes... (although I freely admit that they might be just laughing at me since that was a very common thread throughout my childhood).

Oh well, anything to get over my blogging hurdle, I suppose. I just want to avoid becoming a link blog. I just want SOME kind of content here, even if it is just me blabbering on about myself and my insecurities for hours on end.
Posted in Personal
 #       Comments [0]
# Friday, May 13, 2005

Well, my new baby arrived today (not literally (wow! that's a scary though: fat little jason-babies running around the house)). I'm talking about Garritan Personal Orchestra. When talking with a co-worker a couple of months ago, it came to my attention how cheap it has gotten to setup a good music composition rig.

Before I explain my rig, take a listen to this. I recorded this mp3 live from Cubase. No, that wasn't recorded from live instruments (well, not really but sort of if you want to get picky). This concerto is recorded using the sampling library from Garritan Personal Orchestra. Being able to make music like this anytime now has me totally addicted and jumping up and down with excitement. SOOOO, I just had to post to share it with all of you.

To make the music from above, the entire setup at my home cost me no more than $600. Back when I first looked into this stuff, you had to expect to invest thousands of dollars if you wanted to be able to stuff of the quality above. I was shocked when I found out I could get it for under $600. Here's the basic rundown:

  • Cubase SE: $100
  • Garritan Personal Orchestra: $250
  • M-Audio Audiophile 2496: $100
  • MIDI Controller: $100
  • TOTAL: $550

Boy, am I giddy. I hope you enjoy the mp3 from above. I might be posting more stuff in the future if I have music to share (you know, Rory has decided to share his writing, so I have decided to share my music :D).

Posted in Personal
 #       Comments [1]
 Hello. My name is Jason Olson, and I'm...... a Slacker. I'm freely admitting it here in front of the world. I start things that I don't finish, I bite off more than I can chew, I promise things way too often and hardly ever deliver. You just need to look at my multiple runs at a series of game development articles to realize that. One thing I'm going to do differently this time? First, I'm not going to promise because there might be a good chance that I will personally lose interest in the subjects I'm talking about. Second, I'm going to try to be realistic with myself.

What does this mean for you? Hopefully, it means no more sitting around cussing at me because I've dropped something just when I got your attention. I've lost track of the number of emails I've received about "when I'll finish the damn articles already!!!!" So, with this whole move to my new home, I asked myself why I didn't finish those articles. And I think the reason is that I tried to make them more grand than I could really do. For instance, anyone that has hung around the Beginner's Forum on GameDev has more than likely lost count of the number of new developers (not just new to game development, but new to development in general) that have claimed "I'm going to build the best MMORPG EVER!". And this for their first development project ever. Not a good start, that's for sure. Well, although I hate to admit it to myself, I have been one of these very people.

I think part of it is just me getting to know myself more. I have flaws (and a LOT of them at that). Well, rather than feeling all pitiful about myself for everything I *haven't* done, I'm going to try smaller things and then be happy for the things I *have* done. Part of this attitude exhibits itself in this very blog. I've owned this domain for a long time now and have been (frankly) too damn lazy to get a hosted solution and make a proper site. The prior version was just a hacked group of static HTML pages and was a pain to maintain. I never got up the energy to get this hosted because it would "take too much work". I would have to build my own solution. I would have to add all this functionality. And after all that, it would still not be nearly as good as I wanted it to be.

Well, to counteract that feeling I got off my rear end and decided just to use dasBlog. Why? Because it was extremely easy to setup, and because it has more functionality than I could probably develop on my own with the amount of free time I have. After all, if there are already solutions out there that exist for blogging, why in the world would I develop my own when it isn't the problem I'm solving. It isn't even a problem I'm interested in solving. I just want to deliver content. That's it. So why waste my time developing a home-grown blogging solution when I could be spending that time with my family, or writing games, or writing articles about writing games, or writing music, etc.

But, really, what is the payoff? I'm hoping part of the pay off will be immediate. I've realized that the people that liked the game development articles I was writing probably don't care if I was developing a mario-clone, or whether I'm developing a simpler two-dimensional space shooter. After all, I firmly believe that the lessons learned when architecting a space shooter can be directly applied to developing a mario-clone. For me, I think the vision of developing a mario-clone was "more than I can chew". I have to admit something here, I'm not a game development expert. In fact, I haven't developed a single complete game yet (of course, that's probably no surprise to most of you who know me).

Because of this, I have decided to fire up the articles again in order to develop a simple space-shooter (the original vision). The first couple of articles that people have read will not change. The good news is that the articles posted already are still relevant. In fact, I will be trying to get around to posting those articles on this site sometime in the near future (no promises though this time :)). Maybe if I actually stop procrastinating and do something for a change, I'll be able to get back on the Z Buffer's linking good side :).

Considering how many of you I have probably let me down in the past, let's hope this is different. Stay tuned (or not, whatever).
Posted in Personal
 #       Comments [4]
[this is an interview I originally conducted earlier this year on the prior Managed World]

Tom Miller Interview

by Jason Olson, 1/4/2005

It is no secret that I love game development. It is also no secret that I love Managed DirectX (otherwise, this whole site wouldn't be here, would it?). These are the reasons that I am proud to say that I've had the pleasure over the last month or so to conduct an interview with Microsoft's Tom Miller, the "father" of Managed DirectX.

In this interview, we will find out how Managed DirectX came to be, as well as certain design decisions made while creating it. If you enjoy this stuff as much as I do or you just wish to get an insight into the man behind the scenes, I implore you to read on!!

JO: How long have you been working at Microsoft?

TM: I started working at Microsoft in May of 1997, although I didn't join the DirectX team for a while after that. I worked on small internal projects for MCS (Microsoft Consulting Services) for a few months before joining the Visual Basic (6) team later that year. I worked on various tools that shipped with the IDE. When VB6 shipped I moved over to the Office 2000 team where I worked in the 'core' office group (not specific to any one component, such as Word, but components that were shared). I wasn't in the Office team very long though, and moved over to the DirectX team in June of 1999.

JO: How did you manage to put yourself into a position to spearhead the development of Managed DirectX?

TM: When I was first hired into the DirectX team, my original job was to help in the development of the samples for the 'new' DirectX for Visual Basic (5/6) library we were shipping in the DirectX7 SDK. That quickly led to writing components for the DXVB library itself, which in turn led to 'owning' the entire DXVB development. While we were finishing up the DirectX 8.1 SDK (mid 2001), I began looking at this 'new .NET stuff' that was brewing over in the developer division. I recognized relatively quickly the high 'potential' for this technology and began working on a 'prototype' version of directx running under this runtime in my 'spare time'. Back then, I was calling this prototype "DirectX.NET" because everything was being called .NET.

Anyway, I worked feverishly on this prototype (the D3D portion) until I had a working copy of one of the more complex D3D examples in the SDK at the time. The performance of the sample was about on par with the DXVB code we had before, but was still relatively 'slow' compared to the C++ example it was based on. After showing the demo to multiple people in the group and implementing the rest of the DirectX API, we had our first 'public' showing of the technology at GDC in March of 2002.

So I guess a short answer to the original question would be: "I was like Nike. I just did it."

JO: What were your primary concerns when first architecting the Managed DirectX API?

TM: Anyone who saw the initial 'alpha' version of Managed DirectX at GDC back then (I still have the CD!) would barely recognize the code that Managed DirectX is today. The *very first* design decision was basically "Make everything look exactly like it does in the C++ world". The objects were all named just like the COM interfaces, the structures were all the same (with all the caps like D3DCAPS9), and there was essentially a 1:1 correspondence between the managed function and the unmanaged function. The API itself was nothing more than a simple passthrough between the 'managed world' and the 'unmanaged world'. It accomplished what it set out to do, but when compared to the great API work going into the .NET Framework itself, it looked outdated, and 'hard'..

We made a concious decision shortly after that release to focus on ease of use, and api consistency with the rest of the framework. The API matured, and many of the benefits it has built in now came from this focus early on. That being said, speed was never disregarded. After all, we're the DirectX team, games are the most common things created with our API's and games need to be fast. If a situation arose and the 'ease of use' method was simply too slow to be used in 'real time' in a game engine it wouldn't be used. In these scenarios we would provide a 'faster' alternative.

JO: As a developer, how much do you find yourself using Patterns and/or Refactorings, consciously or subconsciously?

TM: Sure, although I'd probably say it's more 'subconscious' now than anything. It just comes naturally with the territory for me nowadays.

JO: I notice that a lot of architectural designs with Managed DirectX correlate to designs already established within the .NET Framework. How much effort was put into leveraging the design decisions already established in the .NET Framework?

TM: If you would have seen the original version we showed at GDC in 2002 you would be surprised at how much it did *not* follow any of the guidelines.. After that release though (I essentially now had everything 'working') we spent a large portion of time updating the assemblies to fall into the guidelines/designs that the rest of the .NET Framework was using. The entirety of time spent between Beta1 and Beta2 was this 'redesign' of the API. It was quite a challenging time to say the least.

JO: Was a tool like FXCop used to verify the design of the Managed DirectX code base? If so, to what extent was it used?

TM: Yeah, we use all of the tools available to us at any given time, including FxCop. The 'problem' we faced when using FxCop is the enormously large number of 'false positives'.. Managed DirectX is written entirely in Managed C++ and the code that the compiler generators FxCop doesn't like. For example, when you declare an event in MC++ it also generates some protected methods like 'raise_EventName'.. That one item breaks two FxCop 'rules' (no underscores, protected methods in a sealed class). Multiply that by the hundreds and you can easily have thousands of these 'false positives'. We find these tools to be invaluable to the development though, even if we possibly miss some of the 'real' issues amongst all of the false positives.

JO: What type of testing takes place against the Managed DirectX API before each release?

TM: While I do have much contact with the test team for the assemblies, I wouldn't be comfortable speaking for them. I will say that they have quite a large 'sign off' sheet that they must complete before each release that includes running all of the tests they have written, all of the samples, etc..

JO: What are your three most favorite things about Managed DirectX?

TM: That could be interpreted a multitude of ways.. For example, I consider people using (and enjoying) an API that I designed and built to be quite awesome. It's definitely my favorite thing about Managed DirectX by a long shot. However, when looking at the API itself, the "ease of use" built into the API is another one of my favorite things. Lastly, i suppose it would be the opportunities that doing that work has afforded me. It's allowed me to write books, which is something I've always wanted to do, and with game companies now releasing games using the API, it's a whole other sense of accomplishment.

JO: What area do you feel has the most room for improvement in Managed DirectX?

TM: API clarity. While the API is already 'cleaner' than the native API, and more inline with the guidelines that the rest of the CLR uses, it's still not there. There's still quite a few of esoteric items that could be improved on. That doesn't even consider the new stuff coming out with Whidbey such as generics, etc.. These are all things that I have plans on addressing in the near future.

JO: Any last things you would like to say about Managed DirectX for the readers out there?

TM: Well, not that I can think of right now.. =) Keep writing the games and apps.

JO: Thanks for taking the time to answer these questions!



If you would like to read more about Tom Miller, you can find his blog at http://weblogs.asp.net/tmiller.

As usual, if you have any suggestions for DirectX, you can go through the normal channels either by using the newsgroups or emailing directx@microsoft.com.
 #       Comments [0]

Contact

Email Me Send mail to the author(s)

Calendar

<May 2005>
SunMonTueWedThuFriSat
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

About this site

Jason Olson's thoughts on Programming, Games, Music and Life in General

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

© Copyright 2008
Jason Olson

Sign In
All Content © 2008, Jason Olson
Theme based on 'Business' created by Christoph De Baene (delarou)