TeamPorcupine / ProjectPorcupine

Project Porcupine: A Base-Building Game...in Space!
GNU General Public License v3.0
484 stars 278 forks source link

[Discussion] Time #1030

Open kd7uiy opened 8 years ago

kd7uiy commented 8 years ago

There are a few things that we are discussing that involve time. These include:

I'm sure we could come up with something more. The main question is, how do we want time to be represented? 1 second= 1 day, 1 second, or something else entirely? Do we want the time to be visible anywhere? Any other timely concerns?

Grenkin1988 commented 8 years ago

Just want to add that right now a lot of our code involve time. Most Update() methods are called with deltaTime. For example Power.System updates its state every second.

sboigelot commented 8 years ago

We should probably decide on a configurable real time per game day.

Like, for instance 10 real time minutes = 1 game day.

kd7uiy commented 8 years ago

@Grenkin1988 That I'm not proposing touching. It's the determination of what 1 game second is that matters to me for this purposes.

Given this is a space game, I think 1 second= 1 day of real time might be a good rule of thumb. Yes, the workers actions would be done instantly, but it falls in well with similar games, like Civilization, where the movement time isn't realistic.

sboigelot commented 8 years ago

@kd7uiy it seems very fast to me. Rimworld is much slower

mikejbrown commented 8 years ago

What about 1 second = 1 minute? At maximum warp (currently 8x) that's a day in 3 minutes real time.

kd7uiy commented 8 years ago

It depends somewhat. Let's say we are in the Asteroid Belt. The orbital period of Ceres is 1680 days. If we have a trade system based on that somehow, then that would take a huge amount of time to orbit once. Of course, we could drop the realism with orbital periods, which would help some.

janpeli commented 8 years ago

I have created time controller and cleaned up a little bit the keyboard controler and world controller. You can check it in my repo. As for the time and pace we should think about what will be the experience for the player if he or she plays for an hour. How many tradeships, monsters etc will be spawned. Realism should not be a priority. To get more flawor we can have custom month names like in df.

kd7uiy commented 8 years ago

Realism shouldn't be a priority, I agree, but it does make some sense to have the time structure at least somewhat in line with real time. I think having a "day" pass by per second, which would mean a "year" in 6 minutes, would allow for some somewhat realistic and interesting trade opportunities, something will be really good for a minute, then not as good a few minutes later, then go back to being good again a few minutes late.

mikejbrown commented 8 years ago

But characters running around building things will just be screen flicker at that time scale. Unless you think the characters are super slow.

kd7uiy commented 8 years ago

The characters running around at that speed I will agree doesn't make sense. But the build time does make some sense at that scale. Building an airlock might take a few days, after all. Melting iron ore in to steel also would take a few days. Many games have two time scales in a sense, how fast the characters move, and how fast the background of the game progresses.

Fatalexceptionz commented 8 years ago

I've always found it jarring when I stop and realize that it just took a character a fortnight to travel from their bedroom to the kitchen or whatever.

Tranberry commented 8 years ago

While it's a very important topic, is this really vital for v0.1?

https://github.com/TeamPorcupine/ProjectPorcupine/wiki/Milestone-0.1

kd7uiy commented 8 years ago

I think I agree that this one can be dropped from the 0.1 milestone.

Tranberry commented 8 years ago

Great, I'm not saying it is a bad topic, it is not - it's really important. I'm just arguing for v0.1 being more a proof of concept.

GamerGeeked commented 8 years ago

[IGNORE]Maybe a second is 1/4 of a day.[/INGNORE] So, a day would be 24 minutes... a 60th of a day, If you played 24/7, you would get 60 years a day. Is that reasonable? I'll talk about that later

For the movement, any spot in the ship should take (GAMETIME, not REALTIME) say, an hour, while any spot in space takes a day.

[ WARNING - CALCULATOR MATH AND GOOGLE AHEAD ]

Anyway, the 60yr/day, the ISS was launched 18 Years ago, it got in space 16 years ago. Why the ISS? Well This IS a space station base building game, right? That's unfortanate. let's go back to sec/min... okay that's a day in 3min. a day is 1,440 / 3 is 480... and 1,440 / 480 = 3. 3yr/day... If you were the ISS you would be in space so far for.. 5.333... days? Let's say the average person is awake for 18 hours. That means that it would be 6.665 WAKE days if the ISS was played, but the (AVERAGE) person does not play a game 18/7, do they? Say, half of that, every day. we get 20 days. WIN!

CORRECTION - in day/sec, it would be 240, and in my 6hr timeframe that would be 6 years... so it would be 20 days, if you played literally all day; bravo.

Tranberry commented 8 years ago

Maybe a second is 1/4 of a day.

I'm probably really stupid now, but wouldn't that mean that a day in game is 4 seconds in real life?

vogonistic commented 8 years ago

I think we shouldn't even try to keep a single reference frame for time. Each activity should be modeled after what makes sense from a gameplay and fun perspective. I think it's alright if it's faster to build a power generator or smelter from plates than it takes to sleep, even though that makes no sense.

A user will want to track time somehow, but I think it should be modeled after how often characters sleep.

kd7uiy commented 8 years ago

That does make some sense, I think I agree for now.

GamerGeeked commented 8 years ago

@vogonistic yeah... fine. I did a bunch of (Calculator) math for nothing