Author Topic: Quasar4x - An Aurora4x VB6 clone  (Read 92994 times)

0 Members and 1 Guest are viewing this topic.

Offline Warer

  • Warrant Officer, Class 1
  • *****
  • W
  • Posts: 84
  • Thanked: 26 times
Re: Quasar4x - An Aurora4x VB6 clone
« Reply #405 on: July 17, 2021, 06:40:54 AM »
Progress Update 2021-07-16:

I've been working on q4x off and on for the last few months.  I'm a week or so away from finally releasing a new patch.  Since it's been awhile, this new patch will include a new database incompatible with previous saves.  This lets me clean out all the old version migration code and start fresh.  Thus, future patches will be compatible.

My release post will contain a full list of changes, but generally focus has been on fixes, QoL, and new nice-to-have features that don't change any core mechanics or balance.  Automation features are still experimental and will be disabled by default.

I've been waiting for the inclusion of Star Swarms before I try Quasar. I'm sure I'll do some fiction if I play and I wanted that guaranteed aggression as a reason to start building real warships. Is implementing Star Swarm still planned?

I do plan to include Star Swarm in a future patch.  Given that someone has shown interest, I'll bump up the priority.  Although I will mention, since your interest is in guaranteed aggression, one of the new features in the next patch is another feature that was planned for VB6 7.2, the ability to set minimum and maximum distance of starting NPRs from Sol.
Hell yeah can`t wait~ though i got to ask if it`s possible to do DB edit games like in Aurora and is so how?
 

Offline Stormtrooper

  • Commander
  • *********
  • S
  • Posts: 323
  • Thanked: 157 times
  • The universe is a Dark Forest
Re: Quasar4x - An Aurora4x VB6 clone
« Reply #406 on: July 17, 2021, 07:38:52 AM »
Ok, I just checked, it's just vb6 being vastly different in terms of ui and where is what (seriously, turns out c# sm is way more intuitive in terms of what is where) and I can both edit earth's atmosphere and buldings. But I added some water vapour, waited roughly two years and not a mililiter of it would condense on the surface + it's irrelevant for colonisation, or at least was in vb6 so I guess here it's the same.

Also, while I'm at it, before I forget: please, please let us turn off display of number of planets with cost 2 or lower at a galactic map - shouldn't be tough or time consuming to implement I suppose and it's really small change, but it's my pet hate with galactic map - I want to see "clear stars", without these blue dots and numbers on them.

I also have a question: are black holes and nebulae a thing?

Quote
if it`s possible to do DB edit games like in Aurora and is so how?

Of course it is possible and I have no idea how to modify planet and what's on it via db because I never tired, but I suppose aurora db should have some tables with planets or colonies that store the env and installation data somewhere and once those are found modifying it should be straightforward, I think.
 
The following users thanked this post: Warer

Offline Warer

  • Warrant Officer, Class 1
  • *****
  • W
  • Posts: 84
  • Thanked: 26 times
Re: Quasar4x - An Aurora4x VB6 clone
« Reply #407 on: July 17, 2021, 09:36:32 AM »
Ok, I just checked, it's just vb6 being vastly different in terms of ui and where is what (seriously, turns out c# sm is way more intuitive in terms of what is where) and I can both edit earth's atmosphere and buldings. But I added some water vapour, waited roughly two years and not a mililiter of it would condense on the surface + it's irrelevant for colonisation, or at least was in vb6 so I guess here it's the same.

Also, while I'm at it, before I forget: please, please let us turn off display of number of planets with cost 2 or lower at a galactic map - shouldn't be tough or time consuming to implement I suppose and it's really small change, but it's my pet hate with galactic map - I want to see "clear stars", without these blue dots and numbers on them.

I also have a question: are black holes and nebulae a thing?

Quote
if it`s possible to do DB edit games like in Aurora and is so how?

Of course it is possible and I have no idea how to modify planet and what's on it via db because I never tired, but I suppose aurora db should have some tables with planets or colonies that store the env and installation data somewhere and once those are found modifying it should be straightforward, I think.
I ask if so because i recall trying recently and the edited components not changing, though that could just be me misremembering Im pretty sure that`s what occured.
 

Offline Kyle (OP)

  • Moderator
  • Commander
  • *****
  • K
  • Posts: 323
  • Thanked: 796 times
  • Quasar4x dev
Re: Quasar4x - An Aurora4x VB6 clone
« Reply #408 on: July 19, 2021, 07:43:56 PM »
Progress Update 2021-07-19:

I've been inspired to finally work on Star Swarm.  Just finished the generation and spawning portions.  The test campaign I was planning is thus delayed, but at least it will be that much more interesting!

Yeah, star swarm, something I wanted to see badly but so far my two camapaigns, one in 1.12 and one in 1.13 were bugged and refused to spawn it no matter how hard I tried.

In VB6, getting the initial spawn for swarm is pretty rare, especially if you have NPR's dont generate spoilers.  It can be like 30-40 systems generated before they show up.

also hydrosphere is irrelevant for colonisation cost

In VB6 Hydrosphere affects albedo which in turn affects surface temperature, a factor in colonization cost.  Granted, world sim can always be more in depth but I want to stay in line with VB6's balancing.

Hell yeah can`t wait~ though i got to ask if it`s possible to do DB edit games like in Aurora and is so how?

Yeah.  It's an sqlite database.  https://sqlitebrowser.org/ is what I use.  Obviously I cant support any bugs you run into if you've made modifications. 

I also have a question: are black holes and nebulae a thing?

There are no black holes in Q4X.  No plans to add them.  I have never seen a black hole in VB6 and I think it may be a feature that was discarded.

Nebulae are fully implemented, yes. 



 
The following users thanked this post: Warer, StarshipCactus

Offline froggiest1982

  • Gold Supporter
  • Vice Admiral
  • *****
  • f
  • Posts: 1112
  • Thanked: 394 times
  • Gold Supporter Gold Supporter : Support the forums with a Gold subscription
    2021 Supporter 2021 Supporter : Donate for 2021
Re: Quasar4x - An Aurora4x VB6 clone
« Reply #409 on: July 19, 2021, 08:38:28 PM »
I also have a question: are black holes and nebulae a thing?
There are no black holes in Q4X.  No plans to add them.  I have never seen a black hole in VB6 and I think it may be a feature that was discarded.
Nebulae are fully implemented, yes.

There are Black Holes in VB6:

http://aurora2.pentarch.org/index.php?topic=3372.msg36620#msg36620

but they were removed from the real stars data (by mistake?) and reintroduced later

http://aurora2.pentarch.org/index.php?topic=6532.msg68150#msg68150.

Not that you have to add them, I am just saying that eventually, it would be a missing feature.
« Last Edit: July 19, 2021, 08:57:38 PM by froggiest1982 »
 
The following users thanked this post: Gabrote42, Stormtrooper

Offline Stormtrooper

  • Commander
  • *********
  • S
  • Posts: 323
  • Thanked: 157 times
  • The universe is a Dark Forest
Re: Quasar4x - An Aurora4x VB6 clone
« Reply #410 on: July 20, 2021, 03:07:46 AM »
From what I've heard, yeah, black holes were a thing in vb6, just not in real stars (makes sense because the closest blackhole is way further than the farthest from the stars aurora uses), but in random stars they were a thing. And I want to see them badly, it still hurts me they're not in c# despite the initial release being more than one year ago.
 

Offline Agm-114

  • Pulsar 4x Dev
  • Registered
  • Chief Petty Officer
  • ***
  • Posts: 37
  • Thanked: 16 times
  • Discord Username: AGM-114#7218
Re: Quasar4x - An Aurora4x VB6 clone
« Reply #411 on: July 20, 2021, 02:11:17 PM »
I've been primarily using quasar for DB modding and it works great.
 

Offline Droll

  • Vice Admiral
  • **********
  • D
  • Posts: 1309
  • Thanked: 374 times
Re: Quasar4x - An Aurora4x VB6 clone
« Reply #412 on: July 20, 2021, 06:08:10 PM »
I've been primarily using quasar for DB modding and it works great.

What kind of things have you been doing with the DB?
 

Offline Kyle (OP)

  • Moderator
  • Commander
  • *****
  • K
  • Posts: 323
  • Thanked: 796 times
  • Quasar4x dev
Re: Quasar4x - An Aurora4x VB6 clone
« Reply #413 on: July 27, 2021, 07:04:55 PM »
Progress Update 2021-07-27:

The next version is finally here.  Over the past months when I haven't been taking time off from the project I've been doing a lot of experimental stuff with automation -- which still isn't in a useful state.  But, I've added a lot of other stuff along the way which I wanted to finally release so I can get back to smaller, more frequent updates.  NOTE that this version comes with a new database that will overwrite your existing save game (after backing it up).  I have no plans to do any further incompatible database updates, I just figured now would be a good time to refresh it since it's been awhile. 

Here are the major changes for version 138.


Classic Mode

The first new feature I should mention is a new 'Classic Mode' checkbox in the Quasar4x > Settings window.  This is disabled by default.  Turning this mode on will revert the entire UI layout to resemble VB6 Aurora closely, basically how Quasar4x looked in version 136.  This checkbox will give me the freedom to make a few changes to the UI that do not appear in VB6 aurora.  For the rest of the features I list below, you can assume that anything I added that isn't in VB6 aurora can be hidden with the Classic Mode checkbox.


Star Swarm

Star Swarm is now implemented and behaves virtually the same as it does in VB6, strange reproductive ways and all.  I won't go into too much spoilery detail about them, but it should all be there.  Note that they can be pretty rare.


New Fleet Orders

Current Location Added a new location type to the possible locations an order can be performed at: Current Location.  This location is available for all orders that do not require a particular destination, such as Active Sensors On.  In total there are 16 orders that can now be performed at the fleet's current location.

Join Fleet and Tractor ships The fleet will join the target friendly fleet and tractor as many ships as it can.  For example, a you can tell a fleet of 5 tugs to join a fleet of 5 terraformers and link each terraformer to a tug.

Detach tugs Similar to Detach Survey ships, detaches all ships with an STS tractor into a fleet of their own

Request tow at.. The task group will indicate that it requires a tow from a ship with an STS Tractor.  Once a tug fleet joins with this fleet, the Request Tow order is considered complete, and the next order in the queue is processed. This order does nothing on its own, but is important for some of the features listed below. 


New Default Orders

Fulfill nearest tow request The fleet will travel to the nearest fleet that is currently idling on a "Request tow at.." request and perform a Join Fleet and Tractor Ships action when it arrives.

Refuel stranded fleet Travel to the nearest fleet that has an order to move somewhere but cannot do so for the specific reason that it is out of fuel.  Refuel the target fleet upon arrival.

Resupply nearest fleet with < 80% supplies Travel to the nearest fleet with <80% supplies and resupply it upon arrival.

Load fuel at harvester Like load fuel at colony, except it visits a harvester.

Load Infrastructure from nearest pop with a surplus The fleet visits a population in this system or nearby systems that has more than 200 infrastructure that it isn't using and loads it.

Deliver Infrastructure to nearest pop with a defecit Cargo fleets loaded with infrastructure will visit a pop in this system or nearby systems that have colony cost 3 or less and cannot grow without more infrastructure and unload infrastructure there.

New Conditional Order: Unload 90% fuel at capital When the condition is met, the fleet will travel to the capital and unload excess fuel there.


Non Repeating Orders



If you Add Move while this box is checked, the move will appear with a "(no repeat)" in the Plotted Move queue which has two effects:
- When Cycle Moves is checked, orders flagged as non-repeating will be removed from the order queue rather than being cycled.
- When pressing the Repeat button, non-repeating orders will be excluded.


Auto Request Tow, Auto Detach Tugs




Request tow when unable to move

If the fleet has an order requiring it to move but is out of fuel or has no functioning engines, a towing request will be inserted at the top of its order queue.

In further detail: This triggers at the end of the conditional order phase in the sequence of play.  This checkbox has no effect on fleets already containing a mix of tugs and non-tugs.  A 'Request Tow at Current Location' order will be inserted at the top of its order queue, flagged as a Non Repeating Order so that it is removed once the request is completed.  The request can be completed by a nearby fleet with the default order to 'Fulfill nearest towing request'.

This feature is useful for automatically handling emergencies where a fleet has run out of fuel or has lost all of its engines.  It's also useful to reduce the amount of micromanagement necessary to tow stations to their destination.  For example, suppose you've just constructed an asteroid miner with no engines.  You can check this box, then tell the asteroid miner to mine a remote asteroid.  An idle tug configured to fulfil tow requests will come along, join, and tractor the miner.  This clears the 'Request Tow' order, and the next order is processed, which is to move to the target asteroid.  This order can be completed since the fleet is now capable of moving.


Detach tugs when no longer needed

Immediately performs a Detach Tugs order (unlinks and detaches all tugs into their own fleet) at the end of the conditional order
phase whenever this fleet has fuel and engines, OR whenever the fleet is not currently being ordered to move anywhere.

This is useful in combination with the checkbox above it.  It saves the micromanagement of having to manually unlink and detach
tugs after towing is complete.  Note that one more manual step is required, which is to re-add the 'Fulfil Nearest Tow Request" default order back to the towing fleet.  I have plans to further automate this flow in a future update.


Policies Tab



Added a new Policies tab to the F3 window which currently just has two policies you can enable for each population but more can be added later.  You can have the population automatically resupply fleets that refuel or overhaul at its location, and/or automatically refuel fleets that resupply or overhaul.


New Game Options

Ruin Generation Chance Added the C# and 7.2 feature Ruin Generation Chance to the Create New Game and Game Details windows.  Previously it was a static 20% chance on eligible worlds.  Note that a world still has to meet all the other habitability and body type conditions for a ruin to be present.

Minimum and Maximum Distance for Starting NPRs Added this C# feature to the Create New Game and Game Details windows.  However, my implementation may be different.  In Quasar4x it is implemented as follows: Rather than the Player and NPRs being spawned in their own isolated systems and fate deciding when a pathway between them is generated, all worlds between the player and the NPR are generated at the start of the game, like spokes of a wheel.  These worlds are kept hidden until they are discovered, and no indication is given whether a new world you discover was present at the start of the game and thus actually a link in the path to an NPR.  To help keep the secret I hid the System ID on the System View (F9) window.  The ID of a system can still be viewed by temporarily enabling classic mode.

Anyway, since the pathways are all generated at the start of a game, you can guarantee you will run into an NPR if you explore enough within the given distance from your home.  Note that there is one important difference in my version from C#: I believe in C# the distances you provide are the distances in LY between known stars.  In Q4X, the distances you provide are in AU, not LY, and it measures the physical distance a ship would have to travel if you issued it an order to fly from the center of Sol, through each system in the path from entry JP to exit JP, to reach the destination. 

I generated several starting galaxies trying out different distances and found a 40 to 80 AU range to be a good range, so these are the values that are populated by default.

You can set maximum distance < minimum distance to disable the feature.


Conventional Start NPRs

I've implemented the 'Generate only non-Trans-Newtonian races' checkbox on the Create New Game window.  This checkbox behaves in accordance with the tooltip of the checkbox in VB6, but not in mechanics.  In Q4x, truly conventional NPR empires are implemented; They will spawn with Conventional Industry rather than Factories, only the most barebones technologies, and everything else that comes with a Conventional Start empire.  All the auto-design code has been updated to support missing technology that was previously assumed to be known, and any ships that cannot yet be generated due to missing tech will just be skipped until they can be designed.  NPRs will convert conventional industry to TN facilities once it researches TN tech.  That said, I would only recommend this be enabled for someone just learning the game since this will set NPR's decades back in tech and development.


New Production Overview window



I replaced the Production Overview window with my own version. (The original is available in classic mode.) The benefits are:
- adds shipyard expansion, ground unit training, and terraforming to the categories of production being tracked. More categories may be added later
- when viewing more than one category, data isn't limited to just the first 0.25 years
- can select which columns to show
- can show idle production, ie factories or shipyards not in use
- an info column that shows specifics about the task; Allocated Labs for research, Total Slipways / Available Slipways / Capacity per Slipway for shipyards, percentage of factory capacity allocated for Construction/Ordnance/Missiles, Attack Strength / Defense Strength for ground units in training, and current colony cost for Terraforming.
- sort by up to 5 columns. (by using the dropdowns or clicking on column headers)
- the other empires dropdown adds the ability to show all players (in sm mode) in addition just showing other allies
- Time remaining is relative (Days / Months / Years) rather than absolute dates (although absolute dates are a column option.


Ad-Hoc explorer ship for SM



Simply right click in empty space and add an exploration ship.   Component and ship designs are taken care of, regardless of whether tech is currently known.  The design of the ship, (mostly arbitrary), is below.

Off-Topic: show
SM Exploration class Exploration Ship    4 000 tons     99 Crew     3204.5 BP      TCS 0.4  TH 1000  EM 450
12500 km/s    JR 3-50     Armor 1-22     Shields 15-300     Sensors 375/375/0/0     Damage Control Rating 3     PPV 0
Maint Life 5.34 Years     MSP 1508    AFR 42%    IFR 0.5%    1YR 88    5YR 1326    Max Repair 900 MSP
Intended Deployment Time: 36 months    Spare Berths 0

J5000(3-50) Military Jump Drive     Max Ship Size 5000 tons    Distance 50k km     Squadron Size 3
500 EP Photonic Drive (2)    Power 500    Fuel Use 1.59%    Signature 500    Exp 5%
Fuel Capacity 500 000 Liters    Range 1414.2 billion km   (1309 days at full power)
Omega R300/360 Shields (1)   Total Fuel Cost  15 Liters per hour  (360 per day)

CIWS-1000 2 (1x16)    Range 1000 km     TS: 100000 km/s     ROF 5       Base 50% To Hit

Active Search Sensor MR6750-R100 (1)     GPS 90000     Range 6.75b km    MCR 73.5k km    Resolution 100
Active Search Sensor MR675-R1 (1)     GPS 900     Range 675m km    MCR 73.5m km    Resolution 1
Thermal Sensor TH5-375 (1)     Sensitivity 375     Detect Sig Strength 1000:  375m km
EM Detection Sensor EM5-375 (1)     Sensitivity 375     Detect Sig Strength 1000:  375m km
Cloaking Device: Class cross-section reduced to 1% of normal

This design is classed as a Military Vessel for maintenance purposes

This is a feature which can certainly be expanded upon in the future.


Overhauled System Gen

I spent weeks revisiting and tweaking almost every line of code in system generation to bring system gen more in line with VB6 Aurora.  For this process I wrote a lengthy script which analyzed over 3500 systems generated by Aurora in almost every way imaginable, then I adjusted Q4X to come as close as possible to similar statistics.  The most important statistic was the distribution of colony costs, atmosphere composition, and NPR-habitable worlds, although every single element that leads up to these final numbers was looked at.  It probably goes without saying, but I was literally questioning my own sanity after a couple weeks in, but it's done and I'm exhausted but happy with the outcome. 

There were so many things adjusted that I can't list them all, but here were the noticeable changes.  Note that all of the changes are *toward* aurora statistics, not away from.  For example, there were a couple changes that statistically raise temperatures.  This means that previously there were too many bodies being generated that were too cold to be habitable. 

- The abundance modifier roll will be more likely to be middle-ground and less likely to be extremely low or high.
- I am no longer scaling orbital distances up when they are all close to the star.  This will slightly raise overall tidal forces and temperatures.
- Added a 1 in 5 chance for a secondary star to have the 99% the mass and radius of the primary star.  Previously, secondary stars were always significantly smaller.  This will improve statistical chances of more "stuff" in systems.
- Fixed a major error in calculating what orbital distance is too close to a star.  Bodies can now be much closer than before, which will improve temperatures.
- Rewrote the routine that determines which stars orbit which other stars, and at what orbital distance.
- Fixed bug that allowed asteroid belts to be too wide
- The total mass in asteroid belts should now be higher
- Added a small chance for lone asteroids anywhere in the system
- Added a small chance for "double planets" - terrestrial moons that orbit terrestrial planets and have similar properties to the planet
- Chance for comets to appear in a system is no longer dependent on the properties of the system
- Added chance for a moon to instead be a ring (RP purposes only, no in-game impact) if it is within the roche limit
- Temperature of bodies is now affected by solar infall from nearby stars other than the stars they orbit
- rewrote astmospheric gas composition generation
- fixed one or two major bugs, but I honestly cant remember what they were

Random factoid: I found that about in VB6 you should expect to see one NPR every 14 systems -- at 100% spawn chance.  So the default setting of 30% is going to make it one NPR every 46 systems.  Obviously with so many factors involved its going to vary wildly so you might explore less.. or many, many more systems, before running into them.  The same is thus true for Q4X.  With that in mind I'm probably going to set my NPR odds at 60/20 for my next run rather than the stock 30/10.


Pseudo known stars theme for non-known-stars games

I've added a new theme for system names called Elite, for non-known-stars games, containing about 14K system names from the game Elite: Dangerous.  This list of names contains many names of the known stars in the Milky Way like Proxima Centauri, Barnard's Star, and Sirius.  But it also contains all of the flavor names they added to the game like Deciat, Thuban, Sental (I picked those names out from the list at random).  I excluded the thousands of systems that have generic names like HIP 12345 and "Col Sec 123-41234 blah blah.  So what remains is a very large list of real names mixed with real-sounding made up names to make it feel like you're exploring an alternate milky-way-like galaxy. 

To go along with this theme I've changed system name themes to pick at random out of the list of system names, rather than in a fixed order every game, but the randomness is weighted so that names at the top of the list are more likely.  Names in the new Elite theme are listed in order of distance from Sol in Elite: Dangerous.


Configurable Event Interrupts

Added a new Manage Interrupts button:



Which opens a new Manage Event Interrupts window:



Where you can configure which events cause interrupts. 

Note that I still need to add a feature that lets you configure what NPR events cause interrupts.  I just have to think about how to do it because you don't usually know what is causing the NPR interrupts.


Show Class Design Function



Ship class designs are assigned a function based on what components they include; this has always been the case in VB6 and Q4x.  It's always been hidden from the player but it does play a role when you give (or surrender) a ship to an NPR.  The class design window will now show what function an NPR would use the design for if you gave it to an NPR right now.  The 'Sort Classes' radio buttons were changed to a dropdown to make room.

In the future I plan to greatly expand upon Class Function, letting players make use of it as well for various automation purposes.


Automation

I spent many, many weeks working on my 100% automation idea.. and I've only gotten it to the point where it can handle a single system.  I may very well be abandoning the idea, in favor of lots of little QoL features that help reduce micromanagement.  I had wanted automation in case I ever tried some multiplayer stuff, so a person could set up their automation settings, then go to sleep while their empire continued to grow in an online world.  I think I'm changing my vision to where the player receives just enough tools to set up a formidable defense for their systems before going to bed, so no complex development takes place, just production queues and static automated fire against nearby hostiles.  That's all just daydream stuff.

Back to what's actually done right now.  I realized it will be very easy for the automation code to screw something up the player was doing, such as their ship and component designs and shipyards.  It will also be a lot of work trying to support all the bugs and quirks that arise from automation code.  I debated whether to include it at all, or make it a secret option you can only enable by editing a config file.  In the end I decided to release it as-is, with a big ugly disclaimer.



Because it CAN be useful for experimental purposes, when you just need to get a player empire or three up and running for a test you want to do without caring about the details of how it works.  The disclaimer is true though; I will flat out not be supporting any issues that arise with from this window, and it should not be used in a "for real" campaign.

I wont go into too much detail about every single option in every tab.  The teams tab has a 'Diplomacy Training' checkbox which will automatically keep 5 diplomats that would otherwise be idle busy in a diplomacy team so they receive training.  The Contracts tab has a checkbox which will automatically manage contracts for Mass Drivers, shuffling them around from body to body via contract as needed to get minerals sent to the capital.  For now, this only works for home system.   Fleet orders has a 'Detach Immobilized Ships' checkbox which will also set them to request tow for repair after detached.  The fleet orders General checkbox handles the remaining micromanagement not handled by the new fleet orders and default orders listed above, but it does a lot of other stuff too.  I need to split it out into multiple checkboxes.  It also auto-manages Task Force training, moving ships out of the TF training fleet when done, and moving new rookies into the fleet.  The commanders tab has a 'planetary governors' checkbox which should keep all your non-empty pops governed by somebody.  The empire tab has a 'terraforming' checkbox that keeps all pops configured to add or remove appropriate gases to make them breathable.  This is useful in conjunction with the terraforming default order.

There's a lot of other settings in there as well.  Automation can be found in the Quasar4x dropdown menu.  It comes disabled by default.  To enable it, go to Quasar4x > Mods and check the Default AI and "Default Library boxes.  (As an aside, I simplified the 'Enabled' column.  Previously it was a customizable dropdown that let you enable the mod for specific conditions only, and it was a coding nightmare for me and the modder.  Now its just an On/Off checkbox)



 
Automation code is kind of (but not really) externalized into the file /mods/default/ai.gd, but it is mostly just a whole bunch of calls to black box api functions, I haven't externalized much of the interesting logic.

(Part II follows..)


« Last Edit: July 27, 2021, 07:11:16 PM by Kyle »
 
The following users thanked this post: Tchey, amram, Warer

Offline Kyle (OP)

  • Moderator
  • Commander
  • *****
  • K
  • Posts: 323
  • Thanked: 796 times
  • Quasar4x dev
Re: Quasar4x - An Aurora4x VB6 clone
« Reply #414 on: July 27, 2021, 07:05:12 PM »
Other additions

- Improved the speed of making a backup by about 2x by using sqlite's online backup feature.  This makes the 'backup every turn' option a lot less irritating to use.
- Implemented cloaking device (I had just plain forgot to do it)
- Implemented intel gathering of alien sensor capabilities
- Implemented intel gathering of alien weaponry by alien ship class
- NPRs will now balance ordnance across similar ships in a fleet


Bug fixes

There are so many fixes I literally cannot find or remember them all.  I've listed some of the more notable fixes here:

Major fixes:
- NPR was not getting enough staring build points for its starting ships due to a typo, especially for non-military ships, which often lead to weaker military forces and non existant commercial ships (survey, etc)
- Automated ship design was factoring in armor size multiple times instead of just once when determining how much space it had for components, resulting in designs that were weaker than intended

Smaller Fixes:
- fixed a major memory leak that was occurring with every single access of database query.
- Speeds of detected alien contacts would sometimes be incorrect after a production cycle
- NPRs were sometimes incorrectly viewing hostile contacts as stationary and thus easier to hit than they actually are. (Can still happen but less frequently)
- When a ship consumes fuel, it will be reduced to 0 if it drops below 0.01
- Fleet Orders window Task Group and Task Force dropdowns behaviors changed to match aurora vb6: The task group dropdown now shows all fleets in the drop down regardless of task force, and the Task Force dropdown can now be used to assign fleets to a different task force.
- Rewrote my increment shortening logic, with the general goal of making it less buggy and more reliable
- Whenever a ship of an unlocked design is created by any means, its class design is locked
- NPR pathfinding was sometimes incorrectly determining whether fleets were jump capable. (Pretty big fix, it was crippling their expansion)
- class design window: shields were incorrectly being detected as requiring reactor power
- class design window: added warning when ship is too large for its cloaking device
- colony summary: when SM granting research, reworded the popup from "All projects with lower costs than this figure" to "All projects with costs of this amount or lower" to correctly reflect how I've implemented it
- colony summary, shipyard schedule: fixed a div-by-zero issue, shows 'N/A' instead
- Create New Game window: removed erroneous "(This setting currently has no effect)" from tooltip of No Overhauls
- Create Research Project: no longer possible to create cloaking device smaller than your current tech level allows
- Create Research Project: no longer possible to create magazines with structural shell. Intergalactic safety regulations mandate your munitions must be stored in a solid protective enclosure :)
- Events window: in SM mode, double clicking an event of a different race will set that race as the default race so the UI functions properly when jumping to that event's location
- Transfer fleet to alien empire: fixed syntax error in the routine that deletes related shipyard tasks
- fixed issue where civs would sometimes not deliver infrastructure to populations only needing a small amount, which resulted in a population that would never grow without manual intervention
- fixed: it wasnt possible to shoot shipyards with mesons
- Game Details window: removed erroneous "not yet implemented" from precursor checkbox tooltip
- fixed: NPR logic was considering Guass Cannons as requiring power
- fixed: gauss cannons weren't considered military.
- fixed: ciws size and cost wasn't correctly factoring in Turret Rotation Gear tech, they were slightly too high.  For NPRs this was resulting in slightly weaker ships than intended due to overbudgeting space for ciws.
- fixed: ciws HTK was calculated incorrectly at larger sizes
- fixed: number of starting conventional factories was incorrect for government types other than Player Race
- fixed: ship thermal was being calculated as Ship Size * stealth rating for some reason. It's now engine power * stealth rating
- certain activities that auto-delete fleets (such as the Absorb order) will not delete the fleet if there is an associated shipyard task
- fixed: repairing a ship wasn't setting its stats back to normal
- fixed: npr's werent updating their designs when learning new magazine tech or jump engine tech
- System Map: civilian fleet movement trails changed to cyan
- Added "Backup DB" to the Quasar4x dropdown menu so you can make one-off backups. It will popup a location and name of file.
- Added numbers to generic comets so they are distinguishable on lists
- fixed: laser focal sizes 40cm and higher had the wrong stats and 80cm was missing
- Set Task Group Position now includes waypoints in the list of targets
- You can now delete non-empty fleets.  I added a confirmation popup when the fleet contains ships to mitigate accidental deletions.  Commanders, teams, and divisions on board the deleted ships are transferred to the capital (or current population if in orbit)
- Fixed a couple issues involved in capturing/surrendering populations
- Lots of other fixes

Aside from automation, my overarching mission was to focus on areas that would ruin or break a long running campaign if issues in those areas were discovered too late.  This is why I focused so intensely on system generation so that it is now rock solid after analyzing thousands of systems generated in Q4X.  Additionally, while I was working on Star Swarm, I set them up to interact with NPR's and Precursors, and made dozens of little tweaks and fixes so that I'm now confident that while I am focusing on my player empire, I can be sure that the NPRs not yet visible to me are developing their empires correctly.  (Probably.)

I'll be pushing the new version (138) now, then posting these notes in a shorter version in the patch notes thread.  I'll start a new bug thread as well. 

In the weeks and months to come I'll be continuing to add QoL and tools to ease micro-management.  Right now I plan to take a couple days off (other than hotfixes) then start in on a "for-real" campaign (After all this time I seriously have yet to do one). 
« Last Edit: July 27, 2021, 09:48:42 PM by Kyle »
 
The following users thanked this post: froggiest1982, Tchey, amram, firefly2442, Warer

Offline Warer

  • Warrant Officer, Class 1
  • *****
  • W
  • Posts: 84
  • Thanked: 26 times
Re: Quasar4x - An Aurora4x VB6 clone
« Reply #415 on: Yesterday at 07:30:58 PM »

Hell yeah can`t wait~ though i got to ask if it`s possible to do DB edit games like in Aurora and is so how?

Yeah.  It's an sqlite database.  https://sqlitebrowser.org/ is what I use.  Obviously I cant support any bugs you run into if you've made modifications. 


Back home now and I checked DB edits do nothing, as far as I can tell the whole DB is window dressing considering overwriting it with the download did nothing to change what happened when I opened Quasar
 

Offline Kyle (OP)

  • Moderator
  • Commander
  • *****
  • K
  • Posts: 323
  • Thanked: 796 times
  • Quasar4x dev
Re: Quasar4x - An Aurora4x VB6 clone
« Reply #416 on: Yesterday at 07:57:54 PM »

Hell yeah can`t wait~ though i got to ask if it`s possible to do DB edit games like in Aurora and is so how?

Yeah.  It's an sqlite database.  https://sqlitebrowser.org/ is what I use.  Obviously I cant support any bugs you run into if you've made modifications. 


Back home now and I checked DB edits do nothing, as far as I can tell the whole DB is window dressing considering overwriting it with the download did nothing to change what happened when I opened Quasar


You are probably editing the one that is in the same folder as the exe.. that is just a default that is copied to the user dir the first time the game runs.  The one to edit is in the user dir which on windows is %appdata%/roaming/Godot/app_userdata/Quasar4x