One thing I've been wondering about is whether planets and moons will actually move relative to other celestial bodies, they way they really would in space. I'd suggest that simulating orbits could be done procedurally with relative ease, and would add to realism and gameplay.
For instance, if a planet wasn't always in the same place, but gradually made its way around the system's star, that could impact the length of trade routes, and how close a planet belonging to one faction is to a planet belonging to another. These factors would impact the economy, as well as faction relations, because ships around the two planets would interact more when the planets are nearby.
So, what do people think?
Post
Wed Nov 28, 2012 1:15 pm
#2
Re: Planetary Movement
We still don't know at which rate the in game time will pass, unless months in earth time passes during a play through, which is entirely possible, it wont matter much.
It could be an interesting mechanic but I don't think it should be a high priority feature, Josh has better things to spend his time on up until release.
It could be an interesting mechanic but I don't think it should be a high priority feature, Josh has better things to spend his time on up until release.
Post
Wed Nov 28, 2012 1:33 pm
#3
You're right that figuring out the timescale will be important before a decision can be made on this. If the timescale is 1:1 realtime, most players wouldn't see a planet move appreciably unless s/he logged hundreds or thousands of hours of play time (which some of us might! ). If time were to continue to pass based on your computer's system time even when you're not logged in, however, you might log back in to find the planets have moved considerably. Though you presumably will have moved with a planet in your local reference frame, if you were stationary relative to it, its position relative to other planets will have changed.
Just spitballin' here.
Re: Planetary Movement
I don't think it would actually take much of Josh's time, really. All he has to do is make it so the celestial bodies move on a fixed orbit based on their velocity, mass, distance from the sun, and the sun's mass. Not too hard, and I think it would add considerable depth.Bele wrote:We still don't know at which rate the in game time will pass, unless months in earth time passes during a play through, which is entirely possible, it wont matter much.
It could be an interesting mechanic but I don't think it should be a high priority feature, Josh has better things to spend his time on up until release.
You're right that figuring out the timescale will be important before a decision can be made on this. If the timescale is 1:1 realtime, most players wouldn't see a planet move appreciably unless s/he logged hundreds or thousands of hours of play time (which some of us might! ). If time were to continue to pass based on your computer's system time even when you're not logged in, however, you might log back in to find the planets have moved considerably. Though you presumably will have moved with a planet in your local reference frame, if you were stationary relative to it, its position relative to other planets will have changed.
Just spitballin' here.
Post
Wed Nov 28, 2012 6:11 pm
#4
Re: Planetary Movement
That's what everybody always thinks before they try to code whatever they just said was easy....insolent wrote:
I don't think it would actually take much of Josh's time, really. All he has to do is make it so the celestial bodies move on a fixed orbit based on their velocity, mass, distance from the sun, and the sun's mass. Not too hard, and I think it would add considerable depth.
-Keon-
(I don't have any funny quotes to put here yet. Somebody say something funny.)
(I don't have any funny quotes to put here yet. Somebody say something funny.)
Post
Wed Nov 28, 2012 6:13 pm
#5
Re: Planetary Movement
Although, if you do decide to do it, you need to be able to move planets with giant rocket engines. Just sayin.
-Keon-
(I don't have any funny quotes to put here yet. Somebody say something funny.)
(I don't have any funny quotes to put here yet. Somebody say something funny.)
Post
Wed Nov 28, 2012 6:46 pm
#6
So that's a no unless there is a clear majority of backers that want the feature, and then possibly optional?
Re: Planetary Movement
From the kickstarter comments@Johnny - That's a tough one, but, personally I think I would want freezed in space, like Freelancer. For me, the idea of being able to "get a feel for" a system and really feel like you understand it at the spatial level is important. It's part of what made me feel at home in systems in Freelancer. On the other hand, if you have realistic orbits, the configuration of the system is constantly changing. I know some people would prefer realism...but I'm just going to have to say that my preference for static bodies is pretty strong...
So that's a no unless there is a clear majority of backers that want the feature, and then possibly optional?
Post
Wed Nov 28, 2012 10:05 pm
#7
Re: Planetary Movement
Planets orbits are easy. Orbits are deterministic with just 6 parameters that define the shape of the orbit plus time. I have a python library that I am using for my game which inputs those 6 parameters, time in J2000, and outputs the heliocentric x,y,z coordinates of the planet. I am more than happy to send it to Josh
I personally like dynamic systems. To me it makes the space better than a static system. As far as gameplay it impacts more lower tech settings (kerbal space program) than epic space opera.
I personally like dynamic systems. To me it makes the space better than a static system. As far as gameplay it impacts more lower tech settings (kerbal space program) than epic space opera.
David -- Proud to be saving the world since 1984
Post
Wed Nov 28, 2012 11:43 pm
#8
Re: Planetary Movement
it would be rather interesting to see planets move on an orbit (especially if the time scale was an adjustable option where you could 'frezze frame' space to a stand still) that would satisfy everyone i think. it seems though that the solution to each debate is "add it into the game and make it optional" while this is nice and alows a very unique level of flexibility tailored to your personal preference...i dont know how difficult it would be to implement this and have everyone be happy.
If I've rambled and gone off topic im sorry but i tend to be long winded as you might notice if you stumble across my other post XD. thanks for reading.
Post
Thu Nov 29, 2012 10:31 pm
#9
Re: Planetary Movement
I personally would love a moving, dynamic universe where all the planets and asteroids and everything is constantly changing and taking new forms, however I agree with Dadalos's comment above. Every idea ends up with "i don't like this", "well i do!", and eventually "lets make it optional". While this would add a huge level of uniqueness to the gameplay, I do not believe it is plausible for Josh. And as much as I like the idea of watching planets orbit a nearby star, I also do not think this is plausible.
Post
Thu Nov 29, 2012 10:52 pm
#10
Re: Planetary Movement
Here is the python2 code to orbit planets around a star.
Note: Entity is just a container class. Orbit is a dictionary with the 6 orbital parameters.
N = (Long of asc. node)
i = (Inclination)
w = (Argument of perihelion)
a = (Semi-major axis)
e = (Eccentricity)
M = (Mean anonaly)
As mentioned, time is the number of days since midnight January 1st, 2000. Noon would be 0.5 days.
Source website with all the fun maths: http://stjarnhimlen.se/comp/tutorial.html
Note: Entity is just a container class. Orbit is a dictionary with the 6 orbital parameters.
N = (Long of asc. node)
i = (Inclination)
w = (Argument of perihelion)
a = (Semi-major axis)
e = (Eccentricity)
M = (Mean anonaly)
As mentioned, time is the number of days since midnight January 1st, 2000. Noon would be 0.5 days.
Code: Select all
from math import sin, cos, radians, degrees, sqrt, atan2
class SolarsystemSimulator(object):
def getBodyPosition(self, entity, time):
"""Returns celestial position relative to the parent"""
# Convert to radians
M = radians(eval(entity.orbit['M'])(time))
w = radians(eval(entity.orbit['w'])(time))
i = radians(eval(entity.orbit['i'])(time))
N = radians(eval(entity.orbit['N'])(time))
a = entity.orbit['a']
e = eval(entity.orbit['e'])(time)
# Compute eccentric anomaly
E = M + e * sin(M) * (1.0 + e * cos(M))
if degrees(E) > 0.05:
E = self.computeE(E, M, e)
# http://stjarnhimlen.se/comp/tutorial.html
# Compute distance and true anomaly
xv = a * (cos(E) - e)
yv = a * (sqrt(1.0 - e * e) * sin(E))
v = atan2(yv, xv)
r = sqrt(xv * xv + yv * yv)
xh = r * (cos(N) * cos(v + w) - sin(N) * sin(v + w) * cos(i))
yh = r * (sin(N) * cos(v + w) + cos(N) * sin(v + w) * cos(i))
zh = r * (sin(v + w) * sin(i))
position = (xh, yh, zh)
# Orbits are calculated in au.
# Our units in panda are km, so we convert to km
position = position * 149598000
return position
def computeE(self, E0, M, e):
'''Iterative function for a higher accuracy of E'''
E1 = E0 - (E0 - e * sin(E0) - M) / (1 - e * cos(E0))
if abs(abs(degrees(E1)) - abs(degrees(E0))) > 0.001:
E1 = self.computeE(E1, M, e)
return E1
David -- Proud to be saving the world since 1984
Post
Thu Nov 29, 2012 11:08 pm
#11
Re: Planetary Movement
Kay: Arquillian battle rules, kid: first we get an ultimatum, then a warning shot, then we have a galactic standard week to respond.
Jay: A galactic standard week? How the hell long is that?
Kay: One hour.
Jay: One hour... then what?
[the message translation flashes across the screen: "MIB, DELIVER THE GALAXY OR EARTH WILL BE DESTROYED."]
Jay: Oh, now that's bull****.
Jay: A galactic standard week? How the hell long is that?
Kay: One hour.
Jay: One hour... then what?
[the message translation flashes across the screen: "MIB, DELIVER THE GALAXY OR EARTH WILL BE DESTROYED."]
Jay: Oh, now that's bull****.
If I've rambled and gone off topic im sorry but i tend to be long winded as you might notice if you stumble across my other post XD. thanks for reading.
Post
Sat Jul 06, 2013 11:13 am
#12
Re: Planetary Movement
I recognize this is a fairly old post, but I was scrolling through it and thought, "Why not make dynamic systems an option?"
Sort of like a pre-game option- Dynamic Systems: Yes or No?
I don't know how hard this would be, but just thought of it as I was reading
Sort of like a pre-game option- Dynamic Systems: Yes or No?
I don't know how hard this would be, but just thought of it as I was reading
"We can't solve problems by using the same kind of thinking we used when we created them."
"I never think of the future. It comes soon enough."
- Albert Einstein
"I never think of the future. It comes soon enough."
- Albert Einstein
Post
Sat Jul 06, 2013 8:03 pm
#13
Re: Planetary Movement
So far every Official Comment about planetary motion has been "nope, not gonna do it."
However... that was before the discussion on level-of-detail driven simulation. I'm wondering now whether it might be possible to consider giving system elements positional data, then moving them into new orbital locations only when the player actually enters a system.
It's not necessary to move them while the player is in the system. It would be nice, and might not even be too expensive to implement since you could reuse the code that calculates object positions when entering a system -- just put it on a timer, and not even a super-frequent one.
But that's not as useful as moving planets when the player might be away from a system for a long time (in gameworld time). That feels right; it signals the player that the LT universe is a living place with internal rules, some of which can be interacted with as gameplay.
"Nope, not gonna do it" may still be the way things go. Just thinking out loud....
However... that was before the discussion on level-of-detail driven simulation. I'm wondering now whether it might be possible to consider giving system elements positional data, then moving them into new orbital locations only when the player actually enters a system.
It's not necessary to move them while the player is in the system. It would be nice, and might not even be too expensive to implement since you could reuse the code that calculates object positions when entering a system -- just put it on a timer, and not even a super-frequent one.
But that's not as useful as moving planets when the player might be away from a system for a long time (in gameworld time). That feels right; it signals the player that the LT universe is a living place with internal rules, some of which can be interacted with as gameplay.
"Nope, not gonna do it" may still be the way things go. Just thinking out loud....
Post
Sun Jul 07, 2013 1:19 am
#14
Re: Planetary Movement
It will be... Rotating planets are one thing, planets orbiting a sun at different speeds would make the highway system very ineffective. Take a look at our own solar system. Sometimes Mars is on the other side of the sun, meaning that a hypothetical highway to Mars would have to make a detour. The entire layout of systems would change constantly, forcing you to re-learn its layout. (This is also one of Josh's main reasons not to have planetary movement.)Flatfingers wrote: "Nope, not gonna do it" may still be the way things go. Just thinking out loud....
Beware of he who would deny you access to information, for in his heart he dreams himself your master.
Post
Sun Jul 07, 2013 4:50 pm
#15
Re: Planetary Movement
I think that's why it would be a good pre-game option. For a higher difficulty or something like that, just wondering here since I probably wouldn't use it anyway.
"We can't solve problems by using the same kind of thinking we used when we created them."
"I never think of the future. It comes soon enough."
- Albert Einstein
"I never think of the future. It comes soon enough."
- Albert Einstein