Basically, I asked the OBSE team if it was possible to have OBSE give Oblivion the ability to utilise multiple CPU cores and IanPatt replied that it may very well be possible. I then continued discussing this possibility with about half-a-dozen other forum members until Scruggs suggested that this discussion be moved out of the OBSE discussion thread.
The relevant parts of the discussion in the OBSE thread is quoted below. Please excuse me if the layout seems a bit messy. I had to use Code boxes because I got a "too many quotes" error when I tried posting this.
http://www.gamesas.com/bgsforums/index.php?s=&showtopic=1069884&view=findpost&p=15563264
Me again. I probably already know the answer to this question but I'll ask anyway.Is it possible and/or feasable to make OBSE patch Oblivion to be a true multi-core application?
http://www.gamesas.com/bgsforums/index.php?s=&showtopic=1069884&view=findpost&p=15564905
It actually might be possible to make some of the more CPU-intensive parts of the render setup multi-core, but making the game "true multi-core" like Lost Planet or something similar would be a several-month project *with* the source code.Either way this would be done via a plugin, not as part of the core.
http://www.gamesas.com/bgsforums/index.php?s=&showtopic=1069884&view=findpost&p=15565272
@IanPattWell, it's already more than I expected...but is it worthy enough to give someone a try?
http://www.gamesas.com/bgsforums/index.php?s=&showtopic=1069884&view=findpost&p=15565279
@IanpattThat was a surprise. I thought the answer would be no. Anyway, I think making the "more CPU-intensive parts of the render setup multi-core" would be adequate.Why would you prefer multi-core capabilities to be part of a plugin rather than part of the core though? Furthermore, I wonder who would be willing to make such a plugin. I might become inclined to do it myself except I don't know anything about creating OBSE plugins.@BenrahirConsidering the fact that Oblivion only really uses one core most of the time and the fact that running QTP with RAEVWD can cripple even the most powerful consumer-level PCs available today thanks to the first core of the CPU becoming overloaded, I would say that adding multi-core functionality to OBSE is a worthy objective.
That was a surprise. I thought the answer would be no. Anyway, I think making the "more CPU-intensive parts of the render setup multi-core" would be adequate.
You didn't understand what he said. He said that in order to make Oblivion "true multicore", you need to have the source code of the game, which is currently not avaliable. It's not what he "prefers", but the only option avaliable.
Considering the fact that Oblivion only really uses one core most of the time and the fact that running QTP with RAEVWD can cripple even the most powerful consumer-level PCs available today thanks to the first core of the CPU becoming overloaded, I would say that adding multi-core functionality to OBSE is a worthy objective.
Yes, I agree.
...is there any brave soul that is willing to make this?
http://www.gamesas.com/bgsforums/index.php?s=&showtopic=1069884&view=findpost&p=15565355
@BenrahirI'm sorry but I think it is [i]you[/i] who is mistaken. I am not asking Ianpatt to make "the game "true multi-core" like Lost Planet or something similar" (second part of his sentence). I am asking for him "to make some of the more CPU-intensive parts of the render setup multi-core" (first part of his sentence). I'm making the assumption that changing certain parts of the EXE (guessing mainly the parts concerning AI, scripting and polygon rendering) to use multiple cores is doable whereas going through the entire EXE and making every single part of it recognise multiple cores would be a enormous task (requiring months of work IF you have the source code).
http://www.gamesas.com/bgsforums/index.php?s=&showtopic=1069884&view=findpost&p=15565874
@JdeRauYou already use Oblivion Stutter Remover I presume because it improves performances on multicore system through implementing spincount for existing threads.As to changing parts of the code to be executed in a separate thread I frankly don't know if it's doable, changing a system that wasn't designed for multithreading into a multithreaded system can be quite tricky, even with the source code :P.Is there some place to discuss/read about all the info the obse team has about the Oblivion engine(IDA database? :?)
If Oblivion wasn't designed for multithreding, I would probably agree to that. However, the fact is that Oblivion does support multi-threading to begin with.
A few websites I have read mention it's support for multiple cores. Reading the INI file also reveals that there are some multi-threading variables present. The final piece of evidence though is this quote made by the moderater Dogsbody in the "Deadly Reflex 5" topic (most of the post is about RAM so I'll delete everything that's not relevant to this discussion):
And I've run Oblivion since it was rated "T" on overclocked rigs without stability problems. If your overclock is good and stable, Oblivion will be too.
So the problem we have for Oblivion is not that Oblivion doesn't do multi-core functions but that Oblivion does multi-core functions badly.
I'm not surprised at this though, quite frankly. Multi-core CPUs only became available to the home PC user in late-2005 while Oblivion was released in early-2006. There simply wasn't enough time to add proper multi-core support to the game before release. I just wish the release date was pushed forward so that it could be added.
Instead, it has ben left to the modding community to add this to the game. Earlier, IanPatt did mention that "It actually might be possible to make some of the more CPU-intensive parts of the render setup multi-core". I'm just trying to figure out why he wants such functionality as part of a plugin rather than as part of the OBSE EXE itself though?
http://www.gamesas.com/bgsforums/index.php?s=&showtopic=1069884&view=findpost&p=15566477
@JdeRauOBSE is meant to be an extension for scripting and for additional plugin, not be the additional plugin itself.=>Modular is better :).
I have no objection to having multi-core support in a plugin rather than the main EXE. The thing is that I assumed that everyone would want multi-core support in OBSE, hence there would be no need for everyone to download a seperate plugin. I suppose wanting this in the main EXE would mean that the task of adding multi-core support would fall to the OBSE team rather than a modder doing this.
The question still remains though, who would be willing to create this kind of plugin for OBSE? Considering Skyranger's work with OSR, my guess would be that he is probably the best person I know for the job.
I don't remember specifics, but several times in the last moths I said to myself while scripting: "Fortunately there is no multithread, so I don't have to worry about this".
In any case, definitely a job for a plugin. Might be worth moving the discussion to a different thread, esp. if you're trying to recruit someone to help.