3 ms·
Almost all the graphics, audio, net, event, ui, system calls and data structures are generally tied to the low level frameworks without any level of virtualizat
by highCs 12y ago
Almost all the graphics, audio, net, event, ui, system calls and data structures are generally tied to the low level frameworks without any level of virtualization.
Add to that that each framework has its own standard and way of doing games (event-base, component-base, etc.). The worse part I think is the game logic is generally enclosed in framework-specific objects like events in as3, components in unity, etc.
Virtualizing that would be expensive, tricky and costy in terms of performance.
- jfoutz 12y agoI am genuinely surprised that a flash game is so tightly coupled to the underlying hardware. That's amazing.
- wtracy 12y agoThe problem is not that the Flash game is so tightly coupled to the hardware, it's that it is tightly coupled to the Flash runtime. (Mainly because Flash forces a certain structure on your code, but also because Flash's idiosyncracies are so bad that you have to bend over backwards to get good performance from it.)
- ChuckMcM 12y agoIn the way back times, when the Amiga was a hot machine, I hung out with folks who were games people and they were always trying get one more erg of power out of the machine because, as they put it, "Every cpu cycle spent on the game makes it that much better." Which was clearly true in the Amiga, and the PC/AT and Macintosh II, but for a modern machine with 4 cores and 8GB of memory and a GPU that fills a 1080p screen with triangles almost without thinking about it. It seems like 'bare metal' is suddenly a hindrance and 'moving to multiple platforms with minimal rewrite' would be the thing evolution would push into game studios. Where did that message get lost?
- sharpneli 12y agoThe message gets lost in performance. The difference between engine optimized for certain platform is simply massive. We're talking at in the worst case 10x the performance difference. Why is this? Let's take modern console game for PS4. It uses mantle like API where you can simply spam drawcalls like no tomorrow. Port that to DX11/OpenGL and you'll choke. Or move a simple OpenGL game from PC to mobile, it does nothing fancy and uses ES2.0 subset of OpenGL so it should work nicely? Not quite. All your scenes are built using effects that cause massive performance penalty in tile based renderers. Sure it works fine on Tegra K1 but everywhere else it's horrible. On the other hand there is a way of doing multiplatform development. It means using Unity (or other multiplatform engine), limiting yourself to a common subset and leaving the optimization part to be the headache of the engine developers. However even if you use Unity you have to manually consider the effects you are using on per platform basis.
- highCs 12y ago> 'moving to multiple platforms with minimal rewrite'. Where did that message get lost? After the Amiga/Atari/Commodore/etc era when games were ported on every platforms came the PC age (which was relatively divided from the consoles during a long time). Now heavy crossplatform is back again.