Bekwnn
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.