Hello guys I'm a new here.
I just found this thread (almost 1 month ago oh!) and I would like to add my five cents.
To make the engine to support multiple CPU the way is to make it fully multi threaded.
What it means? The program itself can run simultaneously functions so each thread can use different CPUs.
Goldsrc is a monolithic applications that calls functions in asynchronous way (calls a function and wait until it finishes).
Building a multithreaded engine is not a hard work. Only some tasks should be done synchronized.
Also this can be done building not a fully multi threaded but using subsystems (1 thread for physics, 1 thread for sound, etc) and a good inter process communication (IPC) should be implemented.
Regarding reverse engineering, isn't illegal if it doesn't break any license agreement (you don't modify the code).
Hooking / Modifying functions on the fly (in memory) isn't illegal too. You can see a lot of modules for goldsrc engine doing that.
And about machine code, of course can be done but it's 10 times or more harder but for hooking and detours, machine code should be used to warrant it's funtionality.
Personally I code for goldsrc (ofc in c++) and I do a lot of reverse engineering. Can't tell anything about source engine because I don't have any work done with that.
Goldsrc is powerful, it lacks of some physics and all studio models are just a prism for collision detection but anyway, it's still powerful.
I just found this thread (almost 1 month ago oh!) and I would like to add my five cents.
To make the engine to support multiple CPU the way is to make it fully multi threaded.
What it means? The program itself can run simultaneously functions so each thread can use different CPUs.
Goldsrc is a monolithic applications that calls functions in asynchronous way (calls a function and wait until it finishes).
Building a multithreaded engine is not a hard work. Only some tasks should be done synchronized.
Also this can be done building not a fully multi threaded but using subsystems (1 thread for physics, 1 thread for sound, etc) and a good inter process communication (IPC) should be implemented.
Regarding reverse engineering, isn't illegal if it doesn't break any license agreement (you don't modify the code).
Hooking / Modifying functions on the fly (in memory) isn't illegal too. You can see a lot of modules for goldsrc engine doing that.
And about machine code, of course can be done but it's 10 times or more harder but for hooking and detours, machine code should be used to warrant it's funtionality.
Personally I code for goldsrc (ofc in c++) and I do a lot of reverse engineering. Can't tell anything about source engine because I don't have any work done with that.
Goldsrc is powerful, it lacks of some physics and all studio models are just a prism for collision detection but anyway, it's still powerful.