World of Warcraft – Redux

Aside from this one sentence here, this entire post will be completely devoid of any information about Managed DirectX.  Instead today, I’m going to discuss World of Warcraft.  I’d put a link to the site here, but gee, it happens to be down right now.

Anyway, i’ve played the game for a significant period of time.  I had a level 60 character in the closed beta, and since release I now have 4 more level 60 characters, plus a spattering of non-level 60s (including a number higher than level 40).  Every one of my characters has ‘PH4T LEWTS’ (ie, epics), and the most played of them even has the full epic armor set.  I’ve been involved in killing all of the major ‘bosses’ in the games, have slept through runs of Molten core, been involved in the ‘server first’ kills of the Blackwing lair bosses, etc etc etc.  Once bored with all the PVE stuff, I started from scratch over on a PVP server and levelled to characters to 60 there.  I’ve done the faction grind for the battle grounds and gotten my ‘uber epics’ for the exalted reputation there.

In short (or in long depending on how you look at it), i’ve done just about everything there is in the game.  I’ve done it on a PVE server, i’ve done it on a PVP server.  I’ve played the game since it was released, and for almost a year before that.  Perhaps I’m speaking since things aren’t ‘new’ anymore, but it’s this man’s opinion that the game has digressed dramatically since the release.

If people remember my first post on this subject 6 months or so ago, I was exceedingly frustrated.  I was about to quit the game.  The only reason I didn’t was because I had formed some great relationships with some of the people I played with.  While the game itself was lacking in the ‘fun’ department, I had a vested interested in maintaining the relationships that had formed, and that kept me in the game.  Due to circumstances that I wish were different, those relationships were no longer allowed to continue a few months ago.  Thus, the only reason I was playing the game was now gone.

I decided the best course of action would be to try to re-invigorate my excitement for the game, which was the catalyst for the move to the PVP server.  I have to admit, for some time, the added excitement from the PVP server did serve it’s purpose.  The game was exciting again, and I was having fun.  However, once I hit 60 again, I hit that wall that I described in my last post.  Sure, I could find another raiding guild and relive the content i’ve already experienced again, but why?  So, in one of the more ironic decisions, I decided to relive all the *beginning* content again, and re-rolled another character on that server and levelled him to 60.

I was at a dead end.  I could re-roll yet again, or I could continue to play one of my many level 60 characters who had nothing to do.  This was right around Christmas, and I had decided to most likely just stop paying, little did I realize Blizzard would help cement that decision for me.

Imagine you’re a big company.  You’ve just developed the most successful MMO ever to be released.  You have upwards of 5million accounts.  Christmas is 3 days away.  What do you do?  Well, if you were the *real* Blizzard, naturally the best answer is to open a few new servers and then *LOWER* the population cap across all the rest of your servers forcing every single person to wait in a queue to simply play your game.

I could go on and re-iterate many of the points i made in the previous post, but as much as I can’t believe it, the majority of them are still valid, and if anything worse.  Constant nerfs, hot-fixes for player-helping bugs, player-hurting bugs ignored, queues, server instability, communication, etc.  With the sheer amount of money they make a month, I can’t fathom how over a year after release this isn’t fixed.  Why release new content when the content you have doens’t work?

Did you hear?!?  Medivh opened the gates!!  And to think, the server only crashed 7-8 times to make it happen.  Oh, and they had to stop people from creating new accounts to go watch it.  And people still couldn’t watch it when it happened.

My account expired (and wasn’t renewed) on January 20th.  There’s no doubt that the time I played, it was a great game.  However, was is the keyword in that sentence if you ask me.  For myself, I’ve lost all respect for Blizzard as a service unit.  It’s sad, because if they ever do a Starcraft 2, I’ll actually have to think twice before buying it.  Ah, who am I kidding, i’ll buy it.  Any type of business that requires them to provide a service to me though? Forget about it.

Oh, and since my account is canclled, no, you can’t have my stuff..  Honestly, if it wasn’t against the rules, I’d probably just sell my account.  I’m sure I could get a decent price for my level 60s split across PVE and PVP servers all with epics.  That’s not even considering they all have epic mounts and i have somewhere around 2k gold..

Book Source Code..

I think I blogged about this once before.  If I did, I don’t remember when and can’t find it.  Since there have been a number of questions on the topic though, I’ll post this again, even if it is a duplicate.

ZMan has already done the ‘work’ for getting the source code from my two books to compile with the latest SDK’s.  While it’s true it’s not an ‘official’ source of these updates, it seems like a perfectly good way to check out the updates without having to go through the pain of fixing the compiler errors due to API changes.

You can find the kickstart source here, and the beginners book source here.

Thanks to ZMan for the updates!!

Managed DirectX – It’s not just games..

So here at Microsoft, we have this thing called a ‘buddy program’ which you can read more about at http://msdn.microsoft.com/isv/isvbuddy/.  I’m signed up for this program and have a ‘buddy’ who works for a company (I assume in Germany) doing Managed DirectX work (amongst other things).  (Sorry, I only have time for one ISV buddy, so don’t go signing up hoping to get assigned me unfortunately).

Anyway, my buddy has sent me a link of some of the things they’ve been working on using MDX:

http://www.die.de/faltwerk/xfalt/overview/arbeitsfenster_uebersicht.html

The site itself is in German, so if you don’t speak that, google’s translater seems to do an adequate job.  The third video is the most relevant to MDX.

360

Although it is probably a mistake, I’ve put my Xbox Live Gamertag on my blog page.  Despite my potentially obvious bias, I’m quite pleased with the new console.  For all of you still waiting to get theirs, if it makes you feel any better, I just got mine yesterday, and I’ve been trying hard since launch.  So don’t just assume that all of us here have them, because we have to wait in line just like everyone else.

Geometry wars is entirely too addicting.  I haven’t even gotten a chance to try out the other arcade titles, nor many of the other games I have because of it.  Although I did pick up DOA4 today, and will try to get some more time in with PGR3 and Tiger Woods later tonight.  That doesn’t even consider I still need to try the rest of the arcade games, and NFS:MW and Ridge Racer and Tony Hawk and Call of Duty and Kameo and … oh man.. too many games…

December SDK Available.. Better late than never?

I blame my self-imposed umm.. isolation? while on vacation for the lack of a Dec SDK release announcement.  Since i’m so late and lazy now though, i’m just going to copy David’s post:

The Windows Graphics and Gaming Technology Team is proud to announce the latest version of the DirectX SDK, available for immediate download!

The latest SDK, as always, can be found at http://msdn.com/directx/sdk.

So what’s new?  Well, some of the really cool additions and updates are:

– Direct3D 10 Technology Preview: That’s not a typo.  If you have Windows Vista, you’ll be thrilled to get your hands on this _very early_ preview of the new version of Direct3D.

– Microsoft Cross-Platform Audio Creation Tool (XACT Beta): Our audio geniuses are at it again.

– Managed DirectX for .NET Framework 2.0 (Beta): Much improved from October’s SDK, this new version includes support for the retail version of Visual Studio 2005 family of products.

– Windows Vista Game Explorer (Beta): “Getting your game on” takes on new meaning in Windows Vista.  Learn how to get your game integrated into the Game Explorer.

– DirectX Runtime: We’ve now created a cumulative redist to help you address some of the small (and not-so-small) annoyances with the runtime.  In addition, we now offer a web installer that will incrementally update your end user to the latest DirectX runtime libraries.

– XInput: New and improved, with an article included on how to use DirectInput and XInput together!

– Tools: PIX and DxErr have been improved

– Samples: New samples on HDR, as well as numerous additions to help you learn Direct3D 10, have been added.  Also returning by popular demand: the Pick sample.

– Technical Article Updates: We’ve added tons of new technical articles.  Find them all in the DirectX SDK Sample Browser.

—–

Ok, I guess i’ll add a few of my own comments (specifically related to Managed DirectX 2.0 beta):

  • Now includes x64 ‘native’ support (for everything except XACT).
  • Now includes XACT
  • The majority of ‘missing’ API’s should no longer be ‘missing’.  (I don’t want to say all just in case i screwed up again)

Once again, please leave any feedback/questions/comments here on this post, contact me through this blog, or on the MSDN Forums. The forums will guarantee someone from MS (other than me) will also see it, and is probably the recommended place. Comments on missing APIs, bugs, confusion, etc are all welcome.

Oh, and while i’m thinking about it.. One of the more common pieces of feedback I’ve received is why the removal of taking a Windows Form control as the constructor for devices, etc.  Since this is something that most likely won’t be changing, i’ll speak briefly about it now.  Essentially, just by having that constructor in the code base, it forces System.Windows.Forms.dll to be loaded with our assembly (even if you don’t call it, due to more complicated reasons I won’t get into here).  Aside from the fact that this is a performance ‘burden’ on developers who aren’t using WinForms, a more pressing problem is that in the not too distant future, there will be components that we will need to work with that simply *will not work* if WinForms dependencies are found.  There are only two real ‘breaks’ with this change.  One, you can no longer simply use a form as your variable in the device constructor, and instead must use form.Handle.  This is extremely minor.  The other change which could cause more problems is the device will no longer reset on form resizes automagically when using the event model.  Since we recommend everyone use the DXMUT framework (which handles this ‘automatically’ anyway), we don’t consider this a major issue either.

Probably not quite what he intended..

I got an email recently from Phil Vaira about a new RPG he was working on.. So, like I normally do, I went and checked out the link.  What I found though was a new post detailing his ‘advice’ on native DX vs Managed DX.  Naturally, I read that as well.  What i’ve found is that it contains many misconceptions that seem to have been perpetuated throughout the last few years.

I agree with his sentiment that you use the right tool for the job.  It is (or should be) a no-brainer, but that goes well beyond game development, or even software development.  That should just be a ‘given’ in any facet of life.  I don’t agree with his implication that if you want game development to be a career you should stick to native code (while he didn’t directly say that, it was the implication I read with his ‘beneficial in the future’ comment).  The fact is, a large number of ‘professional’ game developers began their ‘career’ as a tools developer for a ‘real game’.  Care to guess what a large number of tools are written in?

He then goes on to ‘compare’ native Directx and Managed DirectX by using Call of Duty 2 (a brand new PC game) and Arena Wars (which doesn’t even use DirectX, much less Managed DirectX).  Now, the comparison here is wrong in so many ways, it’s hard to count.  First, the API’s aren’t even the same, which seems relatively important for comparing.. you know.. the APIs.  Second, he’s comparing a brand new game with one a couple years old.  Newer games invariably ‘look better’ as developers ‘mature’.  Thirdly, he’s comparing a game that has a multi-million dollar budget and a dedicated team of artists against one that was essentially done by a couple hobbyists (with no offense made to any hobbyists).  Lastly, he’s taken the assumption that because the one “looks better” it must “be better”.  Call of Duty 2 is a good game, I agree with that, but you know a game I think is better?  Katamari Damacy..  Find screenshots and I think most people will agree Call of Duty 2 “looks better”, but ‘looks’ doesn’t always mean better.

He then uses these assumptions to ascertain that Managed DirectX simply isn’t capable of creating something so ‘visually stunning’.  No basis for this conclusion other than the fact that he hasn’t seen it done.  He hasn’t seen a managed version of Call of Duty 2.  He then goes and mentions other games that have been released in the past, wondering why he’s never seen managed versions of those (nevermind the fact that Managed DX didn’t even *exist* when those games started development).  It should be plainly obvious that no development company who wants to make money would ‘waste’ so much resources by simultaneously developing two versions of their game *for the same platform*.  I also got a kick out of how he lets everyone know that you couldn’t make Morrowind in managed because “can’t get FPS where it should be” which implies that a) there is/was a managed version of Morrowind somewhere (how else would they know that) and b) he was involved in the development of that version.  Since I know a) isn’t true, i can infer that b) isn’t as well.

So anyway. For my conclusion, I’m not going to give any ‘advice’ on which is better.  Both native and managed versions of our API are fully capable of developing ‘modern’ games.  Both versions have pros and cons, and I agree with him that you should weigh these before making any decisions.  For myself?  I’d be happier if the majority of developers concentrated on making *good* games rather than ‘pretty’ games.. Regardless of what API they use.

BTW: I’ve been (am on) vacation for the holidays.  Thus my lack of activity here (even though there will be a series of posts today).

Stacks!

So I have a buddy that recently embarked on a new adventure that could be quite thrilling.  Ok, so he got a new job.  Now, i’ve had friends get new jobs before, so what makes me go decide to talk about this one?  Simple, he is now working for the company doing Stacks Poker.

Oh, I guess it helps to mention that Stacks Poker uses Managed DirectX thus the reasoning behind my interest.  As a matter of fact, they’re still hiring a person to do some MDX work, assuming you don’t mind working in Toronto. 🙂

Myself, I have an avid interest in poker, have tried a few online poker sites before, but considering I have more than an avid interest in Managed DirectX, you can rest assured I’ll be keeping an eye out on this one as well.  I’d recommend you do as well!

Known issues with Whidbey Managed DirectX

So, how is it that I can get scooped by my own information?  (Just kidding ZMan, I appreciate it!)

Anyway, two main known issues with the Whidbey MDX Beta.  First, it requires VS2005 Beta2.  Nothing later.  Those of you using RC0 will get “FileNotFound” exceptions when trying to load the assemblies.

Two, there is a large ‘chunk’ of D3DX that is ‘missing’ from the assembly due to a mistake on my part.  It is most certainly unintentional.  (Oh, and MatrixStack is a D3DX component too, despite it being in the Microsoft.DirectX namespace).

We are working on getting these issues addressed as quickly as possible.  One of the benefits of releasing every other month though is no matter what, you don’t have *that* long to wait for updates.  Please keep the feedback coming, particularly on design issues, but on anything you feel the need to tell me about.