JACKofTrades on 11/12/2005 at 15:38
Quote Posted by ZylonBane
So the closest a single-core system can come to simultaneity is to do things so quickly that they APPEAR to be happening simultaneously. Multithreading is only one way to do this. Another way, a way that's as old as gaming itself, is to just call a whole bunch of subroutines (each subroutine handling a particular game SYSTEM) from a main loop.
This appears to be what Thief does. However, Thief also appears to implement a huge amount of self-adjusting optimization code to keep itself playable even on low-spec systems. This results in non-deterministic engine behavior based on CPU speed, graphics card speed, and the position of the Moon. For the canonical example of this, see Komag's (
http://www.ttlg.com/forums/showthread.php?t=55335&highlight=mind+master) Mind Master.
I agree with this 100% and perhaps this thread might not have derailed had he mentioned this in his earlier posts.
@ZB:
As you have pointed out to me more than once, we're not mind readers. :cool:
ZylonBane on 11/12/2005 at 15:53
Quote Posted by hopper
If ZB had cared to explain why he thinks sparhawk is wrong (referring to his last post here), it might have been interesting, too.
I did't explain because it was so screamingly self-evident. But okay, for the slow kids--
Sparhawk denied that multithreading is a convenience provided by the operating system, then says that multithreaded apps can automatically take advantage of a second CPU.
And how is this possible? Because those applications use the
operating system's threading functions.
If anyone else really cares about this whole multithreading thing, there is an excellent primer on the subject (
http://www.techworld.com/applications/features/index.cfm?featureID=336) HERE. Note that "process" is the word Sparkhawk and Ass seem to keep confusing with "system".
New Horizon on 11/12/2005 at 17:04
Hmmm, how about this threads gets back on topic?
JACKofTrades on 11/12/2005 at 17:42
Nah, it's more interesting this way.
sparhawk on 11/12/2005 at 21:00
Quote Posted by ZylonBane
Sparhawk denied that multithreading is a convenience provided by the operating system, then says that multithreaded apps can automatically take advantage of a second CPU.
Apparenlty you don't know much about multithreading beyond what you read in the last few hours to make an appearance of knowing about it. an application that is REALLY multithreaded can do multiple things at the same time. If the hardware has one CPU then oif course this is not true, and the instruction flow of the application is pretty similar as if it were not multithreaded at all. However, at the moment you add at least one additional CPU to that system, an application that is really multithreaded will start to do real simultanous processing, while an application that is not written for multithreadedness will run the same as before.
Quote:
And how is this possible? Because those applications use the
operating system's threading functions.
You don't need operating system support. I can easily write my own multithreading myself, and I have done so when there was no Windows around and programs run under DOS, where not multithreading was built into the oparting system. That now the operating system supports it is a convenience, but no requirement to make an application do multithreading.
The article doesn't tell anything new to me, and I'm well aware what a process is and what a thread is. Are you?
ZylonBane on 11/12/2005 at 21:22
Quote Posted by sparhawk
an application that is REALLY multithreaded can do multiple things at the same time.
I know that. I never said you couldn't. I was not disagreeing with that part of your post. That's why, in previous posts, I've specifically stated "single-core" when saying a CPU can only do one thing at a time.
Quote:
You don't need operating system support.
And I know that too. That's exactly why I said multithreading is a "convenience" provided by the operating system. In that, it's "convenient" to have, but not necessary. Obviously when you dispense with the operating system's help you can implement whatever CPU-molesting scheme you want.
Quote:
The article doesn't tell anything new to me
That link was specifically addressed to "anyone", not just you.
So are you still clinging to your position that anytime anyone uses the term "system" in a computer science context, they're talking about a thread?
Luthien on 11/12/2005 at 22:03
Wow, you people seem to have problems that I never imagined possible.
The original statement was "it's impossible to write an engine that emulates the DarkEngine with 100% accuracy". This is actually a void statement as any software that behaves exactly like the DarkEngine is just a copy of the DarkEngine (whatever the definition of the DarkEngine may be).
The correct reply to this is: nobody gives a shit (it is even undesirable to have a perfect emulation as this would rule out running in 32 bit mode or high resolutions). Many emulators of machines like the C64, Amiga and other old machines have proven that a group of dedicated volunteers can do amazing things.
If an engine can be written that runs the official campaings while not emulating some of the weird bugs (rope rocketing, SHAS, door/ai/...-jumping, elevatoring), many people will be happy, as some future version of windoze will undoubtedly stop to run the T1 and T2 games (it's already difficult to make them run on XP). If that engine eventually even emulates these bugs I and maybe a couple of other freaks would be delighted. If that engine can run the thief games on Unix, I'll mark the day in my calendar as this means that windoze will be deleted from my hard disk forever :)
Of course suggesting people who would make such an effort are just idiots who can not see the one true light is counter-productive.
Ajare on 11/12/2005 at 22:16
I love it when people can't let something lie, and just have to have the last word, because what the other person said was only 99% accurate.
ZylonBane on 11/12/2005 at 22:28
Quote Posted by Luthien
The original statement was "it's impossible to write an engine that emulates the DarkEngine with 100% accuracy". This is actually a void statement as any software that behaves exactly like the DarkEngine is just a copy of the DarkEngine (whatever the definition of the DarkEngine may be).
Good god, now you're doing it too.
My original point was that the Dark Engine can be exceptionally flaky in how it runs a mission, and because of this most missions have been written around that flakiness, in many cases depending on it in order to run correctly. So a reproduction of the Thief engine would have to implement this flakiness in order to preserve backward compatibility (which would be its entire reason for existing).
Gestalt on 11/12/2005 at 23:37
The one example you gave is a peculiarity that would be undesirable to emulate anyways. Mind Master didn't rely on the engine messing up on slow machines, that was something that broke it. It's a quirk of the Dark Engine, yes, but one that it would be preferable to eliminate.