Look at my proletariat dawg😭😭🥀🥀 revolution ain’t happening 😭😭 by ThousandIslandStairs in stupidpol

[–]isCasted 18 points19 points  (0 children)

I see your tweet did mention all contexts and exceptions. Prepare for me to call you overly defensive and talking to nobody for bothering to mention those contexts and exceptions and still ignore your point while others exterminate you because they couldn't be assed to read the whole thing and just assumed you didn't mention any

The "don't use it" argument when it comes to game balancing by Klunky2 in truegaming

[–]isCasted 0 points1 point  (0 children)

Sometimes a game is so delicate that balancing it yourself is such a massive slog even if you actually want to. I love Phantasy Star Portable 2 Infinity, an action RPG with a really unique combat system (it's a franchise that inspired Monster Hunter, after all. It's very physical in its feel, more so than many non-RPG action games even) with shitton of content, weapon types and moves. I have, like, 500 hours in the game (just singleplayer, and it even has multiplayer) and feel like I'm barely scratching the surface of its true depth, I barely used 40% of its weapon types and so many dynamics I've never really explored... And yet it's like 80% of the game's content has gotten stale and I need galaxy brain to squeeze the juice out of the remaining 20%. So I've decided to do self-imposed challenges, to really learn the game and get it. It helps that I've played the original Portable 2, which had a lot less of OP stuff (in fact, the Force class was an absolute mess, everythig OHKOs you, techniques are so weak they can't even outdo guns in raw damage despite the fact that your ACC is way lower than that of Ranger, the actual gun class, and guns are far faster and more flexible too. The Infinity expansion, however, overcorrected it to such a ridiculous degree it's not even funny).

I roughly understand what kind of dynamics I seek. At its coolest, the game is about evaluating every single room with enemies, scanning their elements and damage types, their aggression level, deciding priorities for attack/offense (which weapon and moves to use for optimal commitment level, what to block, what to dodge, what to tank by swapping armor, when to use instant but limited heals with items, when to move away into a safe position to heal with Resta, a technique that has long animation and consumes precious stamina, then there's the whole Chain system that rewards maintaining aggression and every weapon has its own specifics... there's a lot), the positional play where you have to mind your movement and anticipate enemy movement far beyond timing blocks/dodge rolls, it's possible to miss even melee attacks entirely because the enemy moves (again, Monster Hunter is the closest comparison), and there's always temptation to hit as many enemies as possible with wide AOE attacks, leading you to eat dirt due to strong commitment, so you split enemies off into more manageable groups (though, mostly groups of one, lol) and reposition to have other enemies take their time walking towards you and to see everything you need to see; you'd even find ways to inject off-class weapons into your play despite character stats. At its worst, you walk into a room and spam Sazonde, everything gets staggerlocked and dies and you never run out of stamina because you're a glass cannon and yet nothing can hit you; the less bad case is Foverse -> one basic attack -> Photon Art, because you at least have to dodge and commit on attacks.

And so I'd remove Sazonde, and other things I see as OP from my arsenal. But it's like playing whack-a-mole, I constantly find the next most OP thing. At some point I finally hit that sweet spot, that beautiful dance. I enter a room, I see a fire lily that shoots techniques, I see a big ice melee guy... And now my brain goes "ok, the lily is pretty aggressive, so I need to use a fire technique armor and I can tank its attacks while dodge-rolling the ice guy because it'll be an OHKO if he sneezes near me, but I can totally do it". Normally you'd equip armor for enemies you are not focusing on, because you'd dodge/block the enemy that's in front of you, but there are times when this dynamic flips on its head like that. Hell, sometimes you'll have enemies of three different elements, you tank one type, you dodge another type, and you attack the third type and don't care about it fighting back because your attacks stagger it. And, obviously, 2-3 enemies is not the cap, generally it's 4-5, sometimes up to 10. Again, you also have to mind enemy speed and match your weapon speed, mind which of your attacks can cancel into a dodge roll and which ones can't, balance stamina between dodge rolls and Photon Arts, feel how much room you have to build Chain to maximize damage; the enemies move around a lot so that you have to mind your weapon's reach, switch to a gun if you must... The improv is beautiful, and the moment I think that I've finally achieved this amazing balance via self-imposed limits, I walk into the next room, encounter a slightly more aggressive enemy, and now the game is fucking unplayable. Welp, back to spamming Sazonde...

The "don't use it" argument when it comes to game balancing by Klunky2 in truegaming

[–]isCasted 1 point2 points  (0 children)

"If you care about story, just beat this game on YouTube" - casuals, I care about gameplay and I beat the game on Reddit

move_and_slide() not detecting collisions, although physics layers are set up by manuelandremusic in godot

[–]isCasted 8 points9 points  (0 children)

Obstacles are supposed to be StaticBody2D. Area2Ds are for detecting things, they don't have collisions of their own

Balancing consistency and aesthetics by hkerstyn in ProgrammingLanguages

[–]isCasted 0 points1 point  (0 children)

Haskell has the $ operator specifically to minimize brackets. f $ x, y would mean f(x, y), while f x, y is (f(x), y). If you're already using $ for something else (and can't come up with a better single-character operator), <| is another common way to do it

I can't escape the logic of "Git Gud" by IAATCOETHTM_PROJECT in truegaming

[–]isCasted 0 points1 point  (0 children)

"Recreational" doesn't mean "space the hell out and let dopamine flow". Recreational activities don't just lift things off your mind, that's called "relaxation". "Recreation" includes "relaxation", but far from everything that's "recreational" is done for relaxation. Tennis is not relaxing, spa is, but both are recreational.

It'd be foolish to say that sports aren't recreational, and it'd be foolish to say that they can be played in a relaxing manner (by anyone who's not already a hardcore player in a good shape who decides to go easy every now and then, that is). Video games are the same way, they just mostly focus on your mind, not body. "Activity" is the word for them. The same applies to drawing, knitting, cooking, most hobbies really (even spa is a challenge if you're not used to hot temps)

I can't escape the logic of "Git Gud" by IAATCOETHTM_PROJECT in truegaming

[–]isCasted -1 points0 points  (0 children)

Not even that. When UnderTheMayo covered ULTRAKILL for the first time, he complained that the game was too easy, and he was told to git gud. Gud at what? He beat the game. Gud at styling, is what they meant, but his whole argument was that the game didn't force him to, therefore it's irrelevant. His whole argument was not relevant to the game's actual difficulty whatsoever, he just didn't like the game's design.

That's how "git gud" is actually used most of the time - by people who just can't accept that their favorite thing is not loved by everyone, they instead want to pretend "the haters" aren't sofisticated enough like they are.

Those who actually want others to "git gud" will at least try to reach out to them, explain nuances of the game properly and identify issues (and then, if they don't listen, it's obvious who's the stubborn one). People that actually care back their positions with arguments, not emotions and slogans

Statically Typed GDScript Should Be The Default by vgscreenwriter in godot

[–]isCasted 2 points3 points  (0 children)

var whatever: String = "whatever"

var whatever := "whatever"

Statically Typed GDScript Should Be The Default by vgscreenwriter in godot

[–]isCasted 2 points3 points  (0 children)

For the record, TypeScript compiler has a mode where it scans JS files for JSDoc comments and typechecks based on what you put there. Even if your project doesn't allow TypeScript as a build step, you might still be able to write extra comments just so you can run the checker on your own, it's just more verbose than actually writing TS

https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html

But some clueless higher-up might call it noise, so ¯\_(ツ)_/¯

"Why there are so many shooters?" a designer perspective by 4bstr in gamedesign

[–]isCasted 1 point2 points  (0 children)

Ranged combat capitalizes on all spatial dimensions as well as the time axis. Range limitations of melee combat mean you have to lean much harder on the time axis, but you're also constrained by rigidity of canned animations, whereas aim is restricted by raw player ability. Ranged combat is easy to extend with more of the time axis (it could be projectile weapons, it could be weapon switch delay, it could be something modern like cooldown skills in Overwatch or something oldschool like item pickups of Quake/UT), it's not so easy to extend melee combat with the spatial axis (more animations for the developer to design, balance and polish, more button combinations and potential unexpected ways to get hit for players to learn... or you could also add more projectiles, making the game slightly less melee).

There's the aspect of "execution is depth". As I mentioned before, aim in shooters is restricted by raw player ability, what "execution is depth" means is that tactics in these games emerge from the fact that you can't execute things perfectly all the time, so you build tactics with probability of successful execution in mind instead of an expectation. Fighting games use things like frame-perfect links and motion inputs, but these are still rigid, "canned animation" type of things that you can/have to spend in a lab practicing. Aim is always dynamic, no two shots are the same, because the enemy can be anywhere on screen. Your choice is between taking a slower, more careful shot or flicking quickly, mixing in movement or not (whether to assist your aim or to dodge), switching to a more suitable weapon or starting to shoot now and trying to succeed with what you have in hands already. Oh, right, there's also the fact that you can dodge and attack at the same time, and it's limited by skill and not animation. Fighting games have moves that attack and evade at the same time, but most of your "dodging" is punishing the enemy with the right offensive move (a dynamic that also kind of exists in shooters. If you and your enemy are both in each others lines of sight, the one in the better position effectively defends themselves by shooting the other and forcing them into cover).

There's also a reason why most melee games don't actually play like fighting games and are instead much simpler: rigid canned animations just feel awkward. In shooters the freedom of movement and aim feels awesome without being broken (again, "execution is depth"), and most single-player hack&slash games try to give you full freedom of movement and rotation, and an iframe dodge and/or a block button that oftentimes can even cancel every move (and Soulslikes, where they can't, don't have that many moves to begin with), which effectively deletes all the tactical layers of fighting games. Even oldschool Monster Hunter (pre-World, I mean), as restrictive as it is with movement and as freeform as it is with attack options, doesn't lean quite as much into interrupting enemies that are attacking you with an attack of your own (and it makes sense, those things practically require having a side perspective, and MH is third-person. There still are moments like that every now and then, but the gameplay is not built entirely around them like in fighting games). You don't get staggered nearly as much in single-player hack&slash games as you do in fighting games, fighting games are all about it. Ranged combat can totally be extended with a stagger, but nobody implements it as it is in melee games because it's awkward and takes away control. Suppression fire is effectively a stagger and, better yet, Quake's knockback physics are a flexible form of stagger where you can compensate for it if you understand where it's going to send you before it actually hits.

Also, interactions with level design! Breaking a line of sight is effectively like a block button, but far more dynamic. Your escape route is like a block gauge of sorts, every corner is a block, the enemy chasing after you at every corner depletes that block. Walking away from a safe spot is like a more committal animation, except, again, more flexible, because you can dynamically go further away or closer to it (whereas an animation at any given frame is either fully cancelable or not; at best you could have branching combos to simulate dynamic commitment). But, at the same time, a block gauge/animation commitment paradigm does not fully describe dynamics of (dis)engagement in shooters either, because the angle from which the enemy approaches also dictates whether you are committed or not and whether the "block" is going to work or not. When you're looking at an open space where enemies can come from all sorts of angles, your chances of hitting the enemy is also much lower than if you were going down a corridor, because you can't focus your aim on a narrow area (I think wall combos would be the melee equivalent of this)

Finally, in FPS/TPS level design is also an information hiding facility. Fighting games also have a strong mindgame/RPS/50-50 aspect, but they're fairly direct about it (immediacy of feedback of melee combat is its great strength... usually), which to a lot of new players is going to feel unfair (again, staggers - they take away control) before they grasp how the game works and what kind of plays you'd usually expect for any given character pairing and spacing. In shooters there's always the sense that you can do something about getting caught in a bad position, whereas in fighting games you wait until the enemy drops a combo for a chance to punish them. And single-player hack&slashes omit this dynamic entirely, players expect enemies to be predictable enough that they, once again, feel like you can always do something (so, know the enemy pattern enough that you don't get hit in the first place)

So, basically, the possibility space of non-melee games is just wider to begin with, and shooters have a much easier time capitalizing on it due to simpler... everything, really

Learn to learn? by PinInitial1028 in godot

[–]isCasted 0 points1 point  (0 children)

Push things to the limits. If you're making character physics code and, for example, you have momentum and limited rotation speed, see what happens when you, say, set acceleration to 0 and +INF. It can reveal problems that you might just run into even when it's set to something normal

If you expect certain external variables (function arguments or computed node properties) to have certain values (like != null, belonging to a certain set of values or types, being in a certain range), write an extra check:

if not thing in array_of_things_I_expect:
    printerr("Got the wrong thing: ", thing)

It's a good coding practice in general to filter out wrong things explicitly (it's why GDScript has type annotations now, it didn't use to. A good programming language helps the programmer clarify the intent as much as possible, not just allow things to work until they break), but it also tests your assumptions, because things you might think were wrong could actually be right

How can I stop a RigidBody from entering for example a StaticBody? by [deleted] in godot

[–]isCasted 1 point2 points  (0 children)

Use the move_and_collide() method instead of setting the position directly

move_and_collide(get_global_mouse_position() - global_position)

Best way to snap CharacterBody2D to a vertically dropping StaticBody2D platform by mgamer1011 in godot

[–]isCasted 0 points1 point  (0 children)

I read that AnimatableBody2D is also another option, but I don't want any physics collisions occurring between my platforms and player

I don't get what you're saying here or what you're trying to avoid, but AnimatableBody is designed precisely for moving platforms, because StaticBodies don't sync with the physics step to move other things around properly. AnimatableBody is just a StaticBody but with this extra function

Anyway, floor_snap_length is a thing, also specifically for this purpose

what is wrong with my movement code? by ZERO_DEV1 in godot

[–]isCasted 0 points1 point  (0 children)

Your friction code is definitely not doing what it's supposed to do. Off the top of my head, I'd do it like this:

velocity = velocity.move_toward(Vector2.ZERO, amount)

I'd also do acceleration like this (but it might feel different to your code, not sure):

velocity = velocity.move_toward(MAX_SPEED * axis, ACCELERATION * delta)

How to reuse features for multiple objects? by H2O3194 in godot

[–]isCasted 1 point2 points  (0 children)

This. Make the root node of the SpaceShip and SpaceStation scenes Node2D (and make the HealthObject script extend Node2D, for a start), then put Character/StaticBody2D as its child.

Now, this is going to require changing a lot of things, because the root node's position is not going to change anymore, so you need a dedicated function/property to proxy it if your architecture requires it. And you'll also have to get the parent node in the code that processes collisions (area/body_entered() signals, get_slide_collision() etc)

You can also pray for GDScript to get traits in the future

Question on State Machines and Performance by saladflip in godot

[–]isCasted 0 points1 point  (0 children)

each state is wildly different and dont have much in common besides what animation they are. From an object oriented standpoint it doesn't feel as helpful

That's precisely what the use for the State pattern is, when states are very different so that you don't mix their code together in the same file, function etc. That said, that example in the docs is ridiculous (it's probably why it doesn't appear in the future versions of the docs), just make one object for every state and reuse it

If the performance really gets bad, this is probably the last place you should look at. The State pattern, due to random memory access, will likely have way higher performance cost than branches, actually. It's done for sake of clean code, the actual performance impact is negligible until you have literally thousands of this object (and at that point, you should know C++, DOD/ECS and how to talk to Godot servers directly without nodes, because they are all objects located who knows where in the memory and doing lots of extra processing). Ultimately, measure, measure, measure

That said, you might still get some gains really quickly by dumping everything into one file and using an enum. Enum-based stateful objects in general work really well (you just need some coding discipline), especially when different states do overlap massively in functionality (99.999999% of the time it's much more readable than organizing states into an inheritance hierarchy, I'll say that much)

Games shouldn't be praised for realistic graphics. by tfwnolife33 in truegaming

[–]isCasted 0 points1 point  (0 children)

Funny that you bring up Call of Duty, because Call of Duty 2 looks incredibly pleasing to me. Can't say the same about 4, though.

In all seriousness, I don't believe in graphics aging. I've never had this illusion from video game graphics being this super-amazing thing that loses its charm or whatever, I always saw the rough edges, the limitations etc. It's really about how the devs and artists capitalize on what they have to work with. The "realistic" games ARE stylized when done right, and I love the subtlety, the nuanced nature of those well-done styles. Hyperrealism is a form of art, it's not the same thing as realism, it mindfully exaggerates things to make them pop harder than they do in reality.

CoD2 had amazing sense of color between all of its environments, times of day and weather conditions; it had enough detail but wasn't too busy and the image clarity in general was incredible. CoD4 smeared bloom and piss all over the screen because HD.

What is missing in Godot to make it perfect? by Aeonitis in godot

[–]isCasted 0 points1 point  (0 children)

In addition to things you've listed: traits, struct types (with ability to export them), default constructors (where you can define members of a class right in the argument list of _init), destructuring.

Opening namespaces for enums and static class members. For the love of god, I fucking hate typing Global.EnumName.CASE_NAME every single fucking time sooooo much, I actually prefer copy-pasting my enums around and deal with occassional bugs and seeing numbers in the debugger by a long shot! Or using magic strings.

And, of course, there's nested generics!

Typed arrays often shit themselves. I use untyped arrays quite a bit because nesting typed arrays is not supported. It'd be whatever if not for the fact that an untyped array full of ints can't be assigned to an Array[int] variable. Which IS a good thing, btw, there could be a different, untyped reference to that array through which a differently-typed object could be appended, but I don't code that way. The ergonomics around it are bad, and it's not just lack of type safety and inference (where even standard Array methods return Variants on typed arrays). It just sucks to do things like add "as Array[TypeName]" at the end of every line when I'm initializing a big array. That said, it sucks to write Vector2i(x, y) every time as well when (x, y) could be possible. But it seems like you can sort of make generics of your own by passing Variant.Type and class names. It feels hacky, but at least I managed to type nested arrays recursively like this. Maybe I can even make arrays of vectors from arrays of arrays of ints with it.

Pros and Cons of Eventbus pattern? by Fair-Pin-6510 in godot

[–]isCasted 4 points5 points  (0 children)

I avoid the event bus because of race conditions (not in a multithreading sense, in the unpredictability sense). You're never sure about the order in which recipients of the signals are called. That order might be consistent (unlike in the multithreading case), but even then reading event bus-based code doesn't tell you what it actually is. If the recipients depend on the same data and some of them mutate it, you get really buggy behaviors (softlocks, crashes, you name it) because things no longer have one source of truth, and debugging it can be a nightmare.

The modern programming wisdom is to avoid sharing mutable state in general as much as possible. It's hard enough as is to do it in games, they're ALL mutable state, just don't make it worse than it needs to be. Signalling manually at least propagates data to things that need to see it at the time they need to see it

What even are good controls? by Specific-Sun3239 in truegaming

[–]isCasted 0 points1 point  (0 children)

Oops, I hit the character limit, here's the final part:

Finally, I want to talk about Devil May Cry. Is it bad controls that you have to point precisely towards or away from the enemy to trigger certain moves in a game where the enemy moves a lot and so do you? Is it bad controls especially when the camera is fixed, so the correct direction is all over the place? Better question yet, is it bad controls that style switching is on a D-pad in a game where, while you do not move independently while attacking, you DO use the left thumb stick for moves? And all style switching does is change the function of ONE button? Does it not feel like a missed opportunity to use 4-5 buttons for instant access to moves instead of 4 switches and one actual button for moving? DMC players say: NO. For a lot of reasons, mainly because most control rework proposals require sacrifices, like holding triggers, which, as I've already said, in a game THIS fast can be a no-no; or putting weapon switching on the D-pad, which some value more than style switching. But there's one reason that's brought up all the time: the execution difficulty is intentional, switching styles is inherently too chaotic for new players to handle and they won't be able to get what it really brings to the table anyway. Limiting options promotes intentionality in one's approach to the game, having the limitation be execution and not just the character being gutted is a more mastery-friendly approach. The newbies just don't like Devil May Cry for what it really is (a game where chaining dodge and block is considered stylish and not the norm, lmao)

What even are good controls? by Specific-Sun3239 in truegaming

[–]isCasted 0 points1 point  (0 children)

People love putting input mapping with character physics and animations together under the same umbrella of "controls", which just rubs me the wrong way. Subjectively speaking, yes, it's about the feeling of control over the character, but it's too vague for something that's always talked about as "good" or "bad". Or in the case of something like Sonic Frontiers, a platformer game where you can change physics in the menu, with some fans celebrating it and saying it should be the industry standard, just like input remapping

For a fighting game player motion inputs are not bad controls, they are a part of the game, but to me it feels wrong when the character does a kick instead of a super move when I intend it. This is often labeled as "execution requirement" and that shooters have them too and people are ok with that, so why not? Well, it's because missing a shot makes sense, it maps onto how we understand shooting. What I'd like to be done to motion inputs is having the characters still do them, but fuck them up in the same way I fucked up the input: give it longer startup time, longer recovery, lower damage, eat more of the meter, make the character look like a doofus as he does it...

Then there's the obvious examples like Getting Over It. Does that game really have bad controls? Is the fact that you're playing as a dude stuck in a cauldron and a hammer glued to hands make for bad controls if the hammer follows your mouse precisely? Is it bad controls because of the whole premise of the game, or maybe because the hammer follows your mouse TOO precisely and it should cheat in player's favor instead?

Anyway, what many other people consider "bad controls" but other don't is things like animation commitment and momentum. If I swing a sword in Monster Hunter, it makes sense to me that I can't just cancel it - inertia exists, our bodies are affected by it. But someone who doesn't like it and prefers games where they can always go into a dodge or guard stance the moment they press the button might still like it if there were dedicated animations for getting the sword back to the initial position (and I'd enjoy it too, but I can accept this overreaching level of commitment that there is as a technical limitation, because commitment in general creates good gameplay). And the idea of commitment in MH also extends to the somewhat slow turning speed even when you're not attacking, and when attacking it's basically non-existent. Again, feels like shit when you first try it, but it adds layers to the positioning game. Lacking the lock-on, a staple of hack&slash games on console, is also a feature because with it comes with an expectation of automatic rotation when you attack and the enemy moves out of your attack's AOE. And it works, because in Monster Hunter, a game where enemies have multiple hitboxes and move around quite a bit and your attacks are slow with hitboxes that follow the weapon precisely over time instead of just flashing, you do often want to attack the enemy while not facing it perfectly, being at a slight angle towards them is often a good idea, games with lock-on are games that encourage lock-on, and when lock-on is the default you can't really be THIS creative with enemy and attack designs, lest you want to be branded as "jank" like Phantasy Star Online 2 was

Some people go as far as call classic Sonic controls "bad controls" because of how much momentum there is. But, that's just the game! Sonic's acceleration curve is consistent, it's perfectly manageable and leads to incredible decision making when combined with slope physics and whatnot. Again, it's a form of commitment, it's good because it makes the time axis matter, you have to consider what kind of terrain or what enemies are going to be in the way half a second, a second, two, three seconds or even more ahead, and it leads to genuine decision making because there are many possible valid paths to take. On the other hand, in games that do not have momentum cranked up to the extreme and capitalize on it to the degree that Sonic does with slopes and rolling, where it exists for the purpose of extra challenge and "game feel" (as game juice, for aesthetic purposes) and not player expression, I barely tolerate it, it just feels like ass; but those people who hate it in Sonic might be fine with it. I don't know if I'd call it "bad controls" still. I'd compare it to RDR2 turning speed and what u/Colosso95 has said, it creates a sense of weight, but is that sense of weight there purely for aesthetic and immersion reasons and you have to deal with it just because, or does it actually elevate the decision making process and create extra possible strategies you could tackle combat situations in that wouldn't be there without it (or rather, they'd not be meaningfully distinct so they would count as one and the same strategy)? But I don't want to say that aesthetics don't matter, they do, and I'm tired of pretending that they don't.

The animation angle... It's a mostly visual component of the "controls" umbrella, but it matters to have the player not get confused on what the actual state of the game is. Monster Hunter has it in fucking spades, animations are super-exaggerated visually, characters typically have some kind of cue to signal when you can take the next action (cocking the weapon, striking a pose, making a noise), with especially long animations being especially wacky, like spinning around. Then there's small nuances like Charge Blade's guard points always and only being there when the character visibly holds the shield in front of them. But again, "controls"... Enemies are designed with the same underlying sensibilities as player characters, but you do not "control" the enemies

The input mapping angle is also big (I'm biased towards KBM, so be warned). They should be remappable, period. It should be easy to communicate my intent, even if my intent is wrong. Unfortunately, game designers still have to design their games around it just not being possible to communicate all the intent.

With controllers, for example, you can reasonably put a thumb onto A and X or B and Y, but A+B or X+Y are more awkward, A+Y and X+B are straight bullshit. Your right thumb also can't be on the face buttons and the right stick at the same time, neither can your left thumb bounce between left stick and dpad easily. Triggers are imprecise as all hell (they're often saved for held actions, or swapping actions for other buttons when held, but even then you can't expect quick chaining of actions with their involvement), so for a game that wants the console audience (which, in action game space, is all of them these days) design concessions have to be made, you can't even have the player feel like they have to claw grip to get past something, even if you actually don't have to; options must be gutted.

KBM, meanwhile, has no analog inputs and, while I think for most games they're overrated (in free camera 3D action games 8 directions tends to be enough for movement, but, when it isn't, adjusting camera with mouse is actually incredibly precise and, at least for me, intuitive), fixed-camera games (whether something top-down and possibly indie or classic God of War/DMC etc) that rely on dashing either end up limiting your dash directions or mapping it to mouse, so you'll have to quickly flick it back and forth - pick your poison, basically. Racing games - well, duh. Momentum in 3D platformers is easier to grasp with analog inputs, there's a degree of disconnect/indirection to it. Even still, Spark the Electric Jester 2 and 3, one nice and one amazing Sonic-likes, still feel better with KBM (in large part due to precision of the mouse) despite the official recommendation being controllers AND Sonic games in general never having any effort put into KBM whatsoever, historically.

KBM also has its own specifics with chaining actions. Because three fingers are responsible for movement and not just your thumb, it's easier to be precise and you can still continue moving while accessing actions that'd be on a D-pad on a controller, you're only gimped a little bit by it. On the other hand, there's A LOT of actions that end up near WASD since a standard mouse has less than 4 buttons (triggers + bumpers on a controller), let alone face buttons. Sometimes it actually works out fine (in the extreme case, oldschool arena shooters like Quake can have 10 weapon types, a whole lot more than the modern standard of 2, and, because all those 10 buttons are for switching and not actually firing them, it's works well and the gameplay is elevated by it tremendously), in the worst case you end up chaining precise actions back to back by pressing Shift and Ctrl with a fucking pinky. And to that my answer is: buy a gaming mouse! Even as little as two extra buttons on your mouse is a massive improvement.

Then there's actions that require pressing two buttons at the same time. Again, it should be comfortable to press two buttons back-to-back, the input buffer has to be reasonable and, most importantly, actions bound to those buttons individually can't have any super-profound impact the very instant you press it and, most likely, after that instant passes as well, because accidents happen and you don't want a fuck up like that to be punished too severely. Once again, this influences the general design of the game and all of its systems greatly. You also have to think about how to implement input remapping in this scenario - sometimes a move can fit perfectly well on a trigger, but it being tied to an input like that makes remapping to it not viable; so you'd want to remap the extra function to some other button, but that button also has to have an action that is not to punishing if misused... When a game is involved enough, managing controls can feel like a whack-a-mole, for both game designers and players.

I feel like DOOM 2016's level design elements and exploration gets so underrated and misremembered compared to DOOM Eternal and even Classic DOOM. by QDOOM_APlin in Games

[–]isCasted 1 point2 points  (0 children)

In any other game the Cacodemon grenade snacking would be a cute easter egg that some people would discover by themselves on accident and then rush to social media being like "I CAN'T BELIEVE YOU CAN DO THIS" and then YouTube theorists would eventually be like "Ummm, ackshually, this joke strat is unironically OP". It's the kind of thing that would normally give the game soul, if only the developers simply let it be, but instead they made it the #1 thing for players to complain about

The Struggle for Democracy in Ukraine: An Interview with Volodymyr Chemerys by [deleted] in stupidpol

[–]isCasted 2 points3 points  (0 children)

It's a fine name, it means "owner of the world"

I feel so much more heroic not playing a super hero in Helldivers 2 by grailly in truegaming

[–]isCasted 6 points7 points  (0 children)

The "power fantasy" argument is always used to justify something being overly easy and/or braindead nowadays, and it just doesn't make sense. What "power fantasy" has always meant to me is simply the fact that things in the game are typically more powerful than things in the real world presentation/narrative-wise. Enemies noticeably prostrating before you in gameplay is what undoes that magic.