Quake 2 Port – Visual Studio v9.0 Beta 2 Using Managed Extensions for C++
Posted by gregd1024 on November 18, 2007
I ported Quake 2 source code to C++ .NET using Visual Studio 9.0 Beta 2 with Managed Extensions 2005 (i.e. compiles without the “/clr:oldSyntax” option). It is a derivative from Vertigo Software’s port which used Visual Studio 2003 and the old Managed Extensions framework. The old framework is no longer supported by Microsoft but you can get things to compile via the “/clr:oldSyntax” compiler option. Under the current framework all keywords have changed, destructors and finalizers work differently, and a slew of other things have been modified (for details see: Managed Extensions for C++ Syntax Upgrade Checklist). So I thought it would be cool to take Vertigo’s version and make it current since Microsoft is removing old syntax support (no more “/clr:oldSyntax” option) from the next version of Visual Studio (effectively forcing every company and individual who has code written the old way to do a port). While that may not seem like a big deal (i.e. I thought this project was going to be a piece of cake), trust me, it’s a big pain in the ass. I probably fixed about 2,000 to 2,500 compiler errors (don’t know because the maximum that’s displayed is 100 to 200 before the compiler can’t recover) and had to weed out over 4,000 warnings.
Anyway, I’m still writing the details on this article, so come back in a couple days and I’ll have the code and executable posted.