8 ms·
QuakeWorld by John Carmack (1996)
- AdmiralAsshat 10y agoaug 8: Romero is now gone from id. There will be no more grandiose statements about our future projects. I can tell you what I am thinking, and what I am trying to acomplish, but all I promise is my best effort. John Carmack I think this brief, internal message to staff following Romero's departure is more interesting than the rest of this sheet.
- pvg 10y agoIt's from his public .plan file, I think, not an internal message to staff but the public announcement. Carmack just didn't do 'our incredible journey'
- anc84 10y agoThat's correct. One could think of it as a blog post.
- sehugg 10y agoI remember typing "finger johnc@idsoftware.com" every couple of days.
- anonbanker 10y agoor just reading his .plan on shugashack.
- qwertyuiop924 10y agoI actually tried this. It doesn't work. id still seem to be running fingerd though...
- voltagex_ 10y agoSee if it'll return anything if you ask for all online users? https://tools.ietf.org/html/rfc1288#section-2.5.1 https://tools.ietf.org/html/rfc1288#section-2.5.1
- Bromskloss 10y agoCould people outside their internal computer system read his .plan file?
- sveiss 10y agoYes, they ran a public finger server (which was then scraped and put on the web by third-parties).
- deleted 10y ago[deleted]
- panic 10y agoThe book Masters of Doom is a good read if you're interested in the backstory here.
- jzelinskie 10y agoThis was very cool to read after having read this book, but never actually read the .plan files before. Kind of an "aha" moment.
- dleslie 10y agoAnd what's telling is that Carmack follows it up with a long, grandiose statement about his future project; making him appear somewhat dishonest.
- pvg 10y agoHe specifically makes no promises. QuakeWorld was released, more or less as described just five months later in December 1996.
- qwertyuiop924 10y agoWell, the master server idea kinda died (partly for technical reasons, i.e. authentication was hard, and the server kept dropping because of unreliable networks, and partly because people stopped wanting to play, afraid every game would drop their score) , so it wound up just being a better Quake network client. But that was still pretty revolutionary.
- pvg 10y agoThe master (meta) server sort of happened, it was just GameSpy. Global scoring and stat keeping didn't but then there was NetGames USA a bit later although it always seemed a bit pointless to me for FPS games.
- strictnein 10y agoYep, I was a GameSpy beta tester. There was a partnership of sorts that ended up forming sometime in 1996. We ended up taking part in a couple of QuakeWorld beta tests later that year. I remember how the networking code was remarkably better, even on a dialup connection with 200-300ms pings.
- qwertyuiop924 10y agoEh. I think it's more interesting that this predicted and explained an intent to implement pretty much everything that modern gaming services like Steam provide. Save voice chat and achievements, obviously.
- rasz_pl 10y agoIt takes a special state of mind to run around telling stories about being hired by US military while 8 years old to hack on nuclear launch computers (script to War Games), which is what Brenda Romero repeats in interviews about her husband.
- tgb 10y agoAn interesting convergence in history during that year. Blizzard's Battle.net was released that year in Diablo, GameSpy was formed, and QuakeWorld started. All are forms of "master server gives list of running game servers", which is pretty central to making it easy to play games on random strangers' servers. Edit: Never mind, apparently that aspect of QuakeWorld was a bundled version of QuakeSpy which evolved into GameSpy.
- dom96 10y agoWhat a nice coincidence. I was briefly researching client-side prediction today and QuakeWorld was mentioned. I didn't get a chance to look into it more and here I am now 4 hours later on HN reading about it.
- qwertyuiop924 10y agoYeah. QuakeWorld was one of the first games, at least the first popular one, to do client side prediction (which you can call "optimistic updating" if you want to up your buzzword score). The thing is, as Carmack mentions, it's a rather inelegant thing, which is probably why more games didn't implement it earlier. Well, that and the lack of common internet access.
- digi_owl 10y agoYeah i think it was a bit of a chicken and egg thing. TCP/IP for LAN use was fairly new at the time, iirc. Most games with a network multiplayer component only supported IPX/SPX. I seem to recall that there was even a matchmaking service that tunneled IPX over TCP (and thus the net) that did quite well. Ah, fund it: https://en.wikipedia.org/wiki/Kali_%28software%29 https://en.wikipedia.org/wiki/Kali_%28software%29
- qwertyuiop924 10y agoYeah. That was quite popular with Descent players. Funnily enough, Descent actually did simulate rockets clientside. But it wasn't twitch.
- digi_owl 10y agoThinking about it, Descent seems like a very underappreciated game in general. It seems to have done much of what the quake engine did, a couple of years before Quake was released.
- qwertyuiop924 10y ago
- dom96 10y agoWhat a nice coincidence. I was briefly researching client-side simulation today and QuakeWorld was mentioned. I didn't get a chance to look into it more and here I am now 4 hours later on HN reading about it.
- mentos 10y agoImagine in the year 3000 youtube is an experience simulator where you can plug in and relive moments from other peoples lives. First love, a kiss in the rain and being the grandfather of the first person shooter haha. If I could I would choose to come back as John in my next life. What a great mind on such an exciting adventure.
- qwertyuiop924 10y agoJohn Carmack is actually a wizard. Like, really. It may sound like I am being an annoying fanboy, because I am, but my opinion of him is entirely justifiable given what he's done. His code is pretty clear, apparently, as well.
- CuriouslyC 10y agoJohn is a great example of what is possible if you work incredibly hard applying yourself with passion and purpose. Let him be motivation to live better!
- qwertyuiop924 10y agoYeah.
- deleted 10y ago[deleted]
- ss248 10y agoWhat if you are already in youtube 3000 and you are just replaying your life right now? Solipsism here we go.
- powercf 10y agoI played Quake at the time on dial-up with an approx 250ms - 350ms ping. I believe the majority of players preferred quakeworld, but I always felt it was a regression on vanilla Quake net play. Vanilla quake was slow, but the world felt "real". Your position, enemies, rockets, doors etc. were where they were, and you could react based on that. Quakeworld added prediction, and more client side processing. As a result, you could no longer depend on things being where they were - the enemy you just saw run around that corner did not run around that corner, and instead fired a rocket in your face. You are dead but your client hasn't got that packet yet.
- qwertyuiop924 10y agoEh. I wasn't around, so I wouldn't know. Although nowadays, you can still kind of see this problem, as your character abruptly turns to where you were looking a second ago. Also, AFAIK, QW doesn't simulate enemies or rockets clientside, so not seeing an enemy fire a rocket and having it kill you would happen the same way in NetQuake (quake's original network protocol). Of course, I haven't seen the code...
- powercf 10y agoFrom the .plan it appears that the qw client didn't predict entities aside from the player. I don't understand the fundamental difference between netquake and quakeworld so I can't explain why, but quakeworld always felt somewhat "unreal" when playing with a high ping, whereas netquake didn't (it just felt slow). I would imagine this isn't very relevant these days, as nobody plays with a 300ms ping (+ packet loss) any more.
- whatever_dude 10y agoNetQuake had no prediction, you'd only see what your client got from the server. It felt weird, but it was 100% correct, even if a bit delayed. QuakeWorld had prediction, so it'd render everything to the best of its abilities, and then correct as needed. You didn't just get the position of a rocket, for example; you got its velocity vector too. And everything was UDP based, so missed packets could easily be ignored and the clients would fill in the blanks. For all its weirdness, it was a beautiful thing back then. I haven't taken a deep look into modern game protocols, but I believe games today go a bit further. They don't just get position and velocity vector from the client, they spawn and control read-only entities on the client side. The client runs a full simulation. The result is that you get a seemingly much smoother experience, with no interruptions or corrections. But the downside is that you might be seeing things that are completely incorrect. You'll see yourself killing someone and their model playing a death animation, but then one second later you're dead once the client gets the truth from the server. Personally, I prefer the way QuakeWorld did things. It at least allowed you to compensate for the lag - leading rockets, etc. Playing QuakeWorld with a ~200ms lag was mostly fine for me. But if I play a game with 50ms lag, I'll be getting my shots all wrong and not even realizing it.
- whatever_dude 10y agoOne interesting aspect is that they wanted servers to be ranked, and users to be logged. That way you'd only be playing multiplayer matches against people of your own skill level... Once QW was out and this was tried in practice, it was promptly abandoned. It just didn't work well for many reasons. And yet, that kind of feature is pretty much mandatory in mainstream FPSs today. A game like Overwatch doesn't even have a real server browser (yet), it's only auto matching. Another instance where John Carmack was ahead of his time.
- 83457 10y agoDo you know why it was abandoned? Just player density being too low for it to be useful?
- Multiplayer 10y agoPlayers were very upset that everything they did was ranked and they couldn't just play for fun without it being rated. It was a jarring change at the time. There was at least 1 unofficial effort as well that met with a similar fate.
- DiabloD3 10y agoAs someone that played Quakeworld significantly for 8 years (a lot of people, me included, ignored Quake3 until popular mods like CPMA fixed it), I couldn't have imagined doing it with ranked matches, especially with how bad games like TF2 seems to have implemented that years later.
- kbart 10y agoAlso, some people enjoy challenges, not easy wins. I was an average Quake player but enjoyed playing high ranking players so I could learn, even though the final score was something like 20:1. Off-topic, but the main reason I gave up on computer games is that most mainstream titles today are easy to the level of stupidity and for this reason get boring in few hours max.
- georgkw86 10y agoBrilliant programmer like Steve Wozniak who severed ties with his Steve Jobs ie Romero
- tekni5 10y agoSomething about reading about doom or quake development, that gives off so much nostalgia. I hop back on QuakeWorld servers every few years, but the gameplay is just too crazy from what I remember, the people left playing it are simply too good.
- qwertyuiop924 10y agoYeah, you probably left before the art of the bhop became commonplace. Even if you didn't, you'll probably get schooled in 1on1. FFA is a bit more relaxed, if you want to have a bit of fun. Oh, and get nquake. It helps a lot.
- shrewduser 10y agoI wish he still wrote these.
- 9erdelta 10y agoNot quite the same, but following him on Twitter (if you aren't already) is pretty cool.
- sjm 10y agoQuakeWorld revolutionised online FPS. I believe — and yes I'm biased — that it still has the best netcode of any online FPS game. My fondest memories in front of a computer are of playing QW on a dialup modem, then eventually on LAN, where in Perth we had a pretty big community. New games come and went, but QW stuck around and for us die-hards no FPS has ever lived up to the speed, mechanics and "flow" you can experience in QW. Many things may have been a fluke, and Carmack even posted his dislike for the "bunnyhopping" bug found in QW, which ended up improving the game 100x fold: "Strafe jumping is an exploitable bug. Just because people have practiced hard to allow themselves to take advantage of it does not justify it's existance. When I tried fixing the code so that it just didn't work, I thought it changed the normal running movement in an unfortunate way." - Carmack If you're curious to see some gameplay from 2016, there was an "all-star" 4on4 competition recently, on YouTube with commentary here: https://www.youtube.com/watch?v=oN6s1nh6nV0 https://www.youtube.com/watch?v=oN6s1nh6nV0 It might look different to the Quake you remember — after id open-sourced it, some really great community projects sprouted up improving both the clients and servers, but the gameplay stays exactly the same.
- obbybreeden 10y agoIt's embarrassing that QuakeWorld on a 166 MHZ Pentium with a 200ms ping is more playable than some modern FPS games on multi GHZ, multi-core, broadband equipped machines. I can't fathom the amount of suboptimal bullshit going on in today's netcode to achieve that.
- tehrei 10y agoQW had to send a lot less data. All the physical simulation ran on the server, so each client would send their inputs and the server would send back the world state. Current games' world state is a lot bigger than before with dynamic physical objects and skinned meshes with thousands of polygons, whose movement is dictated by a blend of physics, inverse kinematics and skeletal animation. Computer power has scaled farther than bandwidth and latency.
- rangibaby 10y agoCS:GO is way better at higher pings (possible to play "competitive" at 100+ ping) than old CS (based on QW engine) was. 300ping was acceptable when I had dialup, but only because I didn't know any better lol
- ss248 10y ago"There are a few other things that can be done to shave a bit more off, like short circuiting some late braeking information (like view angles) directly into the refresh stage, bypassing the simulation stage." Fun to see that he used this idea 18 years later at Oculus. It's called Asynchronous Timewarp now.
- croon 10y agoThis is eery. I haven't played a QW game in maybe 10 or even 15 years, and haven't really encountered a reference to it recently either (that I remember), but I actually had a dream last night about QW. Things changed was that every player model was replaced with what I can only describe as a starcraft siege tank, but the physics/rockets/gameplay was still pure QW (including jumping). The map was DM6. Back on topic: Fascinating read. This must have been back in -96 I assume? Remarkable foresight and predictions, even if it reads that he's unsure of some of them.
- qwertyuiop924 10y agoYeah, it's 96. And you know that QW is STILL GOING? Quakecon's got a QW tournament this year, and the game is still being played all over the world. Jump in. http://www.nquake.com http://www.nquake.com