Finally got around to making my snake game run on Windows (download). Requires Windows 8 and the 32bit / x86 Visual C++ 2013 Runtime.

3D Snakes and Visual Studio

Converting the game was straight forward. I spent a few hours trying to embed resources in the .exe but gave up and just included them in the zip. Wrote a simple (1 line) replacement for the resource path generator and changed some struct code from {.x = 5, .y = 10} to {5, 10} since the first doesn't work with Microsoft's c++ compiler. I was expecting that OpenGL would be the problematic part about going cross-platform - not C structs. The rest was lib/header search paths and a few other project settings.

The overall experience of developing on Windows wasn't great. Visual Studio has improved since I last used it. It took less than an hour to create a project, import the code, and get it to build with all external dependencies.

But the free Express editions have odd missing features. I had to use notepad to add an icon to the project. Since Microsoft is desperate to get developer to target Windows Phone then it would be a good idea to have a good, complete toolchain. A cribbled free version and a confusing amount of full versions isn't very appealing (the Microsoft Store lists 8 editions from a $499 Professional to a $13,299 Ultimate).

And for some weird REASON THE MENU ITEMS ARE NOW ALL UPPERCASE. It looks horrible. My first thought was of old DOS editors but even the MSDOS edit command has normal capitalization. As does everything else in Windows 8 - across both desktop and metro apps. It's a small, but very obvious, detail.

Windows 8 was a much bigger problem than Visual Studio. I've never used it for anything serious before (past experience have been IE testing and dealing with the IRS). This might just be because I've been primarily on OS X and Linux for the last 15 years but I can't imagine ever going back to Windows in its current state. Everything feels very counterintuitive. Especially when you are constantly switching between metro and the desktop.

It's not a good sign if the OS is the obstacle when learning a new consumer operating system and professional IDE.