GearCity

GearCity

View Stats:
jm764 14 May, 2021 @ 6:18pm
Major QoL Changes
Hello developer(s), of Gear City.

My name is Jason, and I want to start by saying congratulations on reaching the “final release candidate” stage of development for Gear City. I’ve been following this game since ~2017 (as I was looking for alternatives to the “indefinitely hiatused” game Cars Incorporated by Duck Huntgames) and finally bought the game back in 2020 and I’ve loved it ever since. 😊 Sadly, I was too busy to offer any QoL/Feature suggestions prior to the “Feature/QoL Complete” version that was 1.25.0.0; though after watching and playing a few heavily contracted/modded save series recently, in preparation for a YouTube series I plan to make by the full release of the game, I’ve come to the conclusion that there’s a few QoL I think the game should have by then.
As a (fledgling) indie game developer and programmer myself, I understand time/resources on adding anything new by this point would further delay the game, and I’ve seen for the past year you’ve been stating your reluctance to do so. Despite this, I think we’re all aware that, “First Release Impressions” can “Make or Break” a game, like CyberPunk for example, but given the scale/quality you’ve put into this game I can happily say it won’t be disastrous nor negative at all. 😉 I will say that there could potentially be major improvements from the “less micro-management inclined” players at least as well as helping more invested players like myself greatly. So I did my best to select the 5 biggest QoL changes I could think of that would involve the least amount of coding, effort, and time involved to implement by release or even in “post-launch update(s)” afterwards.
I am making HUGE assumptions with core mechanics/code of the game engine in the following changes.
1. I assume the “UI” and it’s code is shared/inherited between all windows and buttons. I will admit after playing the game for over 500+ hours now, that some windows and menus do seem to be separate entities code wise as some elements that are similar to each other seem to function differently, most notably pages/scroll windows and component /vehicle/marque filter(s) seem to sometime share functions while others add/remove them depending on which menu it is.
2. I also assume that all UI “button” length/width is “hard coded” as changing the UI scale option doesn’t seem to change their length/width nor text font size, but just the “scale” that they’re rendered in. So, it is inferred that the dimensions of all buttons cannot be increased/reduced to fill/save space in windows aside from adding/removing them.
3. Lastly, I assume that UI “elements” and “functions” can not be “modded” by 3rd parties/players. This is fairly common in most games as UI code is usually intergraded so deeply in the game engine coding that any modification would drastically change all functionality of it. So I assume there’s no way I nor anyone else besides the developer(s) to add these. Though if it is moddable I will personally offer to implement these changes and more later on myself.
So listed below are the 5 Biggest QoL changes I came up with:
Note: When coming up with these changes I set the game to run at 1024x768 Windowed (normally set to 2560x1440) with maximum quality graphic options enabled except “Compositor, “+5 UI Scale”, and “Dynamic Reports Size” while playing in a “[WIP] tbjack's grill decals and historic player logos” and “XylonDesignCars” modded save in 1961 on “Ultra-Nightmare Difficulty” on version “2.0.0.0 RC2” 64-Bit.

1. Change Auto\QuickSave naming to “CompanyName-Auto/QuickSave”
Problem and Cause(s):
Fundamentally the biggest change in this list, but also the most important change I can think of out of all the possible QoL changes I can currently imagine.
Simply put this would actually make the “Save on Exit” option in the settings usable in EVERY use case, as ever since I first played the Gear City Demo back in late 2019, I immediately found out that unless you specifically use the “Save As” command, set a specific save name, and save at least once there, BEFORE enabling the “Save on Exit” option /using “QuickSave” then it WILL automatically overwrite you current/last saved name file WITHOUT warning. This has single handedly ENDED successful and long running saves of mine multiple times, and now I always play with this disabled despite the fact that I know it would of also saved a few save runs where I forgot to save when exiting the game, though the loses outweigh the savings for me.
Potential Solution(s) and Code Example(s):
So the simplest solution I could think of to fix this is to simply force the Auto/QuickSave name to “CompanyName-AutoSave” as that would involve the least amount of code change and variables needed to accomplish this, assuming that the “Save”, “Save As”, and “Auto/QuickSave” all share the same code base.
I had considered using and abbreviation of the company name or using the existing/prior save name and simply appending “SaveName-Auto/Quick”, but the former would involve additional code for getting the First letters/Word in the company name and that didn’t quite seem worth it and the latter could double the amount of saves and space used on the drive inadvertently.
The simplest solution in my opinion is to use the “Company Name” as the save name variable as it’s unlikely the player would share the same name across multiple saves, and even if so, the fact that only one save game can be loaded/saved at a time reduces the potential for “save loss/confusion” as well as reduce the number of additional saves to just 2 per company name.
I also almost combined the auto and QuickSave functions to just saving as “CompanyName-AutoSave” for both, but I decided it’s better to have them separate as in some cases a QuickSave can be newer/better than an autosave and vice versa.
Therefore the code would go as follows:
Quicksave: Get company name and add “-QuickSave” to the end, then create the file.
AutoSave/Save on Exit: Get company name and add “-AutoSave” to the end, then create the file.
Since both code requirements are so similar, the code should be shared which will reduce the amount needed to implement.
Example(s) and Effect(s):
For example, if I had a save I just loaded or previously saved as “EMC-1960” with a Company Name of “Electro Motor Co”, worked on it awhile then decided to either QuickSave before making a major change or I had to quickly attend to something and forget to manually save prior to exiting the game then the game should leave “EMC-1961” unchanged, and have two additional saves called “Electro Motor Co-QuickSave” and “Electro Motor Co-AutoSave”.



2. Add “Auto Resume Simulation” Option to “End Turn” Window
Problem and Cause(s):
As someone who plays exclusively on “Ultra-Nightmare Difficulty”, I’ve run into many situations where I want to simply simulate an entire year or more “uninterrupted” by pop-ups, but due to the vast amounts of contract renewals, union/pay raise request, strikes, and major events like wars, pop-ups occur almost every month. Naturally this renders the “Months to Simulate” feature of this window effectively useless past just 1 month, as in this situation as it will almost always get interrupted each month and the player will have to go back, select it again, then retry till the months they actually wanted to simulate completes.
Potential Solution(s) and Code Example(s):
The simplest way I could think of resolving this would simply be adding an additional check box option for “Auto Resume Simulation” which saves the number of months previously entered, then automatically forces the game to resume simulating turns AFTER the player has manually attended to any pop-ups that would still interrupt the simulation, like Contract Renewals and Worker/Union raise request. The ONLY time it should PERMANENTLY stop BEFORE completely simulating those additional months is for “High Priority Memos/Urgent Action Pop-ups” like Stock Availability Notices, Bankrupt Company Purchases, Union/Strike Warnings, and Major Conflict/War decisions.
The “default sized” window for the “End Turn” is also small enough to be enlarged to fit this option while still fitting within the “ultra-minimum” supported resolution for this game which is 1024x768 with “+5 UI Scale” enabled, effectively making the game render at “972.8x729.6” resolution, due to the enlarged windows taking up the most space they can while still being entirely viewable.
The game also seems to have a robust system for checking if the player has answered to events/pop-ups, most notably the “Wait a Second” option in “Urgent Action” pop-ups, so adding an additional check to that system or most likely the “End Turn” system at the very end should be “relatively simple”.
While there could be an additional window for the “End Turn”, that would appear directly after the last “Urgent Action” pop-up is dealt with, to ask the player whether they would want to resume the simulation or return the office now to address additional items, which would be another good improvement, I don’t think it’s truly necessary as most urgent events would naturally cause the player to want to spend that same month adjusting to the changes and most likely manually progressing at a slower simulation rate till “things will be fine without me again”, which most notably happens during the World Wars and the Great Depression if those are enabled to occur on the map.
I would also vouch for an automated system to handle the pop-ups themselves, but due to the massive code addition, testing, and time requirements to implement that, I don’t think that it would probably be worth it till Gear City’s “EoL” (End-of-Life) update(s) or “Gear City 2”.


Therefore, the code would go as follows:
[At Game Load: SET MonthsToSimulate=0] //This resets any prior saved values.
<Player sets “Months to Simulate” and enables “Auto Resume Simulation” option.>
SET “MonthsSimulated” to 0, then CALL “End Turn”.
WHILE “MonthsToSimulate > 0” && “EVENT != TRUE”.
If TRUE, then SET “MonthsToSimulate -=1” AND then CALL “End Turn” again.
If FALSE, then break to EVENT code.
{EVENT CODE} //Assumes all events can call the code for “Wait A Second” checks.
IF “EVENT != URGENT” then <Player deals with pop-ups> then after the last pop-up is closed, automatically CALL “End Turn” again and continue prior loop till “MonthsToSimulate == 0” then end loop and break to OFFICE menu.
If ELSE, then automatically disable the “Auto Resume Simulation” option, break from the loop, and break to OFFICE menu.
<Player deals with URGENT pop-ups then manually repeats “End Turn” process till “Auto Resume Simulation” option is re-enabled.>
Example(s) and Effect(s):
If I set “Months to Simulate” to 17 months, then enable “Auto Resume Simulation”, and after 8 months the simulation is interrupted by a “Non-Urgent” popup like “Renew Contracts” or the “Memos” window when set to “Medium (or Lower)” then the following should happen:
Since 8 months have passed the code should have already subtracted that from the “Months to Simulate”, setting it to 9 months as it’s new value. Therefore that value should be saved and any even trigger code necessary for those windows should operate as normally till they finish, then the game should check after the event(s) to see if the “Auto Resume Simulation” option was enabled and if so it should automatically “EndTurn” again with “MonthsToSimulate already set to 9 months and continue normally till it either is finished simulating the remaining months, or stop completely before then if an “Urgent Event” occurs.

3. Reduce ALL “Company Resumes /Purchased Component” contract notification to “Medium” in “Memos” Window when “Auto Production” is Enabled
Problem and Cause(s):
Pretty self-explanatory, but after playing the game as long as I have, there’s basically no reason the “Company Resumes /Purchased Component” memos should be “High Priority”, especially when the “Company Resumes /Purchased Vehicle” based memos are only Medium despite in my opinion being even mor crucial. This is one of the main problems from my prior EoL suggestion which would further reduce that from occurring at all.
Potential Solution(s) and Code Example(s):
Given the amount of testing I’ve done, it’s apparent that as longs as the player is capable of managing their production lines profitably OR that “Auto Production” is enabled which already successful accounts for contract/outsourcing production with exceptional results, the only solution needed is to reduce the priority.
Example(s) and Effect(s):
The ONE single exception I can think of it needing to be a “High Priority” is when the player has ALL management automation disabled, though aside from “Hard Core” players and “Ironman Runs” the likelihood of this affecting the player is slim to none as long as the player can already stay profitable with these contracts. The only way I can assume it would hurt the player to not be notified is if an AI makes a HUGE contract for high material cost parts that either the player can’t manage to uphold or stifles their profits till expenses, but even the contract management menus and monthly reports would easily let the player fix/see this.
Originally posted by Eric.B:
Originally posted by jm764:
As a (fledgling) indie game developer and programmer myself, I understand time/resources on adding anything new by this point would further delay the game, and I’ve seen for the past year you’ve been stating your reluctance to do so.

Unfortunately, you are correct. Once a game hits "Release Candidate" phase, it is considered code complete. There won't be any new features added to game. I'm just working on bug fixes, documentation, and textual content.

I will have a post-release "Feature Bounty System", which is similar to a donation system where donors vote on what I work on next, and the cost of those bounties is subtracted from the amount of money raised. I will address your recommendations with that system in mind.


Despite this, I think we’re all aware that, “First Release Impressions” can “Make or Break” a game, like CyberPunk for example, but given the scale/quality you’ve put into this game I can happily say it won’t be disastrous nor negative at all.

Being that the game is already 11 years old, we're well past "First Release Impressions".



1. I assume the “UI” and it’s code is shared/inherited between all windows and buttons. I will admit after playing the game for over 500+ hours now, that some windows and menus do seem to be separate entities code wise as some elements that are similar to each other seem to function differently, most notably pages/scroll windows and component /vehicle/marque filter(s) seem to sometime share functions while others add/remove them depending on which menu it is.

The GUI library for the game is incomplete and abandoned by it's author in 2011. Some of the functionality is implemented inside the library, such as scroll bars. Others is implemented the client, such as using arrow buttons to transverse lists. And others such as filtering lists is extremely hacked code. (Which is why it's not implemented in every list.)


2. I also assume that all UI “button” length/width is “hard coded” as changing the UI scale option doesn’t seem to change their length/width nor text font size, but just the “scale” that they’re rendered in. So, it is inferred that the dimensions of all buttons cannot be increased/reduced to fill/save space in windows aside from adding/removing them.

Incorrect. GUI widgets are defined in the .sheet files and can be anchored to an edge. They do not however dynamically resize, nor does it work on a grid based system.

If you're on a high resolution monitor, or are using HiDPI, you can scale the entire GUI in the settings. This also changes the font size.

In the past I used to allow players to adjust font size, but this frequently broke localization, causing them to overrun.

The game does dynamically resize overrun text. It also turns them pink and logs them if it gets too small, mostly for localization purposes.



3. Lastly, I assume that UI “elements” and “functions” can not be “modded” by 3rd parties/players. This is fairly common in most games as UI code is usually intergraded so deeply in the game engine coding that any modification would drastically change all functionality of it. So I assume there’s no way I nor anyone else besides the developer(s) to add these. Though if it is moddable I will personally offer to implement these changes and more later on myself.

This is correct. Other than widget positions and text, the entire GUI is hardcoded.


1. Change Auto\QuickSave naming to “CompanyName-Auto/QuickSave”

There is zero chance of us using a non-user defined name for a save file. For example EVERY time I play the game I use the same company name. So if the files were saved as "CompanyName-AutoQuickSave.db" it would overwrite all autosaves for my other save files.

Also I am not sure what you mean by Auto and Quicksave.

I assume you mean the Auto Save feature which has a fixed period of time? Autosave_saveName.db

By quick save, are you talking about the "Save" button? Or "Save on Exiting"


As the system works now. It saves to what you saved the game to the last time. That is the standard operating procedure for most programs on your computer.

If you open Foo.
Hit "Save As", named it Bar.
The game should save to Bar now with Auto Save, the "Save" button, and exiting the game with "Save on Exit" enabled.

If it does not do this, please let me know, as it's a bug.

So I assume from these comments:

I immediately found out that unless you specifically use the “Save As” command, set a specific save name, and save at least once there, BEFORE enabling the “Save on Exit” option /using “QuickSave” then it WILL automatically overwrite you current/last saved name file WITHOUT warning.

You load a game (foo) with "Save On Exit" disabled.

You enable "Save on Exit".

You "Save As" (bar)

You exit.

It overwrites the (foo) save game?

If that's a yes, let me know what OS you're running.

For example, if I had a save I just loaded or previously saved as “EMC-1960” with a Company Name of “Electro Motor Co”, worked on it awhile then decided to either QuickSave before making a major change or I had to quickly attend to something and forget to manually save prior to exiting the game then the game should leave “EMC-1961” unchanged, and have two additional saves called “Electro Motor Co-QuickSave” and “Electro Motor Co-AutoSave”.

Save games can easily get into 1GB to 2GB in size. If someone were to exit out of the game every 5 years for a full play through, they can easy write 40GB of space to GC save games alone.

So no. Let's let the user control the save names.

The UI might could use some work, for example prompting the user to enter a save name on exit. But I'm not sure how popular that will be in the feature bounty system.

2. Add “Auto Resume Simulation” Option to “End Turn” Window[/quote]

If the game is stopping simulation, it's because of a good reason.

If you have memo popups, you can drop the priority level in the upper right hand corner to "None". That will stop that.

"contract renewals" - There is a feature bounty for an "Auto-Renew Contracts system.

"renewals union/pay raise request" - Enable "Auto Union" in the Mega Menu Autocommands.

"strikes" - Enable "Auto Union" in the Mega Menu Autocommands.

"major events like wars" - Wars are pretty important, and there are feature bounties to even expand the war time systems. So this one probably won't get a skip feature.


Naturally this renders the “Months to Simulate” feature of this window effectively useless past just 1 month,

I use it for years at a time just fine. Sure, a lot of it has to do with the size of your company, the year you're in, and if you have contracts, but a lot of others, like memos and union related stuff can be skilled if you enable the features to skip them.

I would also add that an automatically resume end turns might not be good in all situations. Imagine if come up to WW1, and your producing your American sold cars in Canada. Canada goes into halt status, you click, No Munitions in the popup, and the game keeps going. Now you're missing sales in the US because you can no longer make consumer vehicles in Canada.

We stop the game for a reason. Normally these things require you to check to see why they're happening and make adjustments. The better way to go about it is, is to have systems that automate the tasks that need to be done with the popups. Most action popups we won't automate. Contract Renewals is on the Bounty list. Almost everything else already has a shutoff or auto feature.



3. Reduce ALL “Company Resumes /Purchased Component” contract notification to “Medium” in “Memos” Window when “Auto Production” is Enabled

That one might actually make it into RC3. Thanks for pointing out the logic error.





Originally posted by jm764:
Couldn't fit it all in the 1st post.. ^_^;

4. Add “Stop All Sales” in “R&D Department-Modify Vehicle: Stop Production” menu
Problem and Cause(s):
Another self-explanatory addition, but I’ve noticed that after buying a few companies/marques, that the amounts of additional vehicles available can massively balloon out of control for the player to manage. Also a lot of vehicles acquired from failed/bankrupt companies tend to be unprofitable so having a way to stop sales from within the “R&D Department”

If you mean stop sales from branches, the game will automatically remove vehicle from sale if you end the production of them and there is no inventory. In most cases, AI should not run any inventory, although some past versions had autoproduction bugs which could cause inventory.


Beyond that, the feature bounty system has several new ways to reduce the amount of units and how you manage them. Although funding for these bounties requires a new GUI lib, which might hamper raising enough funds.

In addition to this, a cheaper feature bounty, that is likely to get funded is merging the R&D view window with the R&D modify window. We're likely to get more features there as well. Such as stop selling, scrap, and global price modifications. But it depends on how much space we can save and what we can gain by ditching 1024x720 support.




4B. Add “Remove From All OR Stop Production” in “Mega Menu-Branches”
Problem and Cause(s):

Remove from All already exists. Set the price to $0 and then hit "Apply to All"

"Stop Production" wouldn't make sense in a branch panel. It makes more sense in the factory panel.

It probably won't happen due to size constraints. If we can drop 1024x720 support, some additional feature become more likely, but I may also just use it to alleviate cramping of the data on the side panel.

If we could drop 720p support, which is not going to happen, there would be a whole lot less layers to the GUI.

Finally, if a UI library replacement is funded for Office, we're likely to get many functionalities included within the lists themselves. Such as having action dropdowns next to the entries and then a button beside to take that action. Can't do that with the current GUI library.


5. Add “Auto Stop Production/Sales of All Unused & Obsolete Components/Vehicles” to Mega Menu

Just because a component is 15 years old doesn't mean it isn't usable. The penalties are gradual. And you can very well use a component for 25 years if you don't mind the penalty hit.

Also some discounted feature bounties will remove the age penalties, making it more difficult to define obsolete.

There are also some feature bounties which will reduce the number of component/vehicles you manage by making family trees of components, rather than having each entry separate. This will reduce management.

If you inherited many of these components/vehicles you don't want from a marque. Discontinue the marque, that will end production of everything. Then restore the Marque. And then go through the discontinued stuff from the marque in RnD and restore what you want to keep.

Lastly, if you don't want to manage so many components, don't make so many?

6. Add “Submit All Applicable” Button to “Contract Offer(s)”
Problem and Cause(s):

Already a feature bounty for this one.

Also plans to order the list by what you can submit, and then by what you can't submit.

Although the later thing might be a little difficult, because the list insert time for the GUI Lib is awful. I did make a bit of improvements for it though for RC1.

So with that I thank you for your time in reading this and I wish for a great release! :D
Jason M.

Thanks for the list, I think if we can fund some of the changes I have planned in the feature bounty system, you'll be more happy with it than you are now. I'm glad you're enjoying the game. Thanks again!
< >
Showing 1-3 of 3 comments
jm764 14 May, 2021 @ 6:28pm 
Couldn't fit it all in the 1st post.. ^_^;

4. Add “Stop All Sales” in “R&D Department-Modify Vehicle: Stop Production” menu
Problem and Cause(s):
Another self-explanatory addition, but I’ve noticed that after buying a few companies/marques, that the amounts of additional vehicles available can massively balloon out of control for the player to manage. Also a lot of vehicles acquired from failed/bankrupt companies tend to be unprofitable so having a way to stop sales from within the “R&D Department” when managing them while being able to see what components, stats, and project profits a vehicle has is exceptionally more useful than having to constantly swap between the Office to use the Mega Menu options, ESPECIALLY if you constantly forget what vehicle names you intended to stop sales on and in some situations it’s even impossible to determine as the mega menu window isn’t wide enough to display some names fully at ANY resolution leading to further confusion and management delay.
Potential Solution(s) and Code Example(s):
The “default sized” window for the “End Production” is more than large enough to fit the “Stop Sales of Vehicle” option box from the “Mega Menu- End Production” menu.
Code wise this would just re-reference that option in the “Modify Vehicle- Stop Production”
While this could be located in the View Vehicle menu as well for further convince, I don’t see a reason too as this option would be appearing in 3 different menus already, thus making it redundant as the player can freely and easily swap between the View and Modify menus in the “R&D Department” UI at any resolution by just moving the windows around when needed.
Example(s) and Effect(s):
Already explained above.


4B. Add “Remove From All OR Stop Production” in “Mega Menu-Branches”
Problem and Cause(s):
Same as above but an alternate/additional position if the first option is already implemented as the branches Mega Menu is another great place to manage production of unprofitable vehicles as you can directly see the profits and vehicles there and compare them as well, possibly even better than the R&D department as the remaining Mega Menu options are already present without switching.
Potential Solution(s) and Code Example(s):
Simply adding a “End Production” button bellow the set price button would suffice as the only other available position for a new button is where the “Clone Distribution” button usually appears so putting there wouldn’t work in all situations.
Code wise this would just re-reference the code suggested previously for the “End Production”.
Example(s) and Effect(s):
Already explained above.

5. Add “Auto Stop Production/Sales of All Unused & Obsolete Components/Vehicles” to Mega Menu
Problem and Cause(s):
This last QoL suggestion is probably the biggest and hardest to implement in the time given but also the biggest time saver as well so still important enough to try and make this list, and is the most self-explanatory of them all. Simply put it would be a Mega Menu Auto option that like the already implemented “Obsoletion” feature of components and vehicles that applies after 15 years of their design, this would automatically stop production, sales, and contracts/outsourcing of anything in that age range.
Potential Solution(s) and Code Example(s):
Add an addition check when this option is enabled then the obsolete component code is run, and any vehicle.
Example(s) and Effect(s):
Already explained above.

One optional 6th change I’ve decided to add at the last minute after thinking about it, and remembering my hand cramps I’ve had dealing with it.

6. Add “Submit All Applicable” Button to “Contract Offer(s)”
Problem and Cause(s):
This is a pretty niche problem honestly and probably won’t effect anyone besides the “Hard Core” and “Ironman” players like me, but basically I can say that if you STILL have a successful company by 1946 and you rely mainly on contracts in “Ultra-Nightmare Difficulty” like I do, the I’m sure the thought of “Carpal Tunnel Simulator” has occurred when dealing with the amount of contracts and especially components you can offer, the amount of clicks can wear your hands and sanity out. ^_^;
In my most current save file series, I have a save from 1958, where I had 5 contracts where I could offer gearboxes… HOWEVER for each one I could offer 118 of my 136 gearboxes across 7 pages and given the circumstances and the way the contract page menu works, it took me 17 MINUTES to just to offer all those components as I had to stop a few times to rest my hands from the exponentially increasing amount of clicks I had to make each page.
Considering I had to do this EVERY year after that I came to the conclusion that the last 3 suggestions, I just made would be useful, so I literally compiled this list as a response.
I also just did the math and found out that due to the (abysmal) way the contract window scales, it only list 21 items per page, so as mentioned above that means atleast 2-42 clicks per page MINIMUM (1 to select, and one to offer), BUT due to how the page resets to the 1st page automatically after submitting an additional click is needed for the following page, so by the 2nd page it has jumped to 3-126 clicks already, AND in a WORST-CASE SCENARIO a player in my 7 page situation could click anywhere from 8-336 MINIMUM and if ALL offers are acceptable which is X*2(Y)(Z+1) which X is the number of contracts, Y is the number of offers, and Z is the number of pages, so in this example alone 3*2(21)(7+1) which means…
A MAXIMUM OF 1,008 CLICKS!!!
And THAT assumes no mistakes/missclicks

Potential Solution(s) and Code Example(s):
The contract system already does this when you select a component/vehicle to offer, so simply adding a button to the left to the “Submit Offer” button on all “Non-Bid” contracts (ESPECIALLY RACING CONTRACTS) that would automatically submit all offers that meet ALL REQUIREMENTS would fix all this.
Codewise, just a while loop would be needed that selects the components in the currently selected contract and calls the existing function to check the values and if all are met, automatically submit them for offer.

Example(s) and Effect(s):
Players won’t file “Mario Party 1 Gloves-Esque Lawsuits”… and their hands will give y’all double thumbs up in relief! d^w^b

But after typing 7 pages worth of of text I think that’s enough out of me from now, and I’ll post the pictues to accompany the examples tomorrow as I’m out of time for now.

But even if these aren’t added by release, I think the game will still do fine at release with what it has, though I do think adding these later WILL help players and reviews later on immensely.

So with that I thank you for your time in reading this and I wish for a great release! :D
Jason M.
The author of this thread has indicated that this post answers the original topic.
Eric.B  [developer] 14 May, 2021 @ 9:06pm 
Originally posted by jm764:
As a (fledgling) indie game developer and programmer myself, I understand time/resources on adding anything new by this point would further delay the game, and I’ve seen for the past year you’ve been stating your reluctance to do so.

Unfortunately, you are correct. Once a game hits "Release Candidate" phase, it is considered code complete. There won't be any new features added to game. I'm just working on bug fixes, documentation, and textual content.

I will have a post-release "Feature Bounty System", which is similar to a donation system where donors vote on what I work on next, and the cost of those bounties is subtracted from the amount of money raised. I will address your recommendations with that system in mind.


Despite this, I think we’re all aware that, “First Release Impressions” can “Make or Break” a game, like CyberPunk for example, but given the scale/quality you’ve put into this game I can happily say it won’t be disastrous nor negative at all.

Being that the game is already 11 years old, we're well past "First Release Impressions".



1. I assume the “UI” and it’s code is shared/inherited between all windows and buttons. I will admit after playing the game for over 500+ hours now, that some windows and menus do seem to be separate entities code wise as some elements that are similar to each other seem to function differently, most notably pages/scroll windows and component /vehicle/marque filter(s) seem to sometime share functions while others add/remove them depending on which menu it is.

The GUI library for the game is incomplete and abandoned by it's author in 2011. Some of the functionality is implemented inside the library, such as scroll bars. Others is implemented the client, such as using arrow buttons to transverse lists. And others such as filtering lists is extremely hacked code. (Which is why it's not implemented in every list.)


2. I also assume that all UI “button” length/width is “hard coded” as changing the UI scale option doesn’t seem to change their length/width nor text font size, but just the “scale” that they’re rendered in. So, it is inferred that the dimensions of all buttons cannot be increased/reduced to fill/save space in windows aside from adding/removing them.

Incorrect. GUI widgets are defined in the .sheet files and can be anchored to an edge. They do not however dynamically resize, nor does it work on a grid based system.

If you're on a high resolution monitor, or are using HiDPI, you can scale the entire GUI in the settings. This also changes the font size.

In the past I used to allow players to adjust font size, but this frequently broke localization, causing them to overrun.

The game does dynamically resize overrun text. It also turns them pink and logs them if it gets too small, mostly for localization purposes.



3. Lastly, I assume that UI “elements” and “functions” can not be “modded” by 3rd parties/players. This is fairly common in most games as UI code is usually intergraded so deeply in the game engine coding that any modification would drastically change all functionality of it. So I assume there’s no way I nor anyone else besides the developer(s) to add these. Though if it is moddable I will personally offer to implement these changes and more later on myself.

This is correct. Other than widget positions and text, the entire GUI is hardcoded.


1. Change Auto\QuickSave naming to “CompanyName-Auto/QuickSave”

There is zero chance of us using a non-user defined name for a save file. For example EVERY time I play the game I use the same company name. So if the files were saved as "CompanyName-AutoQuickSave.db" it would overwrite all autosaves for my other save files.

Also I am not sure what you mean by Auto and Quicksave.

I assume you mean the Auto Save feature which has a fixed period of time? Autosave_saveName.db

By quick save, are you talking about the "Save" button? Or "Save on Exiting"


As the system works now. It saves to what you saved the game to the last time. That is the standard operating procedure for most programs on your computer.

If you open Foo.
Hit "Save As", named it Bar.
The game should save to Bar now with Auto Save, the "Save" button, and exiting the game with "Save on Exit" enabled.

If it does not do this, please let me know, as it's a bug.

So I assume from these comments:

I immediately found out that unless you specifically use the “Save As” command, set a specific save name, and save at least once there, BEFORE enabling the “Save on Exit” option /using “QuickSave” then it WILL automatically overwrite you current/last saved name file WITHOUT warning.

You load a game (foo) with "Save On Exit" disabled.

You enable "Save on Exit".

You "Save As" (bar)

You exit.

It overwrites the (foo) save game?

If that's a yes, let me know what OS you're running.

For example, if I had a save I just loaded or previously saved as “EMC-1960” with a Company Name of “Electro Motor Co”, worked on it awhile then decided to either QuickSave before making a major change or I had to quickly attend to something and forget to manually save prior to exiting the game then the game should leave “EMC-1961” unchanged, and have two additional saves called “Electro Motor Co-QuickSave” and “Electro Motor Co-AutoSave”.

Save games can easily get into 1GB to 2GB in size. If someone were to exit out of the game every 5 years for a full play through, they can easy write 40GB of space to GC save games alone.

So no. Let's let the user control the save names.

The UI might could use some work, for example prompting the user to enter a save name on exit. But I'm not sure how popular that will be in the feature bounty system.

2. Add “Auto Resume Simulation” Option to “End Turn” Window[/quote]

If the game is stopping simulation, it's because of a good reason.

If you have memo popups, you can drop the priority level in the upper right hand corner to "None". That will stop that.

"contract renewals" - There is a feature bounty for an "Auto-Renew Contracts system.

"renewals union/pay raise request" - Enable "Auto Union" in the Mega Menu Autocommands.

"strikes" - Enable "Auto Union" in the Mega Menu Autocommands.

"major events like wars" - Wars are pretty important, and there are feature bounties to even expand the war time systems. So this one probably won't get a skip feature.


Naturally this renders the “Months to Simulate” feature of this window effectively useless past just 1 month,

I use it for years at a time just fine. Sure, a lot of it has to do with the size of your company, the year you're in, and if you have contracts, but a lot of others, like memos and union related stuff can be skilled if you enable the features to skip them.

I would also add that an automatically resume end turns might not be good in all situations. Imagine if come up to WW1, and your producing your American sold cars in Canada. Canada goes into halt status, you click, No Munitions in the popup, and the game keeps going. Now you're missing sales in the US because you can no longer make consumer vehicles in Canada.

We stop the game for a reason. Normally these things require you to check to see why they're happening and make adjustments. The better way to go about it is, is to have systems that automate the tasks that need to be done with the popups. Most action popups we won't automate. Contract Renewals is on the Bounty list. Almost everything else already has a shutoff or auto feature.



3. Reduce ALL “Company Resumes /Purchased Component” contract notification to “Medium” in “Memos” Window when “Auto Production” is Enabled

That one might actually make it into RC3. Thanks for pointing out the logic error.





Originally posted by jm764:
Couldn't fit it all in the 1st post.. ^_^;

4. Add “Stop All Sales” in “R&D Department-Modify Vehicle: Stop Production” menu
Problem and Cause(s):
Another self-explanatory addition, but I’ve noticed that after buying a few companies/marques, that the amounts of additional vehicles available can massively balloon out of control for the player to manage. Also a lot of vehicles acquired from failed/bankrupt companies tend to be unprofitable so having a way to stop sales from within the “R&D Department”

If you mean stop sales from branches, the game will automatically remove vehicle from sale if you end the production of them and there is no inventory. In most cases, AI should not run any inventory, although some past versions had autoproduction bugs which could cause inventory.


Beyond that, the feature bounty system has several new ways to reduce the amount of units and how you manage them. Although funding for these bounties requires a new GUI lib, which might hamper raising enough funds.

In addition to this, a cheaper feature bounty, that is likely to get funded is merging the R&D view window with the R&D modify window. We're likely to get more features there as well. Such as stop selling, scrap, and global price modifications. But it depends on how much space we can save and what we can gain by ditching 1024x720 support.




4B. Add “Remove From All OR Stop Production” in “Mega Menu-Branches”
Problem and Cause(s):

Remove from All already exists. Set the price to $0 and then hit "Apply to All"

"Stop Production" wouldn't make sense in a branch panel. It makes more sense in the factory panel.

It probably won't happen due to size constraints. If we can drop 1024x720 support, some additional feature become more likely, but I may also just use it to alleviate cramping of the data on the side panel.

If we could drop 720p support, which is not going to happen, there would be a whole lot less layers to the GUI.

Finally, if a UI library replacement is funded for Office, we're likely to get many functionalities included within the lists themselves. Such as having action dropdowns next to the entries and then a button beside to take that action. Can't do that with the current GUI library.


5. Add “Auto Stop Production/Sales of All Unused & Obsolete Components/Vehicles” to Mega Menu

Just because a component is 15 years old doesn't mean it isn't usable. The penalties are gradual. And you can very well use a component for 25 years if you don't mind the penalty hit.

Also some discounted feature bounties will remove the age penalties, making it more difficult to define obsolete.

There are also some feature bounties which will reduce the number of component/vehicles you manage by making family trees of components, rather than having each entry separate. This will reduce management.

If you inherited many of these components/vehicles you don't want from a marque. Discontinue the marque, that will end production of everything. Then restore the Marque. And then go through the discontinued stuff from the marque in RnD and restore what you want to keep.

Lastly, if you don't want to manage so many components, don't make so many?

6. Add “Submit All Applicable” Button to “Contract Offer(s)”
Problem and Cause(s):

Already a feature bounty for this one.

Also plans to order the list by what you can submit, and then by what you can't submit.

Although the later thing might be a little difficult, because the list insert time for the GUI Lib is awful. I did make a bit of improvements for it though for RC1.

So with that I thank you for your time in reading this and I wish for a great release! :D
Jason M.

Thanks for the list, I think if we can fund some of the changes I have planned in the feature bounty system, you'll be more happy with it than you are now. I'm glad you're enjoying the game. Thanks again!
Last edited by Eric.B; 14 May, 2021 @ 9:13pm
Eric.B  [developer] 15 May, 2021 @ 8:25pm 
3. Reduce ALL “Company Resumes /Purchased Component” contract notification to “Medium” in “Memos” Window when “Auto Production” is Enabled

Is fixed and will be in RC3. Thanks again!
< >
Showing 1-3 of 3 comments
Per page: 1530 50