Brad Wardell's views about technology, politics, religion, world affairs, and all sorts of politically incorrect topics.
Why the map looks the way it looks
Published on October 2, 2005 By Draginol In GalCiv Journals

The map does not scale planets and stars in a way that is realistic in the absolute sense.  That's because the basis of interstellar travel rests on folding space.  Ships don’t travel that fast in real terms. Instead, propulsion systems such as HyperDrive (the key technology in the background of the GalCiv universe) fold space so that traveling from Point A to Point B is far less in real distance.  However, folding space is dramatically interfered with by mass – planets and stars.  As a result, the folding of space inside a solar system is far less than how much interstellar space is.  Hence, it takes longer to travel from planet to planet than it does to travel in deep space.  The game map is hence visually adjusted (much like a flat map of the world distorts the size of countries – Greenland looks huge on a flat map of the Earth) to support this mode of space travel.

 

The unit of measurement used to describe space travel is the adjusted parsec or just “parsec”.  The term parsec we know in the 20th century is called a “true parsec”.  But a true parsec has no concept of how folded space operates. 

 

A true parsec is 3.26 light years. An adjusted parsec varies from 1.9 x 10^6  (million) miles to 1.9 x 10^14 miles depending on how much mass is in the area.

 

Simply put, a GalCiv ship that moves 1 move per turn is moving 1pc (adjusted parsec) per turn.  Going from Earth to Jupiter might take 2 moves.  Going from Earth to Sirius 8 moves or 8pc. Sirus is 0.8 true parsecs away in the real universe.

 

Here are the units in the game:

  • Sensor range is in adjusted parsecs: pc. How many tiles out a player can see around a given ship.
  • Ship range is in sectors (sct).  It’s how far away from a friendly planet (or starbase) a ship can travel as measured in sectors.
  • Money is in billions of credits (bc).  It’s billions because credits by the 23rd century have become the standardize form of galactic currency and no one is going to be building an interstellar cruiser for 120 credits. 

Cultural Influence:

Influence is in “ip” (influence points).

 

The way cultural take overs will work in GalCiv II is that when you click on a planet, there is a floating point number by influence:

 

23ip (0.45).  The floating point represents alien influence versus native influence.  If the number is >1 then that means alien influence is greater than native influence.  If the number increases beyond 4.0 then that means alien influence is >4 times as much as native influence. That planet may revolt and become part of the civilization they feel more in common with.


Comments (Page 1)
2 Pages1 2 
on Oct 05, 2005
Oh fine, don't comment.
on Oct 05, 2005
Well, it made sense, and there wasn't much to disagree with, so I didn't have much to say, so I tried not to babble. Now look what you made me do
on Oct 06, 2005
Oh fine, don't comment.


I was wondering when you'd get fed up with waiting.
on Oct 06, 2005
It fixes my nitpick that two enemy ships within the same parsec might not even see each other, let alone be forced to battle.
on Oct 06, 2005
Why would sensors use folding space? How do sensors use folding space? This seems like a serious consistancy sticking point.

You'd be better off calling it "unfolding space" rather then "folding space". This would give you the excuse that it takes more energy to unfold space near masses then it takes to unfold space where there is very little mass. Thus, blah blah blah.

If you unfolded the space directly behind your ship, you'd go a lot faster. You could exceed the speed of light, when compared to a point of reference behind you, without actually going faster then the speed of light.

Of course, the space that was unfolded will eventually resume its more normal cartography, as it will get full of all that which causes space to fold in the first place (like Zero Point Energy, interstellar gas, etc etc etc).

Just a wild thought. We can concievably "unfold" space through various exotic techniques. We "fold" space already.

Now, if you do it right, ships can be powered off the unfolding of space itself. This would make it trivial for most ships to sense each other though, so it would be easy for ships to spot each other so that they could fight.
on Oct 06, 2005
Ugleb attempts to read this thread and his eyes glaze over.

Space bent. That'll do.
on Oct 06, 2005
I wish they made tresury floating point like in moo3 and not the intiger that seems bugged
on Oct 06, 2005
MOO3 used floating-point treasury how again? You had an integral amount of BC for everything, none of which involved decimals.

Hum, a few light-years being turned into ten light-seconds in empty enough space...*tries to stop before the solar system and ends up incinerated inside the Sun*
on Oct 07, 2005
How? Well simple when you only had thousands of AU, it would display thousands, when you had millions it would display the value in millions. So you would see 123,5K or 32,5M or something to that effect. Dont reacall any exact values cause I havent touched the game in months. However it is one of the smarter things in that game.
on Oct 07, 2005
It would be pretty thick to use a float for something like that (inherent lack of accuracy)--most very likely it was simply a large int with automatic adjustment of the display (windows does the same thing when displaying file sizes in explorer--it shows in bytes, kb, mb, etc, as needed).

ex:

if($money >= 1,000,000 ){
print floor($money/1,000,000 )."m BC";
}elseif($money >= 1,000 ){
print floor($money/1,000 )."k BC";
}elseif($money < 1,000 ){
print $money." BC";
}

and so on.
(yeah you can't put commas in numbers in real code, but for some reason the forum was eating the zeroes without them...)


Overflows/wraparounds like we've seen are simply a result of too few bits storing that data (though I'm not familiar with C datatypes offhand, or the amount it overflows at ion game, so I can't say specifically).
on Oct 07, 2005
Well seeing how integer can only store +2,147,483,647, that's only 2,147,483K or 2,147M, and I'm sure I had more than 2,147M, in some games.

In galciv a tresury of -2,147,483,648 in my case was a result of abundance of money. Not sure how they could have coded that wrong since I doubt I had +2,147,483,647 bcredits.

And ints are 32 bits in C. I think in VB as well.
on Oct 07, 2005
Hm, in that case i seriously doubt it's a genuine overflow... something else has got to be causing it. Though changing it to a float would only make matters worse (32 bit fp's have pitiful precision and 64 bit ones would be a waste of memory for just a couple more digits of storage in such a case)...

In any case, it's up to Cari and crew to figure out... I'm going back to my own code
on Oct 07, 2005
Astax, a 32 bit signed integer is limited to that. Most modern compilers allow you to declare 64 bit integers, even on platforms that aren't 64 bit. Heck, I've seen compilers that allowed 64 bit integers on 16 bit machines.
on Oct 08, 2005
Why are you talking about treaury integers/floating point in a thread about the map scaling?
on Mar 04, 2006
bump.
2 Pages1 2