DirectX and XNA Status Report

A few interesting things have been happening in the DirectX and XNA world, and I think people haven’t really noticed yet. It’s been done quietly, not because Microsoft is trying to hide anything but because they’ve always been big believers in the “fade into the night” approach to canceling projects. Or their communication ability sucks. Cancel may be the wrong word here, but the DirectX developer experience is going to be quite a bit different moving forward.

Let’s start with the DirectX SDK, which you may have noticed was last updated in June of 2010. That’s about a year and a half now, which is a bit of a lag for a product which has — sorry, had — scheduled quarterly releases. Unless of course that product is canceled, and it is. You heard me right: there is no more DirectX SDK. Its various useful components have been spun out into a hodge-podge of other places, and some pieces are simply discontinued. Everything outside DirectX Graphics is of course gone, and has been for several years now. That should not be a surprise. The graphics pieces and documentation, though, are being folded into the Windows SDK. D3DX is entirely gone. The math library was released as XNA Math (essentially a port from Xbox), then renamed to DirectXMath. It was a separate download for a while but I think it might be part of Windows SDK from Windows 8 also. I haven’t checked. The FX compiler has been spun off/abandoned as an open source block of code that is in the June 2010 SDK. There are no official patches for a wide range of known bugs, and I’m not aware of a central location for indie patches. Most of the remaining bits and pieces live on Chuck Walbourn’s blog. Yeah, I know.

In case it’s not obvious, this means that the DirectX release schedule is now the same as the Windows SDK, which always corresponds with major OS updates (service packs and full new versions). Don’t hold your breath on bug fixes. Last I heard, there’s only one person still working on the HLSL compiler. Maybe they’ve hired someone, or I assume they have a job opening on that ‘team’ at least. What I do know is that for all practical purposes, DirectX has been demoted to a standard, uninteresting Windows API just like all the others. I imagine there won’t be a lot more samples coming from Microsoft, especially big cool ones like the SDK used to have. Probably have to rely on AMD and NVIDIA for that stuff moving forward.

That covers the native side. What about managed? Well the Windows API Code Pack hasn’t been updated in a year and a half so we won’t worry about that. On the XNA front, two things are becoming very clear:
* XNA is not invited to Windows 8.
* XBLIG is not a serious effort.
The point about XBLIG has been known by most of us MVP guys for a while now. Microsoft promised a lot of interesting news out of this past //BUILD/ conference, which I suppose was true. However you may have noticed that XNA was not mentioned at any point. That’s because XNA isn’t invited. All of that fancy new Metro stuff? None of it will work with XNA, at all, in any fashion. (Win8 will run XNA just like any other ‘classic’ app.) That also implies pretty minimal involvement with the Windows app store. Combined with the fact that XBLIG has never been a serious effort to begin with, I’m dubious about tablet support for managed games. XNA does work on WinPhone7 and Win8 does support Win7 apps, so it ought to work in principle. Maybe. Given the niche status of Windows Phone 7 at the moment, and major losses of tech like UDK and Unity from that ecosystem, I’m also expecting WinPhone8 to be much more friendly to native code. (If not, I expect that platform to fail entirely, and take Nokia with it.)

I’m also looking at this e-mail right now in my box, which starts as follows:

As you know, the 2012 Microsoft MVP Summit is Feb 28-Mar 2, 2012. We wanted to inform you that DirectX and XNA technologies will not be hosting sessions at the Summit. As MVPs, you are still encouraged to attend and be a part of the global MVP community, and you’ll have the ability to attend technical sessions offered by other product groups.

Really? No DX/XNA sessions at all? I don’t think DirectX is fading into the sunset because it’s a core technology. XNA will most likely disappear. For some reason, Microsoft is getting out of the business of helping developers produce games and other 3D applications at the exact same time that they’re adding core support for it. Yes, Visual Studio 11 has model and texture visualizing and editing. It even has a visually based shader editor. I’ll let you take a wild guess on how well that will work with XNA code.

I don’t know exactly what Microsoft is going for here, but every couple of days somebody asks me when the next DirectX SDK is going to be released and I think I’m just explicitly stating what Microsoft has vaguely hinted for a while now. There is no new DirectX SDK, soon or ever. And I’m not holding my breath for any XNA updates either. I am told there is an XNA 5, but they won’t be at the summit apparently. If there is some actual future in XNA, feel free to make yourselves heard on the mailing lists because right now it’s really difficult to understand why anyone would bother.

Important clarification: I do NOT think DirectX is being deprecated or vanished or even dramatically changed at the core. (I’m less confident in XNA.) The SDK is being vanished, subsumed into Windows SDK as a component just like all the rest of Windows. So coding DX is no more special than coding GDI or Winsock. There will still be 11.1 and 12 and all that, probably delivered with OS releases and service packs. “DirectX 11.1” will actually be synonymous with “Win7 SP2”. That has been the case for a while, actually. What’s going away is the wonderful developer support we’ve enjoyed as long as I can remember. Compare the D3DX libraries across 9, 10, and 11. Is this really a surprise? It’s been slowly happening for years.


Purchasing Glasses: Online or Offline?

I pride myself on being an informed consumer, to the point of obsession and beyond. It came time to buy a new pair of glasses, and I realized that I know nothing about them. I’ve had these things on my face every minute of every day for most of my life, and yet I had no clue what I was doing. After asking around a bit, I realize that essentially all of my friends and acquaintances were exactly the same way. Those are nearly all computer people, and depend on their glasses for daily life. How much money did you lay out for your glasses? I’m betting it wasn’t trivial, but do you know anything about them? Do you even know what brand you’re wearing?

This post is the first of a couple, dealing with overall eyeglass selection and particularly the question of whether to buy in-store or online. Later on, I’ll discuss lenses, coatings, etc. But for now, let’s just tackle the overall problem of where to get your glasses.

Online or brick and mortar store? In most cases, the person doing your eye exam rents space from or is outright affiliated with a retailer. Once your prescription’s been established, they hand it straight off to the shop, and you pick out your frames. Nice, easy, and totally ignorant. That’s not to say you’re getting a bad product, but you are probably paying a lot for the convenience. How much is a lot? The typical margin on frames varies from 100% to 1000%. Yes, that’s 10x in pure profit. Those $300 designer frames cost probably $30 to manufacture, and they’re really not precision equipment. I don’t have good numbers on lens markup, but it’s not subtle either. Cursory exploration suggests it’s at least 100%. For your money, you get free adjustments and maybe repairs from the people who sold you the glasses. Odds are you’ll walk out with a pair of comfy glasses that look pretty decent on you and assurance that if something goes wrong, you’ll have someone to yell at.

So where do you go in the brick and mortar world? Walmart and Target are, well, pretty much what you’d expect. Sort of vaguely competent but minimal at best. Big name chains like Lenscrafters are popular and prevalent in malls all over, but it’s turned out time and again that those guys over-charge and under-deliver. Shoddy lenses, shoddy coatings, even shoddy frames sometimes. Consumer Reports tells me that Costco is stand-out in quality and price, and as a matter of fact that’s where I got my glasses many times. If I were looking for a quality pair of reasonably priced glasses to try on before I buy, that’s where I would go.

That was the easy part — now for online retailers. The first challenge is even knowing what to buy. You’ll need your measurements, all of them. What size frames are good for you, your prescription, and also an obnoxious number called the pupillary distance (PD). PD is the straight line separation between your pupils when looking straight forward, and is used to place the optical centers of the lenses correctly. It’s also not officially part of your prescription, and difficult to measure reliably on your own. All opticians are equipped to take this measurement in order to sell you glasses. The only reason you could possibly need this number yourself is to order online, and that is why pretty much no optician anywhere will give you that number. It is not legally part of your prescription. Many online retailers tell you how to measure the PD by yourself. Don’t do this. I got mine by asking Costco to give me the stats on the last frames I bought from them. I’m due for a new prescription any day now, and I intend to find an optometrist (not an optician) who will give me the number properly as part of the exam. You’ll also need to know the ballpark for what frames fit you, best established by finding frames that already fit you and getting the measurements off them. Whether it’s ethical to do that by trying glasses in a store you won’t buy from, I leave for you to decide.

So where do you buy from? Pretty much everything you need to know is at GlassyEyes. I believe Zenni Optical is the largest and most popular of the online retailers, and I’ve been fairly happy with them myself. Just keep in mind that you’re getting made-to-a-price Chinese frames with Chinese lenses and Chinese coatings shipped from China, with everything that implies. Anti-reflective coatings have a substantial mark-up here, but Zenni charges $5 and corners are getting cut somewhere. Support and returns are also about as easy as you’d expect with any of these companies, which is to say dismal. If you have a bad experience, you’re not likely to find a good resolution. But for the price of a reasonably decent Costco pair, I can easily order four or five pairs from Zenni with all of the relevant coatings. The Costco will be better, though, so it’s still not clear if things stack up in your favor. At the very least, online is a great way to get backup pairs, prescription sunglasses, or costume glasses. That’s assuming you’re not in a hurry, because these things take 2-4 weeks and there are horror stories out there about things going completely awry.

So that’s the run-down. Retailers = reliable and safe but horrifically expensive. Online = enormous cash savings and super sketchy. Actually fairly typical. So which one to pick? If this is for a first time purchase, go to a retailer. Seriously. First-time wearers have absolutely no business buying online. If you have a very complex prescription or health problems with the eyes, you’re probably better off with the retailers. The online places are just too likely to screw it up, and you need someone who is equipped to CHECK the lenses you get back from the lab. (Some optometrists will do this for ordered glasses though.) If you’re poor/broke or just looking for backup pairs, online is a great way to get them. I have a couple lying around from online and they do the job. The Zenni coating is clearly trash, though, and I suspect some of these lenses from other online shops won’t be coated in 6-12 months. But at $20 per, it’s difficult to care.

If you’re looking for a primary pair though, especially if you’re not quite certain about the necessary measurements, then it gets tricky. I ordered four pairs recently to try out. One is great, one is workable, one got returned due to incredibly poor fit, and one is being donated because it looks laughably terrible on me and returning it would net me nothing after shipping. That’s a risk I took, and I’m a little irritated about the losses on the bad ones, but my new sunglasses from Zenni are really nice, and these rimless from Goggles4U are adequate too. But I don’t love them; they fit great and look nice but they’re made poorly and it’s kind of a hassle. The people over at Optiboard would gloat; that’s a forum specifically for people in the optical industry, and their attitude about online purchasing is exactly what you’d expect, turned up to 11 in some cases. (By the way guys, online optical shops may be a lot of negative things but ‘criminal’ isn’t among them.) Remember that online optical, though in its infancy, represents an existential threat to these people’s careers.

All the same, I still need a primary pair of glasses. I used a pair from Zenni as my primary for about a year but they were never quite right and the coatings just plain rubbed off. They’re scratched up badly. So I thought to myself, this one time I’m going to do it right. I’m going to visit an actual store, pay for real frames and real lenses, and have a real professional set them up just so. Pretensions being what they are, I wasn’t willing to buy ‘good’ frames unless they were Oakley, and the local Oakley distributor optician guy was really incredibly nice and incredibly helpful. I was pretty much ready to buy from him until I got the price tag: $550. Ouch. I know there’s about $200 in markup on the lenses alone there. I can get a Leica 14 element or Zeiss 7 element camera lens for not much more money, and corrective lenses are not in the same league of quality as those beauties.

Right now, I’m researching some alternatives on how to get real brand name, good quality glasses. The Internet is here, after all, and I’m all for ruthless global competition. (That’s a nod to you libertarians, as long as we don’t have VAT in the US.) One of the big problems with online is the lack of professional adjustments, but it’s not like you always have to take your glasses to the person who sold them to you. Of course a glasses store is hoping to get your business with services like free adjustments, but I don’t mind adding an extra fifteen bucks on top for fifteen minutes of that person’s time, and that’s more than I’m paid. I’m also going to find an optometrist who doesn’t have skin in the retail game and is willing to help me see better, regardless of who I pay for the glasses themselves.