Tuesday, May 16, 2006

Experiences with Visual Studio Express

A programmers choice of development environment often ranks slightly higher than religion and politics in the list of things which they're fanatical about. Recently I needed to upgrade my version of Visual Studio.

Last November, Microsoft released Visual Studio Express. The name always confuses me, I always want to add .NET 8 2005 to the end, just to be clear. It's a trimmed down version of each of their Visual Studio packages. First of all they said that it was going to be free for a year, but they recently changed their minds and made it free all the time (announcement).

For professional games development, for Xbox[360] and tools, we use the professional edition of Visual C++. This costs around $500 per seat, and so for playing around at home I decided to try out the express edition.

Previous to Express, I was using Visual C++ Professional 6.0. There are lots of enhancements that they've done here and there which I knew would make things better, but I was also worried about dropping from professional to express. I've now made the switch, and the main things I've noticed are as follows:
  • First of all, it all feels very familiar to what I was used to with version 6.
  • While you're editing text, it does a little pre-processing of the code. Among other things, this allows it to grey out code which isn't going to compile. For example, code is in a "#if 0" block would be grey. Good.
  • When debugging, you can hold your mouse over a variable and a tooltip of the current value will pop up. If it's a pointer, it will let you drill down into the structure using the tool tip. Good.
  • When coding, you can hold your mouse over functions, variables, and likely other things, to get tool tips which tell you the type/definition. This is very cool as it saves right clicking and going to the definition. Good.
  • They've disabled source control integration in Express. This means you have to manually task switch to some other application to check things in/out of source control. Personally I have Perforce installed (it's free for under 2 users). I find the easiest way to check things in/out is to right click on the tab of the open source file and select "Open Containing Folder". This opens an explorer window with the appropriate file already selected. I then right click the selected file and use the Perforce context menu options to perform the operation. Also, due to the way that Perforce and VC work, if I'd accidentally started editing a source file which wasn't checked out, the check out operation wont stomp on my changes. I'd prefer proper source control integration, but my workaround is sufficient.
  • I'm not sure but I think that the DirectX plugins for debugging surfaces and renderstates don't work. I can't see them in VC but haven't looked into it. It would be a shame if these weren't present, as they really make development of rendering code easier.
Overall, I give VC++ Express two thumbs up and a cheeky wink. It's hobbled a bit, but still a really great tool for game development.

No comments: