Calandiel / SongsOfFOSS

A FOSS release of source code of the unreleased version 0.3 of Songs of the Eons
Other
39 stars 12 forks source link

Add world generation from 0.2 #94

Open Calandiel opened 8 months ago

Calandiel commented 8 months ago

This will require making a harmony mod, editing loader.c from 0.2 and setting up a build system for it that is still compatible with this repos GPL license.

Long term goal, should be done before "real" 0.3 Will likely need to be done largely by me but will require collaboration from Windows users as I don't have access to a Windows machine and SotE 0.2 runs only on Windows (going through wine is not an option here)

Calandiel commented 7 months ago

Alternatively. Make a launcher in love that lets you choose between the game and the generator and have the harmony mod simply remove all unnecessary buttons

dsecrieru commented 5 months ago

Hi,

So, to continue our discussion from reddit, could you elaborate a bit in which form the world gen piece would have to be integrated? You mentioned it is closed source, so it must be in some binary form?

ineveraskedforthis commented 5 months ago

The plan is to use SotE 0.2 exe as a command line tool and call it on click of "Generate World" button from main game or launcher.

dsecrieru commented 5 months ago

Ok, but then it is understood and accepted that this part can only be integrated "as-is" and any bugs it might contain cannot be fixed, nor its functionality extended with new features or improvements, since it is closed source, and not maintained anymore. Right?

ineveraskedforthis commented 5 months ago

No, as mentioned above, we can do harmony patches for it in which we can potentially improve parts of 0.2 and add some small features and fix some simple bugs.

dsecrieru commented 5 months ago

So, if I understand correctly, some changes to 0.2 are still possible, but limited to what is open for modding?

ineveraskedforthis commented 5 months ago

Yes, but Harmony patches are actually very powerful, we can basically inject any C# code we want.

dsecrieru commented 5 months ago

How would you inject code that fixes a hypothetical bug in the plate tectonics simulation?

ineveraskedforthis commented 5 months ago

I do not know about tectonic part, maybe @Calandiel knows more about it.

Calandiel commented 5 months ago

You wouldnt, tectonics are in C++, not in C#. You could at best make ad hoc fixed through post processing.

Anyhow, thats putting a cart before the horse. Right now theres nothing to fix as tectonics arent even usable to begin with in 0.3

dsecrieru commented 5 months ago

It's my understanding that tectonics are a step in world gen. So, integrating the functionality from 0.2 into 0.3 as a sort of plugin would make it available in 0.3, but it would be as it is, with maybe some post processing, as you mentioned. Is that correct?

Calandiel commented 5 months ago

It's my understanding that tectonics are a step in world gen. So, integrating the functionality from 0.2 into 0.3 as a sort of plugin would make it available in 0.3, but it would be as it is, with maybe some post processing, as you mentioned. Is that correct?

Yes, thats correct. Well, the 0.2 world gen would be as is. It also does hydrology, soil generation, rock type assignment and so on.

TheMrAmazing commented 4 days ago

I'm kind of surprised you wouldn't just convert it over to the new engine. If the issue is just that you don't have permission to open source the old code, rewriting it with the old code as reference seems like the most straightforward solution.

TheMrAmazing commented 4 days ago

Is it just an issue of time? I know C++ and Lua pretty well, I could probably convert it over depending on how big it is

dsecrieru commented 4 days ago

The work on porting the worldgen has been ongoing since January. If you look carefully through the closed PRs, you'll spot some related to worldgen.