Redgum Posted January 16, 2018 Share Posted January 16, 2018 G'day, So I have a request that I'd like all mod builders to consider when writing their code for their awesome mod. It's simple - please consider putting in some configurations that will allow server managers / owners / operators to either enable or disable certain features, especially those that consume a lot of CPU time or use independent threads. For example, in one mod I'm looking at, they are keeping a collection of all users in memory, and writing out changes to the user's profiles periodically, keeping track of where the player is and where they've been. That's pretty cool, but I ask that because some mods offer certain features not found in other mods, that we all stop and consider that its likely that our mod will run in conjunction with another mod. It'd be nice not to have to write a special patch to disable some CPU-sucking feature in someone else's mod, since another mod may need the CPU for something else, since the server-op may not be using the user-tracking feature of your mod, or some other feature(s). The game already suffers a bit from un-optimized code, let's try to work together to minimize redundancy as well as get our mods to play nice with each others'. :-) Thank you and happy modding, Redgum aka -{QaD}Lurch Link to comment Share on other sites More sharing options...
Spectral Force Posted January 16, 2018 Share Posted January 16, 2018 In your example, are you sure its only the mod doing it and not the game already doing it and you only noticed it because of the mod? A lot of information like your example is alreadying being processed and you're just not aware of it. Link to comment Share on other sites More sharing options...
Redgum Posted January 19, 2018 Author Share Posted January 19, 2018 In your example, are you sure its only the mod doing it and not the game already doing it and you only noticed it because of the mod? A lot of information like your example is alreadying being processed and you're just not aware of it. Pretty darn sure. There's no code in TFP's Assembly-CSharp that allows a user to pick a color for their name in chat in a multiuser game, for example. There's code in TFP's assembly to print in colors, which is what modders implement. It's in that implementation - and in general - that I'm suggesting for mod authors such as myself, to consider placing Enable/Disable code to turn certain features on or off. Now, to be certain, this isn't an issue where you have a discrete command that does something and then it's finished. Where it applies is when the mod author starts a thread running that continuously does 'X' - even though another mod *also* does 'X' and perhaps even the game itself does 'X' from time to time as well. An example here is reading, modifying and saving user data to disk. Several mods load the user's game data and do things with it, saving it to disk in a cyclic fashion as is appropriate. However, there's some I/O and CPU overhead costs involved with these actions. A system operator may elect to run four, five or more mods. Favoring some features of one over another, or using unique features not found in others. What I'm suggesting is for all of us to help minimize conflicts and unnecessary system resource utilization by simply adding some code that allows operators to enable or disable certain features that are performing resource-intensive operations. Make sense? Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.