Price: $25,000
Description: This bounty would multithread the game's end turn processes. The goal of this bounty would be to speed up turn times.
The major problem is the game uses an in-memory SQLite database. While SQLite supports multi-threading, it is not concurrent access friendly, especially in-memory databases.
So this bounty will be complex and may not work. We'll need to pull much of the data down into containers, do the calculations we need to on them, and then insert them back into the database. That might not be faster than what we're doing now, considering we'll need to lock the database to do writes.
So this bounty has a high risk of refund.
I think some parts can be multi-threaded pretty easily. AI actions, sales processing, shipping, etc. Although, the caching bounties might make the same performance gains with much less without the complexity.
Requirements: None
Required By: None
Concerns: Because of the technologies the game is designed around, proper multi-threading will require a near rewrite of the game engine. That's not going to happen.
The quicker way to add multi-threading to the parts of the game that need it might not yield good results for the money.
Eric's Opinion: Because of the risks involved in this bounty, I recommend funding other big-ticket items first. While I do believe there are some performance gains to be had here, I am not sure it's worth the amount of work, which is why I didn't do it in the first place.
Links:
Description: This bounty would multithread the game's end turn processes. The goal of this bounty would be to speed up turn times.
The major problem is the game uses an in-memory SQLite database. While SQLite supports multi-threading, it is not concurrent access friendly, especially in-memory databases.
So this bounty will be complex and may not work. We'll need to pull much of the data down into containers, do the calculations we need to on them, and then insert them back into the database. That might not be faster than what we're doing now, considering we'll need to lock the database to do writes.
So this bounty has a high risk of refund.
I think some parts can be multi-threaded pretty easily. AI actions, sales processing, shipping, etc. Although, the caching bounties might make the same performance gains with much less without the complexity.
Requirements: None
Required By: None
Concerns: Because of the technologies the game is designed around, proper multi-threading will require a near rewrite of the game engine. That's not going to happen.
The quicker way to add multi-threading to the parts of the game that need it might not yield good results for the money.
Eric's Opinion: Because of the risks involved in this bounty, I recommend funding other big-ticket items first. While I do believe there are some performance gains to be had here, I am not sure it's worth the amount of work, which is why I didn't do it in the first place.
Links:
"great writers are indecent people, they live unfairly, saving the best part for paper.
good human beings save the world, so that bastards like me can keep creating art, become immortal.
if you read this after I am dead it means I made it." ― Charles Bukowski
good human beings save the world, so that bastards like me can keep creating art, become immortal.
if you read this after I am dead it means I made it." ― Charles Bukowski