hopper on 12/12/2005 at 00:19
Quote Posted by ZylonBane
And how is this possible? Because those applications use the
operating system's threading functions.
Quote Posted by ZylonBane
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.
ZB, am I being dense here, or are you making distinctions only Bill Clinton's lawyer would understand?
JACKofTrades on 12/12/2005 at 01:41
Quote Posted by sparhawk
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.
Examples please.
Domarius on 12/12/2005 at 02:22
Quote Posted by Luthien
..."it's impossible to write an engine that emulates the DarkEngine with 100% accuracy".
...
The correct reply to this is: nobody gives a shit...
Yep. It's been done before many times (Duke Nukem 3D -> jDuke, Doom Hexen Heretic -> Doomsday, and so on), and there's no reason why it can't happen to Thief as well.
Heck, I read the post mortem of Hexen, and Raven actually admits that they relied on hacks to get certain effects in the levels, and Doomsday still emulates it flawlessly. The Thief 1 and 2 missions have very rigid systems in place, so the chances of sucess should be even BETTER than Doomsday.
Quote Posted by ZylonBane
However, Thief also appears to implement a huge amount of self-adjusting optimization code to keep itself playable even on low-spec systems.
This is not anything special. Games have been interpolating movement between frames at low frame rates for years and years, and still do this. It's just about calculating how much time has passed between frames, and how far the object should have moved in that time, and consider any collisions along the way.
Quote Posted by ZylonBane
...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).
I totally understand this - but with my experience with DromEd, is its not that big of a deal - the OMs didn't actually rely on any weirdness, they pretty much did everything very strictly. it's only the FMs that are exploiting weird things in the DarkEngine to get cool things happening.
As far as the OMs go, the basic principals just have to be recreated, it doesn't matter how really. You walk into a zone, you trigger this, etc.
And as for the FMs, its a matter of continually working on the program and experimenting with different FMs to support the features the FMs are using.
LOL - the (
http://www.ttlg.com/forums/showthread.php?t=55335&highlight=mind+master) Mind Master thing you posted is the extreme of this!! Hardly likely this is the norm for Thief missions :)
It's the same with all the other engine re-makes and emulators. Some emulators actually have built in hacks just to support one specific game. No one cares, it works. Eg. EarthWorm Jim has a very unique sound system - so the author of ZSNES put in support for that game (and only really this game was the big exception) directly into the emulator,so that the sounds would play properly.
ZylonBane on 12/12/2005 at 03:20
Quote Posted by Domarius
Yep. It's been done before many times (Duke Nukem 3D -> jDuke, Doom Hexen Heretic -> Doomsday, and so on), and there's no reason why it can't happen to Thief as well.
Those are bad examples, because they're all source ports. We don't have that luxury with Thief, sadly.
Even if they weren't source ports, Thief's AI is astronomically more complex than the "move toward player and shoot" AI in those type of games. If they screw it up a little, it's doubtful anyone would care or even notice.
ascottk on 12/12/2005 at 03:33
I remember one duke 3d version that worked before the source opened.
Domarius on 12/12/2005 at 03:44
But I think the main reasin they needed the source for those was for the renderer. Sector based rendering is a very strange and unique concept.
Thief (like quake) was the first true 3D game, where there are no wierd rules, its just normal 3D space (in comparison to sector based rendering which is actually 2D maths with some tricks to make it stretch into 3D). So we can use any renderer. What I'm saying is that most of the work on those FPS games was in getting the game to render properly.
The main work for Thief is interpreting the maps properly. Game logic is not nearly as complex. Like I said, its just triggering things when they enter a zone, etc.
sparhawk on 12/12/2005 at 10:57
Quote Posted by ZylonBane
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?
I never was maintaing that position. :) My notion abuot using threads came from 'simultanously' not from systems. I never encountered anyone calling a particular modul 'system' but that doesn't mean that I automatically associate it with a seperate thread or process. It doesn't really matter wether you call it i.e. Physics System, Physics Engine or Physics Module, because these terms just indicate a well defined interface exists and is not just mingled in with the rest of the code, but obviously it doesn't define wether this engine runs on it's own or in the context of another thread or process. So I guess we have cleared this now. :)
sparhawk on 12/12/2005 at 12:02
Quote Posted by JACKofTrades
Examples please.
You don't really think that this code still is around as I don't even have any DOS box anymore for a long time. I remember that there were some libraries for just that, which used to work with TurboPascal and Borland C at that time.
The implementation of simple multitasking is pretty simple though. If you want I can tell how it is done. In fact the complexity of programing multithreading is not because the contextswitching is the hard stuff, the big problem is for the applications to properly behave and synchronize. We are not talking about swapping though, because this adds an additional layer of problems. The contextswitch is pretty easy and I already implemented this on the C64 back then to see if this works.
Luthien on 12/12/2005 at 15:17
I'm still puzzled what the origin and definition of multitasking, multithreading, multiprocessing, multi-system'ing and multi-blahblah'ing have to do with anything. :confused:
I just hope that one day a free replacement for thief.exe becomes reality.
--
Linux is obsolete
(Andrew Tanenbaum)
New Horizon on 12/12/2005 at 15:41
Quote Posted by Luthien
I'm still puzzled what the origin and definition of multitasking, multithreading or multiprocessing have to do with anything. :confused:
I just hope that one day a free replacement for thief.exe becomes reality.
I still think a massive campaign to have Eidos release the source code would be best. Other companies do it...why is Eidos so hesitant and greedy?