Arcane Game Lore

It was a dark and stormy night...

RPG Blog Carnival – What Season is it Anyway?

This month’s RPG Blog carnival is being hosted by Phil over at Tales of a GM and the topic is Summerland – topics related to the season of summer.  In reading through his post, I realized that dealing with seasons was not something I usually did or even thought about when running a game.

There are probably several reasons for that but the biggest is that it probably never occurred to me to worry about it.  I play science fiction games and characters are not typically on a world for long enough for the seasons to change so thinking about seasons never really was a topic I thought about.  The weather and season were whatever it needed to be for the adventure.

However, in reading Phil’s post for the blog carnival, it got me to thinking.  Adding seasonal highlights (in this case summer ones) would be a great way to add depth and richness to your worlds.  But in the case of a science fiction game that spans several star systems and planets with different year length’s, axial tilts, and stellar types, how do you even know that it is summer in the first place for that system. Not every planet has summer at the same time, you could leave a planet in high summer, jump to the next system, and land in the middle of a blizzard.  By knowing (or being able to quickly calculate) the season when characters arrive on planet you can add depth and flavor to your campaign.

So while this post is not going to be directly about summer, it’s definitely related in that it helps you determine if it should be summer or not.  I’m going to present a (hopefully) simple system for doing just that.  It’s untried and I’m developing as I write but I think that it will work out fairly well.  Heck, if an astronomer can’t figure out how to track the seasons, we might be in trouble.  So let’s get going.

Determining the Season

Okay, let’s dive in and see what we come up with.  To goal is something fairly simple that is easy to use and easy to keep track of, but which can be refined and expanded as needed.

What Do We Need to Know?

The first question that we need to answer is: “what information do we need to get started?”  At the bare minimum, we need the length of the planet’s year and an absolute date (an epoch) for the beginning of one of the seasons.  For example, on Earth we’d need to know that the year is 365.24 days long and that March 21, 1900 was the first day of spring.

A permenant Gregorian CalendarIdeally, you’ll have some way to count days that is a simple count or easy to calculate (our modern Gregorian calendar doesn’t work – can you tell me off the top of your head how many days have passed since March 21, 1900? or even since March 21, 2010?).  Astronomers use the Julian Date for this purpose.  Today (Jun 9, 2015) is JD 2457183 whereas noon on March 21, 1900 is JD 2415100.  So it’s been 42,083 days since March 21, 1900.

In most sci-fi settings there is the concept of a “galactic standard day” and “galactic standard year”.  Maybe not by those names exactly but there is typically some universal time system that is not associated with the individual planets (although it may be based on the calendar of one of the planets – e.g. the capitol world, original homeworld, etc.).  This is exactly what we need.  For example, in Star Frontiers, the standard year is 400 days and the standard day is 20 hours.  So a single standard year is 8000 hours (compared to earth’s year of 365 days x 24 hours/day = 8760 hours).

The final thing you need to know is how long each season lasts as a fraction of the total year.  Ideally, this would be a detail that you have figured out for each world but to first approximation, just assume that each planet has 4 seasons and each one takes up 1/4 of the year.

So we have a date that we know which corresponds to the start of our seasonal cycle, we know how long the planet’s year is, and we know how long each season lasts.  Let’s get started.

Calculating the Season

The first step is to calculate the number of days between the epoch we’ve recorded and the current date.  There is where a standard time system is helpful.  Using the Julian dates on Earth from the example above today is 42083 days since the epoch.  Using my Star Frontiers example, if the epoch was day 32, year 10 and the campaign date was day 253, year 65 we have 368 days in the rest of year 10, plus 400 days for each of the years 11-64 or (400day x 54 years =) 21600 days plus the 253 days in the current year for a total of 368+21600+253 = 22221 days since the epoch. Or assuming a running date count from day 1, year 1, the epoch is day 3632 and the campaign date is day 25853 which gives us 25853-3632=22221 days, just as before.

Animation of Mercury's and Earth's orbitsNext, you simply divide the number of days by the length of the planet’s year.  This gives you the number of local years since the epoch.  For the earth example that’s 42083/365.25 = 115.217.  For my Star Frontiers example, if the planet had a short 287 day year, we’d get 22221/287 = 77.425 years.

Now it’s actually the decimal portion that we’re interested in.  That tells us how far along the current seasonal cycle we are. Assuming four equal sized seasons, then the breaks fall at 0.25, 0.5, and 0.75.  Looking at the Earth example, we see that the decimal part is 0.215 or just at the tail end of the first season.  Since we started or cycle with spring that says that we are almost to the start of summer.  And since it’s June 9th and the solstice is June 21st it worked out just right.  Looking at the Star Frontiers example, we got a .425 decimal portion which says that the planet is nearing the end of its summer, probably the hottest part of the year.  When your characters land, you can describe the weather appropriately.

And that’s all there is to it.

A Season for Every World

In order to do this for  all the worlds in your campaign, you just need to come up with the three numbers: epoch of the start of the cycle, length of year, and break points for the seasons as fractions of the year.

But I’ve got hundreds of planets, how do I do this for every one?

Well, I’ve already given one way to simplify it – assume four equally sized seasons.  That eliminates one set of numbers.  If you go back far enough to set your epoch, you could pick the same epoch for every planet, say day 1, year 1 of the current calendar.  That would give you a single epoch and you wouldn’t have to remember unique ones for each planet.  This is completely unrealistic as the probability of every planet having their seasonal cycle line up is so far-fetched as to be impossible.  However, for game purposes it absolutely doesn’t matter (unless I guess you’re running an intergalactic time-traveling campaign).  Given even a few decades of time since the epoch, and combined with the varied year lengths of all the planets, the local seasons will quickly go out of sync, especially if you’re using fractional day year lengths.

That leaves you with just having to know the length of the year for each planet.  And that information is probably already in your system brief for the planet. If it’s not there, there are ways to estimate it based on the type of star the planet is orbiting but that’s a topic for another post (or maybe two).

With those numbers (or approximations) in hand, now you’re good to go.  When the players arrive on the planet, a quick calculation will give you the current season.  And when they come back a few months later you’ll know how the season has changed and can describe it accordingly – breathing life into the setting in a subtle way that will help it to feel alive and dynamic.


That’s the quick and dirty method.  To refine the calculations, all you really need to do is refine the data for each world.

The local year length is pretty fixed and already unique so there’s not much to do there.

You could pick unique epoch dates for each planet.  This is much more realistic but from a practical standpoint doesn’t make much difference.  All it does is shifts the seasonal phase a little.  As I said before, if your epoch is far enough in the past, this won’t matter.  However, if you’re implementing this after the characters have already been on the planet and experienced one of its seasons, you might want to set the epoch at a near date so that the calculations line up with what they experienced and you can remain consistent going forward.

Similarly if the characters have never been to the planet before, and you want them to experience a specific season for the adventure you have planned, don’t use a predetermined epoch.  Wait until they arrive, describe the season you want the system to have and then set the epoch appropriately and use that to calculate the current season when and if they return.

A collage showing an image from each of the four seasonsThe biggest thing you can do to add uniqueness and variety to your worlds is vary the number and length of the seasons that the world experiences.  Maybe there are only three seasons: rainy, normal, and dry.  And the rainy and dry seasons are both short, say each only taking up 20% of the year.  Then assuming you started with the rainy season at the epoch, you have divisions at 0.2 and 0.8.  Any fraction less than 0.2 is the rainy season, anything greater than 0.8 is the dry season and everything else is the normal season, whatever that means for the world.  By determining the unique weather patterns and recording it, you have a way to quickly get at whatever the season is on the world regardless of when the players arrive or return.

A Possible Notation

Finally, it doesn’t take a lot of space to record the information either, two lines at most in your notes, and only one if you’re using a Spring, Summer, Fall, Winter cycle.  Using that season cycle you just need the following

Planet Name – epoch – year length – breakpoints

So for Earth, using Julian dates with March 21, 1900 as my epoch, the entry would be:

Earth – 2415100 – 365.25 – 0.25, 0.5, 0.75

For my fictional Star Frontiers planet, and using a slightly longer summer and shorter winter, we’d have:

DevCo – 3632 – 287 – 0.25, 0.55, 0.80

which gives spring and fall 25% of the year, summer 30%, and winter 20%.  If this planet had the rainy/normal/dry seasons in the example above, it’s entry would be:

DevCo – 3632 – 287 – 0.2, 0.8 – rainy/normal/dry

where the extra information would be added either on the same line for a following one (depending on your formatting) to indicate what seasons are represented by the break points.  You could always include the spring/summer/fall/winter designation but that is assumed if there are three breakpoints.

Final Thoughts

I think the above system is pretty straightforward.  Probably the hardest part is the time system used to calculate the seasons.  If you have a convoluted calendar system, this would be more difficult.

I’ve also ignored the transition times between the seasons.  Obviously a planet’s weather doesn’t suddenly shift from winter to spring-like overnight just because some magical number was reached.  Near the transition points you will obviously have a blending of weather from the two seasons or modulation of one leaning toward the other.  This system is designed to just give you a rough idea of where in the cycle you are.

Does this make sense?  How do you track seasons across multiple worlds?  What would make this system easier/simpler/better?  Let me know in the comments below.  It’s been raining almost every day for the past month; can we have summer now?


Categorised as: RPG Blog Carnival | Tips and Tricks | World Building


  1. Hi Dagorym,

    Great article.

    Thanks for being part of the June RPG Blog Carnival. To date there have been a lot of Fantasy contributions, so I hope you will write another SF post to balance it out better.

    All the best

  2. [...] Finally for this update, Dagorym of Arcane Game Lore expanded the remit of the topic to SF, with a g… [...]

  3. [...] my previous article on determining the current season, I showed that you needed to know the length of the world’s year in order to track the [...]

  4. [...] What Season is it anyway? [...]

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>