Spyke

Replies

Comment on

How to learn Rust?

As a wise person once told the Internet, don't worry about picking the best one. But if you really had to pick one just start with the rust book. https://doc.rust-lang.org/book/ I would suggest to just dive in with a specific need you want to solve and instead of using your language of choice just use rust and look up stuff as you go. Hands on learning is usually the best learning. The only thing you need to "learn" is how to follow the ownership/borrowing paradigm that rust brings to the table.

linux

Comment on

Anticheat check - which competitive games actually work on Linux?

Reply in thread

This always grinds my gears. When I was hosting custom Minecraft servers back in 2011 we had so many server side anti cheat measures in place. Prevented people from moving too fast. Randomized blocks until you exposed them so xray wouldn't work. Logblock to identify griefers and do immediate rollbacks.

I remember this one time we had a group get on and grief someone that didn't set up a claim yet and they thought they were so sneaky by distributing the loot amongst friends and chests. We just followed the stacks in the logs and restored everything then banned them. We actually had more people end up joining because how much auditing we could do, they probably felt like they could invest time into the server.

Now it's like just trust the clients for everything and "oh we can't ban them until the next ban wave because we don't want them to know how we caught them". It's lazy. Back in the pubg days I remember seeing someone get 75 kills in a matter of 3 minutes. They didn't get banned. They didn't even have line of sight. Ban waves still allow peoples experiences to be compromised.

linux

Comment on

Valve's Proton 10.0-4 Released With More Windows Games Now Running On Linux

Reply in thread

Valve contracted codeweavers when proton started back in 2016. I would say without Valve, Linux gaming wouldn't be where it is today. Proton is open source, so anyone can fork it and build on it. Pretending Valve didn’t meaningfully fund and push this effort is misleading. Your comments read less like "credit where it’s due" and more like "Steam bad, therefore Valve contributed nothing", which just isn’t an honest framing.

Comment on

Finding coding gigs nowadays

If you figure out the answer let me know. 10+ years of experience and haven't been able to find a job in the last 2 years.

Mainly looking for:

  • Nodejs/Nestjs
  • Typescript/JavaScript
  • React/React-Native
  • Rust

The only thing I'm seeing in abundance is C#/dot net. And everything advertised with PHP smells like WordPress.

Comment on

Throw, Result, or neither?

These kinds of struggles with JavaScript and TypeScript are part of why I moved to Rust. I value the sanity checks the compiler provides: warning when a Result is ignored and refusing to compile when a match on an enum is missing a branch.

Also, in Rust, Result is for recoverable failures, while panic! is generally reserved for bugs, broken internal assumptions, or cases where the program has reached a state that it believed should be impossible.

Comment on

How to become a team/department lead?

My experience might not match others but honestly I would recommend avoiding this trap. It's just compromise and disappointment all the way up. Then you'll be blamed for anything that goes wrong despite only 15% of your plan being accepted by executives. If the company culture is different and fosters leadership instead of stifling it then maybe it could work. At the end of the day you're probably still going to be making someone else's dreams come true until you start your own company.

webdev

Comment on

Don't Roll Your Own …

Reply in thread

I skimmed the article and they just say:

  • Don't roll your own page scrolling.
  • Don't roll your own link navigation.
  • Don't roll your own text selection.
  • Don't roll your own context menu.
  • Don't roll your own copy and paste.
  • Don't roll your own password field.
  • Don't roll your own date picker.

For a date picker I initially disagreed but then their argument about how you can just use 2x input type=date for the start and end date and then it's consistent across every site was pretty reasonable. I'm not gonna go read mdn on its capabilities right now so maybe there's still some valid use cases for not using one, like conveying to the use what valid ranges they can select.

But yes I agree you shouldn't use a library for something simple like left-pad

gamedev

Comment on

What′s C++ like in gamedev?

Reply in thread

Rust is a fantastic language for game dev. It just requires you to think completely differently if you want to have a good time. You can totally write the traditional game loop or my preference ECS (bevy as one example). ECS still let's you do the crazy mutations without having to worry about ownership. Each system can focus on the components they care about and you can specify the order they run. If you want to be reckless and mutate global state, then you need to explicitly decide between things like RwLock<T> and RefCell<T> for example. I'm not saying everyone should drop whatever they prefer to instead use rust. It's ok to stick with what you know or enjoy. Good games are agnostic to the tools used to make them. I just don’t think Rust deserves to be dismissed the way your statement does.

gamedev

Comment on

Steam Best Practices: Developing an audience while developing your game - GDC 2024

Reply in thread

I haven't watched yet but I tossed the transcript into claude and chat gpt

ChatGPT:

  • Main Idea: The best marketing tool for your game is the game itself.
  • Key Strategy: Develop and engage a community around your game during its development.
  • Understanding Steam: Learn how Steam works for both developers and players to tailor your marketing approach.
  • Marketing Tips: Focus on unique aspects of Steam's platform to market your game effectively.
  • Overall Goal: Integrate marketing efforts with game development for better results.

Claude:

  • Your game is your best marketing tool
  • Be authentic to your game and target audience
  • Steam offers tools to market to your unique audience
  • Build wishlists and community well before launch
  • Focus on gameplay in trailer, screenshots, description, tags
  • Get feedback via beta, playtests, demos; join Next Fest
  • Launch: Steam emails wishlisters, features in queues
  • Post-launch: keep engaging players via updates, discounts, events
  • Stay authentic and responsive to build your audience

The key is to know your game and audience, start marketing early, leverage Steam's tools, and continue nurturing your community after release. Authenticity and active engagement are crucial for success on Steam.

Comment on

The rust programming language is adopting a new contributing policy

Reply in thread

You missed the part where they are SUPPOSED to meticulously review the "solution" themselves and have deep foundational understanding of what's going on to know if it's a good solution or not.

Ideas are a dime a dozen. It's not useful when the person lacks the ability to fully vet the solution before passing someone else to review. That just makes them middlemen. When instead the actual maintainer or reviewer could have done the same thing but have that foundational understanding.

Comment on

It's so obvious when someone has a JavaScript background

Reply in thread

I want to say I think they are talking about how great it would be if we could kick JavaScript to the curb and just use WASM for everything. I'm kind of in the same boat.

However, WASM currently doesn't have direct access to things like the DOM, if I recall correctly (this might be the guardrails the OP was referring to?). So, it's only really good for things that are heavy on the CPU. But, as a counterpoint, I don't think it's from a lack of effort from anyone's point. The last thing I remember reading was that there were still a lot of things being worked on to make it happen.

Quick Perplexity search:

There are proposals and efforts underway to allow WASM to eventually call DOM APIs directly, without going through JavaScript. The main one is the "Interface Types" proposal which would allow WASM to bind to Web IDL interfaces.

Another related proposal is WASM GC (garbage collection) which was announced at Google IO 2023. This will allow WASM to share the same managed heap as JavaScript.

Comment on

Finding coding gigs nowadays

Reply in thread

Where's the tin foil hat emoji when you need one?

But actually I might have been confusing what I'm seeing on job boards with what all the recruiters are telling me or it's a stale vibe from several months ago. Took another look at LinkedIn, indeed, dice and it seems relatively balanced if not listing more jobs with my stack like you said.

Doesn't change the fact that I'm not getting any interactions from these postings though. I finally got one response on indeed last week but after answering their questions and they said I was a strong candidate they directed me to a one way AI video interview site.. 3 years ago I had recruiters banging down my door trying to get me into interviews left and right. Trying not to rant but long story short it's not looking good for tech.

Comment on

Finding coding gigs nowadays

Reply in thread

Hard to not worry about it when after 2 years of applying to 2-4 every other day you get no responses. Like surely you'd think a resume with 10 years of experience would at least warrant a phone screen. I have several theories but I'm probably just another "armchair expert"

Comment on

Code Smells Catalog

Reply in thread

At that point I would argue composition/traits are the way to go.

"This extends Draggable". That's great but now we can't extend "Button" to override the click handler.

Traits: You wanna have Health, and do Damage, but don't want to implement InventoryItem? No problem. You wanna be an Enemy and InventoryItem? Go for it. What's this function take? Anything that implements InventoryItem + Consumable