Multi-threading is probably something Zack will not be able to implement, since the game is built using Game Maker Studio. The GMS people would have to implement support for it, and the chances are somewhere between not likely and not a chance.
You posted a link to an article about lists vs. arrays in Game Maker in the shoutbox, right? I read that, and I do believe that’s the primary performance issue the game has. It explains the constant decrease in performance, and the slight temporary boost from reloading(clean, fresh loaded lists).
Note: This all is based on the assumption that lists are the primary data structure being used in Siralim.
Lists are generally versatile data containers, allowing for quick and easy insertion and removal of items, but they have certain limitations when it comes to performance, primarily involving random access. Parts of an individual list can be spread throughout the memory in chunks. To find a specific item in such a list(when you don’t already have a reference to its location) requires traversing each item and reading an attached pointer to the next item, over and over until it’s found. This can quickly become a huge overhead as the list grows bigger, as not only does this require extra cou effort in general, it also limits the cpu’s ability to read ahead and cache data.
Use of arrays would alleviate some of these issues. Arrays are contiguous blocks of memory though, and have to be allocated ahead of time. Either hard limits on items, stables creatures, etc. would be required, or… resizing would be required, which involves making a whole new array that’s bigger, and then copying the old one into it. This would cause rsther long lags on occasion. And changing things would take a lot of work. But, it would lead to an overall performance boost.
TL;DR; lists r slow n easy, get slower n slower. arrays r hard but faster, take much work 2 switch 2