While I agree it's incredibly jarring in some games, I'm always thinking back at a presentation by David Rosen on procedural animation: "First, do no harm to the gameplay". He's talking about animations in particular, but I feel that should be a core pillar for any game designer.
Many things are unnatural in games: you don't instantly recover from a beating by eating one apple in real life, but we're ok with it in games because it makes the gameplay fun.
> Before the encounter with the first Troll, the dumbfounded mythical character, Atreus, asks: “We’re going to fight that?!?” Kratos, the main character, answers: “We have no choice,” in a matter-of-fact, almost resigned way, as if shruggingly accepting the design conventions of the game itself.
I didn't see it like that. Atreus thinks he and his father are normal humans, even if he saw his father perform incredible feats of strength such as carrying a huge tree trunk. Atreus has no idea what his father is capable of, and he himself has been mostly sick and frail. The boy is scared. Nowhere does that scene read as "That looks humanoid, I don't think we should kill it". Draugrs are more humanoid and they've been killing some on the way. The troll is incredibly fierce and the largest opponent they faced until now. That's a completely natural reaction from the boy with no moral implications.
It's actually a little later in the game when they're assaulted by Reavers (actual living humans talking about eating them) that Atreus kills one in self defense and remains shocked by the experience. Kratos shows empathy and care when he comforts him and says "Close your heart to it". [1]
There's a deep thread about humanity and the right or need to kill in self defense in the game, and Atreus goes through a rebellious phase where he thinks godhood gives him the right to do anything. But the troll scene? That's reading too much into it.
Atreus' question come out of fear, but Kratos' response is what the article focus on. Kratos does not take any joy in killing, he does that out of necessity and would have loved for that necessity not to arise. He could have boasted "I have killed bigger things", but instead he choose words of resignation against a kill or be killed fate he was trying to escape
> he does that out of necessity and would have loved for that necessity not to arise
Which I believe is in contrast with the older games. Haven't played them but from what I've heard he'd pursue conflicts because he enjoyed them. I think this change is because of his ongoing process of coming to terms with being a father which takes the act of killing and twists it inside out.
Kratos in God Of War Chains Of Olympus through to God Of War III (if we're speaking Chronologically) didn't enjoy conflict. He was originally a soldier fighting the Persians that was then cursed to be a representation of war. He had a family that Ares took them away, and so he willingly took on the curse in order to kill every god and free humanity from their helplessness under the gods. A huge thread of the sequel series is him realizing that the Pantheon were not the only gods, and that killing them all isn't as powerful as enabling humanity to defy them. And he sees his own son as the bridge that will link the humans to their own innate potential. Kratos has been entrenched in blood and warfare since he was a teenager, and has come to see conflict to be a result of those unwilling to separate their needs and wants.
That segment of the game does take a bit of suspension of disbelief though - it's like Atreus was born yesterday, instead of growing up there.
I may have missed or forgotten the explanation behind that though. I suppose he was always stuck in the safe area around their house?
That aside, the new God of War games are great, and the whole franchise is a good example of how they took a fairly straightforward character - savage, angery fellow - and evolved his story and character over a long span of time, subverting itself etc.
(The Valhalla DLC is where Kratos goes to therapy lolol)
Imagine placing the feet on the ground at some location and then pinning them there. Now you can move the hips and the upper and lower legs as well as the knee orientations change to keep the feet planted in the same position.
Isn't that a strawman? There's a significant difference between "using AI" and "wholesale giving over your thinking to an AI". You won't find anyone arguing against the second.
For subjects I care about, I will hammer the AI with questions, ask for references, proofs, explanations, code samples, book recommendations until I'm satisfied with the answer and I can explain it myself.
For things I don't care about.. meh. I wouldn't have done any research without AI anyway and I'm probably getting a better nuanced or grounded answer than whatever someone who thinks they know might confidently explain me.
I'd argue getting your answers from social media is orders of magnitude worse, and the time to teach critical thinking skills was a few decades ago.
We have a dedicated snowflake id generator service that returns batch ids. It's also distributed, each service adds its own instance number to the id. When it overflows it just blocks for the next ms. For our traffic, it's never a bottleneck.
Something I use on my own distributed system (where I wanted 64-bit IDs), is use 32 bits for the time in seconds (with an epoch from 2020, so good until 2088), 8 bits for the device ID and 24 bits for a serial number (resets to 0 every time the seconds increments).
That's generally enough IDs per second for most of my edge nodes, but the central worker nodes need more, so I give them a different split and use 4 bits for the device ID and 28 bits for serial number instead.
If a node overflows its serial number that second, I kind of cheat and increment the seconds field early. Every time this happens, I persist the seconds field to the database, and when the app restarts, it starts its seconds count at the last persisted seconds plus one. If the current time in seconds is greater than the last used seconds, I also update it and reset the serial number. Works remarkably well for smoothing out very occasional spikes in ID generation while still approximately remaining globally sortable.
I also "waste" a bit of the 32-bit time field by considering it to be signed, even though it's not really because I don't expect this system to last long enough to reach times where the MSB gets set. But if I ever change my system, I'll set that bit and everything will stay ordered. I'll probably reset the epoch at that point too.
The store could make it mandatory to swipe your fidelity care before calculating your prices. They already do something similar with specialized promotions.
If we're including promotions or membership discounts, then coupons fit this definition of price discrimination. And those have existed since the 90s at least.
The problems show up when different people don't have access to the same coupons published by the store. Most coupons are fine.
They haven't had the ability to do the significantly bad kinds of targeting until recently. This is a new problem even if it's similar to old practices at the surface level.
In the UK, it's common for supermarkets to have loyalty cards (e.g. Tesco Clubcard) and then they display prices along with the price for using a loyalty card. Then, they just apply the discount (which varies according to the product) when you swipe your card before paying.
With all due respect to the guidelines that requires assuming good faith, this sounds like the beginning of a nirvana fallacy.
You don't have to provide a perfect solution to point out something is wrong. People who don't care about the people they lead don't make good leaders. I'd rather have leaders who hurt others by accident than on purpose.
Many things are unnatural in games: you don't instantly recover from a beating by eating one apple in real life, but we're ok with it in games because it makes the gameplay fun.
https://youtu.be/LNidsMesxSE?si=fGFCTCHm77OJiYu3&t=260
reply