I like how they have Russia as the flag of Europe despite most of the country not even being in Europe, most people would use the EU flag but I guess this is CS 1.6 so they are most likely a fair few Russians about.
My kids can swear in Russian as they play CS:GO ...
I enjoy when I get foreign language players of a language I know some of, it's a good way to practice IMO - wish one could choose a preferred language.
I guess they don't do that because of the impact on matchmaking (mm), the mm seems crazily sub-optimal I'd love to know that logic behind it : like when you have a game of 9 people, why you abandon it rather than finding a person from the pool of 100k waiting that will play. It could be a setting "allow game requests from mm" and they could give a little xp for it - beats searching and waiting another 10mins to start a game.
Last time I checked - Valve has no game servers/entry nodes in Russia.
Western Russia connects to Sweden or Poland. Northern European and Eastern European countries connect through the same nodes.
Connections within Valve network are handled internally (since they can tune it for better latency, etc.) and you don't even know where the actual game server is hosted.
So there is always a big mix of players no matter where you are in Europe.
Fun thought: it depends on how much throughput can be handled by Starlink, but Valve could waste some money on it to bring players closer from further away. They already have the dynamic, latency based entry node selection set up. If they hooked up some of the internal network through Starlink, it could be amazing low latency cross-continent gaming. And games like CS:GO and Dota 2 doesn't require too much bandwidth.
The Russians are firmly in charge. Try asking some Turks in Russian territory whether they have an equal voice in the country compared to the Russians.
Is the US more of a European country or an Amerind country? What would its geographic location suggest?
Russia is the last remaining European Colonial Empire with their colonies still part of the original power, mostly thanks to them being geographically together.
Unfortunately I downloaded resources, waited, and the server was full. After repeating for 3/4 times I gave up, so maybe a little more work needed there to cache and/or manage servers a little better for the end-user.
Technically it can, but money from Appstore, Playstore, Windows Store is too lucrative for the behemoths to give up their hold on them to improve the browser ecosystem & web apps in general.
Is there a way to reconcile this? Web has such nice tooling to develop for, but it's also nice to have the discoverability and monetization opportunities of a centralized app store.
...really? Web development is the absolute worst development experience I've had since doing COBOL in college. I have difficulty believing anyone can claim this who has ever developed with proper tooling for anything else.
I guess I haven't done too much outside of web to know much else :). However I have done some iOS stuff and the tools are okay but much less open source, documentation, etc.
The current answer here seems to be Electron, which unfortunately means that I have about 20 copies of Chromium/Electron taking up disk space and memory on my computer.
IMO, only when native apps dependency on smartphones are reduced we can see web apps maturing.
PWA, Linux phone's dependency on web apps can help a bit, but I don't see it beyond the enthusiast/privacy market.
Because App publisher - Appstore relationship is 'scratch my back, I'll scratch yours' type relationship. Top apps isn't going to get as much telemetry from web app as they get from native app, at least not without people knowing or fighting with ad-blockers.
Everything just pops up a layer though, you now have to deal with performance and behavior differences between browsers. And for games you'll see everyone accounting for the 80% case (Chrome) maybe the 20% case (Firefox/Safari) and everyone else left out in the cold. Somewhat simpler API surface layer though.
The real beauty of the web is to be able to jump into something just by following a link and that lets you do some really fun things. For example we recently collaborated with the streamer Day[9] to build this swarm game* he played with his audience. That basically requires the ease of access you get from the web experience:
https://www.youtube.com/watch?v=bs1p22oI_V4
* - The whole game was also built from inside a browser.
I would say I really enjoyed it. Although the gaming experience in Safari with a Magic Mouse is odd, the connection is somewhat laggy, and people are constantly (dis)connecting, it worked really well and brought me some sweet memories about playing CS 1.6 a long time ago.
Noice. A mac mini late 2012 w/ a 4K monitor was faster than my water-cooled AMD K6. :-@-)
~20 years after playing CS beta 0.4x, I just am too old to play FPS twitch games. :D I was playing from Davis, CA to Stanford, CA with a 7 ms ping due to 1/2 T1 (768 kbps) SDSL (with a static IP!) from Verio/NTT for $60/month around 1999. At our house, our router was a Linux box I cobbled together and put a CS server on it. Good times. B-]
This could serve as a demonstration what a long way way web sockets/rtc/channels still have to go, since the experience is much worse even considering the ping compared to 20 year old netcode.
You're going to hang the state of networked browser gaming on this random person's netcode implementation? Go to r/GameDev and you can find some redditor Unity projects built on UDP that are even worse, but you aren't going to say "wow, UDP sux".
Check out something like https://krunker.io/ which gives me a surprisingly good FPS experience despite my distance from the server.
Browser gaming does take some thought though, to be sure. UDP via WebRTC is relatively new and isn't trivial. And I know some games get around TCP head of queue blocking by opening up 2+ WebSockets.
That was impressive, on mobile and I was able to just hop in and start playing. Not something I’d play, but just impressed that I was able to so easily
It's quite fun and has a surprisingly deep movement system. The userbase is very young so if you have any FPS experience you will shred through the average player.
Expect to get annihilated by someone who knows the movement system though. You'll know someone's using it when you see it, since they'll be moving at 999 units per second and circle strafing you to death.
Do you have any more information on getting around head-of-queue blocking by opening up multiple websocket connections instead of just one? Seems like an interesting solution.
On a similar note, I think people were _way_ too early to celebrate the death of Flash (security issues aside of course). Developers were making content in 2000 which their contemporaries 20 years later don't come anywhere close to in terms of performance, design, or responsiveness.
Flash had more than just security issues. There were definite limits on complexity.
A great example is the original Binding of Isaac; written in flash, but near the end everything was so precarious that backups had to be made before certain publishing stages because sometimes it would corrupt the files it was trying to build (Due to the complexity.)
Well ignoring those issues, is there a html/websocket "framework" which works like flash did?
AFAIK, "zero code" systems still haven't reached the level of hypercard (the spiritual predecessor to flash) when it comes to being able to define event->action with a mouse, much less expanding them to the full capabilities of flash.
I dunno. I implemented my games'[1] netcode on top of WebRTC and it runs just as well as proper UDP stuff. If you configure it be unreliable and pack everything into small binary commands then it behaves exactly like you'd want for a fast-paced multiplayer game.
Obviously most web games use websockets for networking but it is certainly possible (albeit much more difficult) to have very fast netcode in a browser game.
actually binary websockets won't do in this case since the underlying protocol is still TCP with automatic retransmission mechanism which kills performance for very fast-paced games. You have to use WebRTC in that case
Instead of cramming ecoded json into the data channels, like you'd with websockets, you can build binary buffers with all the data that has to be communicated between server and client. For example movement commands like up/down/left/right alongside some flags like isJumping can be packed into a singe uInt8
It's been awhile since I took a crack at WebRTC. Do you still need to go through all the peer negotiation even when you are just trying to get to a known server?
Bleh! I was really hoping they would have smoothed that out by now. I just want a damn UDP socket to my server!
I guess it's easier to piggyback on the security model of the P2P handshake than work out a separate model for client-server communication.
I built a pair of libraries for a nodejs<->browser DataChannel, it was a nightmare at the time though, and I'm sure totally obsolete by now.
Given how long it took for us to get %*@!$ data channels, I guess we'll get a simpler way to connect to a regular server in... 2030? (I watched WebRTC very closely from the Ericsson prototype was released... for awhile I was contemplating trying to pass data in the audio or video streams -_-)
This seems like quite the achievement. Can't crouch and walk forward though (ctrl+w), nor is it anywhere close to the performance of say cs:go at least in terms of input lag.
I love how people like to make browser versions of everything. From chat apps to email clients to games. But they all end up consuming 10x the memory but are still 10x slower than their native counterparts !
More like a portable CS that can be placed in the documents directory and run from there. I remember my son's cousins installing software while not as admin on my Windows PC by installing in the documents directory. CS, AOL Chat, etc.
A good way to get malware as well. I could never trust those cracked versions. One cracked version made CS 1.6 with Navy Seals looking for bin Laden, which I thought was fun.
The first two are trivially solved by portable applications (AppDirs, Application Bundles, AppImage, etc.). Platform independence is only kinda true, as many of these things don't actually function correctly on anything but Chrome, so they effectively target just one platform.
Those are all very minors inconveniences. Installation took a few clicks, disk space is negligible for that category of apps (and if it isn’t re-downloading on each access is a more pressing issue). Only the platform thing matters, yet the exemple you give isn’t convincing given it’s super low market share.
Seems a bit unfair to only acknowledge one side of the trade-offs. Obviously native apps win the perf side.
How about being able to play with your friends after just handing them a link? Native 1.6 doesn't even run on my computer at all.
I think browser ports are the only hope that old games have at coming back. The other month I played Nox's quest mode with my friend on a browser emscripten port (plus a lot of custom code / networking to get it online). And it's a game I thought I'd never get to play again. Gog.com sells Nox for Windows but of course the servers are long offline.
The adolescent glee over how much worse browser applications run really misses the big picture.
The subreddit has a small community of people playing. iirc there's a community server you can point the Gog.com binary to: http://old.reddit.com/r/nox. (The Gog.com binary actually runs on macOS if you're pre-Catalina as it's 32bit, they just removed the indication since everyone is on Catalina now)
The browser "port" is here: https://playnox.xyz/ (200mb) -- Whether online play is available or not can be hit or miss. The single player campaign does work as well -- worth it for insta-nostalgia.
I say "port" in quotes because it's not just a matter of `cat nox.exe | emscripten > nox.js` of course. The creator posts in the subreddit / the nox community forums and has some really interesting technical comments where he explains some of the challenges.
People who can pull off something like this (talk about cross-cutting engineering skills) really blow me away.
Mouse tracking is clearly broken on Firefox here. The input lag is insance. I wouldn't link this to any of my friends with the intention of getting them to play Counter Strike with me.
Shame, I just played a few rounds in Firefox on a Mac without any mouse tracking or input lag issues and had a blast! Is it possible that you have some Firefox Add-ons installed that are messing with it?
> How about being able to play with your friends after just handing them a link? Native 1.6 doesn't even run on my computer at all.
This is actually one of the major selling points for Cloud Gaming. Although it still has a lot of issues to be adressed before getting into the mainstream, this is exactly what it promises. Just sending your friends an invite link and get them to sign up is a much more pleasant experience than downloading 100+GBs of game files before being able to join the session.
I also enjoy seing browser implementations of popular games. My favorite recent example is the classic version of Minecraft running in the browser [0]. The browser is obviously a much more restrictive environment than a native app, but I can still imagine plenty of useful examples for performant 3D graphics in a browser. After all, Games are often just used as a showcase for the capabilities of new Apis and performance improvements.
I always thought the cloud gamming is really just a way to move gammers to "subscriptions" instead of one time purchases, in the end milking more money and taking more control from them just like Adobe did with their creative products.
Microsoft has been successfully charging subscriptions to millions of players every year without needing to run games in the cloud. Cloud gaming is a play at capturing revenue from people who aren't willing to shell out $300+ for hardware and $60 for every AAA title they want to play.
You know no-one is forcing you to play CS in your browser, right? Why is it so offensive to you that this exists and someone else is finding joy in playing it? Why does HN love to rag on web technologies so much?
I simply stated that downloading dozens of gigabytes from a link is far from ideal. You also lose performance, features, community, and everything a place like Steam gives you.
> Why does HN love to rag on web technologies so much?
HN is quite pro-web and there are dozens of startups based on the web.
Nevertheless, my counter is: why does "the web" try to recreate existing technologies and operating systems?
I mean, before Steam this was basically the state of gaming. No community, limited features, spotty performance. This is just teething issues. There is no reason a platform like Stadia can't work in the future as these things get better.
And, in terms of downloading gigs from afar, you're already doing that, but instead of being able to play games while downloading you have to wait to download 60gb of COD updates, consume your entire PS4 drive with a single game. And while that is happening, you're just sitting there not using your PS4 because opening another application pauses the download.
We are starting to see more cross platform support for games between PS4, XBO, and PC. But older games won't ever support cross platform between Windows, OSX, and *Nix. A browser port could easily change that.
> Why does "the web" try to recreate existing technologies and operating systems?
It's the same trend we've had since basically the dawn of computers. We move things into deeper abstraction layers. Why is this an issue in your opinion? Isn't more options better? Isn't ideal to adapt old concepts to new implementations? At the very least does it not provide potential educational value?
> I mean, before Steam this was basically the state of gaming. No community, limited features, spotty performance.
That makes no sense. Before Steam there were many gaming online communities, all games were native and were marvels of technology for the time, etc.
> There is no reason a platform like Stadia can't work in the future as these things get better.
Stadia does not run games on web tech. Quite the opposite. They are native Linux Vulkan binaries.
> you're already doing that
There is a big difference between downloading a game once vs every time.
If you mention offline web storage, that is exactly the same solution as Steam and others do. A good example of the web reinventing the wheel.
> consume your entire PS4 drive with a single game
Not the case with a PC with terabytes of space.
> you're just sitting there not using your PS4
Not the case with Steam/PC.
> We are starting to see more cross platform support for games between PS4, XBO, and PC. But older games won't ever support cross platform between Windows, OSX, and Nix.
That has nothing to do with technology. It is a matter of licensing, finances and support.
The overwhelming majority of games use engines which target all platforms, from PC to mobile to console.
> A browser port could easily change that.
No, because it has nothing to do with technical issues.
> Why is this an issue in your opinion?
I have never claimed it is an issue.
> Isn't ideal to adapt old concepts to new implementations?
A new implementation does not imply a better implementation.
The average non-technical person isn't installing unsigned software on Mac or Windows, and the average person isn't using Linux at all so it's not worth considering in this conversation.
For all intents and purposes, approved windows applications and mac app store apps are what they get.
> Nevertheless, my counter is: why does "the web" try to recreate existing technologies and operating systems?
Why not? Why is it so offensive to you? You know you can just ignore it and move on, right? You don't have to be an asshole and shit on everything you see.
But regardless of this particular game, it is not a valid complaint. It is like complaining your phone or your toaster cannot run a given game because it was never designed for them.
We used to hold game nights at my previous company and we would all play quake on the browser together. No installing, no sharing files, nothing. Just click the link on Slack and you're in. Nothing beats that.
I don't think that lowering friction is a great thing. A certain amount of easy-to-overcome exclusiveness helps keep a community vibrant.
When I was a kid I heard about a group of hippies that would have parties deep into the desert, far from roads or civilization. They had a "list", and if you were on it you'd get invited to the parties. Long story short, I figured out how to get on the list and one of the coolest things about those parties was how much effort everyone who attended went through to get there, both in however they managed to get invited and how much of a potential ordeal the journey was just to show up. The friends I made there put me on my current life course and now I'm surrounded by great people and a good tribe, which is really hard to find once you finish university. All because I put in the effort to get on the list and attend.
Sure, not making things super easy creates slightly less inclusive communities and they are definitely smaller, but they're longer lasting, have some shared plight to bond around, and are generally of much higher quality. Allowing any old yokel easy access kills community because there are too many tourists
This is such a joke. Elitist, even. Technology-sourced friction is not a great thing. Software that is hard to run does not improve the act of running it. It just prevents others from experiencing the same things you enjoy.
Are you really suggesting that you bond with fellow gamers because of how hard setting up the game was?
Yes. And in the scene I am describing we are being overrun with tourists because everybody is just so damn inclusive now. There's nothing wrong with elitism; it keeps things hardcore and gives newcomers something to strive for.
then there are apps like photopea.com. feature parity with Photoshop, but starts immediately, consumes virtually no memory, requires no special permissions, runs on virtually any os. compare that to the adobe app which loads half a dozen services, takes about a minute to load, wont run on linux, etc...
I would actually love to see an old browser (e.g. IE 6) purely implemented in JavaScript to run inside a browser, without using the browser's DOM rendering capabilities (the web page should be rendered by the JS code on a <canvas> element, input events should be correctly handled, and of course a JS engine also has to be implemented).
Well since we now have 10x the memory and 10x the compute we are able to do this.
Also, you don't need no stinkin App Store, zero time for installation. The only next step would be to have everything open source I think these are good tradeoffs. I rather have Freedom than performance and more and more tech users are doing this.
think the biggest issue with browser apps is proper asset management. what you see most of the times is a huge payload of assets getting loaded at the start. I would like to see some kind of streaming service for assets. specially with textures that would be really neat.
The hard part there isn't a browser vs native thing (native apps also generally ship with all of the assets in a front-loaded client) but abstracting your rendering pipeline to handle streaming or incremental LoD over the network.
It's more of challenge of taking the time to add that level of polish.
Kind of like the rare native game, like League of Legends, that will let you play before the entire client is finished downloading. Being a native app didn't give Riot Games that for free, they had to specifically build it for their game. Even in the native game market, it's AAA-level polish for a small fraction of games.
This is a flippant useless negative comment on someone's cool effort. Looking at your other comments, and at your blog - everything is negative. "This sucks, this is crap, I would never use this". What's with all the negativity? Just give creating comments and posts about stuff you like a try. The internet is not short of critics to make useless negative comments.
Yeah, enumerating why something sucks is trivial. Anyone can do that about anything. Yet for some reason it's tempting to do it. Maybe because it makes us feel like a critic?
For some reason it takes more effort to see the positives in something or someone, even ourselves.
It's often a good practice to stop and think of the positives of something. Maybe it's not so obvious. Why did someone decide to build it this way? They probably are well aware of the downsides (after all, they're the one who built it) yet they saw some upsides. They must have thought the upsides outweighed the downsides. What were they? The harder that question is to answer, I think the more useful the practice is.
Internet (and HN) discourse would be a lot better if we did more of that.
I know it's a challenge for me -- it's really easy to get stuck in a negative thought loop, especially while spending so much time on social media (incl Twitter, Reddit, and HN) where we like to award ourselves points for being critical.
This was actually explored in this Cracked article [0] which I heard about on the Cracked Podcast. Basically, being cynical and negative is one of the easiest ways of appearing smart because you don't need to back up any of your assertions and people are less likely to be called out for shitting on something.
I don't see how being negative allow one to not back anything, I can say something sucks, but I'd have to explain why. And people will get called for shitting on something, see the GP comment.
I'd even say you're less likely to be called out for being negative without giving an explanation than being positive without giving an explanation.
Though it's usually easier to explain why something sucks than why something is great, since a negative explanation has only to find which part don't work, rather than explaining why something is globally good.
This isn't about being negative or critical. It's about being negative all the time. It's about labelling yourself as cynical and making all of your schtick be about that negativity.
I see plenty of well-thought out criticism on hacker news and reddit. I see excellent deconstructions and refutations which show excellent balance and are clearly the work of a lot of thought and rumination. This isn't about those posts.
The 'cynical is an easy way to appear smart' comment will apply most to daily conversation and low-effort drive-by comments on forums. In an everyday example, think about how people will make a joke or comment about how they dislike certain bands or pieces of technology. Do they always follow up with a bullet pointed list of what it is that they found disagreeable? No. I mean, sometimes, but if I were to take a clicker with me throughout my day and count every time someone made a casual negative comment, it would be higher than those presented with backing evidence, justification or even explanation. So to counter this comment:
>I don't see how being negative allow one to not back anything, I can say something sucks, but I'd have to explain why.
I disagree. You absolutely don't have to say why something sucks and most people don't most of the time.
But this is ok, though, because people are mostly just expressing their opinion. There may be some signalling that you have a better taste in music or that you have a more refined taste in technology, but most people won't even consciously register that that is the intent that you are trying to signal. So I'd say that this covers this:
>I'd even say you're less likely to be called out for being negative without giving an explanation than being positive without giving an explanation.
I will agree with you if the comment is negative and controversial but most of the time people are negative, it passes most people's internal 'controversiality test', it doesn't get challenged and nothing further happens.
>And people will get called for shitting on something, see the GP comment.
They will. Sometimes. However, we're not talking here about nobody ever being called out for being overly negative. We're talking about how overall it is easier to appear to be coming from a place of authority by taking a negative stand point.
Hacker News is rife with this. A new technology is posted and the first things that will be commented will be picking holes in it, finding obvious flaws, decrying or otherwise.
Statistically, this would seem to be fine and you're likely to be on the winning side of history most of the time. New stuff is more likely to be either undeveloped or unstable, ignore or duplicate work or be so forward looking that it isn't viable in the near term. However, this then also becomes the intellectually lazy stance to take. 'This is probably going to be bad, so let's find all the flaws first and then we can call it a day'. You will see many comments which will include lots of technical flaws without themselves saying what experience their criticism is based on. And the cost would appear to be minor: some things that become good and viable ideas eventually get shot down, but so what? If they become good then that person can just change their mind and no harm no foul.
Overall, this means that the 'cynical' mindset appears to be a stable one, one that means that you're right more often than you're wrong and one that means that you can appear to be talking from a position of authority without actually having to back that up.
So, sure, I see what you mean to an extent, but I think your point grossly misses the point of what my post (and indeed the two parents) were really getting at.
> It's about being negative all the time. It's about labelling yourself as cynical and making all of your schtick be about that negativity.
But you are talking about being positive all the time, and about labelling yourself as a better person and and making all of your schtick be about that positivity.
> In many ways, the work of a critic is easy. We risk very little yet enjoy a position over those who offer up their work and their selves to our judgment. We thrive on negative criticism, which is fun to write and to read. But the bitter truth we critics must face, is that in the grand scheme of things, the average piece of junk is probably more meaningful than our criticism designating it so.
> Anton Ego
Maybe GP will learn this someday, but based on their replies to you, that day is not today.
Meanwhile, they're raking in the upvotes thanks to their cyniscim, so why change their approach?
I agree with you on one level-- I think people on HN are generally overly critical of projects like this which are clearly huge accomplishments and the culmination of tons of effort...
But on the flip side, I think it's plenty valid to look at projects like this as case studies into why modern web tooling isn't up to the standards of the tooling of 20 years ago (on much less performant hardware no less). Even within the browser, decades old flash games run circles around their JS contemporaries.
I am an avid gamer who players a couple of hours of Apex Legends and Call of Duty Modern Warfare everyday. And I've been info FPS gaming for 2 decades now.
To play a game released a couple of decades ago and see it take up almost the same amount of resources as the games I mentioned earlier gave me a chuckle.
I commend the developer for his effort though. To make a game like that run on browsers is a mighty impressive effort and it is Uber cool. I don't dispute that even for a second.
Are you actually saying you need an Apex Legends-capable machine to play Counter Strike on the browser? You can probably play this with an Intel integrated card from 10 years ago.
GP's comment is a short and non-insightful comment, this usually gets downvoted but for some reason it made it in this thread. I usually call this "driveby feedback" at work.
Your point? I literally just clicked on a link, downloaded a few assets and was into an online FPS. Virtually any modern computer in the world no matter what OS/browser should be able to do the same.
But I guess for someone like you it has to be written in assembly so it's 100% efficient, even though you take 100x more to attempt to get it working than your counterpart.. and you never actually finish.
This is a pretty short sighted observation. It's obvious to most tech folk here that yes, moving up to higher abstractions, higher level languages and paradigms comes at a performance cost.
But we could have just stopped at assembler with that insight. I mean all the rest is just slower, and less efficient.
> This is a pretty short sighted observation. It's obvious to most tech folk here that yes, moving up to higher abstractions, higher level languages and paradigms comes at a performance cost.
This is not even necessarily true. There are zero cost abstractions. Compilers can generate better assembly code than the overwhelming majority of developers.
It works well on my laptop without installing a darn thing. Why do I care if it's 10x the memory if I have that memory to use? Graphics are good enough. Gameplay is like I remember it 20 years ago (was it that long?!?!). I think this is pretty amazing.
I don't know much about the topic - but from what I understand, Valve games use Protocol buffers and UDP connections to the lobby server, in their netcode (someone correct me if I'm wrong).
Is there an equivalent way to do this with the same level of efficiency in the browser? What are browsers missing in order to achieve this?
There's nothing stopped anyone from using protobuf in the browser, it's just not that common since JSON is easier to work with. Not sure how the netcode on this game works though.
> Valve games use Protocol buffers and UDP connections to the lobby server, in their netcode (someone correct me if I'm wrong).
The netcode originally used in GoldSrc/1.6 came from QuakeWorld and predates Google. IIRC it got replaced at some point. The current iteration of Source's netcode doesn't have anything to do with that, though.
> IIRC it got replaced at some point. The current iteration of Source's netcode doesn't have anything to do with that, though.
Do you have a source (heh) to back that? Lots of the networking configuration cvars from 1.6 are still there in CS:GO and do the same thing. Maybe it was cleaned up but I wouldn't be surprised if it's still mostly the same code.
Those are GC (Game Coordinator, server list, matchmaking) and Steam (items, trading, etc) protobufs, not for the actual netcode of Source games. There also seems to be some demo (saved game replays) related messages there, but I don't see anything gameplay related.
GameNetworkingSockets is pretty cool, and integrating it must have required some extensive changes, but it's more of a networking middleware library. I thought blattimwind was referring to the gameplay related netcode (prediction, interpolation, lag compensation, etc). My understanding is that it hasn't changed much since the 1.6 days, because all of the configuration knobs are still available today, but maybe they rewrote it and I'm just out of the loop. It'd be a major task to do that without affecting gameplay "feel", which is why I was interested in some source to read more about it.
Is your partner keeping secrets of lately and you want to know why?
you feel your partner is cheating on you?
Do you or someone you know have a police or court case and want the case CLEARED and forgotten by us hacking into FBI or government server and wiping off HISTORY of its existence?
Did someone steal your money and you want the person found and your money recovered?
Do you feel somebody is spying on you or bugging you and you want the person out of your way or exposed?
Did you lost or forget password to your Facebook,Instagram,twitter,Gmail,Yahoomail,Hotmail etc and want them recovered?
Do you wish to spy on somebody's computer or phone?
Did you loose contact with someone(family member or old friend) and wish to know where they are and how to locate them for you all to reconnect?
Did you lose a pet(dog,cat etc)and want them found?
You're welcome to our world.
We're professional hackers and can invade devices(phones, emails,whasapp,text messages,Facebook,Instagram etc),hack out information you need and forward to you.
Then you will stay happy.
Is your partner keeping secrets of lately and you want to know why?
you feel your partner is cheating on you?
Do you or someone you know have a police or court case and want the case CLEARED and forgotten by us hacking into FBI or government server and wiping off HISTORY of its existence?
Did someone steal your money and you want the person found and your money recovered?
Do you feel somebody is spying on you or bugging you and you want the person out of your way or exposed?
Did you lost or forget password to your Facebook,Instagram,twitter,Gmail,Yahoomail,Hotmail etc and want them recovered?
Do you wish to spy on somebody's computer or phone?
Did you loose contact with someone(family member or old friend) and wish to know where they are and how to locate them for you all to reconnect?
Did you lose a pet(dog,cat etc)and want them found?
You're welcome to our world.
We're professional hackers and can invade devices(phones, emails,whasapp,text messages,Facebook,Instagram etc),hack out information you need and forward to you.
Then you will stay happy.
336 comments
[ 2.7 ms ] story [ 308 ms ] threadNever mind, it's more like: download, wait, server full
Still awesome
Also most of the dannish kingdom's land is not in Europe either.
I enjoy when I get foreign language players of a language I know some of, it's a good way to practice IMO - wish one could choose a preferred language.
I guess they don't do that because of the impact on matchmaking (mm), the mm seems crazily sub-optimal I'd love to know that logic behind it : like when you have a game of 9 people, why you abandon it rather than finding a person from the pool of 100k waiting that will play. It could be a setting "allow game requests from mm" and they could give a little xp for it - beats searching and waiting another 10mins to start a game.
Western Russia connects to Sweden or Poland. Northern European and Eastern European countries connect through the same nodes.
Connections within Valve network are handled internally (since they can tune it for better latency, etc.) and you don't even know where the actual game server is hosted. So there is always a big mix of players no matter where you are in Europe.
Fun thought: it depends on how much throughput can be handled by Starlink, but Valve could waste some money on it to bring players closer from further away. They already have the dynamic, latency based entry node selection set up. If they hooked up some of the internal network through Starlink, it could be amazing low latency cross-continent gaming. And games like CS:GO and Dota 2 doesn't require too much bandwidth.
Assuming it is not, I wonder why? Lots of russian players, why wouldn't Valve put servers in Russia?
Is the US more of a European country or an Amerind country? What would its geographic location suggest?
Unfortunately I downloaded resources, waited, and the server was full. After repeating for 3/4 times I gave up, so maybe a little more work needed there to cache and/or manage servers a little better for the end-user.
Still a very cool project!
Anyhow it's a very neat project, thanks for sharing!
There's even a xkcd comic about this[0].
[0] https://xkcd.com/934/
...really? Web development is the absolute worst development experience I've had since doing COBOL in college. I have difficulty believing anyone can claim this who has ever developed with proper tooling for anything else.
PWA, Linux phone's dependency on web apps can help a bit, but I don't see it beyond the enthusiast/privacy market.
Because App publisher - Appstore relationship is 'scratch my back, I'll scratch yours' type relationship. Top apps isn't going to get as much telemetry from web app as they get from native app, at least not without people knowing or fighting with ad-blockers.
The real beauty of the web is to be able to jump into something just by following a link and that lets you do some really fun things. For example we recently collaborated with the streamer Day[9] to build this swarm game* he played with his audience. That basically requires the ease of access you get from the web experience: https://www.youtube.com/watch?v=bs1p22oI_V4
* - The whole game was also built from inside a browser.
~20 years after playing CS beta 0.4x, I just am too old to play FPS twitch games. :D I was playing from Davis, CA to Stanford, CA with a 7 ms ping due to 1/2 T1 (768 kbps) SDSL (with a static IP!) from Verio/NTT for $60/month around 1999. At our house, our router was a Linux box I cobbled together and put a CS server on it. Good times. B-]
OTH. I think remember a very good browser version of Crysis. Where is it now?
Check out something like https://krunker.io/ which gives me a surprisingly good FPS experience despite my distance from the server.
Browser gaming does take some thought though, to be sure. UDP via WebRTC is relatively new and isn't trivial. And I know some games get around TCP head of queue blocking by opening up 2+ WebSockets.
[1] https://www.haxball.com [2] https://www.webliero.com
Expect to get annihilated by someone who knows the movement system though. You'll know someone's using it when you see it, since they'll be moving at 999 units per second and circle strafing you to death.
A great example is the original Binding of Isaac; written in flash, but near the end everything was so precarious that backups had to be made before certain publishing stages because sometimes it would corrupt the files it was trying to build (Due to the complexity.)
AFAIK, "zero code" systems still haven't reached the level of hypercard (the spiritual predecessor to flash) when it comes to being able to define event->action with a mouse, much less expanding them to the full capabilities of flash.
[1] https://redka.games/mages
The best thing is to design your gameplay to be "predictive", that's how we had ~300 player games like Subspace over 28.8/56k way back in the day.
https://www.marksort.com/udp-like-networking-in-the-browser/
I guess it's easier to piggyback on the security model of the P2P handshake than work out a separate model for client-server communication.
I built a pair of libraries for a nodejs<->browser DataChannel, it was a nightmare at the time though, and I'm sure totally obsolete by now.
Given how long it took for us to get %*@!$ data channels, I guess we'll get a simpler way to connect to a regular server in... 2030? (I watched WebRTC very closely from the Ericsson prototype was released... for awhile I was contemplating trying to pass data in the audio or video streams -_-)
It is no surprise that a TCP text-based protocol sucks for realtime gaming purposes.
But for something as fast-paced as surfing, the experience is not wonderful (small input lag). Still, really impressed by this.
Sure, they don't usually have the thousands of man-hours dedicated to cheat detection, but the basics are usually sorted out.
> disk space
CS just downloaded 185mb of network resources for me to play. I would have thought those resources are stored on my disk, and not just in memory.
> installation time
That 185mb of resources took ~1 minute to download. By the time it had finished, it told me the server was full.
Regardless this is still very impressive.
But I'm sure more people played this right now because of the low barrier to entry.
And the admin rights might not even be technical. Not a lot of people are fond of installing games on the laptop from work.
But like I said, everything has tradeoffs.
This is the key point. If I'd seen a post about CS with a zip of an executable I would have passed.
Why? Because it probably wouldn't have run correctly or I would have had some other issue with it.
Let alone checking the provenance and worrying about malware.
No. The cracked version(s) that are played in schools and whatnot are usually just a zip file you extract and run.
A good way to get malware as well. I could never trust those cracked versions. One cracked version made CS 1.6 with Navy Seals looking for bin Laden, which I thought was fun.
How about being able to play with your friends after just handing them a link? Native 1.6 doesn't even run on my computer at all.
I think browser ports are the only hope that old games have at coming back. The other month I played Nox's quest mode with my friend on a browser emscripten port (plus a lot of custom code / networking to get it online). And it's a game I thought I'd never get to play again. Gog.com sells Nox for Windows but of course the servers are long offline.
The adolescent glee over how much worse browser applications run really misses the big picture.
https://en.wikipedia.org/wiki/Nox_(video_game)
The browser "port" is here: https://playnox.xyz/ (200mb) -- Whether online play is available or not can be hit or miss. The single player campaign does work as well -- worth it for insta-nostalgia.
I say "port" in quotes because it's not just a matter of `cat nox.exe | emscripten > nox.js` of course. The creator posts in the subreddit / the nox community forums and has some really interesting technical comments where he explains some of the challenges.
People who can pull off something like this (talk about cross-cutting engineering skills) really blow me away.
This is actually one of the major selling points for Cloud Gaming. Although it still has a lot of issues to be adressed before getting into the mainstream, this is exactly what it promises. Just sending your friends an invite link and get them to sign up is a much more pleasant experience than downloading 100+GBs of game files before being able to join the session.
I also enjoy seing browser implementations of popular games. My favorite recent example is the classic version of Minecraft running in the browser [0]. The browser is obviously a much more restrictive environment than a native app, but I can still imagine plenty of useful examples for performant 3D graphics in a browser. After all, Games are often just used as a showcase for the capabilities of new Apis and performance improvements.
[0] https://classic.minecraft.net
That doesn’t work well for games with lots of modern assets.
> Native 1.6 doesn't even run on my computer at all.
That is strange, it works on the latest Windows.
> I think browser ports are the only hope that old games have at coming back.
Why? Steam, GoG, DOSBox, Proton, DXVK, emulators, VMs, etc. all give you access to almost every game that has been produced, today.
Many of those have thriving online communities, too.
> Why does HN love to rag on web technologies so much?
HN is quite pro-web and there are dozens of startups based on the web.
Nevertheless, my counter is: why does "the web" try to recreate existing technologies and operating systems?
And, in terms of downloading gigs from afar, you're already doing that, but instead of being able to play games while downloading you have to wait to download 60gb of COD updates, consume your entire PS4 drive with a single game. And while that is happening, you're just sitting there not using your PS4 because opening another application pauses the download.
We are starting to see more cross platform support for games between PS4, XBO, and PC. But older games won't ever support cross platform between Windows, OSX, and *Nix. A browser port could easily change that.
> Why does "the web" try to recreate existing technologies and operating systems?
It's the same trend we've had since basically the dawn of computers. We move things into deeper abstraction layers. Why is this an issue in your opinion? Isn't more options better? Isn't ideal to adapt old concepts to new implementations? At the very least does it not provide potential educational value?
That makes no sense. Before Steam there were many gaming online communities, all games were native and were marvels of technology for the time, etc.
> There is no reason a platform like Stadia can't work in the future as these things get better.
Stadia does not run games on web tech. Quite the opposite. They are native Linux Vulkan binaries.
> you're already doing that
There is a big difference between downloading a game once vs every time.
If you mention offline web storage, that is exactly the same solution as Steam and others do. A good example of the web reinventing the wheel.
> consume your entire PS4 drive with a single game
Not the case with a PC with terabytes of space.
> you're just sitting there not using your PS4
Not the case with Steam/PC. > We are starting to see more cross platform support for games between PS4, XBO, and PC. But older games won't ever support cross platform between Windows, OSX, and Nix.
That has nothing to do with technology. It is a matter of licensing, finances and support.
The overwhelming majority of games use engines which target all platforms, from PC to mobile to console.
> A browser port could easily change that.
No, because it has nothing to do with technical issues.
> Why is this an issue in your opinion?
I have never claimed it is an issue.
> Isn't ideal to adapt old concepts to new implementations?
A new implementation does not imply a better implementation.
GameSpy.
The average non-technical person isn't installing unsigned software on Mac or Windows, and the average person isn't using Linux at all so it's not worth considering in this conversation.
For all intents and purposes, approved windows applications and mac app store apps are what they get.
False. The average non-technical person is installing unsigned software from Steam and other cross-platform game stores.
In fact, the vast majority of all PC/Mac users play games downloaded from Steam and similar stores, not from the Microsoft/Apple stores.
> the average person isn't using Linux at all so it's not worth considering in this conversation.
The average gamer isn’t using Mac at all either (4% vs. 1% according to Steam), so I guess it is "not worth considering in this conversation" either.
Which leaves us with Windows. So porting to the browser is irrelevant since all games are played in a single platform, according to your own logic.
Was your exact statement so I'm not talking about just games and limiting it to them after the fact is disingenuous.
Why not? Why is it so offensive to you? You know you can just ignore it and move on, right? You don't have to be an asshole and shit on everything you see.
But regardless of this particular game, it is not a valid complaint. It is like complaining your phone or your toaster cannot run a given game because it was never designed for them.
I ll tell you how. It sucks.
> I think browser ports are the only hope that old games have at coming back.
Dosbox? Wine? Look them up.
When I was a kid I heard about a group of hippies that would have parties deep into the desert, far from roads or civilization. They had a "list", and if you were on it you'd get invited to the parties. Long story short, I figured out how to get on the list and one of the coolest things about those parties was how much effort everyone who attended went through to get there, both in however they managed to get invited and how much of a potential ordeal the journey was just to show up. The friends I made there put me on my current life course and now I'm surrounded by great people and a good tribe, which is really hard to find once you finish university. All because I put in the effort to get on the list and attend.
Sure, not making things super easy creates slightly less inclusive communities and they are definitely smaller, but they're longer lasting, have some shared plight to bond around, and are generally of much higher quality. Allowing any old yokel easy access kills community because there are too many tourists
Are you really suggesting that you bond with fellow gamers because of how hard setting up the game was?
There's nothing preventing these type easy-access browser based games from having "elite" servers for high ranked players.
Gimp running in Chrome running inside Firefox
https://www.destroyallsoftware.com/talks/the-birth-and-death...
Also, you don't need no stinkin App Store, zero time for installation. The only next step would be to have everything open source I think these are good tradeoffs. I rather have Freedom than performance and more and more tech users are doing this.
It's more of challenge of taking the time to add that level of polish.
Kind of like the rare native game, like League of Legends, that will let you play before the entire client is finished downloading. Being a native app didn't give Riot Games that for free, they had to specifically build it for their game. Even in the native game market, it's AAA-level polish for a small fraction of games.
For some reason it takes more effort to see the positives in something or someone, even ourselves.
It's often a good practice to stop and think of the positives of something. Maybe it's not so obvious. Why did someone decide to build it this way? They probably are well aware of the downsides (after all, they're the one who built it) yet they saw some upsides. They must have thought the upsides outweighed the downsides. What were they? The harder that question is to answer, I think the more useful the practice is.
Internet (and HN) discourse would be a lot better if we did more of that.
I know it's a challenge for me -- it's really easy to get stuck in a negative thought loop, especially while spending so much time on social media (incl Twitter, Reddit, and HN) where we like to award ourselves points for being critical.
[0] https://www.cracked.com/blog/the-7-stupidest-things-that-mak...
I'd even say you're less likely to be called out for being negative without giving an explanation than being positive without giving an explanation.
Though it's usually easier to explain why something sucks than why something is great, since a negative explanation has only to find which part don't work, rather than explaining why something is globally good.
I see plenty of well-thought out criticism on hacker news and reddit. I see excellent deconstructions and refutations which show excellent balance and are clearly the work of a lot of thought and rumination. This isn't about those posts.
The 'cynical is an easy way to appear smart' comment will apply most to daily conversation and low-effort drive-by comments on forums. In an everyday example, think about how people will make a joke or comment about how they dislike certain bands or pieces of technology. Do they always follow up with a bullet pointed list of what it is that they found disagreeable? No. I mean, sometimes, but if I were to take a clicker with me throughout my day and count every time someone made a casual negative comment, it would be higher than those presented with backing evidence, justification or even explanation. So to counter this comment:
>I don't see how being negative allow one to not back anything, I can say something sucks, but I'd have to explain why.
I disagree. You absolutely don't have to say why something sucks and most people don't most of the time.
But this is ok, though, because people are mostly just expressing their opinion. There may be some signalling that you have a better taste in music or that you have a more refined taste in technology, but most people won't even consciously register that that is the intent that you are trying to signal. So I'd say that this covers this:
>I'd even say you're less likely to be called out for being negative without giving an explanation than being positive without giving an explanation.
I will agree with you if the comment is negative and controversial but most of the time people are negative, it passes most people's internal 'controversiality test', it doesn't get challenged and nothing further happens.
>And people will get called for shitting on something, see the GP comment.
They will. Sometimes. However, we're not talking here about nobody ever being called out for being overly negative. We're talking about how overall it is easier to appear to be coming from a place of authority by taking a negative stand point.
Hacker News is rife with this. A new technology is posted and the first things that will be commented will be picking holes in it, finding obvious flaws, decrying or otherwise.
Statistically, this would seem to be fine and you're likely to be on the winning side of history most of the time. New stuff is more likely to be either undeveloped or unstable, ignore or duplicate work or be so forward looking that it isn't viable in the near term. However, this then also becomes the intellectually lazy stance to take. 'This is probably going to be bad, so let's find all the flaws first and then we can call it a day'. You will see many comments which will include lots of technical flaws without themselves saying what experience their criticism is based on. And the cost would appear to be minor: some things that become good and viable ideas eventually get shot down, but so what? If they become good then that person can just change their mind and no harm no foul.
Overall, this means that the 'cynical' mindset appears to be a stable one, one that means that you're right more often than you're wrong and one that means that you can appear to be talking from a position of authority without actually having to back that up.
So, sure, I see what you mean to an extent, but I think your point grossly misses the point of what my post (and indeed the two parents) were really getting at.
But you are talking about being positive all the time, and about labelling yourself as a better person and and making all of your schtick be about that positivity.
Most likely.
This has merits as a form of art, but as something for practical use, I do not think we should be so wasteful with computing power.
For something related, but not so wasteful (and also a form of art), look at: https://en.wikipedia.org/wiki/.kkrieger
> Anton Ego
Maybe GP will learn this someday, but based on their replies to you, that day is not today.
Meanwhile, they're raking in the upvotes thanks to their cyniscim, so why change their approach?
I am an avid gamer who players a couple of hours of Apex Legends and Call of Duty Modern Warfare everyday. And I've been info FPS gaming for 2 decades now.
To play a game released a couple of decades ago and see it take up almost the same amount of resources as the games I mentioned earlier gave me a chuckle.
I commend the developer for his effort though. To make a game like that run on browsers is a mighty impressive effort and it is Uber cool. I don't dispute that even for a second.
Your point? I literally just clicked on a link, downloaded a few assets and was into an online FPS. Virtually any modern computer in the world no matter what OS/browser should be able to do the same.
But I guess for someone like you it has to be written in assembly so it's 100% efficient, even though you take 100x more to attempt to get it working than your counterpart.. and you never actually finish.
But we could have just stopped at assembler with that insight. I mean all the rest is just slower, and less efficient.
This is not even necessarily true. There are zero cost abstractions. Compilers can generate better assembly code than the overwhelming majority of developers.
Is there an equivalent way to do this with the same level of efficiency in the browser? What are browsers missing in order to achieve this?
The netcode originally used in GoldSrc/1.6 came from QuakeWorld and predates Google. IIRC it got replaced at some point. The current iteration of Source's netcode doesn't have anything to do with that, though.
Do you have a source (heh) to back that? Lots of the networking configuration cvars from 1.6 are still there in CS:GO and do the same thing. Maybe it was cleaned up but I wouldn't be surprised if it's still mostly the same code.
I prefer to play https://www.krunker.io, where you can play immediately :)
Going 20 minutes already on a fast connection... still downloading things. Very ominous.
+13026485479 (texts only) globalhacker1986@gmail.com
Is your partner keeping secrets of lately and you want to know why? you feel your partner is cheating on you? Do you or someone you know have a police or court case and want the case CLEARED and forgotten by us hacking into FBI or government server and wiping off HISTORY of its existence? Did someone steal your money and you want the person found and your money recovered? Do you feel somebody is spying on you or bugging you and you want the person out of your way or exposed? Did you lost or forget password to your Facebook,Instagram,twitter,Gmail,Yahoomail,Hotmail etc and want them recovered? Do you wish to spy on somebody's computer or phone? Did you loose contact with someone(family member or old friend) and wish to know where they are and how to locate them for you all to reconnect? Did you lose a pet(dog,cat etc)and want them found? You're welcome to our world. We're professional hackers and can invade devices(phones, emails,whasapp,text messages,Facebook,Instagram etc),hack out information you need and forward to you. Then you will stay happy.
+13026485479 (texts only) globalhacker1986@gmail.com