Game maker is built to only run on a single thread. This means that at most, a game or application will be using 100% of a single cpu - in your case one of eight. There's no simple way around this. In fact, the easiest way to deal with this is to write the server in a language that has good support for threading.
Actually there is a way to work around it, since you can use a multi-threaded dll (Theres already one for GM).
So you can execute a for loop in a different thread so the rest of the game isn't paused or freezed while the for loop is running.
I didn't say there's no way around the single thread limitation, I said there's no simple way. There is indeed a dll for threading which may or may not work with the latest version, and definitely won't work outside of windows. And you can indeed put a blocking loop outside the main thread with it. So what? If you ever try to use it for anything less trivial than doing IO, you will very quickly find that things explode. You want to separate step and draw events? Nope, can't do that without complex synchronisation. You want to step multiple objects at the same time on different threads? Nope, can't do that without even more complex synchronisation. You want to put some step code in a separate thread? Nope, have to wait for that call to finish before continuing with processing other objects or things will explode.
Gmthreads doesn't give you any tools to deal with these problems; which brings us back to my original point. The easiest way to do what OP wants is to write the server in a language that is actually designed with these problems in mind, rather than trying to use an unmaintained dll that uses undocumented behaviour to provide limited functionality useful in a small number of cases.



Find content
Not Telling
