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

0 Members and 1 Guest are viewing this topic.

Offline Father Tim

  • Vice Admiral
  • **********
  • Posts: 2162
  • Thanked: 531 times
Re: Quasar4x - An early look at an Aurora4x clone in the works
« Reply #30 on: October 18, 2018, 10:27:17 PM »
In making Q4X one of my hopes was that existing A4X spreadsheets and forum posts with ultra precise ship designs would work in Q4X but unfortunately with armor differences and other rounding errors that won't always be the case.  11000 ton ships will become 11050 ton ships, and so on.  The way I have it set up, ships in A4X do keep their statistics intact when imported to Q4X, but as soon as you edit the design, the Q4X math takes over and your values change slightly.  In general, Q4X makes much more precise calculations than A4X because A4X likes to perform rounding multiple times in a formula.

You may have done a better job than you think.  In Aurora, the very same ship design may be 11,000 tons or 11,050 tons depending on whether you increase the armour value from X-1 to X, or decrease it from X+1 to X.
 

Offline Kyle (OP)

  • Moderator
  • Captain
  • *****
  • K
  • Posts: 472
  • Thanked: 973 times
  • Quasar4x dev
Re: Quasar4x - An early look at an Aurora4x clone in the works
« Reply #31 on: October 19, 2018, 11:12:57 AM »
Wow, thanks for mentioning that.  Really thought I was losing my mind!
 

Offline JustAnotherDude

  • Sub-Lieutenant
  • ******
  • J
  • Posts: 114
  • Thanked: 56 times
Re: Quasar4x - An early look at an Aurora4x clone in the works
« Reply #32 on: October 19, 2018, 11:59:37 AM »
I remember the Discord chat, which is filled with utter nerds, going insane for about a week on the armor calculations, so getting it somewhere close to that arcane beast is an accomplishment.
 

Offline Kyle (OP)

  • Moderator
  • Captain
  • *****
  • K
  • Posts: 472
  • Thanked: 973 times
  • Quasar4x dev
Re: Quasar4x - An early look at an Aurora4x clone in the works
« Reply #33 on: October 25, 2018, 02:57:56 PM »
Progress Update 2018-10-25:



The first update containing realtime animation! (Also the last one!)



Rather than go silent for many weeks, I've decided to post an update on what I've got done on the Galactic Map so far.  I'm really happy to have realtime dragging!   Also the quirky color scheme of A4X's multi-select has been replaced with a diagonal line effect.  Fun fact, the circles, rings, and diagonal lines are rendered using a GL Shader, for ultra fast performance!  This means theoretically tens of thousands of systems could be rendered and dragged around with not too much of an FPS hit, and look crystal clear at any zoom level.

There is still a lot of work to do on the Galactic Map, but a lot of the heavy lifting is done.  The graphics, selecting, and dragging are all done, as is pulling real galaxy data from the database and rendering it.  Nothing in the animated gif is a placeholder for demo purposes, the numbers are actual calculated colony costs, lines represent real connections from surveyed data, system positions are saved and loaded to disk.  Zooming and scrolling is implemented as well.  Here's the full list:

- Sidebar View dropdown, GUI layouts for all sidebar views, Refresh All Map Data button, Scroll Map, Zoom Map, Minimize Sidebar, QV button, QV panel, Map display Options all load and save to disk, Show suitability 2 to 2.9, Show Suitability 3 to 5, show uncolonized <2, show uncol < 4, Show Task group locations, Map Key panel, help panel, Save Positions, Restore positions.   Map graphics: hull icon for fleet present, orange lines for jump gate connections, green lines for non-gate jump connections, bright green for currently focused system, empty circle for systems without bodies, blue/cyan/gray tiny circles for stats, drag, and multi drag.

What's next is a tossup.  I may shift gears again and go back to my alphabetical pass thru of all windows, which would mean working on the colony summary, or I may continue on the Gal Map, or a little of both.  I will be slowing down my pace the next week or so to enjoy some other activities.  Marathon runners gotta pace themselves! ;)
 
The following users thanked this post: Manekaalecto, Demonides, s20dan, El Pip, bro918, JustAnotherDude

Offline Kyle (OP)

  • Moderator
  • Captain
  • *****
  • K
  • Posts: 472
  • Thanked: 973 times
  • Quasar4x dev
Re: Quasar4x - An early look at an Aurora4x clone in the works
« Reply #34 on: November 02, 2018, 12:59:44 PM »
Progress update 2018-11-02:





Done with Galaxy Map!!*  This one was a hefty one because unlike all the other windows, I didn't have anything done in a previous pass.  So it was really like 2 ½ passes in one. 

*For now.  A few of the things not done in this pass: The Fleet Maintenance statistic is hidden since its usefulness is questionable. The Populations context menu isn't currently implemented since it's just a dubious list of numbers on the A4X side.  Map labels aren't done yet.  I'll get back to all of these later. 

I added an "Unsaved Changes" message when you've moved systems around but haven't saved them yet.  Also fixed a few things in Q4X that weren't working correctly in A4X:  Show time to system at speed below honors different speeds when they are entered.  Show Task Group Locations hiding fixed.  Double clicking Jump Point Data rows selects the system instead of erroring.  Col cost 7 to 10 stats are correct.  Select Random color works.  Planets tab shows comets.  Survey point cost doesn't overlap with sector name. Open Fleet Window and Fleet Moves on the context menu have been combined into just Fleets, since they seem to be identical in A4X.

As for a list of what I've done since my last post, the short answer is pretty much everything else.  The long answer is feel free to try it and see! 

And a special mention for 'Show distance from selected system'.  This required creating the code that finds the shortest path between any two systems taking into account distances between warp points in a system.  (Thanks to Dijkstra for the assistance.)  This will be re-used many times later on, so it's nice to be done with that!

Colony Summary is next!  It's really like 12 windows rolled into one so that'll probably be broken into a few updates. Fortunately, the groundwork is already in place for this one!
 
The following users thanked this post: Demonides, s20dan, JacenHan, Noble713, El Pip, fischyk, Liyannis

Offline Kyle (OP)

  • Moderator
  • Captain
  • *****
  • K
  • Posts: 472
  • Thanked: 973 times
  • Quasar4x dev
Re: Quasar4x - An early look at an Aurora4x clone in the works
« Reply #35 on: November 09, 2018, 10:42:48 AM »
Progress update 2018-11-09:

I haven't spent a whole lot of time on Q4X since my last update, but I did get a chance to fix the Populated Systems tree on the colony summary and complete the Environment / GMC tab.

Populated systems tree is now showing Auto Mine count, Civ Mine count, Orbital Transform count, and ordered similarly to A4X.  A few systems were missing or named incorrectly in my previous build which is also fixed.  On the Env/GMC tab: everything is functional; Select Gas, add or remove gas to atmos, set max atm, view atmos data, select species to modify, and view species info.  New win & linux build pushed to Itch.

I do believe I'll have more time to work on Q4X for my next update, which will be more work on the Col Summary window. (aka Population and Production window)

Musings of the day: In fixing system naming for the Populated Systems list I realized there's another way Q4X is going to be faster than A4X.  I'm pretty sure A4X runs very basic SQL such as "select * from Table" or "select Column1 from Table" and does most of the data processing on the VB side.  I'm not sure if there's a benefit to moving the heavy computing to the SQL side in a VB program, but I know there's a huge benefit to doing that in Q4X.  The sqlite engine is a library written in blazing fast C (not even c++), and I do a LOT of game logic on the SQL side.  Many of my queries are dozens of lines long.  This means there's even less work, if any, I'll have to do in C++ down the road because the sqlite engine will already be faster.  Additionally, by doing work in SQL, I can make direct use of query optimization and I can add something very powerful to the database that doesn't exist on the A4X:  indexes!  The A4X databases does have indexes but does not have any dual column indexes, and has at most one index per table.  Since my last update I have added 5 new multi-column indexes to the database (and will be adding more) and saw the run-time in one query (related to system body naming) go from >2000ms to 13ms!  I am very excited to see what other super easy speedups will be made possible with more indexing.  (By the way, no disrespect to the A4X database, it is organized very well and I don't think Q4X would have been possible without such a clean schema!)
 
The following users thanked this post: Manekaalecto, s20dan, Noble713, Slatibartfas

Offline Froggiest1982

  • Gold Supporter
  • Vice Admiral
  • *****
  • F
  • Posts: 1394
  • Thanked: 649 times
  • 2023 Supporter 2023 Supporter : Supporter of the forum in 2023
    2024 Supporter 2024 Supporter : Supporter of the forum for 2024
    Gold Supporter Gold Supporter :
Re: Quasar4x - An early look at an Aurora4x clone in the works
« Reply #36 on: November 09, 2018, 05:50:40 PM »
Following you now from another post thanks to Erik Luken, you are my new hero right now! If I knew more about coding I would have been super happy to help.

Offline firefly2442

  • Leading Rate
  • *
  • Posts: 8
  • Thanked: 8 times
Re: Quasar4x - An early look at an Aurora4x clone in the works
« Reply #37 on: November 11, 2018, 12:59:29 PM »
Wow cool, someone else who's heard of Godot.   I actually tried starting something very similar using Godot but ran into snags with the UI.   Do you use any tools for building the UI?  That was one thing I struggled with, Aurora4x has very complicated UI screens and it seemed to be incredibly difficult to get the layout the way I wanted.   If you ever change your mind about collaboration, let me know.   I would be interested in helping.
 

Offline TMaekler

  • Vice Admiral
  • **********
  • Posts: 1113
  • Thanked: 300 times
Re: Quasar4x - An early look at an Aurora4x clone in the works
« Reply #38 on: November 12, 2018, 06:14:46 AM »
In the beginning of this project I thought: why doing this? At that time C# Aurora was already on its way - so already speedy turns ;-)
But now I think that some AARs don't need the new complexity of ground combat - and Quasar 4X might become a good alternative if your AAR focuses only on the space side of things.
 

Offline Froggiest1982

  • Gold Supporter
  • Vice Admiral
  • *****
  • F
  • Posts: 1394
  • Thanked: 649 times
  • 2023 Supporter 2023 Supporter : Supporter of the forum in 2023
    2024 Supporter 2024 Supporter : Supporter of the forum for 2024
    Gold Supporter Gold Supporter :
Re: Quasar4x - An early look at an Aurora4x clone in the works
« Reply #39 on: November 12, 2018, 03:15:20 PM »
In the beginning of this project I thought: why doing this? At that time C# Aurora was already on its way - so already speedy turns ;-)
But now I think that some AARs don't need the new complexity of ground combat - and Quasar 4X might become a good alternative if your AAR focuses only on the space side of things.

That was my point when I was asking Steve and I was redirected here. I am sure I will enjoy all the new features of C#, but still, sometimes the good old flavour and simplicity (compared to the new mechanics) will be great to have.

I am curious now to see how he'll work around the AI and possibly the only extra feature respect to the original would be on that part and the diplomacy.

Offline Kyle (OP)

  • Moderator
  • Captain
  • *****
  • K
  • Posts: 472
  • Thanked: 973 times
  • Quasar4x dev
Re: Quasar4x - An early look at an Aurora4x clone in the works
« Reply #40 on: November 13, 2018, 05:04:59 PM »
Progress update 2018-11-13:

3 more tabs of the Colony Summary (aka Population and Production) plus most of the controls along the bottom done for now, including:

Main: Hide CMC checkbox, Group by function, set Capital, Rename system body, Abandon population, and the other buttons that open other windows
Wealth Trade tab: numbers are all calculated correctly now
Ground units tab: ground forces dropdown, required/actual occupation, police strength/modifier, text for copy paste, ground units list, rename ground unit, convert GU to cadre, disband GU, transfer HQ, Clear HQ, transfer GU to PDC or pop
GU training tab: units training list, rename unit in training, add task, delete task, use cadre, cadre stats, rename unit type

Also made a bunch of fixes for other windows I'd broken without realizing, so the prototype demo is less crashy.

Regarding Godot, I did have a bit of wrestling with it to support the types of controls I needed.  Specifically dropdown menus, Trees for the table layouts, and the bordered panels required some work to get right, but I managed to do it all with the built in controls and theme tools provided.  I had to make a couple concessions for layout, such as tabs, and haven't visited how to limit the height of a dropdown that has many items.

Regarding ground units, it should ideally be identical to A4x 7.1 just as any other feature. 

Regarding AI, I'm actually pretty excited for what I have in mind for that.  Rather than do it all myself, I plan to expose AI logic in external config files, one file per AI "personality", and allow players to design their own AI to use and to share. (Modding, in other words)  The files would be a scripting language that is as simple as I can make it with a well documented set of functions available (like GetShortestPathToSystemBody("Luna") or whatever).  So, while I would include AI "personalities" that seem to resemble AI in A4X as close as possible, I would be using the same external config system that anyone else would use, and developing that system in parallel.  And anyone else that wanted to could try making their own AI variant.  I'd like to have a way to pit one AI type against another and watch both sides, since I need to do that anyway to test that AI is working correctly.  So it might be fun to see whose AI can beat the others :)

AI is a LONG way off, but now you know my vision for it :)

I'm actually a little more nervous about galaxy and race generation.  Might externalize that into config files as well! 
 
The following users thanked this post: Froggiest1982, ExChairman, amram, TMaekler, Slatibartfas

Offline Kyle (OP)

  • Moderator
  • Captain
  • *****
  • K
  • Posts: 472
  • Thanked: 973 times
  • Quasar4x dev
Re: Quasar4x - An early look at an Aurora4x clone in the works
« Reply #41 on: November 19, 2018, 02:56:56 PM »
Progress update 2018-11-19

Progress will be very slow or non existent til 2019 due to holidays etc.  Probably just one more update this year in mid Dec.  I do have Civ/Ind status tab done (supply/demand contracts, select colonization status, show civ ships, toggle industrial facilities)
 
The following users thanked this post: hubgbf, maxfire

Offline Kyle (OP)

  • Moderator
  • Captain
  • *****
  • K
  • Posts: 472
  • Thanked: 973 times
  • Quasar4x dev
Re: Quasar4x - An early look at an Aurora4x clone in the works
« Reply #42 on: December 18, 2018, 04:55:04 PM »
Progress Report 2018-12-18:

Teams / Academy tab is done for now.  As warned, it's not a big update this time.  Hopefully I'll be able to return to regular updates next month.  Latest prototype build has been updated.

Specifics that are done in this tab: Academy level, Officer grads per year, racial training level, crewmen and junior officers, list available officers by team type, show this pop only, show unassigned only, create team, list teams on this colony, list members of team, list commanders stationed at colony, open officers window, transfer team to ship, rename team, disband team.   

Meta Musings: Not going to lie, the grind is getting real.  At this phase in the project, none of the code is particularly challenging, there is just so.. darn.. much of it, and the end result of finishing a section is a lot like seeing two pages of numbers add up in an accounting program.  It's one of the reasons progress is currently slow.  I'm fiercely determined however, and love to code, so it's not going to die.  Q4X is and will be my only programming-for-fun project until otherwise notified.  And if I ever do move on, I will absolutely make it open source / MIT License first. 

Anyway!  The holidays call, happy times are here and I hope everyone is well!  See you next year!
 
The following users thanked this post: Manekaalecto, Froggiest1982, El Pip, tws029, Liyannis

Offline MasonMac

  • Registered
  • Warrant Officer, Class 1
  • *****
  • M
  • Posts: 93
  • Thanked: 31 times
Re: Quasar4x - An early look at an Aurora4x clone in the works
« Reply #43 on: January 21, 2019, 11:25:57 AM »
A little thing, but would you be able to change the color of the planet orbit to a darker color? It still kinda hurts my eyes. Thanks.
 

Offline se5a

  • Lt. Commander
  • ********
  • Posts: 288
  • Thanked: 30 times
Re: Quasar4x - An early look at an Aurora4x clone in the works
« Reply #44 on: February 02, 2019, 01:26:23 PM »
looking good, in hindsite maybe this is what we should have aimed for at the start with pulsar. I think we made a bunch of mistakes with that, starting from scratch half way through being one of them, and on that rewrite we should have aimed to get something graphical right off the bat rather than try build a complete 'engine' first. on the flip side, there were not as many options for C# out there back then. ah well lessons learned. If I ever start another game project I'll do stuff differently and end up with a bunch of different problems :p