Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I think it's still largely single-threaded. They value complete determinism: you should never get a different game state one tick later based on a CPU race condition. This is for easier debugging, repeatable testing, accurate multiplayer simulation - and also just that it fits the theme of the game, players expect to be able to design certain systems to work deterministically. This design decision has a performance cost, of course.

Still there have been major performance improvements, including parallelism-lite. And just the fact that it's mainly the same engine that ran on low-spec computers from 6 years ago means it should run very smoothly on modern machines - not all of the Moore's law improvements since then have been about parallelism.



I wouldn't say 'largely'. There are definitely single-threaded parts and if you have 64 really slow cores then you won't get 64 times as many FPS (or UPS, really) as with 1 core running at 64x speed, but that's with all software.

If you have a somewhat reasonable per-core speed, multiple cores should all be loaded with work. Personally I can't say that I've noticed it helped, but that's anecdotal and I've seen the improvements as they came in incrementally rather than in one big jump from some old single-threaded version to 1.0.

> including parallelism-lite

What does that mean? When I look it up I get results for some other game with a similar name.


> What does that mean? When I look it up I get results for some other game with a similar name.

I didn't mean to refer to any established term. I meant parallelization by breaking the game up into systems, e.g. I believe the electrical system can run completely separately to the main thread without losing the deterministic guarantees, while I would think of full parallelization as allowing each assembler or inserter to be simulated in its own thread.

Maybe there's a more established term for this? Parallelization through doing different types of things at the same time, rather than doing many copies of the same thing at the same time.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: