Time for.. an update.. yes!

Published June 14, 2005
Advertisement
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.

Wrong.

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..
Previous Entry I'm coding too much
Next Entry MMORPG idea
0 likes 6 comments

Comments

Moses2k
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?
June 14, 2005 05:25 AM
Rebooted
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.
June 14, 2005 11:57 AM
OrangyTang
I love that purple one, the whole colour sceme just works so well. :)
June 14, 2005 02:52 PM
Ysaneya
Quote:
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.
June 14, 2005 04:46 PM
Moses2k
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.

Thread

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 :/ ))

June 15, 2005 05:20 AM
EnemyBoss
Beautiful. I can't wait to explore a galaxy of these in real-time someday.
June 15, 2005 01:51 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement