• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
  • entries
  • comments
  • views

What the @#$% is wrong with Microsoft

Sign in to follow this  
Followers 0


Have you seen the new UI for the next version of Visual Studio 11? No? Go take a look, then come back.

Terrible isn't it? Makes you wonder just what the heck they were thinking when they were designing the UI.

The thing is, its not that they had a bad idea. Cleaning up the UI, making it more user friendly and removing a lot of the wasted space are all things that I can appreciate and support, it's the removal of all the colors and other similar indicators that I object to. Things like tabs no longer having separators between them, thus not allowing you to easily distinguish between where one inactive tab ends and another inactive tab starts.

But before we get into that, lets go into a little Visual Studio history...

Visual C++ 6

This was perhaps the version of Visual Studio (then called Visual C++, since they hadn't integrated the UIs for Visual Basic and Visual C++ together) that haunts them still. It is not that Visual C++ 6 was a bad product, quite the opposite. It was a great product that brought C++ to a whole generation of people. But it wasn't quite the C++ most other people were used to.

Visual C++ 6 came out in 1997, just one year before the C++ standard was finalized. During those intervening months several changes to the C++ standard drafts occurred which altered the C++ language in ways that Visual C++ 6 was incompatible with. This ended up producing a compiler with two rather glaring issues (amongst many others) that we can still see the effects of today.

For Loop Scoping

You might have seen this particular snippet of code somewhere and wondered what the purpose was:
#define for if(0) {} else for
Well, the purpose was to fix an issue in Visual C++ 6, specifically that, given the following piece of code:

for(int i = 0; i < 10; ++i)
std::cout<for(i = 0; i < 10; ++i)

In Visual C++ 6 this is valid code, because the first for loop introduces the index variable into the scope that houses the for loop, rather than restricting it to the body of the for loop. However, in the C++ standard, the decision was made that the variables introduced in the for loop declaration would be scoped to the body of the for loop. The aforementioned macro fixed this issue in Visual C++ 6, by setting the outer scope of the for loop to the body of the else statement, which its self represents a scope.

The C++ Standard Library

The other major issue Visual C++ 6 had was in its standard library. Which was terrible. It was buggy, only partly complete, and had a bunch of extra headers that were not part of C++, iostream.h for instance. The result was that programmers, who learned and grew up on VC++6, grew to fear the standard library. This was later solved through the introduction of STLPort, but that didn't really solve the issue, as you had to actually download and setup STLPort before you could use it. The result was a whole generation of programmers who thing the standard library is a buggy, chunky, and slow set of libraries. None of which is actually true in todays world.

Visual Studio 2003

This came out nearly six years after VC++6, and was a giant leap forward for the Windows development world. While the open source world had GCC, which had continued to mature, VC++6 had remained pretty much stagnant through its entire six-year life span.

Visual Studio 2003 introduced a whole new version of the standard library, which was both significantly more complete and a lot less buggy. You no longer needed to install STLPort just to have a decent standard library that would work. It also fixed the for loop scoping issue, while maintaining a compiler flag to allow VC++6 code that relied on the scoping bug to continue building (albeit with warnings).

VS2003 also had several other compiler enhancements, which allowed you to actually reliably use template meta-programming in your code. Something VC++6 had always had issues with. It wasn't perfect, but it was a giant leap forward for Microsoft.

Visual Studio 2005 and 2008

Visual Studio ended up on a much shorter release schedule than it had been before, and as such its improvement was accelerated. Visual Studio 2005 and 2008 introduced compilers that were significantly more standards compliant and powerful, along with support for newer instruction sets (SSE3) and optimization techniques (POGO).

Visual Studio 2008 also came with an implementation of some of the C++ TR1 headers, such as unordered_map. It also had compiler intrinsics for the use of type traits.

Visual Studio 2010

Visual Studio 2010 was a leap forward, and backward, at the same time. It introduced preliminary support for C++11 features, such as decltype, lambdas, and auto. It came with a brand new text editor and parsing system, which allowed it to parse your C++ code in real time and provide diagnostics without compiling. However, at the same time, it ended up being significantly slower. The text editor was chunky and even today you can still out type it in large projects.

But things were looking good for it, with the introduction of C++11 features, it showed that Microsoft understood the desire of C++ programmers to be able to focus on modern features of C++ to write safe fast C++ code.

Visual Studio 11

As is Microsoft's habit, they've opted to rebrand Visual Studio again, going back to using the version number instead of the year. Exactly why this is, who knows.

Initially, from a C++ viewpoint, VS11 looked great. Herb Sutter, who sits on the C++ standard committee, was an architect on it. Microsoft was hyping up the C++ renaissance, and how VS11 was going to provide a whole new world of C++. Basically, tings were looking good.

Then they released this post, which showed how much of C++11 they were actually implementing. Furthermore, the developer preview focused mainly on a "new" version of C++ they were showcasing, specifically C++/CX. Exactly where was this C++ revolution, the C++ programmers asked, and the response from Microsoft was, to paraphrase... "If you wanted more C++ support, you should have said so."

From a customer relation's perspective, that was a terrible mistake. The backlash was quite substantial, as you can see from the comments on that post. The assumption had been, based on Microsoft's touting of a C++ renaissance, that they were actually focusing on C++11. Not some bastardized version of C++/CLI.

That spawned a couple of petitions, such as these two on the Visual Studio feature request site. Both of which I strongly suggest you vote for:
Speed up work on VC++
Support C++11 features

Then they recently released a nice little blog post detailing all the fancy changes they've made to the UI. Oh boy.

If you look at the changes then a few major things will be apparent: Firstly, they've removed pretty much ALL COLOR from the UI. Which is terrible, because its hard to tell where one thing ends and another starts. Secondly, for all their claims about "reclaiming wasted space", this pair of screenshots pretty much says it all:
Yep, sure saved a bunch of wasted space there now didn't we. Oh, wait.

Then we get to the things that really start to tick me off, they've added a quick search for visual studio commands. "Sounds great," you say, "no more ctrl+f and then search my source code and then find the search window and look through it... wait, quick search for visual studio commands? What the FUCK?" Indeed:
and it really only goes downhill from there: Notice on the left, you can't really tell where one inactive tab ends and the other starts. Also notice that the names of the tabs are all upper case, because, you know, we've learned that people can read mostly uppercase words very easily. Oh, wait. No we haven't. In fact there are whole studies on how mixed casing helps reading comprehension.

Then you get to something like the source navigation pane (the drop downs right above the source file):
Look at that, you can't even tell if its a class, a structure, a namespace anymore without staring at the icon going "wait..what the hell is that?" for a second. Whereas before it was a simple matter of identifying the color locality. Worse yet, the class viewer is most likely the same, which means you can't tell a method from a field from a property from a class from a structure from a namespace WITHOUT STARING AT THE ICON, since there's no COLOR CUES (hint: field was light blue, method was magenta, class had lines between squares, structure was just three squares).

Sign in to follow this  
Followers 0


Yea, I looked online : [url="http://www.theverge.com/2012/2/24/2821104/windows-server-8-beta-visual-studio-11-february-29"]http://www.theverge.com/2012/2/24/2821104/windows-server-8-beta-visual-studio-11-february-29[/url]

I refuse to use that product if it's going to look dull like that! What the heck happened to color? What are we reverting back to the silent movie era as well?

I'm happy with Ctrl + F, that quick search looks like garbage and waste of space.

Share this comment

Link to comment
Its like some wierd cross between an apple and metro UI... which is odd, since both supported color, metro more-so. It looks like they are using color to show focus and not show differentiation, but they've forgot to shade things enough to allow unfocused differentiation... oh well... perhaps if we bark loud enough they will fix that...

Though i will note that source-tabs on the 2010 editor had no unfocused differentiation either (at least in the C# editor).

Share this comment

Link to comment
Great summary and I agree that this is a bizarre direction for MS to take on VS. A couple of years ago I ended up moving away from large IDEs like MSVS, but MSVS is generally a good product and if I had to develop C++ on windows, I would certainly use it. But when I saw this news I have to confess that I felt a sense of relief because I know that if I were using MSVS as my primary tool, as so many developers do, I would feel really betrayed. Changing the UI is fine, but a change of this magnitude makes me feel like there was no developer advocate who could applies the brakes to such a radical overhaul. And it looks really ugly to boot (like motif or an early silicon graphics theme).

Share this comment

Link to comment
It's like everything they have learnt about HCI has been thrown in a pit and burnt... I've seen better designs from first year uni students using VB :|

Share this comment

Link to comment
It's almost like Microsoft employees have a secret hatred of the company and want to destroy it from the inside out....

Share this comment

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now