2010-12-14, 02:35 AM
Well I said before it was very possible I'd left a file or something out, but I did not think the file would be so obvious. It's easy to forget about that dinky project.dat file, but as a Som vet you probably could've figured that one out yourself if you'd stopped to think about it.
A number of very good things came out of this interlude anyway, so it was not all for naught. I've found some bugs, and thought about some nooks and crannies of the execution space-time-continuum or whatever which I'd previously overlooked or taken for granted.
I don't think Tom is involved enough to bother trying out this version. Unless you just can't wait, he'd probably be better off waiting until I have a public release ready. I thought I'd be able to crank this stuff out easily in a months time, but once I got started and the nitpicking began I've probably added at least 10 major features since then and might have 10 more before things are ready.
I added some code that pops up a message box when there is a file accessed which does not exist. It only fields the ANSI version of the file API which Som mostly uses (Ex uses Unicode) almost exclusively. I'd like to have it do this by default, but it will probably have to be an extension, because with Trismegistus there are like a few files missing when the game starts and maybe up to 10 on the first level. I don't know if any of them represent bugs in the game, but it's a good tool anyway for figuring out what files (by name) are missing from your project after you build it.
I also noticed, because the internationalization library also uses the ANSI API, the locale switching code was not working correctly. Turned out some assumptions (which are not documented) that I'd made had turned out to be wrong...
https://blogs.msdn.com/b/michkap/archive...ageIndex=2
I'd figured LOCALE_USER_DEFAULT was the default language (locale) chosen in the control panel, and LOCALE_SYSTEM_DEFAULT was the native locale of your copy of Windows... like English US for a copy of Windows purchased at a US retail outlet. But turns out anyway (see link) that wasn't even close. The names of course make no sense (thanks MS)
Anyway, I'm curious whether or not people are generally able to play this version without your computer coming to a crawl. I have a feeling for a while anyway the Ex versions might require fairly beefy gaming setups to play. We could also replace the non-Ex downloads with Ex enabled builds which should offer some basic usability stuff like a window etc, but incur no additional performance overhead. A tweaking guide will also probably be in order until I can work out some way to give people multiple quality levels. That will require at the minimum I suspect setting up a console window.
Of course I suspect 90% of the performance overhead just comes from every single triangle being sent to the graphics hardware every single frame... versus uploading them once. The transport of the data actually takes a lot longer than rendering it, much less preparing it, which Som does from scratch more or less every time it draws something. So anyway, once Ex is in a better position to correct this kind of behavior more and more more or less entirely, performance will become pretty much a non issue, short of deploying really spectacular effects.
UPDATE: I decided to make the missing file dialog opt out... do_missing_file_dialog_ok=yes in the Output section disables it. Hopefully that will lead to better games. The missing files will still be recorded in the console (when that's ready) if the message box is disabled. Will still handle important files like Project.dat individually asap.
A number of very good things came out of this interlude anyway, so it was not all for naught. I've found some bugs, and thought about some nooks and crannies of the execution space-time-continuum or whatever which I'd previously overlooked or taken for granted.
I don't think Tom is involved enough to bother trying out this version. Unless you just can't wait, he'd probably be better off waiting until I have a public release ready. I thought I'd be able to crank this stuff out easily in a months time, but once I got started and the nitpicking began I've probably added at least 10 major features since then and might have 10 more before things are ready.
I added some code that pops up a message box when there is a file accessed which does not exist. It only fields the ANSI version of the file API which Som mostly uses (Ex uses Unicode) almost exclusively. I'd like to have it do this by default, but it will probably have to be an extension, because with Trismegistus there are like a few files missing when the game starts and maybe up to 10 on the first level. I don't know if any of them represent bugs in the game, but it's a good tool anyway for figuring out what files (by name) are missing from your project after you build it.
I also noticed, because the internationalization library also uses the ANSI API, the locale switching code was not working correctly. Turned out some assumptions (which are not documented) that I'd made had turned out to be wrong...
https://blogs.msdn.com/b/michkap/archive...ageIndex=2
I'd figured LOCALE_USER_DEFAULT was the default language (locale) chosen in the control panel, and LOCALE_SYSTEM_DEFAULT was the native locale of your copy of Windows... like English US for a copy of Windows purchased at a US retail outlet. But turns out anyway (see link) that wasn't even close. The names of course make no sense (thanks MS)
Anyway, I'm curious whether or not people are generally able to play this version without your computer coming to a crawl. I have a feeling for a while anyway the Ex versions might require fairly beefy gaming setups to play. We could also replace the non-Ex downloads with Ex enabled builds which should offer some basic usability stuff like a window etc, but incur no additional performance overhead. A tweaking guide will also probably be in order until I can work out some way to give people multiple quality levels. That will require at the minimum I suspect setting up a console window.
Of course I suspect 90% of the performance overhead just comes from every single triangle being sent to the graphics hardware every single frame... versus uploading them once. The transport of the data actually takes a lot longer than rendering it, much less preparing it, which Som does from scratch more or less every time it draws something. So anyway, once Ex is in a better position to correct this kind of behavior more and more more or less entirely, performance will become pretty much a non issue, short of deploying really spectacular effects.
UPDATE: I decided to make the missing file dialog opt out... do_missing_file_dialog_ok=yes in the Output section disables it. Hopefully that will lead to better games. The missing files will still be recorded in the console (when that's ready) if the message box is disabled. Will still handle important files like Project.dat individually asap.