The Ur-Quan Masters Home Page Welcome, Guest. Please login or register.
Did you miss your activation email?
February 09, 2023, 04:07:47 am
Home Help Search Login Register
News: Celebrating 30 years of Star Control 2 - The Ur-Quan Masters

  Show Posts
Pages: 1 [2] 3
16  The Ur-Quan Masters Re-Release / General UQM Discussion / Re: UQM stars/races relocation mod? on: November 21, 2015, 01:44:56 pm
Published Git repo https://sourceforge.net/u/uqm-logarithm/sc2/ci/master/tree/ .
Work being done under MS VC2010. (with all my great respect to Linux community, sorry)
17  The Ur-Quan Masters Re-Release / General UQM Discussion / Re: UQM stars/races relocation mod? on: November 20, 2015, 07:20:41 pm
I need to learn and practice Go language for my next project, so I used that to write a script for smart-search through the project for star-names.
I got 242 hits - all of them in communication files
I also thoroughly analyzed code for other ways to hardcodedly stick to star-name. Found none. Good style.

Now 242 is too much to handle it manually. It's also risky (to make mistakes).
So, I decided to make another Go script to make smart-replaces in those *.txt files, and to make a cunning solution in related *.c files...
For example, I'll turn Utwig's words
Code:
Indeed, it seems that you should proceed to the second moon of the sixth planet of Zeta Hyades
into
Code:
Indeed, it seems that you should proceed to the second moon of the sixth planet of $${StarName:ImortantStarIdx=22}

It will be much harder with non-important stars being mentiond. Like
Code:
Starbase Commander: The Ur-Quan came roaring through VUX space, and tried to push past the Indi and Mira star systems.
or
Code:
Syreen: They all appear to be originating from the direction of the Horologii constellation.
Will have to deal with them manually...
18  The Ur-Quan Masters Re-Release / General UQM Discussion / Re: UQM stars/races relocation mod? on: November 16, 2015, 08:57:01 pm
Quote
some files overriding the defaults
Yeah, most probably. Some dialogue files duplicate (with minor differences), others have texts only in sc2/content/base/comm/.
19  The Ur-Quan Masters Re-Release / General UQM Discussion / Re: UQM stars/races relocation mod? on: November 15, 2015, 10:53:12 pm
CelticMinstrel

Actually, with voices on - it used sc2/content/base/comm/ (at least for Spathi on Pluto).
I guess I'll have to double-check that...

As for naming - yeah, I'll have to choose proper order of stars relocation, renaming, constellations formation, fleets relocation. I'm not planning to keep original names for homeworlds and important stars. That's why I'm extracting star/contsell names.
For Antares and Horologii it's even harder. These are not homeworlds, - these are territories in UrQuan SoI, where allied Utwigs and Supox may come to attack evil asses. I spent few hours for writing/testing algorithm of calculating coordinates of these regions for cases, when Utwigs and Supox reside elsewhere. So I'll have to pick nearby constellation and a lone star and place there, - specially for Supox and Utwigs...  Roll Eyes
20  The Ur-Quan Masters Re-Release / General UQM Discussion / Re: UQM stars/races relocation mod? on: November 15, 2015, 12:54:33 pm
Finally finished extractind all coordinates.
Had to generalize some coordinates evaluation. F.e., when fleet decides to approach another fleet for attack.
Also extracted few more distance assumptions.

Tested most coordinates, except for event, when Ilwrath decides to approach Thadds. Also didn't make sure events flow normally (like fleets die in war). And didn't test most of communications - only tested Spathi on Pluto for proof of concept, and then cloned the solution to other communications.
If anyone would wish to test, notify me. The risk is low, but it's still worth to test if global events (involving moving and fighting fleets) are not damaged.

Dialogues duplicate in
Code:
sc2/content/base/comm/
and
Code:
sc2/content/addons/3dovoice/
Not completely sure, but I think latter ones are not used. I modified only first location.

------------------------------------
Next - extraction of all star and cluster names.  

After that - randomization of fleets locations. Will make use of experiments made by kfdf.

Have also some thoughts for other future mods, but can't allow them to spring yet. )) I'll just leave them here, so they don't bother me:
** One of ideas involve making alien fleets in Hyperspace more random. F.e. some Slylandros faster, some slower, some attacking with not full crew. Also not all fleets will attack. Some will pass by, and some will run away. Make racial fleets appear rarely randomly away from their Sphere of Influence. Make mixed fleets of mercineries, traders, pirates, cargo. Loot (not only credits), trade and bribery...
** Another mod idea is about better balance. Probably will make cost of thrusters and turning-jets depend on how much installed already. Like, 1st - 500 RU, 2nd - 750, 3rd - 1000, 4th - 1500, 5th - 2000...
** Make "Kohr-Ah Death" mod a bit more configurable.

21  The Ur-Quan Masters Re-Release / General UQM Discussion / Re: UQM stars/races relocation mod? on: November 12, 2015, 09:13:14 pm
CelticMinstrel
 Smiley Thans for hints. I already took care of Slylandro.

Yeah, there are some stars weaved into story. Apart from mentioned ones, also Antares and Horologii constellation (for Supox and Utwig). Apparently, I'll have to respect those assumptions while relocating stars, races, and giving names to stars and constellations. Quite a knot. But not too difficult.

As for Rainbow worlds - probably not. Maybe in some future release after v1.0. But I'll keep that in mind.
22  The Ur-Quan Masters Re-Release / General UQM Discussion / Re: UQM stars/races relocation mod? on: November 10, 2015, 09:38:19 pm
On first iterations we can make this simple. Later, after whole mod is done, we can refine this.

I think better stick to those requirements
(1) Each "constellation attractor" should attract no more than ~2-10 stars (fixed random for each attractor).
(2) Attractor shouldn't make stars come too close to each other.
(3) (doubtful) While attractor attracts - it may move too. This way we may get something more complex, than only spheric constellations.
(4) Attractor better stop, if stars densities gets too high nearby. May somehow incorporate with (3).
Maybe too complex for first iteration, though.

The refinement for after-release may be making a file containing constellation patterns (for constellations like Horologii, Vulpeculae, Chamaeleonis, etc). And for some constellations instead of using dynamic attractors - just place stars in predefined patterns. Can even make more patterns, than generator would actually use - this would give even random set of constellations for each generation...

I'm getting more and more confident, that I'll need to remix names of all stars (except for Sol). Remixing names will fit well into constellation generation procedure (for proper naming of constellations).
I'm now somewhere 70% done extracting all hardcoded coordinates to a single manageable module. Next will be extraction of star-names.

Btw, if you feel more on playing with interesting tasks, you may also tackle the problem of identifying big empty spaces. There are few interesting approaches for doing that (like using fields, or making use of sectoring, or other approaches). Knowing, where attractors acted might be handy..  Wink
23  The Ur-Quan Masters Re-Release / General UQM Discussion / Re: UQM stars/races relocation mod? on: November 09, 2015, 07:11:33 am
kfdf
Thanks for the code - will make use of that. It's good for at least first versions, later we can refine it (althought for me all maps it generated looked quite alright already).

Quote
there is no fun for me in plain C, only misery and pain
Yeah, that language isn't a gift, especially when got practice with some really advanced languages, like Scala or Haskell. But at least C got macroses loool.

----------------------------------
I'll also need to think of the way of making stars into constellations. Not sure how will be done yet.
Probably
(1) random-evenly generate only constellation stars first
(2) random-evenly put attractors to map, and let them attract nearby stars, grouping them into constellation
(3) scan map to get emptiest spaces, and fill them with non-constellation stars

From 502 stars total I've counted 102 constellations stars, and 30 non-constellation stars.
24  The Ur-Quan Masters Re-Release / General UQM Discussion / Re: UQM stars/races relocation mod? on: November 08, 2015, 10:43:55 pm
Quote
If anyone willing to start defining this specification - welcome!
Here is a doodle to try some ideas. It reads fleets and constraints information from a file, arranges the fleets randomly on the map and runs a simulation (at 30 fps for illustration purposes) that pushes and pulls them according their constraints. Space key shakes up the map, any other key randomizes fleet locations. Sometimes the results make no sense, but sometimes they are quite playable. dotNET 4.0 required.

https://drive.google.com/file/d/0B-x8G2X1znSaMThHYnZWbWI5UW8/view?usp=sharing
Great stuff! Grin
Which algorithm/library did you use?
Would you join mod development?  Roll Eyes

I was thinking about using the Spring Embedder algorithm, but kinda got lost among it's versions for now.
The steps I was thinking about:
(1) Randomize all impotant stars/fleets locations.
(2) Let springs do the job.
(3) After timeout check if all constraints are respected. If not, goto (1).
25  The Ur-Quan Masters Re-Release / General UQM Discussion / Re: UQM stars/races relocation mod? on: November 07, 2015, 09:28:54 pm
rootxploit
Thanks for thoughts on race fleet separation. I was seeng this in a similar way.

CelticMinstrel
Great job on defining those distance assumptions. Althought assumptions for Druuges not clear. I don't remember many things from gameplay.
And according to map, Yehat is quite far from Pkunk. Not sure if this is starting location or late location, - if i remember correctly, at some point their fleets got intersecting. According to code their (Yehat) fleet starting loc is 497.0, 4.0.
But thanks anyway! Smiley
In the end I want to have a specification for all those assumtions in a strict form, something like this:
Code:
...
DIST ( {HOME_PKUNK,   FLEET_CENTER_PKUNK  }, NOT_APPLICABLE,    MAX(  30.0) );
DIST ( {HOME_PKUNK,   FLEET_EDGE_ILWRATH  },    MIN(  20.0),    MAX(  50.0) );
DIST ( {HOME_SOL      FLEET_EDGE_PKUNK    },    MIN(  50.0),    MAX( 250.0) );
DIST ( {HOME_SOL,     FLEET_EDGE_ILWRATH  },    MIN(  10.0),    MAX(  50.0) );
DIST ( {HOME_ILWRATH, FLEET_CENTER_ILWRATH}, NOT_APPLICABLE,    MAX(  50.0) );
DIST ( {HOME_ILWRATH, FLEET_EDGE_PKUNK    },    MIN(  10.0), NOT_APPLICABLE );
DIST ( {HOME_ORZ,     ENERGY_TAALO        },    MIN(   2.0),    MAX(  30.0) );
...
I can then keep them in separate file and load into game in relocation procedure. I'll start with the minimal specification - for the proof of graph layouting algorithm, and in the end we can use a full specification.

If anyone willing to start defining this specification - welcome!  Smiley
If anyone willing to participate, then I'll start publishing stuff into my GIT repo...

------------------------
So far I've managed to run a module, which randomizes all stars locations (keeping contents of important stars). Currently without complex logic of forming clusters, respecting distance assumptions and other stuff. It also writes all star relocations to dedicated log file - gonna need it later for testing.

Also managed to enable no-intro mode for faster debugging and learned to use debug key.

Next stage will be extraction of all hardcoded coordinates (and fleet sizes, and distances) to managable module. Bad news, is that it's gonna be hard to test them all. So probably I'll leave some of them them untested (risk should be quite low though). If anyone wants to help testing - welcome.

Meanwhile slowly approaching to the hardest challenge - graph layouting algorithm. Started reading some papers on that and tapping related communities.
26  The Ur-Quan Masters Re-Release / General UQM Discussion / Re: UQM stars/races relocation mod? on: November 04, 2015, 07:00:31 pm
Hopefully, your project won't get buried under its own ambitions.
Yeah, I hope so too. I thought about that from bare start of the endeavour. Actually I didn't even think I would get that far - all I did was just for fun an in really relaxed mode. Probably that's a proper way to do things for me without losing motivation. That's what I meant by small steps - no pressure. If I see that graph layouting becomes too hard for me, I'll just make a step back. Cool

something tells me that there are very strong assumptions in the code that every race has only one sphere of influence
I you have any clue or idea of how such assumptions might look like, or where (in which logics) to look for them - please share.  Smiley I'll put the check for such assumptions in early analysis TODO list.
27  The Ur-Quan Masters Re-Release / General UQM Discussion / Re: UQM stars/races relocation mod? on: November 03, 2015, 10:00:36 pm
I'm not yet sure, but if this function below (from solarsys.c) is all it takes to determine star planetary content, then i'll just fake the seed for important stars. In any case I'll keep original contents inside important stars.
Code:
DWORD
GetRandomSeedForStar (const STAR_DESC *star)
{
return MAKE_DWORD (star->star_pt.x, star->star_pt.y);
}

I'll be working on this mod on weekends. So, not much progress on working days.

----------------------------------

Thanks for comments guys.  Smiley

But maybe you should start small, like, randomizing star colors and moving them just a tiny bit, so that their seed would change?
Yeah, I actually plan to do small steps, and stick to KIS principle. One of mistakes Nicholai did was putting alot of different unrelated stuff under one mod - which is antipattern, and a common mistake for unexperienced developers. Although I like the ideas you mentioned about poor balance, I'll leave it to another mod, - but this mod will be totally about relocation. I hope I'll do it (the better-balance-mod) later, and for this reason I ask you to open disscussion about it's probable content in different topic.

As to moving around races, this sounds like a massively daunting task, there are too many invariants set in the dialogs and in the game lore that must be kept for this to make sense. You have to pick the spot for the battleground where the the two races fight for Sa-Matra, you have to decide which way is the center of the galaxy, where the Ur-Quan and Kohr-Ah fleets came from, where the Alliance of Free Stars was, and that roughly defines where most of the races and special places should fit. With all this, I don't think you can really have much variety here, the end result will always end up looking something like the current fixed map, only mirrored and/or rotated. And I'm afraid to think of what it will to take the rest of the code to reliably work with the generated map. You have to guarantee that a crash or a softlock won't happen because the generated map violated some implicit assumption made by the rest of the code about the map. And even if you manage to do all this, there will be very little actual gain from the gameplay perspective, there are not too many races and they are quite easy to find, and when you find a few of them you can visually pinpoint where the rest of them are.
Basically I would say you shouldn't move any race's sphere of influence. You could however change the homeworld or other important locations to be some other planet within the sphere of influence, at least for the new races that didn't appear in SC1.
Actually, I plan to move them. I know this makes relocation quite complex algorithm, but that's the way I really wanted it from beginning. The algorithm which would respect clusters too. I want to start game in completely unexplored cosmos. And I think I'm a capable programmer for such task.
 
35 special stars, which is <10% of all.
If we imagine it as a graph (where nodes are stars, and links - distance assumptions), then it would be a set of weakly connected sub-graphs. I bet it won't contain more than 50 assumptions. And since I'll have to extract all coordinates and star names (read below about this) out of dialogues - this will help me also to define most (but not all) of those assumptions. What I need is to define the rest of assumptions, - and your sentences about "taalo shield" and "Crashed Dreadnought" and similar stuff could actually help me doing that.
Once I have such graph defined, I'll simply have to apply some graph layouting algorithm with randomization. Next draw cluster areas. And finally fill clusters (and non-clustered space) with 465 non-important stars.

Moving important objects like that is probably a lot harder than you think. The dialog is currently hardcoded with numerous assumptions on the locations of important items, meaning that if they can move you would need some way of dynamically altering the dialogue to fit. It's not just a matter of changing numerical coordinates.
Good point. I was thinking about that too. I still haven't decided how to deal with that, but most probably I'll make use of script, which finds all usages of star/cluster names in all dialogues. Not hard to do so. And I think I'll find 10-20 usages. I will already have to extract coordinates out of dialogues, so extracting star-names after that won't be hard. Once I extract star-names, I have a really nasty idea to change (randomize) names of important stars too....

You have to pick the spot for the battleground where the the two races fight for Sa-Matra, you have to decide which way is the center of the galaxy, where the Ur-Quan and Kohr-Ah fleets came from, where the Alliance of Free Stars was, and that roughly defines where most of the races and special places should fit. With all this, I don't think you can really have much variety here, the end result will always end up looking something like the current fixed map, only mirrored and/or rotated.
Why not breaking huge Ur-Quan and Kohr-Ah fleets into 3 smaller circles?.. Grin This would give a better potential for randomization. Also, Sa-Matra don't have to be in the middle of galaxy I think (if that's the price for better randomization).

And I'm afraid to think of what it will to take the rest of the code to reliably work with the generated map. You have to guarantee that a crash or a softlock won't happen because the generated map violated some implicit assumption made by the rest of the code about the map.
Yeah, this is quite an important point. But so far I haven't identified any other assumptions apart from ones listed in the second post (considering, that I'll leave important stars contents original).
I'll keep an eye on this, tho. If anyone spots any suspicious please call 911 tell it here.
28  The Ur-Quan Masters Re-Release / Technical Issues / Re: Starmap Editing - plandata.c on: November 01, 2015, 12:42:02 pm
As for option 2: Looks like someone has already done just that Cheesy
http://forum.uqm.stack.nl/index.php?topic=3447.msg58744#msg58744
Hi, anyone tried to import this data back into the game? Smiley I'm interested in having a code which would do the import (in context new effort).
Probably, gonna have to write it myself anyway... ))
29  The Ur-Quan Masters Re-Release / General UQM Discussion / Re: UQM stars/races relocation mod? on: November 01, 2015, 11:37:13 am
There are hardcoded assumptions made towards generated systems and planets (if those assumptions fail, game generation is faulty).
Currently there are these hardcoded assumptions towards generated galaxy:
(A) About stars coordinates
(B) About quasispace portal coordinates
(C) About names of stars and clusters
(D) About gameplay-important stars - their numbers of planets, moons
(E) About gameplay-important stars - Huh anything else assumed?
(F) About races coordinates
(G) About races strength
(H) About events when races move and/or attack other races
(I) About distances between races (based on their relationships)
(J) About distances between races and related artifacts/ships and other objects
(K) Huh It's quite important to figure out what else is assumed

Apparently, mod will target changing (A), (B), probably (C) and definitely (F).
And will need to respect and be cautious with (D), (E), (H), (I), (J).
Clarifications required for (E), (I), (J) and (K).

I assume (G) and (H) are strictly hardcoded in events. And thus, if Pkunks whole fleet decide to travel through Kohr-Ah territory, they won't fight and weaken each other. However, I will need to check distances and speeds at which whole-fleets travel. Although it's (most probably) only of a cosmetical priority...

Few possible approaches  to deal with (D) and (E) vary in elegancy/dirtiness, simplicity/complexity. Have to choose from these:
(1) Respect every assummed generated parameter/state. Put defensive constructs and workarounds near each assumption in code.
(2) Generate whole galaxy using original seed and content. Then remove all nonimportant stars, relocate important stars, and regenerate all nonimportant stars randomly.
(3) Extract random seed state for all important stars, and hardcode usage of such random seed state near assumptions.
(4) Same as (3), but also use separate random generators for important and nonimportant stars.
(5) Import data for important stars using dumps.

Option (1) is probably the most correct one - as I would better identify all risks. But this would also be most boring choice.
Options (2), (3) and (4) look quite easy and safe for me. But they are vulgar.
I like (5), but that looks also most complex for me, as it will require biggest changes in code, I think... I wonder if anyone tried to to make functions for importing stars from dumpfiles?

Another tasks which I'll need to solve
(i) for (A) is evenness of random distribution of star-clusters and stars within them
(ii) for (F) and (I) is evenness of random distribution of races
(iii) after merging sets of important stars with nonimportant ones (also after enforcing respects of (I) and (J)) will need to take additionl cares for evenness of distribution of stars
(iv) ensure that stars and quasi-space portals don't overlap
(v) test if melnormes are fine with new coordinates of Rainbow Worlds

----------------------------------------
I hope experienced comunity members share their thoughts and knowledge (and probabably pieces of code) on things said. Especially on assumptions (E), (K) and on solution (5).
If anyone is willing to participate - welcome!  Smiley It would be great if someone defined (I) and (J) in complete details.
30  The Ur-Quan Masters Re-Release / General UQM Discussion / Re: UQM stars/races relocation mod? on: November 01, 2015, 01:05:56 am
Set up DEV environment and got project built. Also experimented with stars relocation.

Found useful info in older thread: http://forum.uqm.stack.nl/index.php?topic=3972.0
This one is quite old, but still might contain some useful hints: http://forum.uqm.stack.nl/index.php?topic=1597.0

Gonna study these and probably other threads...
Pages: 1 [2] 3


Login with username, password and session length

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines Valid XHTML 1.0! Valid CSS!