[WIP] Star Control 1 remake

Wish there was something new in the SC universe? Check out what fan based initiatives are going on.

Moderator: ZFP Peacekeepers

Post Reply
User avatar
Zeracles
Pootworm
Posts: 369
Joined: Wed Mar 17, 2010 6:33 am
Location: Sydney, Australia
Contact:

Re: [WIP] Star Control * remake

Post by Zeracles » Tue May 18, 2010 9:27 am

Dragon wrote:Regardless of the language (octave/matlab/scilab) what I actually need to do is just sit down and understand your source completely and then rewrite it in C++ myself.
I'll expand on any part of it you like, by post or PM. The MST bit could be based on anyone else's approach (like this), as the pseudo DT only uses the resultant tree. Most other approaches to MST generation would require finding all the interpoint distances as a prelude, and leaving them in memory.
Dragon wrote:I tried using octave proper but I'm running what I think is version 3 beta on an old version of Ubuntu - when I try and plot something it throws exceptions all over the place :?
Could actually be a gnuplot problem.
Angelfish wrote:That map would be great for a long multiplayer game :).
Complete with the resources, world types and artifacts. This is a star control * remake after all :D
Twinkle twinkle Paul and Fred (more)

User avatar
Angelfish
Slylandro gasbags
Posts: 1632
Joined: Tue Mar 23, 2010 11:10 pm

Re: [WIP] Star Control 1 remake

Post by Angelfish » Tue May 18, 2010 4:43 pm

So how are you going to include the worlds to the systems then?

User avatar
Dragon
Reborn Shofixti
Posts: 528
Joined: Wed Mar 17, 2010 9:29 am
Location: South Africa

Re: [WIP] Star Control 1 remake

Post by Dragon » Thu May 20, 2010 3:02 pm

Angelfish wrote:So how are you going to include the worlds to the systems then?
Eek, I hope that's a question for Zeracles because I really shouldn't go off on another random tangent. Particularly as I started modeling a Marauder by accident this morning (I had a bit of time to kill).

User avatar
Zeracles
Pootworm
Posts: 369
Joined: Wed Mar 17, 2010 6:33 am
Location: Sydney, Australia
Contact:

Re: [WIP] Star Control 1 remake

Post by Zeracles » Tue May 25, 2010 8:51 am

Angelfish wrote:So how are you going to include the worlds to the systems then?
What, planets didn't feature in the original? That's news to me! ;D-smf Well, clearly they're additional nodes of the starmap, seen only when managing small-scale stuff. And the planets actually orbit as opposed to just being fixed, so the battlefield within star systems is constantly changing. Don't worry, we can use all the period and radius info with polar coordinates to handle it. Oh and the star counts as a node that can't be visited. Except by Mycon perhaps. And someone else is going to do all the work.
Dragon wrote:I started modeling a Marauder by accident this morning (I had a bit of time to kill).
Looking forward to another terrifying poster!
Twinkle twinkle Paul and Fred (more)

User avatar
Death 999
ZFP Peacekeeper
Posts: 1712
Joined: Wed Mar 17, 2010 2:07 pm

Re: [WIP] Star Control 1 remake

Post by Death 999 » Mon May 31, 2010 2:56 pm

The problem with that starmap, beautiful though it is, is that I'm having a hard time reconciling it with the plot. The Ilwrath fell before the Spathi. Forcing the Ur-Quan to go right through the Spathi (and only two jumps from the Chenjesu homeworld) on their way to the Ilwrath seems like it'd break that order.

Is there some way to tweak the parameters to enable longer jumps if there's nothing else in the way, so that Cygnus can connect to the Sagittae and/or Normae clusters? That'd also make Betelgeuse not stick out so much.

Lastly, a lot of these connecting lines cross. Is that something we want happening?

User avatar
Zeracles
Pootworm
Posts: 369
Joined: Wed Mar 17, 2010 6:33 am
Location: Sydney, Australia
Contact:

Re: [WIP] Star Control * remake

Post by Zeracles » Tue Jun 01, 2010 7:58 am

Thanks Death, good point about the plot. After a little trial and error, I increased the locality factor to 8 (was 2) and reduced the friendliness to 0.625 (was 1), which allows links over greater distances without creating too many crossed lines.
Image
Death 999 wrote:Lastly, a lot of these connecting lines cross. Is that something we want happening?
I haven't given that much thought, to be honest, that's a question for people who actually know what the sc1 maps looked like :mrgreen: But anyway, the starmap above seems cleaner in that respect.
Twinkle twinkle Paul and Fred (more)

User avatar
Death 999
ZFP Peacekeeper
Posts: 1712
Joined: Wed Mar 17, 2010 2:07 pm

Re: [WIP] Star Control 1 remake

Post by Death 999 » Wed Jun 02, 2010 4:49 pm

Well, SC1 maps were 3D, so the chances of two lines crossing were essentially zero even before you hit the practical consideration that jump lengths didn't span a factor of 1.4 so you couldn't even make a square to arrange a cross with.

What's the algorithm in use here? I don't know what locality and friendliness mean.

For example, I have no idea why, for the stars along the southern border, the stars around 9000 connect to one around 7000 rather than the cluster around 8000. It just seems weird.

edited to add: looking over the code was unilluminating without putting in serious effort. Having magic numbers all over the place and not using whitespace in lines didn't make things super easy.

User avatar
Zeracles
Pootworm
Posts: 369
Joined: Wed Mar 17, 2010 6:33 am
Location: Sydney, Australia
Contact:

Re: [WIP] Star Control * remake

Post by Zeracles » Thu Jun 03, 2010 6:15 am

Death 999 wrote:Well, SC1 maps were 3D, so the chances of two lines crossing were essentially zero
Yeah, I think Dragon pointed that out earlier in the thread (or was it the thread on the old forum, I forget). But the 3D sc1 maps are still relevant in 2D if one wants to preserve about the same number of links per star. In 2D, crossed links might be necessary to do it.
Death 999 wrote:What's the algorithm in use here? I don't know what locality and friendliness mean.
I described it in prose on the wiki. Feel free to edit that page to clarify parts you find confusing. Locality describes the radius within which other stars are considered for additional (on top of MST) links in the pseudo DT. Friendliness is just an arbitrary factor thrown in to vary the number of links.

Firstly, for each star, I need to define a neighbourhood within which stars are considered for linking. This is because two stars are more likely to be connected if they're closer together. I can't make it a fixed distance for all stars, because if that distance is the same for overdense regions as it is for underdense regions, the graph will have much greater ``connectedness" in the former. What I want is for that distance to be greater in underdense regions. The length of the longest MST edge hosted by a star behaves this way because the points are further apart in these environments.

Basically, I thought it'd be elegant if the graph looked the same on large scales as it did on small. Maybe the graphs from sc1 weren't self-similar, but no-one's complained about that aspect so far and I like it that way ;)-smf

So with this in mind, let's examine the part of the starmap you mention.
Death 999 wrote:For example, I have no idea why, for the stars along the southern border, the stars around 9000 connect to one around 7000 rather than the cluster around 8000. It just seems weird.
To begin with, the MST didn't go across there, so we're left with the pseudo-DT. The stars that have the potential to extend links across that void between 8000 and 9000 are the ones hosting decent-sized MST edges. These are Gamma Arae, Delta Arae, Alcor, Alpha Trianguli, Organon and Hyperion. What the condition used for making pseudo-DT links has said is that links across the void are blocked by intervening stars from all of those but Organon (to Epsilon Arae). So it's not as much a case of Epsilon Arae connecting to Organon as it is a case of Organon connecting to Epsilon Arae.

That's what the algorithm has done. Its last step is debatable. Gamma Arae, Alpha Trianguli and Hyperion are clearly blocked from spawning links across there but it's not so clear for Alcor and in particular, Delta Arae. For Delta Arae, links must have been prevented by its close proximity to the other Arae stars, since the ((r_2)/(2r_1))*((\pi/2)/(\theta)) condition considers nearby stars regardless of what direction they lie in (but direction still comes into play through \theta).

I think this is a mild edge effect. If there were stars beyond the right border, they'd counteract the nearby Arae stars, lowering (r_2)/(2r_1), and then Delta Arae probably would have linked to Trianguli as you suggest. I don't have an easy fix for this. Changing the \theta dependence, or adding fake stars beyond the starmap edges might fix it, but I like the simplicity of what we've got now.
Twinkle twinkle Paul and Fred (more)

User avatar
Death 999
ZFP Peacekeeper
Posts: 1712
Joined: Wed Mar 17, 2010 2:07 pm

Re: [WIP] Star Control * remake

Post by Death 999 » Thu Jun 03, 2010 5:50 pm

Thanks for the link to the explanation.
Zeracles wrote:
Death 999 wrote:Well, SC1 maps were 3D, so the chances of two lines crossing were essentially zero
Yeah, I think Dragon pointed that out earlier in the thread (or was it the thread on the old forum, I forget). But the 3D sc1 maps are still relevant in 2D if one wants to preserve about the same number of links per star. In 2D, crossed links might be necessary to do it.
In SC1, most nodes had 2 connections, with a fair number (~20% each) having 3 or 1, a very few 4*, and 5 or more only vanishingly rare if it ever occurred at all.

I'm thinking of a building-up method that could produce nice results and be pretty easy to implement.

* edited: I'm not actually sure there were any with 4.
Last edited by Death 999 on Thu Jun 03, 2010 6:45 pm, edited 1 time in total.

User avatar
Alvarin
ZFP Peacekeeper
Posts: 2092
Joined: Sun Apr 25, 2010 7:12 am
Location: Israel

Re: [WIP] Star Control 1 remake

Post by Alvarin » Thu Jun 03, 2010 6:00 pm

How about manual? There are not that much stars in the SC2 and I think there was a poster with constellations linked, just need to add connections between them.
To be angry is to punish yourself for the errors of others.

Post Reply