   Should i even release my games through VC++10?
  Ever since I started working with visual c++ 2010,I noticed that a lot of people can't run my programs. That's because they need some compiler dlls,and apparently compiling with /MT flag doesn't seem to fix it,nor does including the dlls in the executable folder.I found two solutions,which to be honest I don't like. The first solution is that the user has to install some package from Microsoft that includes everything that is needed. that's a bad solution,especially since I don't want to include the installation in my game's folder.The second solution i found was to make the installation of the game install the necessary files too. but my games are casual, I actually like them without an installation process.So is there any point releasing a game in visual c++ 2010? maybe i should work with visual C++ 2010 and make the final release in an older version like 2005?   
  Every program will always need the correct, up to date, C++ runtime to execute. I believe it's called the 'Microsoft Visual C++ 2010 Redistributable'. I may be off, as I haven't compiled any C++ apps in a few years now, but it's something close to that.Everyone who wants to run a new VS2010 compiled program will need to update their runtime (just like 2008, and 2005), it's no big deal. Just find it, and point your users to it.   ;Quote:Original post by DaaarkEvery program will always need the correct, up to date, C++ runtime to execute. I believe it's called the 'Microsoft Visual C++ 2010 Redistributable'. I may be off, as I haven't compiled any C++ apps in a few years now, but it's something close to that.Everyone who wants to run a new VS2010 compiled program will need to update their runtime (just like 2008, and 2005), it's no big deal. Just find it, and point your users to it.Yes true,but as a programmer it's my obligation to make such things as simple as possible,because some players are not computer experts like us,and sometimes they have hard time enough installing or making something work. And well,most windows users are more likely to have the visual c++ 2005 redist than the 2010 one.;  I too prefer games that don't need installation (and thus can be run on any device like USB sticks), don't need a lot of DLL's and just run when you double click.GCC statically compiles the C++ runtime library, your application will get bigger (~500kB) but then you don't have to get people to install things or download DLL's. That's why I don't really like XNA games ... it never 'just runs'.   ;Quote:Original post by Doctor Shinobibut my games are casual, I actually like them without an installation process.Surely if it's a casual game then it's far easier for the end user if you provide an installer? I find applications that are distributed as zipped binaries are a right pain in the proverbial, as you have to manually create the folder in Program Files and copy the files over then manually create the shortcut icon in the start menu (clicking through several UAC prompts as you go). An installer reduces that to a single UAC prompt and will usually offer to run the application when finished.That said, statically linking should fix the issue, though is not generally a very pleasant solution. Have you tried running the application with dependency walker on one of the afflicted machines?   ;Quote:Original post by benryvesQuote:Original post by Doctor Shinobibut my games are casual, I actually like them without an installation process.Surely if it's a casual game then it's far easier for the end user if you provide an installer? I find applications that are distributed as zipped binaries are a right pain in the proverbial, as you have to manually create the folder in Program Files and copy the files over then manually create the shortcut icon in the start menu (clicking through several UAC prompts as you go). An installer reduces that to a single UAC prompt and will usually offer to run the application when finished.That said, statically linking should fix the issue, though is not generally a very pleasant solution. Have you tried running the application with dependency walker on one of the afflicted machines?Not sure about you,but when I have games without installations i just dump their folder on the desktop. You don't even need it to be added to your start menu.And what's a dependency walker?   ;  It is really simple to integrate the required vcredist in the installer of the game.That's the way to go in my opinion. You can make it so that the user does not need to know anything about it.I've actually created a small helper application (with statically linked libs) which is first copied to a temporary folder when the installer starts. That application will try to load some required libraries and it also checks the installation state of the vcredist. It will give the installer a return code which the installer will use to determine whether some system-wide components, such as vcredist, need to be installed.In the case that no system-wide components need to be installed, the installer can continue without administrator privileges.In the case that system-wide components need to be installed and the installer wasn't started with administrator privileges, the installer will tell the user of this problem and simply instruct the user to start the installer with administrator privileges so that the installer can install the required system-wide components.In the case that system-wide components need to be installed and the installer was started with administrator privileges, the installer will silently install all the required components that were not found installed on the computer.There is also a command-line parameter for the installer so that the check can be by-passed in case there is some problem with it. That's just a trouble-shooting feature because I think the checks are very robust and it's unlikely there are going to be problems with it. It tries to dynamically load libraries and some libraries also provide a function to check that the version is OK and that is also used where available. For vcredist it simply checks the MSI install state and does no further checks.This way those who have all of the dependencies already installed don't need to start the installer with administrator privileges and the installation will be pretty quick. Those who don't, well the installer will tell them about it and requests administrator privileges. I think this is a good compromise.I do this for DirectX, OpenAL and Visual C++ (vcredist). So I have the required DirectX files, the OpenAL installer and the vcredist integrated into the installer of the application. The user need not to know anything about where to get them or how to install them.   ;Quote:Original post by benryvesQuote:Original post by Doctor Shinobibut my games are casual, I actually like them without an installation process.Surely if it's a casual game then it's far easier for the end user if you provide an installer? I find applications that are distributed as zipped binaries are a right pain in the proverbial, as you have to manually create the folder in Program Files and copy the files over then manually create the shortcut icon in the start menu (clicking through several UAC prompts as you go). An installer reduces that to a single UAC prompt and will usually offer to run the application when finished.That said, statically linking should fix the issue, though is not generally a very pleasant solution. Have you tried running the application with dependency walker on one of the afflicted machines?As Shinobi said, it's as easy as extracting to desktop / other place and you run it. No UAC. While when you add an installer, you DO get annoying UAC (though I turned it off), have to go through a lot of options, click Agree for the license, you have to choose a location where you won't stumble upon it, thus you need short-cuts and what not. It also often adds stuff to the registry, or to hidden settings directories in windows; making your files spread all across the hard drive following a non-central-unit file tree design. If only we could just extract it...wait that's what I proposed!I don't see why statically linking is "not generally a very pleasant solution". Except when you have X number of programs that use a library, or when you have a plug-in system, sure, DLL's can be great. But for most purposes, static linking is a perfectly pleasant solution.   ; Last time I checked, MSVC 2010 removed the side by side manifest requirements from the runtime libraries, so you can just copy the relevant DLLs into the application folder and it should just work.   ;Quote:Original post by DecriusAs Shinobi saidWow, it's the blind leading the blind. Excuse driven development is a bad paradigm. Learn to do a proper release.The root of all these easy shortcut threads is always fear of a little extra work, or making excuses to justify a lack of knowledge on how to properly do something.As for the XNA games 'never just running', you're aware that with a few clicks, and by following a few instructions, there is an IDE option that will build you a quick installer that will make sure the dependencies (all programs have dependencies) are in place, and if they aren't install them for the user, right?Does your entire machine run from a bunch of files sloppily dumped at C:\Users\xxx\Desktop? There is a proper structure where program files go, and where user data is saved.   