EDIT: This appears to have died, now that the content servers for quakejs have died. My servers are no longer starting anymore :(. For those reading on later, there was peak of 10 on both servers just before it went down
ioq3 1.36_GIT_4f7d7bf-2014-02-01 emscripten- Feb 23 2014
----- FS_Startup -----
Error: Failed to download and parse manifest, Couldn't load
http://content.quakejs.com/assets/manifest.json. Status: 500
---
Giving that at the time of viewing, the multiplayer servers are down, have some of mine:
The use of https://kosmi.io/ here is what I found more interesting. I've never heard of this service before but it's a great idea. Reminds me of some much less...polished chat services I've used in the past to group-watch videos. It's nice to see the concept fleshed out more with a public lobby and a Discord-like client.
The last "real" Doom imho. Although both Doom 2016 and the new Doom Eternal look and run amazingly well, the thing with weapon alternate firing modes and weapon mods are just not my cup of tea. I don't want a shotgun that fires grenades and has full auto modes and whatever the hell the other mods do. They lost a bit of the nostalgia with all those extras, or maybe I'm just getting too old (?).
This browser port runs really great, when the game came out it was one of those that made people have to completely migrate to the next generation of hardware.
I'm a huge DooM fan and have been playing since I downloaded the original off of a BBS back in the day and I have to, respectfully, disagree.
With DooM Eternal, there's actually a fully running port of DooM and DooM II inside the game and jumping into that after playing the main game for a while feels incredibly seamless. DooM (2016) and DooM Eternal feel like they took the scary shotgun ballet of the originals and added verticality and modern game mechanics to it. The only thing I think they missed an opportunity on are the dark levels that were in the originals. Not every level in the original games was a full speed dance with demons.
Of course, agree to disagree. But in particular, having to constantly perform glory kills and chainsaw attacks to get more than 5 bullets or having to snipe coordinates XY on enemy Z with alternate firing mode N to weaken him and only then succeed in taking them down is, in my opinion, not that "Doomy". But I get what you're saying, they can't just make the same game again of course. Also, these days expectations from new games are way bigger than they were back then. Still all great games.
I don't think that's a fair assessment. You don't have to constantly perform glory kills or chainsaw attacks and there's not a single instance in the game where you have to kill an enemy with an alternate firing mode to a specific region. I think you're exaggerating for effect, and that's fine, but I don't feel like you'd need to do that if your argument had any meat to it. You're right that it's not the same game (because that would be boring) but to say that it's not "Doomy" because of reasons that aren't even accurate makes your whole argument fall apart.
Case in point, there's already a pistol-only playthrough of DooM (2016) and I know people are already working on shotgun-only playthroughs of Eternal.
Ok, I was exaggerating a bit but as far as I remember, the game specifically breaks the flow to pause and show you a little instructional clip [0] [1] on how to better kill each enemy, so there's that. But hey, your point is made, I was just throwing my opinion out there, I don't think we need to continue nitpicking since tastes are tastes.
Ok. I just feel like "breaking the flow" is a lot different than having to use a specific secondary fire mode of a weapon at a specific location on an enemy and stuck out to me because, if that was an actual thing in the game, it would make the game unplayable and annoying to me.
DooM 2016 does not but Eternal shows you a codex entry the first time you encounter an enemy that highlights their weaknesses. None of them have to do with an alternate fire mode or anything else, so it's still an exaggeration, but it does tell you which weapons are particularly effective. Shields, for example, blow up if you use the plasma rifle.
Sure, you don't have to do any of those things, but you'll be seriously disadvantaged if you don't because the games are designed around these mechanics. Maybe it's exaggerated, but on the other hand, as a fan of both Doom and Doom 2016 it seems your response downplays the difference these mechanics and using them to your advantage makes, and I agree with GP that these are substantial differences that fundamentally make the games play differently.
Not in a bad way (well, mostly. I still loathe the weapon/armor/character upgrade part of the game). There's no real mowing or herding like in the more intense levels of Doom and Doom II, but instead we get really intense fights that are cool in a different sense.
> Sure, you don't have to do any of those things, but you'll be seriously disadvantaged if you don't because the games are designed around these mechanics.
That's not the case, though. You might be somewhat disadvantaged, but not seriously.
On my first playthrough on normal difficulty I essentially only used the Super Shotgun. I can't remember using the Chainsaw for ammo, but I did use the BFG a handful of times.
The developers have even said that a goal of theirs was to make this "playstyle" (using only the SS) less viable in Doom Eternal, because it was too simple and powerful. It might have been on a NoClip podcast, I can't remember OTOH.
I've not played Eternal yet, I'm waiting for updated nvidia drivers to hit my distributions repositories.
> That's not the case, though. You might be somewhat disadvantaged, but not seriously.
Well, that's not my experience. I initially hated the concept of glory kills, and especially the blinking effect on staggered monsters. Even just turning the blinking effect off made the game much harder in my experience. I had to learn how to appreciate the mechanic instead. Maybe you are just a much better player than I am and could cope better with the disadvantage.
I share similar feelings. I feel like Doom 2016 (and Eternal) are more of a sequel to Brutal Doom (a popular mod for original Doom games adding finishing moves, over the top weapons and over the top gore/violence effects).
I've always viewed original Doom as more of a survival horror. People laugh now, but Doom was a genuinely scary game back when it released. Gamers nowadays obviously won't be scared by it. They also might play on lower difficulty levels or with cheatcodes. So rather than "you are stuck here with the demons", most gamers will play it as "the demons are stuck here with you", and this is what Doom 2016 reflects.
I have to disagree. Anyone who played DooM and DooM II more than just a single time through the campaign is more likely to view the originals as bullet ballets rather than as survival horror. DooM levels that seemed "scary" were only scary because demons could jump out at you and give you a jump scare. Once you know where the monster closets are, it's not that scary anymore.
If you played the original's multiplayer at all, then you'll remember how quick and frenetic it was and how that changed the play style for the single player levels. The new games reflect that much better than Doom 3, imo.
Totally agree, the thing about Doom is the movement and the speed. I watched a few hours of Doom eternal and within 2 minutes of watching the physics, my only thought was "this is Quake".
Even on higher difficulty levels - I think except for the highest - the classics aren't hard. Modern games have more timing mechanics, more verticality, more methods of movement or control to master. I'd gather most middle of the road FPS players these days could breeze through the hardest modes of Doom and Doom 2.
I think they were difficult at the time because they were so novel. Modern games are novel in different ways and challenging in that novelty. Doom feels somewhat more "solved".
Essentially mouse aiming (meaning just rotating left-right in Doom) coupled with strafing breaks Doom 1 and 2. The enemies simply aren't designed to deal with a player that can seamlessly sidestep and precisely aim at the same time. If you were to play with keyboard only you might find the OG Doom quite a bit more challenging.
Quake's source code is very hackable. I forked ioquake3 for a personal project and it was surprisingly easy to add WebRTC support to the C codebase, so you could play it in your browser over WebRTC :)
That is really impressive! Are you still doing stuff with WebRTC? It is quite a niche area, but lets you do lots of interesting things.
If you are ever interested in getting back into the space you should come join us working on Pion (A Pure Go implementation of WebRTC). I would love to hear about what else you did! [0] I am just really trying to build a intellectually curious/supportive community of RTC. Right now everything is so anemic community wise.
Only played it with my friends, don't think a map ever exceeded 10 players. So I can't say much about scaling - although it was a client-server model over UDP and not peer to peer networking.
Sadly no, but I don't think there's much of a ping difference on a good network. With WebRTC (datachannels in UDP mode) you just get the benefits of UDP (or lack thereof :)).
This is great. Does anyone remember quakelive? Around 2010 it was playable in the browser via a browser plugin. Loved playing it on my macbook. I don't recall if the plugin was flash or a java applet but when support stopped for those quakelive moved to steam as a desktop app.
I remember playing QuakeWorld (Quake 1) back in the day. I was about 8 years old, I think? My memory may not serve me perfectly on this, but I remember ending pretty high in the rankings at the end of each match at one point.
Then I got some serious nightmares from it (well, yeah, I was 8) and had to delete it. (by deleting the icon from my desktop... I was so innocent back then)
Ah it looks like you are correct. It used the NAPI. Per wikipedia:
> In November 2013, citing the planned deprecation of NPAPI browser plug-ins by major browsers, Quake Live began to phase out its browser version and began migrating to a standalone client. However, this change necessitated the removal of OS X and Linux support from the game.
Yes! It was essentially Quake3 but in the browser. Not sure when they transitioned away from the free browser-based version, but it's still available on Steam.
I liked Reflex Arena the most out of the post-Quake Live arena FPS'. It's a huge pity that it didn't really take off. I feel like they made a terrible mistake hedging their bets with catering to the CPM community. From what I saw it alienated the VQL players by using CPM mechanics, and the CPM players shunned it in the end because it wasn't an exact clone of CPM. This was a poor decision, in my opinion. One that ended up dooming what could have been an amazing game.
I did a few game jams with my flat mate years ago, and I was really impressed what is possible with the web in terms of game development.
Because of game pad support and fullscreen the browser worked superb for couch-coop/local multiplayer games, but the high latency network support of browsers made it kinda hard to do online multiplayer games.
Which is kinda ironic, because the browser is made for online interactions.
Hugely contentious statement. People still play the original Quake competitively. It's still one of the most thrilling and intense multiplayer FPS experiences. There aren't many games that are as fast or have a physics engine that can be so impressively manipulated.
It depends on when you discovered the game and what you played most. Quake I was the first "true" 3D game (with levels that could stack rooms vertically), and many people remember it very fondly. Personally, I really enjoyed Quake II. I did play Quake III when it came out, but the lack of a single player mode meant the game had no backstory at all.
When Q3 came out everyone was bored of single player. It looked like the whole industry was going that way and that single player FPS was pretty much dead. Then Half-Life was released and blew everyone's minds. I don't think anyone has been able to craft an experience like HL to this day, it's like they just "get" how interactive fiction should feel rather than being a shoot-em-up interspersed with cutscenes.
Not exactly, Unreal the single player game is also from 1998.
If you meant Unreal Tournament, it was released November 22nd 1999, just a few days before Quake 3 Arena that was released on December 2nd 1999. UT was also mostly a multiplayer arena type game like q3a. It was a really hyped up battle of giants back then between those two. Good times.
EDIT: corrected release dates after checking wikipedia
Interesting. I just went and had a look at that. So this game had true 3D levels where you could have multiple floors sitting one above the other? If that's the case, interesting that it's so unknown.
My understanding is that action-oriented multiplayer games in browsers have always suffered because they can't use UDP. How does this achieve multiplayer from a networking perspective?
Lots of people use WebRTC DataChannels for this! The real tech here is SCTP, and it is pretty amazing. It runs over UDP, and allows you to send messages larger than MTU. You can also choose ordered/unordered and lossy/non-lossy depending on what you are trying to do.
We worked on a Pure Go implementation[0]. If you are interested in learning more. Most people (all browsers) use libusrsctp the C implementation.
HTTP/2 doesn’t replace the need for UDP at all, not in the slightest. For latency-sensitive applications, it provides no advantages over HTTP that I can tell.
The problem is with TCP, and the problem with TCP is that it prioritizes in-order delivery, and missed packets cause head of line blocking. HTTP/2 is designed to solve head of line blocking, but since it’s built on top of TCP, it can’t solve the issue in this case.
All I get is Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://content.quakejs.com/assets/manifest.json. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
If I wanted to learn to write browser-based games what would be a good place to start? I know some JavaScript but am not particularly enamoured with the language. Should I learn TypeScript plus some framework? (React?) Or how about something functional like Elm?
Frameworks aren't very relevant for games. I'd go with Typescript (because it will tell you about some errors earlier and provide code completion support if properly set up) and WebGL. Then do everything in the canvas and essentially ignore the fact that you have a browser with a DOM etc.
An option is to target WASM and write the game in Rust or C++, using Emscripten WebGL bindings. This is harder but allows you to write high performance games that would run too slow in Javascript.
Completely off topic: do you have a Rockbox-compatible, dumb, tiny, cheap music player to recommend for running? I burned through three or four Sansa Clips and Sansa Clip Pluses over the years, but those lines are now discontinued (and I refuse to participate in the scalping refurbished market), and my last one just died.
The AGPTek Rocker is one of our last targets still in production and can be acquired for around $50. I haven't used one myself, but from what I hear it's fairly decent but not perfect.
Yep, that's really awesome. Quick question: If one implemented the whole thing again, using three.js or even raw webgl, would it be more performant that the compiled javascript version?
FF74 on Windows works great, so it sounds like it's something specific to that setup. Can't use Wayland on my Linux laptop, but I should at least try this on that config to see if it works on X.
Wow! Q3F! That was my absolute favorite game back in the day, and I was always sad how it fell off. I couldn't get a game loaded here yet, but looking forward to it.
There is always something to protect – in this case, your browser and your system. How about zero-days in WebAssembly that a man in the middle might exploit?
... the issues with Adobe Flash are quite a bit more varied than “politics.” At best, it was always a drag on mobile platforms, reducing battery life and hogging resources, and at worst it’s pretty much best known now for its security issues that ultimately helped further its demise. If you want to go a step further, in 2011 you could also have probably delivered your game as an NPAPI extension and got pure native code instead. You could deliver these via extensions, even in Chrome.[1]
Native Client also came to fruition in 2011, and Firefox chose not to support it. I doubt many would chalk that up to just politics, either, but I think it’s fair to compare.
The first part of this isn't quite correct if I am remembering correctly. Flash (or at least the engine behind it) is still on both Android and iPhone platforms through its app equivelant called Air. There's a lot of things that use Air... to give you an idea, Angry Birds was first written and deployed to Air. So though Apple complained about performance issues, they were not the biggest deal. If I was to take a guess, it was mainly to prevent the web from competing with the app store. So I think his comment is at least somewhat right. Apple didn't want an app store competitor (think Kongregate or Newgrounds competing with the games part of the app store)
Flash on Android existed, and I actually used it, and I can pretty much guarantee you it was never going to be competitive with the way it ran on contemporary smart phones. I don’t get how Flash applets on a website were ever at risk of competing with the app store. HTML and PWA is a more compelling option today than I think Flash ever was, and Apple contributed greatly to that fact with Webkit...
I tried it too and it wasn't the best. But I have a general feeling it was because those particular games weren't really well optimized for the phone. Then again, they were a it more complex than the other games on the phone at the time... but alas.
I'm not sure if it would have grown into a competitor either way. But some people definitely tried to - Kongregate at one point built an app specifically for mobile flash games. Naturally google took it down (you aren't allowed to host 'app stores' on the 'app store'). But it had quite a few downloads. That's just for something on the app store, not directly on a website, but I think the point is that maybe if things had gone a bit differently it might have been more competitive.
For PWAs, yeah, today, they definitely are, but it's taken a long time for them to come that way.
Of course, though, you can distribute your own app stores on Android via sideloading a la F-Droid and Epic Games. Perhaps in 2011, it just didn’t seem as doable, or maybe sideloading was disabled by more vendors... not sure.
One time I accidentally left SpinControl.app on for a week and went about my business (SpinControl, RIP, was an app that logged stack traces any time an app didn't flush its event queue for more than a few seconds -- i.e. caused a beachball). A week later I came back and checked it to find something truly astounding: with hundreds of logged spins, 100% of them were due to flash. Usually in Safari, but sometimes in other embedded webkit contexts. You would expect a few spins to creep into that list from other causes, and indeed I triggered one with a mail index rebuild just to be make sure it was watching more than the browser process, but no, SpinControl was working fine. 100% of the beachballs in the last week were due to flash's suckiness, to say nothing of power usage or security.
Flash's performance issues, at least on the mac, were very real. Good riddance.
> much better than J2ME ever was.
If you lower the bar to the ground anyone can jump over it.
iPhone never had Flash I don’t believe. I was an Android user at the time and the only way Flash on my device could be described is in terms of locomotive incidents. Flash games and applications almost worked, although virtually none of them were responsively designed, and they mostly worked pretty poorly with touch controls, and unlike HTML there was no way to reasonably work around or improve this at the browser level, because it was just a big proprietary black box.
Worse than this was sites that used Flash in non-essential ways like ads. If you had Flash enabled on a blog or other site that just happened to pop up a flash ad, it would make the whole page janky, greatly hurting pan and zoom functionality and killing your battery life for no benefit.
Worst of all, Flash frequently crashed my browser and sometimes even caused the entire phone to reboot.
Phones now have better CPUs and GPUs and I am relieved beyond words that Flash is totally dead now. It was never ideal for what it was most popular for (videos, streams) which only became apparent after the alternatives stabilized. But even for games and other software, I just don’t think the NPAPI browser plugin model was worth keeping. Would the problems with touch usability and accessibility be resolved at some point? Maybe I don’t know - I presume Adobe Air was able to do it for native apps, although my experience with Adobe Air apps was also not very good.
J2ME may have been not the most thrilling platform, but I’d not be surprised if it had a better security track record at the end of the day. I disabled Flash before most people, and was using a userscript to use the then-new and buggy <video> tag for YouTube. I still, before that point, had been personally hit by a Flash 0day, and a couple of my friends got hit later by a malicious Mediafire Flash payload. There was a period of time where it felt like there was a new use-after-free in Flash every month. And when you look at all of the functionality stacked into this unsandboxed blackbox to keep it competitive and alive, I don’t feel it’s terribly surprising.
I don’t enjoy everything about the bloated platform that is the modern web, but the design of it is a lot more sound. It’s designed more as a platform than a product. You get a lot of totally brand new functionality, like WebRTC, that just wasn’t really going to happen with Flash.
Flash had to die. It wasn’t a part of the web platform, it was part of an Adobe product that was shoehorned into web browsers. If it has a good legacy, I reckon it will mostly be from nostalgia fueled denial.
It's intellectually dishonest to imply de-adoption of flash was just "politics". Flash had all sorts of problems, we should be happy we managed to get rid of it. Back in the day I was too cynical to think one day we can do so.
Html5 and modern javascript already replaces flash as a target. I don't know if the tools are the same. Webasm isn't necessary for that, its use is accelerating cpu intensive parts of a web page.
I don't know what point you are making here. These projects could have been done by compiling to asm.js - webasm isn't what makes them technically possible, it just makes them faster, smaller and parsed faster. You have been told all of this before.
Above you linked projects that you said happened specifically because of webasm. Here you are saying it is nothing new 'since 1961' (what does that mean exactly)?
How have you made CPU workloads run at native speeds across all major browsers before we webasm?
Many people have corrected you on your extreme and bizarre vendetta against webasm. You are the only one saying it is both nothing new and somehow enables new projects that you don't like.
As shown at the start of the thread, with Flash Alchemy, already in 2011.
Those people are the ones with an agenda to spread WebAssembly as above anything else in regards to safety, and the very first attempt to have a bytecode format for C and C++ code, when IBM and Unisys mainframes, CLR, Brew, Tendra, PNaCL, Alchemy have been there first.
My agenda, is only to prove a point that, it isn't that much safer than PNaCL, and the only thing we got from its adoption is a 10 year delay having a general purpose VM in the browser.
Ironically, Chrome is anyway who calls the shots in WebAssembly, as per browser market share.
You think all the people in this thread talking about quake 3 and doom 3 running smoothly are part of an agenda against ancient bytecode formats for IBM mainframes?
Yeah lets see how many security issues we get to see in WebAssembly sandboxes once researchers set their sights on them, given that they already found a couple on JS engines.
Wasm has been here for years already. There's no flood of issues waiting for some cue to be released. It's no worse than any other part of the browser; probably better than some. Besides, modern browsers don't rely solely on one sandbox anymore. There are many levels of protection now.
Not all ideas were created equal. Parent's contention (one I agree with) seems to be that the contemporary browser-as-app-deployment-platform paradigm is a bad idea.
I didn't say Wasm is unexploitable. You're attacking a straw man.
Wasm vulnerabilities are worth real money. Bug bounties are tens of thousands of dollars to hundreds of thousands as part of exploit chains. If people aren't finding many, your explanation will have to be a little bit better than "they haven't yet bothered".
You bring this nonsense up in every webasm thread and every time it is explained to you that webasm does no IO and is contained in the same environment as javascript. Every time you either bring up details that have nothing to actually do with webasm or you say something vague about possible security problems in the future.
If you have real criticism based on real information, let's see it.
All of these are speculation about the future. Most have nothing to do with webasm at all.
The first is about webgl (that has nothing to do with webasm)
The second is about using javascript with intel speculative execution exploits.
The third is grasping at straws, saying that call center scams would be more obsfuscated, even though javascript or asm.js can be just as obsfuscated, if not more.
The fourth is about crashes in the webasm JIT
The last is about -theoretically- executing arbitrary javascript. Heavens no.
What is the real reason you have some crazy crusade against webasm? You go to great lengths to grasp at any straws you can. It isn't that big of a deal. It is a more direct way to JIT cpu intensive parts of a web page. Get over it. Incredibly, the alternative is to run actual native instructions by downloading a binary.
To be clear, because you have seen other VMs, you are desperate to spread complete misinformation and lies about webasm?
Funneling your own frustrations into lying and spreading false information on the internet is not something a reasonable, emotionally healthy person does. Think about all the other people that do that in other areas of discussion. Those are your peers when you do this.
I am not desperate at all, it is no different than WebAssembly advocates spreading false information about its "safety" or novelty.
In fact I rejoice that WebAssembly, despite all the attempts to be presented as safe and novel, is becoming the mechanism to bring back to life all the plugins that where killed in name of WebAssembly.
I will give 5 years time for WebGL/WebGPU + WebAssembly to rule the majority of multimedia driven websites, with a new generation of Flash like tooling.
Then you call tell the world how much safer and novel WebAssembly is.
There have been plenty of ways to inject textures into games to replace the ones that are built into it. In online games, like this one, all it takes is a host file that redirects the texture addresses with something else.
I guess this is cool. Not a big fan of "port everything to the browser" though. I really don't want gaming to go any more in the direction of SaaS than it already is. There is already too much rent-seeking.
This train has left the station already. It's more and more difficult to actually buy software these days, and million ways to rent it. And even if you manage to buy it, you often need an online component.
In the future, where every stupid little software program runs in the cloud, and private ownership of bits is history. My wallet dies by death from a thousand cuts and I have no ability to peek at game internals or tinker with data files
Sounds like just about every "cosmetic" premium currency microtransaction "live service" "episodic" triple A video game that's come out in awhile and they didn't even need the browser to do it!
Giving that at the time of viewing, the multiplayer servers are down, have some of mine:
http://www.quakejs.com/play?connect%20185.230.223.84:27967
http://www.quakejs.com/play?connect%20185.230.223.84:27966
You will want to:
Go into settings via esc and set your name, and maybe also turn the game down, it's quite loud by default. Maybe also mouse sensitivity too.