5 ms·
Voxels may be uncommon, but they still weren't new. There's nothing technologically new in Minecraft. And that's fine.
by TwoBit 9y ago
Voxels may be uncommon, but they still weren't new. There's nothing technologically new in Minecraft. And that's fine.
- sillysaurus3 9y agoSame for Quake. BSP tech came from the field of medicine, for example, and rasterization wasn't new. Quake just did it so much better than anyone else, along with a fun game. As with Minecraft.
- planteen 9y agoBSPs weren't new to the Quake engine (Doom had them). Gouraud shading, lighting, and TCP/IP multiplayer are what made Quake revolutionary for the PC. These things existed on SGIs costing $100k for years before too. The optimizations to make this on a PC is why Carmack is genius.
- holografix 9y agoNot to be pedantic but TCP or UDP? I always thought games preferred UDP as it's much more efficient if you don't care about a fraction of the packages being dropped?
- MaulingMonkey 9y agoA quick glance at the source @ https://github.com/id-Software/Quake https://github.com/id-Software/Quake shows some support for both - although I'm seeing more stuff hardcoded to UDP than not. Despite this, amusingly, "TCP" has more search hits than "UDP", due to the frequency of the same 'mistake' as the parent comment, so they're in good company ;) (Other terms to search: "DGRAM", "STREAM".) UDP's main advantage is the ability to process out-of-order - by sending duplicate state (actually more wasteful in terms of raw bandwidth!) or allowing for a lossy stream of data, your latency won't spike (as much) waiting for previous packets to be retransmitted. This isn't so much about efficiency per se, so much as it is about minimizing response time (even if it is potentially more bandwidth, potentially more CPU, more code, etc.) which matters a lot for some twitchy competitive games. It's also not going to have any real impact if you're not dropping packets, nor if you're building your own reliable in-order channels atop that (which even the twitchiest game will likely have for some things if they're not using TCP as well - things like in game chat, leaderboards, matchmaking info, telemetry, etc. - a large number of which might use a full HTTP stack these days, if only under the hood of some official SDK, because why not use the same leaderboard server for your game clients and your website?) And there's the occasional router (edit: or firewall, or other network appliance) that's so terrible, it manages to ship without a properly tested UDP stack, so a full blown TCP fallback isn't the worst idea ever. TL;DR: Heckin' trade-offs.
- mysterydip 9y agoIIRC Quake was UDP and sent delta-compressed states of everything up to the last acknowledged receipt. This allowed for dropped packets to not matter as the next packet would have the info missed in the previous, and the game could "catch up". So you would have something like: Server: state1 Server: state1,state2 Client: ackstate1 Server: state2,state3 And so on.
- sillysaurus3 9y agoI think you're describing the Quake 3 network architecture: http://trac.bookofhook.com/bookofhook/trac.cgi/wiki/Quake3Networking http://trac.bookofhook.com/bookofhook/trac.cgi/wiki/Quake3Ne... It's good design, and helped catapult Quake 3 into $billions of revenue. No one had done it quite that way before Carmack. That was long after Quake, however.
- slavik81 9y agoThere's relatively little that's truly new in Minecraft. Both the voxel aesthetic and many aspects of the world and gameplay come from its beginnings as an Infiniminer clone. Notch 'just' made the right adjustments to the formula and then nailed the execution.