Hacker Newsnew | past | comments | ask | show | jobs | submit | runevault's commentslogin

So you're assuming game devs write every line of code in their server infrastructure. First, could be using a third party library you have license to use on a limited number of machines that make up your backend servers. Second you could be paying for third party API access to something like snowflake.

You either have to rip out the code (which may or may not break the server, but still requires developer time to do) or write replacement code which likely takes even more dev time to do or you would have done it instead of paying for the library/access to the service.


I think this will bring everything back to where it needs to be. We depend way to much on third party stuff as it is.

Genuinely curious - what third party closed source dependencies are they using? Like what is their purpose?

Audio subsystems (wwise, fmod).

Physics subsystems (havok, ISI).

Procedural systems (Gaea, Houdini)

Vegetation (Speedtree)

VFX subsystems (Nvidia Gameworks)

First party SDKs (Sony Playstation, Microsoft NDK, Horizon/Quest).

Pathfinding (Kytheria, Mercuna)

Cutscenes/Videos (Bink)

UI (Rive, Neosis)

Networking (Photon, Coherence)

Theres… thousands more, if you’d like me to continue.


On the web backend?

The backend isn’t web technologies.

I mean it absolutely is, but that's not an answer to the question.

Of the 7 AAA games I’ve been part of making, not a single one used HTTP (well, not as a primary driver of anything), HTML, CSS or anything that could be construed as a “web technology” so, what are you talking about please?

s/web/networked computers/g

What I'm saying is you have programs running on user machines, and programs running on your machines. There's an interface between those two over a network. There's a problem that consumers face today where they pay to play games that are not functional without data flowing over that interface.

There's a claim that implementing the backend side of that interface is so complex and impossible or too difficult/time consuming/etc to design in a way without 3rd party dependencies.

I'm asking: what are those 3rd party libraries doing? And why can't you design server APIs and client code in a way to provide a different backend if consumers need to do it themselves when you stop supporting the game?


idk, lets use things you know.

Why do you use Ruby on Rails, why not rewrite it so you can release it without relyig on that?


I'm not interested in hypotheticals. In AAA games that you have worked on, concretely what 3rd party code did your servers rely on that would prevent you from distributing either the server itself or sufficient description of the servers' behavior to allow a reimplementation?

And even if we're talking hypotheticals: stupid example. I haven't worked on a backend where the actual server infrastructure wasn't open source, trivial to open source because it was first party, or irrelevant because the only thing that matters would be the API and protocols, which again, trivial to make open.


I don’t care.

Get a job in industry and see for yourself.

I’m not going to break confidentially to sate your ignorance.


I'm actively trying to remove my own ignorance of the domain which is why I posed the question! You're not breaking confidentiality by saying "I need X to solve Y problem which is offered by Z and we can't expose even the application layer interfaces." Right now it sounds like you don't have an answer, or even understand the question.

Getting all defensive and not answering it doesn't really help your industry's case here.


So when you told me that games use web tech on the backend, that was you getting rid of your ignorance?

Ok, lets talk about the kinds of things we need.

Networks have latency, so we need to smooth/correct for that.

Our connections need to be authenticated, so we need middleware to handle tokens, because we don’t hand-roll that. On a binary protocol.

Our physics engines are complicated: we don’t usually write our own from scratch; and the server needs physics to simulate the world.

Shall I continue?


Web servers, message brokers, physics engines, anti cheat, fraud detection, flood mitigation, ranking systems, chat moderation, match making systems. There are thousands of possible components which may have been licensed in any given game server system. In some cases the entire game engine runs on the server.

I guess what surprises me here is how much of this is 3p code that couldn't possibly be distributed. Like why would you not be using an open source web server, or widely available message broker? Things like chat moderation/match making/anti cheat/etc seem like add on services that would be implemented per game (well, maybe not match making) and aren't relevant to the problem that the "stop killing games" people are trying to solve.

Frankly it's none of your business why, and it's completely irrelevant. The fact is that this 3p code exists and this law needs to account for it or it's unworkable.

This is kind of needless aggression that doesn't help non domain experts understand.

I've worked on a lot of complicated and deeply optimized networked applications. They're almost all closed source. I know exactly how I would design a system to support these kinds of initiatives. What I'm curious about is why that's impossible for game developers, because either I'm missing something, or game developers are just bad at software design.


>either I'm missing something, or game developers are just bad at software design

Usually the latter, not just game devs themselves, but also infrastructure devs.


A very large percentage of multiplayer games keep the backend in an MS SQL or Oracle cluster.

Sure but you don't link in Oracle/MS's database cluster orchestrators to your server, right?

THat really depends on how you define "the server",doesn't it? The intent of the bill seems to be a thing that actually play that game.

The "server" being the computer program not running on a user device. The intent of the initiative is to allow people to substitute or replace that program to allow the game to continue to function even if the original publisher/developer disables access to it.

It's pretty obvious to me as a gamer and engineer what the intent and design constraints are here, so I'm just wondering what makes this seem impossible?


Elevator pitch for the language itself or a library/library ecosystem that lets you do things better than in other languages. Ruby originally blew up because Rails was a way people enjoyed writing backend code, despite the speed issues. But the problem is other languages got good enough at writing back ends Ruby was no longer special there and didn't have anything else to back it up the way Python has such strong control of the ML library ecosystem.


It is interesting seeing more and more GCed ecosystems become aggressive about allowing code to stack allocate more. Watching dotnet go through it since I think Core 2.1, or whenever they introduced Span<T>, Memory<T>, etc to get significant performance gains has been nice to track.

GCed languages do not have to be slow if you keep the garbage to only where it is necessary (or where you can allocate once and never collect).


This was pretty common in the 1980's-90's, for some strange reason, maybe due to Java and scripting languages, there is this mentality that having a GC means no stack allocations.

Lisp Machines dialects (Genera, TI, Xerox) had primitives for stack allocation.

Them we had Cedar, CLU, Oberon and all its descendants, Modula-2+, Modula-3, Eiffel, Sather, and probably others during the last century.

Ironically the final design for Valhala in Java seems to be quite close to Eiffel already had in 1986.


The version I've always heard is just well designed but less popular languages, but the ones I can think of were all functional (Haskell/F#/OCaml/Clojure/Elm/Erlang)


If nothing else dotnet has TCO IL operations (C# doesn't compile down to them last I knew but F# does) so in theory shouldn't be hard to add.


MSIL was designed to support plenty of languages, including C and C++, which WebAssembly advocates tend to never mention.

As such there are plenty of MSIL and CLR capabilities not yet fully exposed in C#.

One of the improvements in C# during the last decade, has been exposing low level coding abilities into C#, which is nothing more than taking advantage of those primitives originally designed for C and C++ support.

Likewise, .NET also had support back in 2001 for FP languages, thus TCO.

https://news.microsoft.com/source/2001/10/22/massive-industr...


Out of curiosity when did you write that interpreter? The entire dotnet ecosystem has seen massive speed improvements over the years, particularly for anyone who last tried them during the Framework era. Hell they even put work in to improving tail calls which the c# compiler doesn't even take advantage of (also either in the dotnet 9 or 10 timeframe f# added an attribute to make it so a recursive call that isn't a tail call throws a compiler error so you can't accidentally screw that up).


It's .NET 10 lol. It's not so slow you can't write stuff for it, I have implementations of Conway's game of life, Huffman compression, and a minimal TUI. The main problem is doing almost anything in it involves a method lookup. And there are almost certainly places I could have done things more smartly.

One thing I do want to try out is publishing it with native AOT. I had a lot of luck with that on one of my other F# projects, I got like a 75% speedup out of it. I understand the JIT is supposed to outperform native AOT in the long term but I haven't seen it reach that speed.


Author here! I actually tried using AOT and it actually decreased the performance by about 35%. I think it's because Game Boy games tend use a small number of instructions a lot more than the others, so the JIT can optimize for them, while AOT has to be more conservative.


That makes sense. The part where my program really benefits is in a bottleneck area that you always have to go through and where you visit every code path in it.


AOT vs JIT is always interesting since JIT depends on the runtime actually deciding to bother running the later passes to get more optimized code.

And sorry for the paranoia, I find a lot of people tried f# or even c# back in 4.x Framework era and think it hasn't changed.


I don't know that any open source project will ever compete with Unreal and its high end tech targeting the AAA space. But beyond that, Raylib doesn't give a ton of things an engine does because that is not the point of a library like it. This is to let someone build their own engine how they want, Unreal/Unity/Godot/etc let you give up some control and decision options to skip a ton of work building out a lot of basic features.


It really amazes how how Youtube refuses to let me hide stuff I don't want to see on my homepage. I still long for the ability to tell them to not give me mix playlists, I do not want them, and often they annoy me when the first song is one I'd click on but I don't want to have to pay attention enough to kill it before the next song plays (since you cannot disable play next in playlists...)


It's not a product where you are the user. Your attention is the product being sold to advertisers and the videos are a harvesting/production mechanism.

It is not in the interests of either YT or the advertisers to allow you to opt out of features that are proven to be lucrative for eyeballs.


I’m a Premium subscriber. I don’t see ads, and YouTube added a feature so I can easily skip in-video sponsored sections.

It seems like the incentive for Premium subscribers should be to keep them happy, so they keep paying, and minimize how much they watch, as they’ll be a cheaper user using less bandwidth.

Am I missing something?


> YouTube added a feature so I can easily skip in-video sponsored sections

That feature benefits YouTube, too. Maybe even more than its value as a Premium feature. It makes it so that viewers can skip the ads the creator was paid to make without YouTube getting a cut of the proceeds, pushing down the value of those ads.


It’s crazy to me YouTube is okay with hosting ads they get no cut from in the first place.


Hasn't this always been the case? If a movie or show features product placement, a TV station playing said movie/show doesn't get any of the proceeds from that advertisement, do they?


These are not product placements, it's as if someone wrote a movie or TV episode literally with an ad break.


This is just the pros having more tact than amateurs, and actual writers. I do see some “influencers” that do more of a pure product placement. They just happen to be drinking a specific energy drink in every video where it sits perfectly with the label out. I see some YouTubers trying to get better at integrating the ad into the video, but most of them can’t be bothered to write and record a custom script.

That said, Subway often seemed to get pretty heavy with its product placement. The last season of Chuck had a good amount of this, even what was essentially an ad read right in the middle of an episode by Big Mike. On Community they personified Subway and based a whole episode on him. In the Office they brought in Ryan Howard to say “eat fresh” over and over again, and even called out that it was for Subway to make sure it didn’t go over anyone’s head. Subway was big on sponsoring the last seasons of struggling shows with loyal fanbases, and littering the episodes with Subway product placement to the point where it became a plot point. I remember Zachary Levi (Chuck) tweeting out to ask everyone to go buy some Subway before the finale. It sounded like if Subway saw enough of a spike in buying from the sponsorship, they might fund yet another season.


I know, but I don't see a fundamental difference. If TV networks are happy to pay for a show that also gets advertising revenue from product placement, I don't see why YouTube would not be happy to deliver ads and pay some percent of that to a channel that displays its own ads. Especially given that YouTube has much, much less cost per video than a traditional network, which can only broadcast one program at a time.


This line of argument would make sense if they did allow paying customers who don't see ads to disable these anti-features. They don't.


It's still a fine argument for that case, you've just moved yourself out of it. They still have an incentive to keep you addicted to the service, which is basically the point of Shorts, "so you keep paying us money to satisfy your addiction" instead of the first case's "so you keep watching ads that pay us money to satisfy your addiction"


The thing that is funny about it is at least with the mixes, it does actively make me engage less because there are videos I would click on if they were not being tied into a mix, but because they are I actively choose not to open the video and let the song play.


joke's on them, I have not consciously experienced a youtube advertisement in ten years


YouTube has multiple different products. YouTube as a company do not call your attention a product. There isn't a product team that is in charge of people's attention as a product.


If you have uBlock Origin installed, the subreddit wiki for it has lots of options for blocking stuff on YouTube.

https://old.reddit.com/r/uBlockOrigin/wiki/solutions/youtube


Believe me, if they tried as hard as FB, an ordinary user wouldn't stand a chance. As it is now, a single uBlock Origin action is enough to make these disappear from my YT page for good, and for all accounts.


You see, you think you don't want all those things, but the algorithm knows better. Trust the algorithm!


Search youtube for a thing

> 5 results for your search

> 10 unrelated videos that you've already watched

> An endless stream of unrelated videos


Youtube has added random people's text posts to my subscription feed, and it's pissing me off. They're never anything interesting or entertaining, it's always just gumpf


I so hate the videos YouTube shows me that I wrote a plugin to place a white box over videos called TubeGate [0], which I open-sourced [1]. It does keyword-based filtering so you can tell it to hide "sports", "politics", etc.

[0]: https://chromewebstore.google.com/detail/tubegate/aokfpmegea...

[1]: https://github.com/webcoyote/tubegate


It is, at best, incredibly hard to accumulate that much wealth without doing shady things. Microsoft's monopolistic practices in the 90s for example. The only person I can think of that ever cracked a billion without their money coming through dirty means was, funny enough, JK Rowling who has her own set of issues separate from the value she got out of Harry Potter.


John Lithgow had a take I agreed with: Her opinions were heavily misconstrued though she chose to double down at her own peril.


SDL3 is something I've been keeping an eye on, but at least one thing that held me back from diving into it was SDL_Mixer (audio library) was not updated to a release version for SDL3 until I think a month ago? I need to get back to it but lately I've been messing with SDL2 + wasm stuff using emscripten.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: