you’d end up using modulus and move on quickly.
But where’s the fun in that?
There are so many better for obfuscation ways of checking for oddness!
(a & 1) > 0
a.toString()[a.toString().length()-1] - '1' == 0
iseven(a)?(1==0):(1!=0)
you’d end up using modulus and move on quickly.
But where’s the fun in that?
There are so many better for obfuscation ways of checking for oddness!
(a & 1) > 0
a.toString()[a.toString().length()-1] - '1' == 0
iseven(a)?(1==0):(1!=0)
That code is so wrong. We’re talking about Jason “Thor” Hall here—that function should be returning 1 and 0, not booleans.
In the source code for his GameMaker game, he never uses true
or false
. It’s always comparing a number equal to 1.
Linux isn’t derived from Unix, just originally based on it. The BSDs and Darwin (Mac) would be the unfortunate casualties, but at least most of the country won’t be stuck with Windows?
Edit: And, I guess, Nintendo Switch and PlayStation 4/5. The former “borrowed” the networking stack from OpenBSD, and the latter are based on some BSD variant if I recall correctly.
I mean, hey: it worked to make Apple finally drop their proprietary charging connector. As long as the cost of losing business in the EU is higher than designing an EOL transition for games and hiring developers to actually do it, it’s in their best interests.
what I just outlined as what would have to happen.
The backend server stack hosts a set of tightly intertwined services that conform to an Application Programming Interface. You quite literally do not need to provide the entire stack designed for multi-hundred-thousand concurrent players just to satisfy that interface the game clients are expecting. It costs time and money, but they could damn well just create an implementation designed for simpler, small-scale hosting.
Oh yeah, just do that, as if that’s a super duper easy task to do.
If you designed it for that eventuality, yeah, it’s easy to do. Trying to retrofit that into an existing system designed solely to run at cloud scale is a bloody nightmare, and that’s not at all what SKG is asking for.
because “direct connection” means no concept of an account anymore, and if everything is tied to your account, the whole damn game doesn’t work now.
Counterexample: private World of Warcraft servers. They implemented their own, and it’s worked fine for them.
The account system is just another API. The client uses it to authenticate, and the dedicated server uses it to verify the client authentication. Fuck, even Minecraft and it’s poorly-designed multiplayer can do that. As long as the client and server use the same auth provider, you can still have “accounts” without relying on Mojang’s insanely censorship-happy official login system.
It’s possible, sure, but by this point you’ve effectively remade a very large amount of the game from scratch so who cares now.
I’ve made this exact same argument you’re giving here, and yeah, I know it’s not easy. I sympathize with indie developers who are over-designing their server architecture and might not have the resources to do this, but a AAA game studio can afford to hire more developers for their next game instead of C-suite bonuses.
what if parts of that executable have still in use proprietary pieces that are used in other games they own?
I also made this argument before, and it is valid criticism. It’s worth pointing out that the valuable and reusable proprietary parts are the infrastructure and design, not the game logic.
I’m not an entitled twat. I understand that there are legal challenges and big, open-ended questions on how developers could actually pull this off. Making large, consumer-exploitative developers like Epic, Bungie, or Blizzard have to hire more developers isn’t a good enough reason to make me discount an entire consumer-rights movement.
People with planet-sized egos really need to stick to DPS roles.
Modern game servers for major games are simply just not designed to be run locally bare metal. They’re often in the form of complex stacks of multiple moving parts, shit like entire k8s deployment stacks with like 12 distinct resources, many of which might be tightly coupled to implementation details.
They wouldn’t need to release the whole stack to satisfy the requirements. Release the dedicated server executable and patch the game to allow direct connections to servers.
For an MMO it would be more complicated, but the movement also isn’t asking to be applied retroactively. Existing MMOs built for scale are free to keep their current architecture. The only requirement would be that future MMOs are designed with an EOL transition plan.
They release, say, v2.4 of their game server program in 2025, it’s tightly coupled to the auth server v1.7 api.
It’s an API. Unless they hardcode the IP address it or use certificate pinning, it can just be reimplemented.
We already have MMU for Memory Management Unit. Maybe Matrix Multiplication Accelerator instead?
std::string
doesn’t have a template type for the allocator. You are stuck using the verbose basic_string
type if you need a special allocator.
But, of course, nobody sane would write that by hand every time. They would use a typedef, like how std::string
is just a typedef for std::basic_string<char, std::char_traits<char>, std::allocator<char>>
. Regardless, the C++ standard library is insanely verbose when you start dropping down into template types and using features at an intermediate level. SFINAE in older versions of C++ was mindfuck on the best of days, for example.
Don’t get me wrong, though. I’m not saying Rust is much better. Its saving grace is its type inference in let
expressions. Without it, chaining functional operations on iterators would be an unfathomable hellscape of Collect<Skip<Map<vec::Iter<Item = &'a str>>>>
TypeScript […] only adds syntax, and doesn’t re-write it.
I believe enum
, const enum
, and decorators would like to have a word with you.
Swift also uses backticks and Rust has a dumb one in the form of r
. Still much better than introducing a async
as a new keyword in a minor version of a language and breaking a bunch of libraries.
Rust is verbose, but C++ might still take the cake with its standard library templates. Especially when using fully-qualified type names…
auto a = ::std::make_shared<::std::basic_string<char, ::std::char_traits<char>, MyAllocator<char>>>();
A reference-counted shared pointer to a string of unspecified character encoding and using a non-default memory allocator.
This means either them or more junior developers will be brought in as glorified prompt engineers.
Oh, sweet summer child. It’s not going to be junior developers; they still have self-worth. An un(der)paid intern or outsourced contractors, however? They’re fine working for scraps and no health insurance.
The magic cable typically goes into ISP-owned hardware sitting in a box somewhere down the street. From there, it’s either converted into fiber optic signals or repeated until it reaches an ISP-owned building where the data can be exchanged with the wider internet.
How does so much data go through a single-pin coax cable?
It uses multiple channels (frequency ranges) in parallel, bonding (combining) them to increase throughput.
A surprising amount of bandwidth can be achieved this way. DOCSIS 4.0 can do 10 gigabits per second in download and 6 gigabits per second in upload.
Might be. It is definitely a thing, though.
When I used to work for a large American corporation that sold products to consumers, they took it extremely seriously and breaking it would result in disciplinary action. It probably had something to do with advertisement laws, but it also easily could have just been because it makes the company look very bad.
one place even asked people to write fake reviews on Trustpilot/job sites
That sounds unethical, to say the least. Did they verify if you actually did it, or just “suggest” you do?
Corporations drill it deep into your head that you do not positively promote your own products or negatively review competitor products without both making it clear that you (1) work for $Corp; and (2) are sharing your own, personal opinion.
Giving the benefit of the doubt to Plex, they suck at training employees about social media policies.
It’s the same for a lot of people. Beginners are still learning good practices for maintainable code, and they’re expected to get better over time.
The reason people are ragging on PirateSoftware/Jason/Thor isn’t because he’s bad at writing code. It’s because he’s bad at writing code, proclaiming to be an experienced game development veteran, and doubling down and making excuses whenever people point out where his code could be better.
Nobody would have cared if he admitted that he has some areas for improvement, but he seemingly has to flaunt his overstated qualifications and act like the be-all, end-all, know-it-all of video game development. I’m more invested in watching the drama unfold than I should be, but it’s hard not to appreciate the schadenfreude from watching arrogant influencers destroy their reputation.