Bekwnn
Joined 8 years ago
Joined 8 years ago
As mentioned in the article, data oriented design runs into the pattern of wanting to iterate over parallel arrays of data frequently.
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.
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.
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.
I don't feel like Netflix lacks things to watch, I just feel it does a terrible job keeping its suggestions fresh.
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.
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.
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
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.
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.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.
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.
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.
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.