That's good to hear! The whole ERSB/writing to folders issues have been a huge concern for me - I spent a good day just reading up on it.
How was the speed compared to XP? Most of your games are DX7 are they not?
I know there's another Vista thread, but it was hijacked into a DRM debate
So, from a technical standpoint, how are your games doing on Vista? I was very pleasantly surprised to find that all of my games worked just fine, even ones that wrote to the application's directory- which I thought was supposed to break it. Even with Limited User Accounts, it worked just like XP.
So for all the big deal people made, it seems like it's damn near the same thing as XP. There is a little warning that pops up when you run stuff, but that happens with every program, even the ones that come with XP. And you can still put an icon on the desktop when you install, so the ESRB thing seems to be a non-issue too.
Vista virtualizes writes to the application directory so they actually end up in the user's local folders (at least, I think that's the case).
Do your installers use a "Launch Game Now" checkbox on the final screen? I've heard that's where a lot of problems lie--the installer will ask to elevate privileges to administrator with the UAC dialog in order to install, so if you launch the game at the end it will actually launch the game as administrator too. This creates problems if you launch the game a second time as a user and it tries to change any files the game created while it was running with elevated privileges.
Teach Your Apps To Play Nicely With Windows Vista User Account Control (Problems During Installation section)
User Account Control for Game Developers
I couldn't see a difference in speed at all.
Similar stories were going around before XP was released, and that came to nothing as well.
I guess the hatemongering anti-Microsoft vultures need to have something to gossip about.
The virtualised application writes was the one thing I heard about Vista that I thought was a really positive step forward. I wasn't particularly bothered about the LUA thing since anyone who uses a Mac is familiar with this anyway. But the way Vista handles this for you just seems like a really good, smart idea.
A slave to the ideal
I hear directsound apps can have some problems (I don't know the extent). Sound libs like Audiere using Dsound may have problems for example so worth checking.
(This may be wrong as I can't confirm this myself).
Some people on BlitzBasic.com tested out Holiday Bonus (made in BlitzMax) and Easter Bonus (made in BlitzPlus) for me and they worked fine even though they create and write to ini, profile and high score files in the game folder!
However, they probably have UAC turned off as they are developers so I've asked them to turn it back on and do some specific tests where they change settings and complete levels and go out of the game and back in to see if the settings and unlocked levels have been retained.
I've also posted the info about the installer autolaunching (as mine do that) to see if there is a problem there.
Oberon have sent me an interesting doc about vista problems and solutions but I'm not sure if I'm allowed to post it. I'll ask them.
OK I got permission to post this doc that I got from Oberon, it's not that new but may prove useful. There is also an accompanying doc with some code samples:
So based on people testing my game and Retro64's testing it would seem that these aren't really issues at all. I'm confused...Top issues for Casual Games in Windows Vista
Update – Sep 20, 2006
Issue 1: Don’t write to the Program Files folder:
The number one issue Oberon has seen with games is that they tend write to the Program Files folder during execution. This is not allowed in the Vista environment. Microsoft does some behind-the-scenes-stuff to keep the games running okay, but there’s really no good reason for programmers to write to this folder anymore.
The primary reason games write to Program Files is for saved games. It’s not surprising, but zero of the games we’ve tested are 100% when it comes to saves.
The current preferred path to save games in is:
This is used by the Microsoft Games (Minesweeper, Chess, etc) prepackaged in Vista.
This alone is a fairly simple fix, but it actually presents a bigger problem…
Issue 2: Another reason to avoid writing to the Program Files folder:
When the game is played on a computer with multiple accounts, the users will not be able to see each other’s save data. What this means is that in order to share anything between user accounts (generally high scores, though there are other forms of cool interactivity) the shared data needs to be saved elsewhere.
The current preferred path to save shared game data in is:
It’s also VERY IMPORTANT that anything that gets stored in this path is set to have the proper Read/Write permissions! In XP, Oberon saw some issues arise where the files were written such that only the owner (user who initially installed the app) had full control over the file. This meant that other users could only read the file, not write to it.
Also keep in mind that writing this sort of information into the Registry is no longer a valid option, as it too is generally protected from writing outside of the current user’s sector.
Issue 3: Final reason to avoid writing to the Program Files folder:
Oberon Games has also seen a lot of writing to the Program Files folder is when the game “unpacks resources” on its first run. This is generally a good idea to make for a smaller download footprint, and then extract the resources once everything is installed. However, this can actually be a small disaster. In Windows Vista, the user doesn’t necessarily have write access to this folder. This can mean one of a few things will happen.
· The game will halt to request elevated permissions (which can get nasty if it’s running in full screen mode already).
· The game will write to the user’s Virtual Store. This means it will write a copy of these files to each user’s Virtual Store!
· The game will hang indefinitely.
The best solution to this problem is to do the unpacking during installation. Depending on who writes the installer (Oberon generally handles this for titles it distributes), this may be more or less of a hassle. Since installation normally happens with elevated permissions anyway, it’s a non-issue to write the data out. Alternatively, if it’s absolutely necessary to do the decompression during execution, the data could be placed in CSIDL_COMMON_APPDATA.
Issue 4: Include Bigger Icons
Windows Vista allows for much larger icons to be displayed. This is particularly important for the Games Explorer where the icons are allowed to be as large as 256x256. High resolution icons must be included in addition to the standard (16x16, 32x32, and 48x48) icons.
Issue 5: The Games Explorer
This seems to be more of an issue for publishers than for independent developers, but it’s worth mentioning. Getting a game to show up in the games explorer requires a few steps (outside the scope of this document.) What’s important is determining the right features to offer in the Games Explorer window. If a game has been rated (by ESRB or its analogs), the rating needs to be assigned to the shortcut, and there are lots of “right-click” shortcuts that show up (such as shortcutting to the Saved Games folder, game’s homepage, etc.)
On a related note, developers can also add command-line support for Saved Games so that the user can simply double-click a Saved Game in Windows to launch it. It’s not clear how frequently this feature will be used, but it’s something to consider.
Initial Draft, Aug 30, 2006, Christopher Casey, Oberon Media
Edited Sept 20, 2006, James Mayo, Oberon Media
Edited for Final submission, Sept 22, 2006, James Mayo, Oberon Media
But yeah it does seem to be odd - "don't write to Program Files, but if you do Vista will take care of it for you" ... so why worry? Anyway, I recently changed Gun Wing to write to CSIDL_COMMON_APPDATA anyway (at least on Win 2000 and above) so it should be okay.
For anyone using Java , have you found a good way to retrieve the
CSIDL_COMMON_APPDATA path and such? I haven't; that's why I had
to write this: http://code.google.com/p/winfoldersjava/
Oh and to stay on topic, has anyone tried Devastro on Vista?
Last edited by mot; 02-02-2007 at 03:28 AM.
I'm not crazy about the idea of using user directories for everything. It might make sense for user-individual files (such as player profiles), but it seems to me that un-packing resource files (e.g. on the fly during program execution) or doing other data/exe oriented things should stay in the programs own directory for cleanliness' sake. Oh well - I'm sure I'll start doing it with future programs myself, just to be safe (safe, until Microsoft changes the rules again with the next windows).
Can’t the installer just set the proper permissions on the game’s folder to allow all user read/write access to it? This seems to work in every test I have seen and I have never see anyone explain a case where this doesn’t work. This is what the Reflexive Arcade installer does for all 400+ games available there. It has worked than way for a long time to work better with LUA in XP and it seems to work just as well in Vista.
Would someone please explain to me what is wrong with writing to the “program Files” folder (actually the game’s folder which may happen to be installed in the “program files” folder) IF you add the proper ACL to the folder at install time.
Microsoft ideology is to scatter your files through a dozen different places. The underlying ideal seems to be the "virtualization" of the whole storage hardware.
But why bother? It's not like we are suddenly going to use photon-crystal technology or anything like that anyday soon. And even if we did, it wouldn't be a reason to use a dumbed-down organization for the files.
This ideology is also useful for the admin/limited user paradigm which is great for enterprises and offices but totally useless and irritating for a home usage. I hate to have to store my documents in a "my documents" folder that is itself scattered and hidden among several redundant subfolders on my HD. But most softwares save there by default, so I'm obliged to use it.
And from a programmer POV, yeah, it's a real PITA to have to write to "my_harmless_folder_for_the_dumb_user" or something like that instead of just dropping the files in the program directory that was created just for that purpose
I use the Inno installer, which gives two choices: Program files, or custom. If I avoid Program files, what exactly should I type?
Please forgive this newbie question!
More details if needed: my game has 4 files (engine, sound library, game data, and icon) which like to live in the same folder. During play, the user might create and update a simple ini file (to remember the screen resolution) and save games, and my game looks in the same folder for everything. That's it. No registry or other folders (though the Inno installer might do something behind my back, who knows?).
Last edited by tolworthy; 02-04-2007 at 04:10 AM. Reason: clarity
If it's possible, I'd recommend Reflexive require new games to work properly with XP and Vista LUAs, and only use the method of changing permissions for backward compatibility. It's a relatively simple change for the developers, and I think that the benefits are worth it.
With proper LUAs, I can have one computer where my son can play video games, my daughter can do her homework, and my wife can use Quicken and check her email, and I don't have to worry about them messing up each other's stuff. (Note: The children in this example are hypothetical.)
While it's annoying to have to do extra work that you didn't have to do before, it's really not all that hard, and there are real benefits to it.
If you deal with a hardcore or even semi-hardcore gaming audience maybe it's a better idea to just use a .zip for your game and forget the whole installation process. I don't see how double-clicking an .exe and navigating the warnings and directory options is any easier for users than right clicking and selecting "extract all".
BTW, I'm sure everyone has seen this Mac ad but it's by far the truest of them all:
Last edited by KNau; 02-06-2007 at 07:26 AM.
My drivers are located on a network drive. On XP, I was often doing :
1 popup - create a folder outside your the current user profile (like c:\temp)
2nd popup - copying a setup.exe into c:\temp
3rd popup - running the setup.exe
4th popup - with some applications saying that the setup might have failed.
5th popup to remove c:\temp
Did anybody else's Vista install default to an Administrator account?
I get warnings for stupid things (like changing font sizes,) but other things, like saving files in the root drive, I get nothing...
I think it's totally retarded that it does this when you are logged on as an Administrator. I know it's supposed to be "like a firewall", but why can't they just have a "don't ask me again" checkbox and maintain a whitelist of apps like all other firewalls do?