Visual Entertainment and Technologies Forum

Full Version: [$1500] #316 Add Localized Threading | Requires: #314
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Price: $1500

Description: In AeroMogul, I employ threading via a library called BS::thread_pool. I've concluded that there are a few places inside GearCity's turn loop that we can thread without having to thread the entire game or mess with multi-threaded SQLite. One particular place where we can employ localized threading is the sales calculation systems during end turns. Currently, this system eats approximately 20% of our turn processing time. Cutting that in half could easily shave off 10% from the turn times. There are also several other places where I might be able to deploy localized threading solutions without multithreading the entire system.

The ultimate goal of this bounty is to improve turn times by 10%, but I could easily see improvements as high as 25 to 30% if we're lucky!

Requirements: #314

Required By: None

Concerns: This bounty could open a can of worms. Some places might not be as clean to implement as I think. There is a chance of bugs, so a lot of time will have to be spent on bug testing and profiling.

Eric's Opinion: A light went off when I was working on AeroMogul. That light shined a path to getting some parts of GC multithreaded without redoing much of the game's code. I don't know the full scope of functions I could thread, but I know one or two key locations where this could work. It could improve turn times. So it's worth a shot.

Links: It doesn't happen unless you contribute!

Threading library used in AeroMogul