HNHacker News
TopNewBestAskShowJobs

Bekwnn

335 karma · joined April 7, 2018

submissionscomments
Bekwnn··on Why does C++ think my class is copy-constructible when it can't be?
In a similar boat with C++, but even the complexity of fundamental "simple C++" issues and lack of syntax sugar made me gravitate away from C++ to better-C style languages ultimately landing on Zig.

Using another language has only made me feel C++'s shortcomings more strongly than before.

Stroustrup even gave a talk about what a new C++ next language would look like and lands on many things better C languages already have implemented.

Sadly it's doubtful for gamedev to move away from C++ anytime soon. I am enjoying Vulkan+SDL in Zig on a personal project and can only hope that space of the language's community continues to grow.

Bekwnn··on Zig's multi-sequence for loops
Working on low level performance sensitive code in games, this is something I see in code LOTS.

As mentioned in the article, data oriented design runs into the pattern of wanting to iterate over parallel arrays of data frequently.

Bekwnn··on Ask HN: What are you going to learn in 2023?
Starting this year I'm switching from gameplay programmer to game engine programmer. I originally studied computer graphics a lot while I was in school, and I really enjoyed the time I spent working on optimization as a gameplay programmer.

As a gameplay programmer, a lot of the problem solving and work I did was insular and particular to the game. Engine development feels like a much bigger world where very similar problems are being worked on by many people all over the world. I feel there's a lot more material I need to go read.

I also want to start learning how to song write and improvise on piano. I'm starting to get some grasp on music theory finally and can probably not be totally lost when placing chords next to each other.

Bekwnn··on Ask HN: Programs that saved you 100 hours? (2022 edition)
I try to stress this more than anything when talking about the merits of vim/emacs/etc. It's not about speed, it's about how effortless and 2nd nature editing text becomes.

Which is really counterintuitive when you look at how complicated the programs are. But I felt that it became better/easier than regular text editing after only 3 weeks of fulltime use. The uninterrupted flow of keyboard use, and reduced mouse navigation, feels great.

You only need to learn a very small subset of features to be very effective with it. Some people just stick to that forever. But you can also slowly add to it.

Bekwnn··on It costs $110k to fully gear up in Diablo Immortal
Lost Ark and Genshin manage to be both very cash grab and very reasonable as a free-2-play. You can spend a lot of money on both, and pay-2-win in both, but still get to experience the whole game at a reasonable pace as a f2p player.

Diablo Immortal seems to do many of the same things, but just in a much more egregious way. So far I've heard a lot about how much money you can spend on the game, but not much about how bad it makes the f2p player's experience.

In Lost Ark and Genshin most players don't care that much about whales spending 10k to deal 100% extra damage because it's purely player-vs-environment and that sort of damage boost is totally excessive and unnecessary.

But many games make progress feel extremely slow or otherwise aggravating to push purchases.

I haven't really heard much about where Diablo Immortal lies on that scale.

Bekwnn··on Netflix’s big power clash and rivalries behind the crash
I'm just interested in something like a "not interested" button distinct from the thumbs down button. Netflix insists on suggesting the same shows I've never clicked for months or even years of them showing on my front page. I'd like to say, "Hey, stop suggesting this."

I don't feel like Netflix lacks things to watch, I just feel it does a terrible job keeping its suggestions fresh.

Bekwnn··on A Review of the Zig Programming Language (Using Advent of Code 2021)
There's an open issue to add some kind of function annotation+errors for functions which require you to call a cleanup function.

The discussion has had a lot of back and forth and they haven't really settled on a desirable solution yet, but it's something they're hoping to add.

https://github.com/ziglang/zig/issues/782

I work in games with C++ and we already do so much manual management and initialization+teardown functions that lack of RAII isn't a deal-breaker. Though I'd definitely prefer it if there was something either well-enforced or automatic.

Bekwnn··on Ask HN: Have you found something you love to do? If yes how?
On the flip side, I work at a 100+ person studio and have enjoyed great work life balance the entire 4 years I've been working there, including a major release. It hasn't killed my passion or made me like video games any less.

I also work on a game I like and have played it a fair bit without being paid to do so.

It is hard to break into games, and harder still to find work on game projects you want to work on, but it is possible. Lots of people do.

Bekwnn··on Data-oriented design or why you might shoot yourself in the foot with OOP (2009)
> The components on the entity define not only it's data but also it's behavior by the set of systems that act on the corresponding components. And you can take these object definitions and inherit them to add additional behavior or change the existing behavior by adding more components to the new definition.

This seems to miss what ECS actually is, unless you're just referring to the old-school way of doing entity components and not the data-oriented way.

Data-oriented ECS way of doing things is to separate state and behaviour. Entity components essentially become structs where their only behaviour is potentially some getter/setter utilities.

Behaviours are then state-less systems (just functions, essentially) which act on a set of components.

For example, a PhysicsUpdateBehaviour might take in a RigidBodyComponent and a HealthComponent to perform a physics update and apply physics/fall based damage.

The main benefit of ECS (imo) isn't even really performance. It makes code in complicated game projects much easier to manage by clarifying the game loop and by making it much more obvious how and when entity state is being modified.

It's the kind of thing that potentially complicates a smaller project, but makes larger more complex projects easier to manage.

This Overwatch GDC talk is the best breakdown/example of data-oriented ECS in a AAA game that I know of: https://www.youtube.com/watch?v=W3aieHjyNvw

Bekwnn··on Show HN: Find Subreddits for Your Niche
Power tripping mods/mod dictatorship is definitely a problem on reddit, but really post locking doesn't happen much and isn't responsible for the worsening quality of discussion the top level comment mentions.

The increasingly mobile-browsing user base is by far the biggest reason. I'm not hating on mobile really, but it's just a fact that people on a phone aren't going to be writing comments the way people sitting down at home on a PC are, and they'll also tend towards more content that's easy to browse from their mobile app/on mobile data.

There was an entire thread at the top of r/unpopularopinion (which if you don't know the subreddit at all is really just full of popular opinions) the other day of mobile users bashing threads which link to YouTube and how they downvote/won't click on them.

They likely use chrome mobile which doesn't let you install adblocker.

Which in turn pushes reddit's freebooting-encouraging and self-advertising v.reddit video player.

The site's increasingly resembling some mix of twitter and tiktok.

Bekwnn··on Piano Practice Software Progress
I started learning piano just over a year ago and picked up reading sheet music decently in an extremely short amount of time.

The gaps is the treble clef are

    | F | A | C | E |

The bass clef is the same but shifted down one gap (and the highest note is G)

  F | A | C | E | G |

And then middle C is, well, C. Just remembering that FACE goes in two places you get:

    bass clef          (C)  treble clef
  F | A | C | E | G |   |   | F | A | C | E |
And from that it's easy to go to the closest note and the count up/down one note and gradually memorize more. This was, at least to me, a drop dead simple way to memorize where everything goes.
Bekwnn··on Multithreading for Game Engines
I've always referred to it as "(has) source access". It is a bit frustrating and misleading when people refer to it as open source.
Bekwnn··on Show HN: Video Game in a Font
It's a much better quote than the annoyingly common, "Don't write a game engine!"

If you work in games or want to work in games, writing a game engine is a very valuable experience. Probably the best thing you can work on for personal growth.

That said, I think you get substantially more value out of the experience if you've already gotten your feet wet making games with a commercial engine.

Bekwnn··on Houdini Engine for Unreal and Unity Now Free
Gimp is (I think) a struggle and ui/ux nightmare to most people still.

Software like Clip Studio Paint, SAI, and Krita have definitely taken a bite out of the digital painting audience for photoshop.

I'm not sure how good the alternatives are for photo editing/manipulation.

Bekwnn··on Ziglings: Learn the Zig programming language by fixing tiny broken programs
I'm not sure on the specifics of what you mean, but zig comes bundled with and wraps gcc. `zig cc` command directly forwards to gcc (try `zig cc --version`) and zig's build system can be used to build C programs.

Zig currently is able to target quite a bit. There's a good chance you could open an issue and it would get added, or find an existing issue and see where it is on the roadmap.

Bekwnn··on Tribes of Programming (2017)
The author probably underestimates the limitations of Unity, especially earlier versions from back when The Witness was made. It would kind of be surprising if all the things in that game were possible to do with reasonable performance in Unity back then, especially without paying ~50k+ for source access.

It feels like the article almost but doesn't quite touch on it: there's people firmly in multiple camps, and gamedev tends to be camp 3, but also very often camp 2 and/or camp 1.

To get AAA or even AA games running requires a lot of dogma from camp 2. Graphics programming, procedural generation, and gameplay systems complex enough to produce emergent gameplay would be camp 1 from the sounds of it.

I feel my feet firmly stuck in all 3, at any rate.

Bekwnn··on The Mayron Cole Piano Method is now free
Pianos consume some amount of space. That's just a matter of fact with the instrument. A good digital piano in the $600-800 range with proper weighted keys will probably use the same amount of space as a dresser along some wall.

If you seriously want to learn and play piano, even as a hobby, that is the entry level.

I also disagree with using any of the popular apps as anything more than supplemental tools, but there are some very good adult lesson books can definitely form the backbone of your learning. As long as you're aware that posture and technique is a struggle for self-taught pianists, you can look for videos and make some conscious effort to improve at it.

Buying an $80 smaller midi keyboard is a good way to get a cursory feel for things without spending the full amount.

Bekwnn··on Zig's New Relationship with LLVM
I think Zig competes with a school of C++ that tries to stick to a simpler, limited subset of C++. Games is one area where C++ is much more common than C, but also where a lot of C++ practices (exceptions, excessive template use, many parts of the stdlib) are discouraged and things tend to be kept "simpler".

I'm sure there are a good handful of other fields that currently write "minimal C-like C++" and I think Zig competes with C++ in those cases.

Bekwnn··on Ask HN: What are good life skills for people to learn?
Learning about nutrition and fitness, even if you don't do either rigorously.

Patience and also how to firmly and kindly say, "no."

Art is a pretty nice hobby that works your ability to observe and visualize. Sort of like meditation when you're in the "flow" of it.

Playing an instrument is similar. Having a hobby that is active, not passive, and relaxes you is great.

Bekwnn··on Tim Sweeney on Apple and Google
As far as my consuming goes, I've gotten a dozen or more quality free games off the epic store and in some cases steeper discounts on games than steam offers. It's only really a "consumers lose" thing if you're boycotting and "unable" to play those exclusives.

As far as devs go, EGS gives a better cut, offers stability with timed exclusivity deals, and arguably are the ones who forced steam to lower their cut to 30/25/20 on high sales figures.

Bekwnn··on Coronavirus: Why aren’t death rates rising with case numbers? A UK perspective
Yeah, I think it was in a thread on r/askscience with some nurses replying basically stating that the methods of treatment for infected patients has evolved as understanding has grown. Steroids was one item they mentioned, another was avoiding the respirator at almost all costs; which is part of why the demand for them has gone down now.
Bekwnn··on Noita – roguelite where every pixel is simulated
The quickest path is to just start writing real time simulations of stuff and reference how other similar simulations went about implementation; terrains and erosion, cloth, fluid, etc.

It's easier if you have a bunch of random linear algebra and calculus knowledge lying around in your head, but trying to study that stuff isn't the most direct route.

Bekwnn··on A word for a value between 0 and 1 (inclusive)
I work in games where these values are extremely common and 'accuracy' wouldn't be very descriptive in a lot of circumstances: explosion radius falloff damage, water flow strength, positional/rotational lerps or easing, and more.

I wish I were commenting here with an answer, but I don't have one. "brightness01" is a common naming convention for values of this type in computer graphics programming, but niche enough that it got raised in review comments by another gameplay programmer.

Bekwnn··on Don't Be a Sucker
> The generally accepted definition of a leftist is someone that opposes capitalism.

This is a very broken and poor working definition. You can be leftist without being anti capitalist. Leftists don't believe in the "free market fixes things" or trickle down rhetorics. Speaking as a left leaning Canadian.

Leftist capitalism would see government regulation over industry which is of vital societal importance. America has bodies regulating food, medicine, construction, and others. Leftist capitalism often seeks to extend regulations to the benefit of the average citizen.

One example is Canada recently forcing telecoms to unlock phones. Another might be provincial transportation services being either government owned or privately owned with a high degree of government oversight. Their prices then remain low with moderate levels of profitability instead of high prices seeking higher levels of profit.

I'd say the majority of leftists believe capitalism needs to be carefully kept in check, with only more extreme believing it should be abolished. Though many do believe certain industries require far more government oversight than they currently have, or that certain things like health care or education should be made into a social service.

Bekwnn··on Apple doesn't let you disclose their 30% IAP fee to your customers
Steam already lowered their cut directed mostly at AAA games with sales over $10 million dropping to 25% and sales over $50 million dropping to 20%.

AAA devs were already trying to leave steam as much as possible, so they tried to bring them back while doing nothing for smaller studios and indies who can't afford to exist off steam.

Bekwnn··on Tech sector job interviews assess anxiety, not software skills: study
At the start of my third year as a student, I biked through a record-worthy rainfall to my first interview with a small local games studio. Showed up completely soaked, but sat down relaxed and feeling reasonably confident. (I had done a handful of unity and opengl projects.)

The interview started with a bit of small talk, I chatted with one of the guys about Brood War and Starcraft 2. Later during the technical interview they asked me about the difference between private, protected, and public and said I was the only student they had interviewed who had answered correctly which was wild and honestly stunned me for a moment.

They liked how in one of my examples of scripting something I had written some fun dialog and I mentioned I did writing as a hobby which seemed like a plus. I talked about which classes I enjoyed the most and how they were challenging/interesting.

I did not get a job offer and learned from a friend that I had come off as "depressed and disinterested" (I don't think they realized he was going to relay that info to me...) All I can do is guess that it's a combination from showing up completely drenched and sharing how I enjoyed those "challenging" classes made it seem like I would get quickly bored of scripting...

After that, I bombed an interview for a QA role because I went into it completely unprepared for just how much it would differ from a programming interview.

Point being those first two experiences got in my head and I basically had anxiety over anything job-hunt related for the next 2.5 years.

When I did get a job, I was extremely happy with the interview process (even though I felt I did poorly on it). Here's more or less how it was structured (TL;DR):

  - Office tour/chat with a programmer who had referred me
  - quick 5 minute introduction to senior programmers in charge of the technical interview  
  - 1 hour alone in a meeting room with a laptop and 4 written questions (a generous amount of time)  
  - ~15 minutes reviewing my answers with the senior programmers  
    - importantly, they gave me a chance to talk about my answers and when I got something wrong they would simply state that it had an error and see if I could spot it  
  - 15 minutes on C++/memory/performance/behavior quirks (important stuff in AAA games)  
  - ~30 minutes talking about stuff I had worked on  
    - occasionally they would mention something related I hadn't heard about and explain it while gauging how well I could follow along
Basically, based on my own interview experience/anxiety if I had to choose an interview method, it would be very similar to what I just mentioned. Seeing a familiar face and the introduction followed by the alone time did a lot to ease my anxiety. The time where I felt most comfortable was talking about the stuff I had done because I was very familiar with all of it/it was easy to talk about.

The process seemed less focused on where I had gaps in my knowledge and more focused if I had a decent amount of knowledge in general and if I had the ability to recognize and correct the gaps in my knowledge.

Sorry if it's a bit of an info dump, but it's something I think back to a lot.

Bekwnn··on Most tech content is bullshit
I think I possibly fall into this category of developer. I'm currently a few years into game development in the AAA space. The people I listen to most in descending order are Casey Muratori, Andrew Kelley, and Jonathan Blow.

I try to take their opinions with a grain of salt and find my own balance of considerations/tradeoffs. A common sentiment between them that I agree with is that software is a lot of commercial software is often an order of magnitude too slow in important places and that object oriented programming is almost always taken far too far.

I also look up to a few senior programmers I work with who have in-the-same-ballpark values as them.

On a whole, I think reading and listening to them has made me a better developer than if I just fumbled around to draw my own opinions completely from scratch.

I think being that type of young dev is probably fine so long as you keep your dogmatism and humility in check, and ensure your mentors are a spread of different individuals.

I think that's better than other young devs not seeking out information to try and grow.

Bekwnn··on US video game sales have record quarter as consumers stay at home
Barotrauma or Lovers in a Dangerous Space Time are two very different "sharing a spaceship" style games you could try.
Bekwnn··on Ask HN: How can I pick a side project and stick with it?
Re your first paragraph: What's funny is that I get almost the same effect by avoiding writing ideas down. I find letting an idea sit and stew in my head to be a good vetting process.

If I forget an idea, that's a feature of the system, not a bug. If an idea survives for a while and I find myself coming back to it often, then after a month of it being an idea I might act on it. At that point the idea is a lot less nebulous and I have a pretty clear idea of where to get started and an idea of where it's going to go in the future.

Bekwnn··on Yes, I am still learning Rust
I find this to be one of the reasons I didn't find rust that appealing as an C++ alternative. Its safety is something I admire and is highly valuable to many domains, but the two main things I want to abandon with C++ are its complexity and its compile times. Rust doesn't seem to get away from either of those.

As someone who doesn't really use Rust, does anyone who does find the complexity detracts from it a bit as a language? Is there effort to reduce complexity with the language or does it mostly embrace it?

At this point I find myself mostly looking at modern C alternatives—ones which manage to stay relatively simple the way C does, but with a few additional features and better designs (Zig, Odin, maybe Jai, etc).

All that said, I work with C++ and so I could see myself potentially working with Rust in the future, so I'm curious how people feel about its complexity, especially given that its complexity will presumably only increase with time.

Page 1 of 4Next →