Jump to content
  • Advertisement
  • entries
  • comments
  • views

Time for.. an update.. yes!

Sign in to follow this  


I just realized that i've never posted screens of my "old" planet engine (it's from 2003) on this journal. So for posterity, here they are:

I'm looking forward to reimplenting these scattering effects in the new engine (soon i hope).

In the last weeks i've been working on more physics. I realized things are not as simple as i initially thought.

Bear with me, it's not easy to explain. Basically, all my bodies are dynamic and hierarchical. You have planets, orbiting stars, moons orbiting planets, and space stations orbiting moons/planets. All of that in "accelerated" real-time.

So, in world space coordinates, the position of a specific planet is always changing - up to 1000 kilometers per second. Internally i store all my coordinates in 64-bits floats using the kilometer as the unit. The server controls how bodies are moving, and the client interpolates and predicts the movement using dead reckoning. It's all good in theory for one unique body.

But when you've got a hierarchy of bodies, the movement of one body should affect another's. What i mean is, if a space station is in the gravity field of a planet, translating the planet by +500 km in space should also translate the station by +500 km in space. If you don't do that.. the station will end up motionless in space while the planet it was orbiting goes away. Hence the motions of bodies must be somewhat "linked" together.

It gets even more tricky when you add imprecision due to networking. Let's say that your latency varies from 0 milliseconds to 10 milliseconds. Sure that's not a lot and no big deal.


In any other game, that wouldn't be a problem. But due to my time acceleration and huge speeds of my bodies (we're not playing with kilometers per hours here, but with kilometers per second), it can lead to huge errors.

A simple calculation: if a planet is moving at 1000 km/s in space, a latency of 10 ms leads to an error of 10 km in the body's position.. after one second!

Imagine what would happen with real Internet latencies.

Frontier, the classic David Braben's game in the 90s, probably solved the first part of these issues... except he didn't have to deal with networking, which made his life easier. I do not have the same luck..
Sign in to follow this  


Recommended Comments

Hiya. So tell me...how do you plan to release your combined galactic/solar/planetary engine? Are you creating a commercial or an eventually open-source middleware tool? Assumedly you'll be making a game with it?

I mean to imply that I'm sure there would be people interested in using such an engine for their games. :) What were your plans?

Share this comment

Link to comment
Sounds like you're going to have to do at least some of the physics work on the client side. I didn't realise how many errors would be caused by latency when working on this scale.

Share this comment

Link to comment

What were your plans?

My current plan is to make an open-ended sci-fi game, similar to Elite/Frontier (if that wasn't obvious). Indeed i plan to release the engine commercially as a way to finance the game (especially since it doesn't have a lot of competitors), but there will likely be a free license for non-commercial usage.

Share this comment

Link to comment
It's exciting to think of a powerful engine like this being released as a middle-ware tool...and I've been considering a game that could use your technology.


Oh, and perhaps you'd be interested in this: Noctis IV CE

((Also, apologies for not reading your game description in that previous post before I asked :/ ))

Share this comment

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!