Ixos wrote:Uomoz wrote:What about automated turrets that shoot down incoming asteroids?
I don't think the asteroids will actually be moving much more then perhaps rotating slightly in the same place. Keeping track of so many moving objects in a high amount of systems sounds like an impossible task to program.
That's actually irrelevant. Only the current system you're in is being actually simulated. As soon as you jump to another system, all the game has to do is check if there's any asteroids currently near the lane and deal with them accordingly at that time. It then means it's irrelevant to simulate the whole galaxy all at once, since they can be dealt with when you step in to each system at that time.
Any system you're not in is simply abstracted to the important actions (asteroids would be deemed unimportant, since on an abstract level, you can assume they'd never get in the way, if turrets - or whatever method you wish - would be removing them from the lanes were you in the system)
When it comes to video games, simulating every single details when a player can't see them is simply wasteful (it's the same concept for occlusion culling, or frustum culling when it comes to graphics, you only draw what the player can actually see, since there's no reason to draw things they can't see, and therefore speed up the game engine.)
Take this example:
Say there's a battle going on in the next system over. The player can't see the battle going on, but maybe he's getting signals on his comm that there's a battle going on. You don't need to simulate the whole battle at that point, since you're just wasting resources. All you really have to do is keep tabs on the forces on each side of the battle, and run simple statistical chances of damage occurring, which is really quick math, and thus an easy abstraction, instead of calculating the path of each shot, spaceship, AI, etc.
If the player then decides to jump to the system where the battle is happening, just take whatever your statistical results were, disseminate the ships accordingly for the two factions (including damaged/destroyed ships randomly assigned according to the stats), and you can now simulate the full battle from that point. The player would be none the wiser, as all they would see is a battle that is underway with casualties as expected from whatever point they came in to.
If you expand the example to a full game, and assume multiple battles going on in multiple systems, you can imagine how much work you'd be asking of the game to simulate full ship interactions in dozens of systems at once. It's just not feasible. However, with abstraction, you can run simple statistical math for each system, and whichever the player decides to jump to, he'll just see what you might expect for the fight at whatever point the one he came in is.