2013-12-23, 03:01 PM
(This post was last modified: 2013-12-23, 03:16 PM by Holy_Diver.)
(2013-12-22, 07:02 PM)dmpdesign link Wrote: If you end up basically rewriting the whole engine, will you make a 64 bit version that would allow for use of the threading capabilities and memory etc? I mean its not as if SOM should really require it, but if you eventually get some zealous fan that wants to make something on the engine using more modern graphics it could help :)
64-bit doesn't really matter. x64 processors can run in 32-bit mode. And there is nothing much to be gained by not doing so. There are some minor benefits for multithreading since you can atomically lock 64bits at a time instead of 32. And likewise for parallel operations, usually over matrices and vectors you can shunt more memory. But 64 bit mainly just exists for more accurate floating point calculations (for science) and more memory at the driver level (32bits is more than enough address space for a multitask application.)
Games are normally effectively single-threaded. No mainstream game would risk being multi-threaded. SomEx will always be single threaded, and 32bit if it interacts with From's images. However the graphics can be on a separate thread from the main game loop. As can the sound and input. The new renderer is part of Somplayer.dll which is designed to be massively multi-threaded in a way that is really best described as experimental. In case the future lies in hundreds of CPUs working cooperatively. When SomEx.dll is built, it uses some preprocessor macros that makes the Somplayer.dll code behave as if it is single-threaded.
So you effectively have two game platforms, one conservative, and one experimental. The experimental version also includes editing tools, so that it should be able to edit the game in game. It's an all in one design. Any application can link to Somplayer.dll. It also includes editors for everything and an artificial intelligence API.
PS: These things have already been implemented. There is open source code at svn.swordofmoonlight.net.