Progress update 2019-07-10:
This update focused on implementing many of the Spacemaster-only features from Aurora, an area which was I had previously left mostly incomplete. Primarily I needed the 'Fast OB Creation' feature from the Spacemaster menu, to quickly create fleets for testing fleet orders as I start adding them in, but I added a lot more than that because it had to get done sooner or later anyway. Adding these was pretty grindy so I'm glad to have them out of the way. The following are now implemented, all of them only accessible when SM is enabled:
On the Industry tab:
- Add Missiles to population stockpile
- Add Maint Supplies to population stockpile
- Add Ship Components to population stockpile
On the Manage Shipyards tab:
- SM SY Mod button opens the Modify SY panel
- Add Shipyard
- Delete Shipyard
- Update shipyard slipways, capacity, and type
On the Research Tab:
- Instant RST button (Immediately research a project you created)
On the Env / GMC Tab:
- Set ATM button
On the Commanders window:
- Promote
- Demote
- Move commander to specified population
- Add extra officers
- Replace all (replaces entire officer corps with new randomly created officers based on a specified number of years)
- Reset commander to capital
On the Create New Research Project window:
- Immediately create and research the designed tech
On the Ships window:
- Refuel selected ship
On the System View (F9) window:
- HW Minerals (delete all deposits on selected body and randomly generate homeworld-like mineral distribution)
- JP Survey (survey all jump points in selected system)
- All SB Survey (instant geo survey of all bodies in system)
- Star SB Survey (same, but only for bodies of selected star)
- Body Survey (same, but only for selected body)
- No SB survey (set all sb's in system as unsurveyed)
- Add JP (Adds a new randomly generated warp point)
- Delete Jump Gate
- Delete JP
- Add JG
- Change JP bearing and distance
- Connect JP to other unlinked JP
- Break link between JP's
At the bottom of the F3 window:
- All Research (Immediately research all techs with cost and prereq costs below the specified amount)
- Field Res button (same as All Research but for only 1 of the 8 research fields)
- SM Mods button and corresponding window:
On the Main Menu:
- Deleted the Game Parameters menu. These options are all either irrelevant or not interesting
- Compact Database from the Misc menu (issues the sqlite 'vacuum' command)
And more new windows from the Main Menu > Spacemaster menu:
- Compare Tech (Also available from F3 Research tab):
- System Summary:
- Comparison (of races):
- Fast OB Creation:
Miscellaneous Musings:
- Always seems like I tick off a ton of To Do items with each progress update, this one included, yet there is always a lot more to do. I do wish I could provide a relative percentage of my completion. It's very hard to make clear to other people, heck, it's hard to know myself, what's done, what isn't done, and how close the program is to an actual game. If someone were to create a granular list of absolutely everything that is possible in A4X, I would happily add it to my OP and start crossing off items as they were completed, but creating such a list is a huge chore and I bet it wouldn't even be detailed enough!
- I do check the quasar4x channel in Discord from time to time, and one topic that struck me was the conversion of A4X games to Q4X. Seems like it's unclear why I support that and what the difficulty is to migrate a file. In fact, it's extremely easy to migrate, and I do it many times a day for my own purposes. All it requires is one command line. Here is an example of me running it, with an extra 'date' command to show that a migration takes only ~30 seconds to complete:
Someone mentioned it was a waste of time to make this utility but a) I wouldn't be able to make quasar4x without it and b) the utility is already done; I did it, along with the majority of my db-diff scripts, before I created this thread! If it wasn't clear before, Q4X doesn't just behave like A4X in game, it makes the same database manipulations too. So any game from Aurora4x, no matter how advanced, is natively understood and handled properly after being converted to sqlite. Q4X does add a few indexes and adjustments to speed up data access, but these are automatically created when the game is loaded for the first time. The purpose of the migration tool is to enable me to quickly import an advanced Aurora game into Q4X to make sure the UI display and updates to DB are as similar as possible. However! It does have the completely coincidental side effect of allowing someone who was anxiously waiting to try Q4X for real to go ahead and start a game in A4X, and when the lag becomes unbearable, set it aside and import it into Q4X when its ready.
- QoL features: make no mistake, I'd love to add QoL stuff to Q4X the community has been wanting in A4X, but like it says in my OP, for now I need to keep my goal well-defined and reachable. Let's have a playable game before we think about the feature creep. Trust me I'm the first one to get frustrated after using a clunky tool a few times and want to redesign it with new QoL in mind. Why do you think I created Q4X?? I lost patience with the slow turn times *real* fast and passionately wanted to fix the problem. I think the majority of veterans here put up with way more minutes that I've ever been willing to deal with.
- 3rd party tools: Additionally, I think I've used most of the spreadsheets and calculators out there, and I've probably been just as frustrated as anyone else that the numbers don't always line up. While it's a very long way off, I do at least share the vision that any calculator or spreadsheet should be able to exactly match what is done in the game. I'd like to support this by either adding in in-game utilities, mod support for custom "spreadsheets", or at the very least be able to publicly post "excel" like formulas to help fill in the missing pieces.
- Monitor sizes: I don't have a whole lot planned for supporting gigantic displays, but it shouldn't be too hard to add a UI scale slider some day. That's only needed if the text is too small for you to read though. The main window itself can be any size, *and* every window in the game is resizable by dragging on the edge, and the UI elements all readjust themselves accordingly. My only regret is that the game is confined to a rectangular "master" window, rather than the A4X style of multiple independent dialogs. Afaik, that will never change. But! Did I mention I want to support tablets some day? I think I did in my OP.. either way, Godot does support deploying to Android and I've already confirmed Quasar4x works on my phone, but that was a long time ago. I eagerly look forward to being able to take Q4X on the road with me some day. I just hope the game doesn't instantly melt the batteries..
- Pies in the Sky: Can you tell I'm not afraid to talk about stuff that is probably years away from becoming a reality, if ever? That's the nice thing about a hobby project with no deadline, budget, boss, producer, etc... It's no skin off my back if "promises" are broken!
- Coding language: When I record the cool animations of time passing, computations are done with debug mode enabled and purely* in GDScript. Additionally I don't go out of my way to optimize anything, that is for much later on. Still everything is quite fast. The reason for this is that my code makes heavy use of queries and database updates written in SQL. There are entire functions that are not much more than a series of SQL statements. These are all passed to the sqlite3 dll (.so in linux) which is written entirely in C. C is a very fast language, about as close as it gets to assembly language. The sqlite3 dll of course has been extremely well refined over the years, and the SQL language itself has been heavily analyzed and has
numerous optimizations that sqlite3 implements. These facts don't help much with your traditional video game, but they are perfect for Quasar4x. (I do still plan to make use of C++ for intensive calculations such as pathfinding)
Latest build pushed. Where do I go from here? Well, I had a few more items on my Spacemaster-only list but I'm kind of sick of this vein of work so I'm most likely going to jump into the next items on my list from my 2019-07-01 update, fleet orders being the most likely thing I take on next.