# Unity Visual Studio 2012 Express won't support Win32 Projects

This topic is 2078 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

If you followed Microsoft's recent plans or tried Windows 8 + Visual Studio 2012 yourself, you might have noticed already:

Starting with Visual Studio 2012, Microsoft will no longer offer a free C++ compiler for traditional application development. The Express editions will build Metro applications only.

Visual Studio 2012 is pretty interesting because it includes C++11 thread support - something which I've been waiting for very much since it finally resolves the situation of having to decide between Boost.Threads, TBB or POCO for portable threading. Now Microsoft has put me in a situation where I either have to shell out $500 to get the Professional edition or drop Windows 7 and Windows XP from my target group. Dropping Windows 7 is out of the question, as I have no doubt that many people will not be switching to Windows 8 any time soon. What will you do?$500 for the Professional edition may be a reasonable price, but it's also a significant hurdle to collaborating with the Open Source community. Staying with Visual C++ 2010 Express means little to no C++11 features. That leaves Eclipse CDT + MingW and Code::Blocks + MingW which I'm currently checking out.

Opinions?

I'm not sure anyone can sway Microsoft's from their current path, but I've opened a ticket on Microsoft Connect that you can vote on: Support C++ Desktop Applications in Visual Studio 2012 Express

##### Share on other sites
There was a thread on this exact issue in the lounge a couple of days ago:
http://www.gamedev.net/topic/625210-visual-studio-11-express/

##### Share on other sites
Outch, I missed that. Thanks for the warning.

Let me formulate my question a bit tighter: What are you going to do about Visual Studio 2012? Buy? Stay with 2010? Switch to MinGW?

Personally, I find Metro interesting, so I want my homebrew games to run on Metro, too. So I will be using Visual Studio 2012 Express for that. But dropping support for Windows 7 is out of the question, so I have to decide what to use as my main development environment. I'm currently undecided between staying with Visual C++ 2010 Express and using Boost.Threads (so no C++11 for me) or switching to MingW (which means getting used to a whole new IDE, but also brings me a bit closer to targeting Android, I believe). Edited by Cygon

##### Share on other sites
Unless they radically change what they ship in the release version of Express vs the RC that's currently downloadable, enabling the IDE to build non-metro native projects is very simple.. Edited by adeyblue

##### Share on other sites
I'm a student, so if the past is any predictor of the future, I'll be using the 2012 Ultimate/Team edition for free. So personally, I'm not to worried about it.

##### Share on other sites
I'd be surprised if VS 2010 didn't receive an update to allow for new C++11 functionality. Edited by Alpha_ProgDes

##### Share on other sites

Unless they radically change what they ship in the release version of Express vs the RC that's currently downloadable, enabling the IDE to build non-metro native projects is very simple..

A-ha! Thank you for this little gem

If Visual C++ 2005 Express is any indication (you could compile to x64 by tricking the IDE, but in Visual C++ 2008 Express they blocked that hack completely) that means we're good for at least another 2-3 years. Edited by Cygon

##### Share on other sites
Umm... Visual C++ 2008 Express CAN compile to x64. I used it to compile the Maya plugin in my signature. I don't remember the procedure thought, but it was painless enough to be forgettable.

##### Share on other sites
Maybe I'm mixing something up here. I remember it being a hack at one time, then becoming impossible from within the IDE, then turning into a feature that's officially supported.

##### Share on other sites
As long as VS 2010 is supported (and it is) and we can still use engines such as XNA (which you can for now), I won't bother with VS 2012 unless I want to design Metro apps.

Honestly I'm learning Java anyway instead of XNA since it might not survive.

##### Share on other sites
Most of the debate seems to center around the idea of choosing a platform upon which to start a new development. I'm more worried about the fact that we, for example, have a very large codebase that is based upon Qt. I appreciate that Windows 8 will still allow this application to be deployed but I'm reading speculation about Windows 9 not allowing such an application to run, irrespective of the tool chain we use to create it.

My concerns about VS 201* are non-existent. But could we be seriously looking at a situation in a few years time where ALL legacy codebases that are based on Win32 technology will require porting to Metro to be viable on the latest Windows platform?

Thoughts? Edited by Aardvajk

##### Share on other sites
@CoffeeCoder: Yep, it seems that, sadly, XNA has become a dead end. No Metro or DX11 support announced, Shawn Hargreaves switching to another department and ports like MonoGame still being miles away from being able to shoulder something like SunBurn.

I returned to C++ because of its rich offering of 3D engines, physics and sound libraries. While .NET was an excellent environment with very few quirks and portability issues, I always felt a bit shut out from the world of famous projects like Ogre 3D, Bullet, FreeSL, etc.

Why did you pick Java? Are there any good game development tools around? The only game I know that uses Java is Minecraft Edited by Cygon

##### Share on other sites

Most of the debate seems to center around the idea of choosing a platform upon which to start a new development. I'm more worried about the fact that we, for example, have a very large codebase that is based upon Qt. I appreciate that Windows 8 will still allow this application to be deployed but I'm reading speculation about Windows 9 not allowing such an application to run, irrespective of the tool chain we use to create it.

My concerns about VS 201* are non-existent. But could we be seriously looking at a situation in a few years time where ALL legacy codebases that are based on Win32 technology will require porting to Metro to be viable on the latest Windows platform?

Thoughts?

while i haven't seen anything in that direction, obviously, metro/winrt is the future. they will expand on that to make it do everything that's needed over time (same thing happened on windows phone from 7 to 7.5, similar thing could be seen on ios). and yes, legacy will be exactly that: legacy. it will die out, get optional, and at some point, most likely be virtualized and "thrown away" in a virtual app. but slowly, as microsoft depends on that legacy.

as far as i've heard, more visual studio versions are on the way, so this might not be all there is, actually. for now, they just release what's really needed. RC for RC, kinda. we'll see.

but yes, .net and dx, i'll look into that for win8. slimdx ftw, i guess..

##### Share on other sites

The only game I know that uses Java is Minecraft

Minecraft, Runescape, Spiral Knights, Drakensang Online, and some other which's names I cannot remember.

It should be possible to use Visual Studio IDE with MinGW compiler using custom build tool.

##### Share on other sites
Why did you pick Java? Are there any good game development tools around? The only game I know that uses Java is Minecraft

I picked Java because of its vast multi-platform support, and the fact that it's similar to C# which I've been (read: had been) studying for several months. Minecraft was proof to me that Java could be used to make a good, fast-running 3D game, so I looked up some game libraries and found the Lightweight Java Game Library (LWJGL), which is actually what Minecraft was produced with. It's very easy to pick up on and so far I am loving it!

##### Share on other sites
as far as i've heard, more visual studio versions are on the way, so this might not be all there is, actually. for now, they just release what's really needed. RC for RC, kinda. we'll see.

The editions of Visual Studio 2012 that will be released have already been announced: Compare Editions. Even the estimated pricing has been revealed: Pricing Preview.
That their current plans for Express do not include desktop applications has been announced on the official Visual Studio blog: A look ahead at the Visual Studio 11 product lineup and platform support.

My concerns about VS 201* are non-existent. But could we be seriously looking at a situation in a few years time where ALL legacy codebases that are based on Win32 technology will require porting to Metro to be viable on the latest Windows platform?

Thoughts?

They will have to carry the desktop around for the foreseeable future. Office 2012 is a desktop application, too. Even ARM will have the desktop available (in contrast to earlier rumors), it will just not include an x86 emulator, so applications would have to be recompiled to run on ARM.

If Microsoft stays its path, I'm concerned for hobby software development in the long term -- an IDE isn't a good match for a sandboxed Metro app, so might we be doing our future development in a thin client Metro app that accesses some development server rented to us by Microsoft?

For the short term, my concern is what effect this will have on C++11 adoption. Soon GCC 4.6 will enter stable Linux distributions and everyone will have a free C++11 compiler and C++11 standard C++ library. But cross platform projects cannot use it because the Windows mainstream compiler doesn't support C++11. That's worrying. Edited by Cygon

##### Share on other sites

They will have to carry the desktop around for the foreseeable future. Office 2012 is a desktop application, too. Even ARM will have the desktop available (in contrast to earlier rumors), it will just not include an x86 emulator, so applications would have to be recompiled to run on ARM.

Note, however that it is of no use (unless something changed recently) to start porting your desktop apps to ARM.

All applications that are distributed for Windows 8/ARM will have to be distributed through their new app store - and the app store will not allow non-Metro apps.

Effectively, the only ones who will be able to distribute desktop apps for ARM are Microsoft themelves. Edited by wack

##### Share on other sites

For the short term, my concern is what effect this will have on C++11 adoption. Soon GCC 4.6 will enter stable Linux distributions and everyone will have a free C++11 compiler and C++11 standard C++ library. But cross platform projects cannot use it because the Windows mainstream compiler doesn't support C++11. That's worrying.

Interestingly, to me anyway, I'm currently developing a DirectX application using MinGW and happily linking to the standard DXSDK .lib files. Didn't know this was possible. But apparently is.

Now I know that I can use MinGW and QtCreator to develop all the same stuff I ever did with VS, I'm really not bothered by any of this on a personal level any more. I like VS Express but if it is going to become more restrictive then I'm quite happy to switch to free tools instead.

##### Share on other sites

[quote name='Cygon' timestamp='1338976935' post='4946701']
They will have to carry the desktop around for the foreseeable future. Office 2012 is a desktop application, too. Even ARM will have the desktop available (in contrast to earlier rumors), it will just not include an x86 emulator, so applications would have to be recompiled to run on ARM.

Note, however that it is of no use (unless something changed recently) to start porting your desktop apps to ARM.

All applications that are distributed for Windows 8/ARM will have to be distributed through their new app store - and the app store will not allow non-Metro apps.

Effectively, the only ones who will be able to distribute desktop apps for ARM are Microsoft themelves.
[/quote]

and even they only do it because some of the devisions aren't ready yet (but hard working on it). metro will be all in the future. i don't think windows 9 arm will have a desktop anymore. windows 9 x86 will. but maybe even more virtualized away?

i'd like for win32 apps to be configured "single desktop per app", and the app maximized. that would allow them to behave very metro-ish. and each could have it's own sandbox to not mess with the rest.

##### Share on other sites

Most of the debate seems to center around the idea of choosing a platform upon which to start a new development. I'm more worried about the fact that we, for example, have a very large codebase that is based upon Qt. I appreciate that Windows 8 will still allow this application to be deployed but I'm reading speculation about Windows 9 not allowing such an application to run, irrespective of the tool chain we use to create it.

My concerns about VS 201* are non-existent. But could we be seriously looking at a situation in a few years time where ALL legacy codebases that are based on Win32 technology will require porting to Metro to be viable on the latest Windows platform?

Thoughts?
Conceivably Qt could be ported to WinRT/Metro, to make it easier? Indeed, that would be a nice thing anyway, to be able to use Qt to write Windows Metro software, assuming that's something that is conceivably allowed.

Even if MS really think that everyone should be using full screen touch-only Metro applications (do they? I've yet to see anything from MS on this) (which I think is a terrible idea - see the Lounge thread for my views on that), traditionally they have bent over backwards to maintain backwards compatibility. They know that they benefit from the long term app-lock in. It would seem commercial suicide for them to both (a) suggest that everyone move to an input method/device form where currently they have small market share, and (b) cut off all their backwards compatibility, slashing their app support.

Incidentally, it's yet to be clarified as to whether it's possible to write WinRT applications that run in windowed mode - or is WinRT only able to be used with Metro? In the Lounge thread, I heard claims both ways. The question is irrelevant to the issue of VS Express (since we know it's _Metro_ only), but it is relevant to the idea of WinRT being "the future" - is WinRT simply a Win32 replacement that can do both windowed and Metro appliations? Or is MS really saying the future is this Metro-only interface?

They will have to carry the desktop around for the foreseeable future. Office 2012 is a desktop application, too. Even ARM will have the desktop available (in contrast to earlier rumors), it will just not include an x86 emulator, so applications would have to be recompiled to run on ARM.
This sounds promising - do you have a reference? (Note that the previous news I saw said that Office would be some kind of exception on ARM, so the ability to run it doesn't necessarily entail the ability to run ARM windowed apps in general - it would be good to have confirmation.)

If Microsoft stays its path, I'm concerned for hobby software development in the long term -- an IDE isn't a good match for a sandboxed Metro app, so might we be doing our future development in a thin client Metro app that accesses some development server rented to us by Microsoft?[/quote]*shudder* Indeed Every time a programmer claims that Metro should be the only available future on Windows, I'm left thinking, so what am I going to be programming with?

i'd like for win32 apps to be configured "single desktop per app", and the app maximized. that would allow them to behave very metro-ish. and each could have it's own sandbox to not mess with the rest.
That would be interesting - would make the similarity to the old AmigaOS "screens" even more so

Still, there are times when one does want interaction between applications, which is why I think most workspace systems haven't been tied to one-screen-per-application. Edited by mdwh

##### Share on other sites
Well, it looks that this is not going to be an "Express only" thing, I've downloaded Visual Studio Ultimate 2012 RC and it has no C++ support either, and i haven't found so far how to enable it or download the C++ part.

the weird thing is that a few weeks ago previews Visual Studio 11 Beta did had that C++ support (and it was quite fantastic to be honest).

##### Share on other sites
I suspect you've done it wrong because I've got the VS2012 RC installed, and only the Professional Edition at that, and I've got access to a full group of C++ project options including Win32 and console applications.

# We won! Microsoft has given in! Today, the Visual Studio blog announced that after disabling desktop application support in the Express editions since Visual Studio 11 Beta, the final Visual Studio 2012 Express release will be supporting desktop applications once again! To add a little bit to the confusion, there will now be two Express editions. One will be Visual Studio 2012 Express, just as we know it today, the other will have the long-winded name Visual Studio 2012 Express for Windows Desktop. Edited June 8, 2012 by Cygon

##### Share on other sites

Well, it looks that this is not going to be an "Express only" thing, I've downloaded Visual Studio Ultimate 2012 RC and it has no C++ support either, and i haven't found so far how to enable it or download the C++ part.

I've been doing all my (non-metro) C++ development for the previous week in Visual Studio 2012 Professional RC. It's all there, definitely.

# We won! Microsoft has given in!

Woah. No way!

I'd like to have been a fly-on-the-wall in Redmond for the discussions that led to this... Seriously, does anyone have any gossip?

• 9
• 12
• 10
• 10
• 11
• ### Similar Content

• Hello. I'm newby in Unity and just start learning basics of this engine. I want to create a game like StackJump (links are below). And now I wondering what features do I have to use to create such my game. Should I use Physics engine or I can move objects changing transform manually in Update().
If I should use Physics can you in several words direct me how can I implement and what I have to use. Just general info, no need for detailed description of developing process.

Game in PlayMarket
Video of the game
• By GytisDev
Hello,
without going into any details I am looking for any articles or blogs or advice about city building and RTS games in general. I tried to search for these on my own, but would like to see your input also. I want to make a very simple version of a game like Banished or Kingdoms and Castles,  where I would be able to place like two types of buildings, make farms and cut trees for resources while controlling a single worker. I have some problem understanding how these games works in the back-end: how various data can be stored about the map and objects, how grids works, implementing work system (like a little cube (human) walks to a tree and cuts it) and so on. I am also pretty confident in my programming capabilities for such a game. Sorry if I make any mistakes, English is not my native language.
• By Ovicior
Hey,
So I'm currently working on a rogue-like top-down game that features melee combat. Getting basic weapon stats like power, weight, and range is not a problem. I am, however, having a problem with coming up with a flexible and dynamic system to allow me to quickly create unique effects for the weapons. I want to essentially create a sort of API that is called when appropriate and gives whatever information is necessary (For example, I could opt to use methods called OnPlayerHit() or IfPlayerBleeding() to implement behavior for each weapon). The issue is, I've never actually made a system as flexible as this.
My current idea is to make a base abstract weapon class, and then have calls to all the methods when appropriate in there (OnPlayerHit() would be called whenever the player's health is subtracted from, for example). This would involve creating a sub-class for every weapon type and overriding each method to make sure the behavior works appropriately. This does not feel very efficient or clean at all. I was thinking of using interfaces to allow for the implementation of whatever "event" is needed (such as having an interface for OnPlayerAttack(), which would force the creation of a method that is called whenever the player attacks something).

Here's a couple unique weapon ideas I have:
Explosion sword: Create explosion in attack direction.
Cold sword: Chance to freeze enemies when they are hit.
Electric sword: On attack, electricity chains damage to nearby enemies.

I'm basically trying to create a sort of API that'll allow me to easily inherit from a base weapon class and add additional behaviors somehow. One thing to know is that I'm on Unity, and swapping the weapon object's weapon component whenever the weapon changes is not at all a good idea. I need some way to contain all this varying data in one Unity component that can contain a Weapon field to hold all this data. Any ideas?

I'm currently considering having a WeaponController class that can contain a Weapon class, which calls all the methods I use to create unique effects in the weapon (Such as OnPlayerAttack()) when appropriate.

• Hi fellow game devs,
First, I would like to apologize for the wall of text.
As you may notice I have been digging in vehicle simulation for some times now through my clutch question posts. And thanks to the generous help of you guys, especially @CombatWombat I have finished my clutch model (Really CombatWombat you deserve much more than a post upvote, I would buy you a drink if I could ha ha).
Now the final piece in my vehicle physic model is the differential. For now I have an open-differential model working quite well by just outputting torque 50-50 to left and right wheel. Now I would like to implement a Limited Slip Differential. I have very limited knowledge about LSD, and what I know about LSD is through readings on racer.nl documentation, watching Youtube videos, and playing around with games like Assetto Corsa and Project Cars. So this is what I understand so far:
- The LSD acts like an open-diff when there is no torque from engine applied to the input shaft of the diff. However, in clutch-type LSD there is still an amount of binding between the left and right wheel due to preload spring.
- When there is torque to the input shaft (on power and off power in 2 ways LSD), in ramp LSD, the ramp will push the clutch patch together, creating binding force. The amount of binding force depends on the amount of clutch patch and ramp angle, so the diff will not completely locked up and there is still difference in wheel speed between left and right wheel, but when the locking force is enough the diff will lock.
- There also something I'm not sure is the amount of torque ratio based on road resistance torque (rolling resistance I guess)., but since I cannot extract rolling resistance from the tire model I'm using (Unity wheelCollider), I think I would not use this approach. Instead I'm going to use the speed difference in left and right wheel, similar to torsen diff. Below is my rough model with the clutch type LSD:
speedDiff = leftWheelSpeed - rightWheelSpeed; //torque to differential input shaft. //first treat the diff as an open diff with equal torque to both wheels inputTorque = gearBoxTorque * 0.5f; //then modify torque to each wheel based on wheel speed difference //the difference in torque depends on speed difference, throttleInput (on/off power) //amount of locking force wanted at different amount of speed difference, //and preload force //torque to left wheel leftWheelTorque = inputTorque - (speedDiff * preLoadForce + lockingForce * throttleInput); //torque to right wheel rightWheelTorque = inputTorque + (speedDiff * preLoadForce + lockingForce * throttleInput); I'm putting throttle input in because from what I've read the amount of locking also depends on the amount of throttle input (harder throttle -> higher  torque input -> stronger locking). The model is nowhere near good, so please jump in and correct me.
Also I have a few questions:
- In torsen/geared LSD, is it correct that the diff actually never lock but only split torque based on bias ratio, which also based on speed difference between wheels? And does the bias only happen when the speed difference reaches the ratio (say 2:1 or 3:1) and below that it will act like an open diff, which basically like an open diff with an if statement to switch state?
- Is it correct that the amount of locking force in clutch LSD depends on amount of input torque? If so, what is the threshold of the input torque to "activate" the diff (start splitting torque)? How can I get the amount of torque bias ratio (in wheelTorque = inputTorque * biasRatio) based on the speed difference or rolling resistance at wheel?
- Is the speed at the input shaft of the diff always equals to the average speed of 2 wheels ie (left + right) / 2?