Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
scissorman
Feb 7, 2011
Ramrod XTreme

dupersaurus posted:

Messing with a sports idea, so you've got one guy going for a ball, and an optional opponent either going for the ball or going for the guy. The ball is either caught or not (or caught by one guy or the other); the calculation deals with stuff like a catching skill, degree of difficulty of the catch, defender skill, etc. The only systems experience I have like this is from a MUSH awhile back that used FUDGE, which did a lot of yes-or-no actions, but really, screw FUDGE. So some basic reading might be the way to go.

Figuring out the scale of stats is probably another question entirely, but right now I'm assuming 0-100.

For help with dice/rpg/boardgame mechanics, you could ask for advice in either the TG Chat thread, the TG design thread or the Boardgame design thread.
Additionally I would recommend reading up on basic probability theory, so you have a good grasp on hit/miss chance and how your potential stats influence the roll.

Adbot
ADBOT LOVES YOU

al-azad
May 28, 2009



dupersaurus posted:

Messing with a sports idea, so you've got one guy going for a ball, and an optional opponent either going for the ball or going for the guy. The ball is either caught or not (or caught by one guy or the other); the calculation deals with stuff like a catching skill, degree of difficulty of the catch, defender skill, etc. The only systems experience I have like this is from a MUSH awhile back that used FUDGE, which did a lot of yes-or-no actions, but really, screw FUDGE. So some basic reading might be the way to go.

Figuring out the scale of stats is probably another question entirely, but right now I'm assuming 0-100.

Hmm, I don't know what version of FUDGE you guys were running as FUDGE is very straightforward. It uses four 6-sided dice that generate either +1, -1, or 0 resulting in a roll between -4 to +4. You would need to beat a target number to succeed. There's a spinoff called FATE that relies on hand-written attributes called "aspects" which are far more free form and narrative than would fit cleanly into a video game role-playing engine.

But to answer your question, that type of scenario would be called an "opposed contest" in most RPGs. The difficulty of the catch is the target number (TN) that the two characters are trying to beat with their catching skill. There's usually a "degree of success" (DoS) to determine how well you succeed so even if both characters beat the TN the one with the higher DoS would catch the ball. If they both fail they drop the ball. If they both have an equal score then you could have another opposed contest like "grappling" or something to see who snatches the ball.

Dungeons & Dragons is a very static game. In most scenarios you're dealing with an unchanging number, like the difficulty to hit an opponent is the same every time unless modified somehow. D&D uses a d20 which results in an even bell curve distribution and every +1 bonus is basically 5% chance of success.

Other games based on large dice pools like World of Darkness are about constant opposition. For example you roll to attack and your defender rolls to dodge/defend. In these games you're counting "hits" so 5-6 on a d6 is a hit. A TN 2 would require 2 or more hits. As a result there's more of a sharp increase in failures as a result of higher TNs. So in D&D each increase in the TN is a 5% difficulty bump. But having 1 d6 against a TN of 1 would be a 2/6 chance of success but having 2d6 against a TN of 2 is less than half of that.

al-azad fucked around with this message at 00:36 on Mar 13, 2015

Vermain
Sep 5, 2006



It's basically a matter of determining stat weights (that is, how important each stat is to the specific goal) and the degree of randomness you want your game to have. D&D, for example, uses a 1d20 roll (that is, a roll of a single, 20-sided die) for the majority of its random elements. This creates wild swings in the combat, where your chance of getting a 1 and a 20 are both equal, and you thus have some combat encounters where you obliterate the enemy and others where you're missing every second attack. Using something like, say, 2d20 (two rolls of a 20-sided die) creates more of a Bell curve distribution, meaning that a 1 or a 20 are comparatively much rarer than the "average" roll. This reduces the randomness of the rolls so that you're much less likely to get strings of fantastic/poo poo rolls. It's important to note that neither of these methods are "better." It's entirely about the kind of game you want to make. D&D's 1d20 can be swingy as hell, but it also produces moments of great tension or triumph when the numbers line up the right way. A game that uses 2d20 has less of these moments, but is also less random to deal with and produces fewer moments of frustration where everything keeps missing.

For the kind of system you're trying to make, you'll probably want to establish a basic "outcome range" that will determine what happens when the algorithmic result lands in a specific part of that range. In D&D, attack rolls (that is, a 1d20 + any attack roll bonuses a character has) are made against an enemy's defense defense (basically, the difficulty of actually hitting an opponent). If your attack roll fails to meet the defense number, or the die lands on a 1, it's a miss and no damage is dealt; if it equals or exceeds the defense number, it's a hit and damage is dealt; and if the die lands on a 20, it's a critical hit that deals additional damage.

You can make this more or less granular depending on the degree of complexity you want. You might have it so that, on a 100-point range, a 1-19 is a dropped ball, a 20-39 is a catch but with a speed penalty (or a minor stun or something; you caught the ball, but at an awkward angle), 40-59 is a regular catch, etc. You might have a Catching skill, but also a Footwork skill, with the Catching skill being weighted more for attempting to catch a ball (so that 100% of the value of the Catching skill is added) compared to the Footwork skill (so that only 50% of the value of the Footwork skill is added). These skill values are added to a random roll (again, determine how much randomness you want the player to have to fight against for this part), and an outcome is determined based on where this combined value lands on the established outcome range.

Vermain fucked around with this message at 00:31 on Mar 13, 2015

Omi no Kami
Feb 19, 2014


Is there anything resembling a consolidated list of design patterns for living world AI? I've had this great idea of running the entire world in a low-intensity simulation and using the rendered levels as visual indicators of what's going on in the simulation, but I've had so many problems getting the two systems to work together that I'm starting to wonder if I'm just using a bad design to begin with.

dupersaurus
Aug 1, 2012

Futurism was an art movement where dudes were all 'CARS ARE COOL AND THE PAST IS FOR CHUMPS. LET'S DRAW SOME CARS.'
This is what people use excel for, multiple formulas and lots of sample inputs, and seeing what comes out? And good guides out there for doing that?

I've gone from knowing nothing to knowing something, and it already seems a little better. In the case of one guy going for the ball and another going for a hit, would it be preferred for the TN to be for the catcher (catching vs difficulty + defender); or for the defender to have his own TN (ability to hit vs catcher's agility/strength)?

al-azad posted:

Hmm, I don't know what version of FUDGE you guys were running as FUDGE is very straightforward. It uses four 6-sided dice that generate either +1, -1, or 0 resulting in a roll between -4 to +4. You would need to beat a target number to succeed. There's a spinoff called FATE that relies on hand-written attributes called "aspects" which are far more free form and narrative than would fit cleanly into a video game role-playing engine.

It was standard FUDGE. That straight-forwardness and lack of resolution just annoyed the hell out of me.

Slurps Mad Rips
Jan 25, 2009

Bwaltow!

scissorman posted:

For embedding scripting, isn't lua the normal choice?
Do you know how it compares to your pick?
Another option might be to write/generate your own dsl to keep overhead low.

I don't like Lua. I think it's syntax is gross and its community seems to have doubled down on the creators lovely decisions (~= for !=, when '!' is not even used in the language. or using "~" as the xor operator because oops "^" is the power of operator, oh but oops) and their arguments just sound like a sleazy cacophony of people yelling that jet fuel can't melt steel beams. There's also the issue that most people are using Lua 5.1 in the hopes they can use LuaJIT. And that every Lua is basically different at this point. No two Lua implementations are alike.

I have designed my own language for this, and am working on the spec
I actually used the TinyScheme Spatials post as a 'test' for how the language would work, and my latest iteration looks like this

code:
export level-setup do
  let crash-camp = make-camp
  let crate-camp = make-camp@ crash-camp
  let pirate-camp = make-camp@ crash-camp

  let ship = make-actor:building 'BuildingKind_ServiceDecorRocket --camp crash-camp
  let crate = make-actor:building 'BuildingKind_PirateCrates --camp crate-camp
  let robot = make-actor:building 'BuildingKind_Bust01 --camp crate-camp --position crate
  let pirates = make-actor:agent "TEST" --n 5 --camp pirate-camp

  dialog! ship {
    0 : make-answer "Follow the beacon" --page 1 --tag 'chosen-beacon
        | make-body/answer 'text-goes-here
    1 : make-body "The crate emits a beacon, follow it"
  }

  dialog! crate {
    0 : make-answer "Poke it carefully" --tag 'poked-crate --page false
        |> make-body/answer "The crate is shaking"
  }

  let mission = do
    spawn ship crate pirates
    mark ship
    choose-option 'chosen-beacon |> step-> "Investigate the ship"

    mark-only crate
    choose-option 'poked-crate |> step-> "Investigate the crate"

    despawn crate
    spawn robot
    mark-only robot
    choose-option 'accept-robot |> step-> "Talk to the robot"

    mark-only pirates
    kill pirates |> step-> "Kill the pirates"

    mark-only robot
    page-to robot 2
    open-dialog |> step-> "Talk to robot";
  return mission;
Not shown: vector math or sequence literals
Also not shown: Global scope doesn't exist.
The '|>' is a pipe operator (and it's the *only* operator). I think I may have changed it to just '|' because it's no used anywhere else, really, and piping is one way. Oh and the --name stuff is for named arguments. It's very shell like, with Tcl, Scheme, and a bunch of other languages as inspiration.


But actually going through with it all the way is going to be monumental when I could use mruby and tweak it (mostly build system stuff to get it to work with biicode and CMake)

scissorman
Feb 7, 2011
Ramrod XTreme

dupersaurus posted:

This is what people use excel for, multiple formulas and lots of sample inputs, and seeing what comes out? And good guides out there for doing that?
You can use http://anydice.com/ to run your formulas and look at the resulting probability curves, no need to use excel.

al-azad
May 28, 2009



On the subject of RPGs and probability, keep in mind that people hate random seeds and really obvious back and forth number juggling. Knowing you have a 90% chance to hit and missing twice in a row is possible and nothing will piss off gamers more. If you're going with a heavy tabletop system you need to either make everything opaque to the point where the player knows 100% of the information or totally transparent.

Catgirl Al Capone
Dec 15, 2007

dupersaurus posted:

Messing with a sports idea, so you've got one guy going for a ball, and an optional opponent either going for the ball or going for the guy. The ball is either caught or not (or caught by one guy or the other); the calculation deals with stuff like a catching skill, degree of difficulty of the catch, defender skill, etc. The only systems experience I have like this is from a MUSH awhile back that used FUDGE, which did a lot of yes-or-no actions, but really, screw FUDGE. So some basic reading might be the way to go.

Figuring out the scale of stats is probably another question entirely, but right now I'm assuming 0-100.

A lot of choice and consequence algorithms in RPGs are just dividing stats (or multiplying them by decimals standing in for percentages) and adding them together in a way where the end result can be used to measure the probability of success. So for example if you can "lockpick" a common approach would be to add the character's "Dexterity" divided by, say, 5 and rounded up, with the character's "Lockpick" skill divided by, say, 2, and pick a random number in between 0 and a max range that represents the difficulty of the lock.

So it would look something like this, in pseudocode:

chanceSuccess = (charDex/5)+(charLockpick/2)
rand = random_range(0,lock_difficulty)
IF (rand <= chanceSuccess) THEN { lockpick.succeed() }
ELSE { lockpick.failed() }

There's fancy mathematical ways to figure out what divisors to use to make it happen but when I do this stuff I just fudge them in a spreadsheet until they work the way I want. Generally it's good practice to skew your end results towards success in many cases because stuff like missing every other attack really irks players.

Somfin
Oct 25, 2010

In my🦚 experience🛠️ the big things🌑 don't teach you anything🤷‍♀️.

Nap Ghost

al-azad posted:

On the subject of RPGs and probability, keep in mind that people hate random seeds and really obvious back and forth number juggling. Knowing you have a 90% chance to hit and missing twice in a row is possible and nothing will piss off gamers more. If you're going with a heavy tabletop system you need to either make everything opaque to the point where the player knows 100% of the information or totally transparent.

Players have a visceral gut-hatred of outright missing a target, particularly in single-player games. Which is fair, because outright missing a target combines three things all players hate.

1) The player's action has no impact on the gameworld, and may have been a waste of something precious.

2) The player's action failed and it was their own fault- if they'd done something else, it might have worked.

3) The player's failure was not something they could prevent through better play.

Torchlight 2 did a great job by turning 'miss' into 'fumble' and making the launched attack still do one quarter of its damage and apply all status effects as normal- and that fumble chance could be mitigated through stat investment. You still slam the attack button because no matter what, you're going to do something, even if the attack is the 'failure' version.

rarbatrol
Apr 17, 2011

Hurt//maim//kill.

Somfin posted:

Players have a visceral gut-hatred of outright missing a target, particularly in single-player games. Which is fair, because outright missing a target combines three things all players hate.

1) The player's action has no impact on the gameworld, and may have been a waste of something precious.

2) The player's action failed and it was their own fault- if they'd done something else, it might have worked.

3) The player's failure was not something they could prevent through better play.

Torchlight 2 did a great job by turning 'miss' into 'fumble' and making the launched attack still do one quarter of its damage and apply all status effects as normal- and that fumble chance could be mitigated through stat investment. You still slam the attack button because no matter what, you're going to do something, even if the attack is the 'failure' version.

Yeah, I think a lot of cases where hit-or-miss attacks happen, a scaling percentage of damage reduction, where for example rolling a 100 would be dealing full damage and rolling a 1 would be dealing no damage, would maybe be more predictable and less frustrating. You could totally still rationalize it as a miss/dodge, too.

AntiPseudonym
Apr 1, 2007
I EAT BABIES

:dukedog:

StickFigs posted:

In that case the subscription model seems like a lovely deal unless you only plan on using Maya for 25 months then never again.

Yeah, I hate the current move towards subscription services. Got a cash flow problem and nearing the end of your licence? Too bad, all that money you've pumped into it means gently caress all now!

Although that said, Maya LT is pretty good value. In AUD (And we get hosed for pricing here in Australia) it's $340 a year compared to Maya full with is $2070 a year or $5175 outright. So basically you could be on a Maya LT licence for over 15 years before you approach the price of buying the full version outright. Unless you rely on rendering, plugins or one of the various random things Maya LT doesn't have, in which case you're either left hoping for an update that includes what you need or just straight out of luck. Although it does have MEL scripting now which opens it up a lot!

I've been using it for a little while now (Learning it from the ground up after moving from 3DS MAX and then a short, frustrating stint with Blender), and so far it seems to do everything I need to create game assets. I'd definitely recommend it, especially when LT2016 comes out.

unlurked
Jan 20, 2006

Set phasers to HURT!

SAHChandler posted:

yeah, I wanted to ask was if the speed was a serious negative factor.

If your goal is "allow plain text things with arbitrary game logic to be loaded in runtime" there's nothing faster than LuaJIT, plus the FFI/C POD access is also out of this world (without using VMs-as-platforms like Mono or the JVM). V8 may come close at a higher RAM/complexity cost. There's also more esoteric stuff like RPython which I haven't investigated.

Leonard Ritter wrote a Scheme-ish language that compiles (in runtime) down to Lua(JIT) and he's using that for his game NOWHERE: https://twitter.com/paniq/status/546478934922371074. Dunno if/when he plans to release it, but a basic s-expression translator is easy to do.

Moving on to non-JIT there's a lot more interpreters to choose from. S7 Scheme was impressive and easily 10-100x faster than TinyScheme depending on the task, with a much better embedding API. I should have gone with S7 but it's too late now.

Super cool to see people try the same concept with other languages! It doesn't look bad at all in Lua.

al-azad
May 28, 2009



Somfin posted:

Players have a visceral gut-hatred of outright missing a target, particularly in single-player games. Which is fair, because outright missing a target combines three things all players hate.

1) The player's action has no impact on the gameworld, and may have been a waste of something precious.

2) The player's action failed and it was their own fault- if they'd done something else, it might have worked.

3) The player's failure was not something they could prevent through better play.

Torchlight 2 did a great job by turning 'miss' into 'fumble' and making the launched attack still do one quarter of its damage and apply all status effects as normal- and that fumble chance could be mitigated through stat investment. You still slam the attack button because no matter what, you're going to do something, even if the attack is the 'failure' version.

For their Star Wars game Fantasy Flight implemented a similar system with their advantage dice. You can fail but achieve some level of success (like missing an attack but the enemy drops their guard dodging it) or succeed miserably (you open the locked door but you tools blow up). Having played tabletop games for 20+ years I'm with you there, I-roll-you-roll binary combat is frustrating as hell. Compound that in a video game since you don't have a human player to fudge the numbers or scale combat.

Catgirl Al Capone
Dec 15, 2007

I think dodging/missing is fine but it needs to actually be considered part of rock-paper-scissors mechanics. If you aren't guaranteed to hit something with attacks or make a good pass that's caught, it's good to give the player tools to brute-force 100% success whether they eat into the player's available resources or are a unique strength of a character archetype.

Bhodi
Dec 9, 2007

Oh, it's just a cat.
Pillbug
Something else to consider when looking at a frequency graph and trying to decide which of the myriad options to pick - Consider your game world. A more "heroic" system will have it skewed to either end, with a lot of great successes and blunders. A more "realistic" world might be bulged in the middle (like a 2d6) for outright success/failure being rare and lots of average results.

al-azad
May 28, 2009



The original XCOM is worth dissecting as it used this simulated ballistics system. Instead of a binary hit/miss it would gauge your character's skill and modify the trajectory of the projectile based on it. So even if your dude sucked rear end at shooting it was basically impossible to miss point blank and larger targets were easier to hit than smaller ones.

And of course this leads to hilarious blunders like your bullet passing over the enemy's shoulder to strike your ally in the head or something.

The Cheshire Cat
Jun 10, 2008

Fun Shoe
Something interesting City of Heroes did with regards to hitting/missing was that it had a streakbreaker for players. The normal chance to hit ranged between 5-95%, but missing more than a certain number of times in a row (based on the chance you had to hit with those attacks) would guarantee that your next attack hits. So at a 95% chance to hit, one miss meant that your next attack would hit, guaranteeing at least a 50% hit rate regardless of what your luck was like. At 80% it'd trigger after 2 misses in a row, 60% 3 misses in a row, etc. It also counted multi-target attacks as individual hits/misses, so a big fireball attack with a 95% hit chance would always hit at least half the enemies in its AoE.

It's a useful anti-frustration feature that means that higher odds of hitting will actually score more hits regardless of how the dice rolls turn out. Especially if you have a system like CoH that caps your hit rate below 100% so even your most accurate attacks can still miss.

al-azad posted:

The original XCOM is worth dissecting as it used this simulated ballistics system. Instead of a binary hit/miss it would gauge your character's skill and modify the trajectory of the projectile based on it. So even if your dude sucked rear end at shooting it was basically impossible to miss point blank and larger targets were easier to hit than smaller ones.

And of course this leads to hilarious blunders like your bullet passing over the enemy's shoulder to strike your ally in the head or something.

X-Com used kind of a weird system because it actually had a double-roll for attacks; the chance to hit was rolled directly and if that check passed, then the shot would always go dead center on your target no matter how far away it was. If it failed, then it would randomly deviate from the center, but the amount it deviated was based on the original chance to hit, so higher accuracy would mean a smaller radius. The net effect of this was that your odds of hitting something are actually higher than what's stated on the UI because with a high enough accuracy and low enough distance, misses can still end up hitting your original target anyway.

The Cheshire Cat fucked around with this message at 16:00 on Mar 13, 2015

sturgeon general
Jun 27, 2005

Smells like sushi.
There's a new CryptoLocker derivative that targets video game specific files, including Unity/Unreal Engine project files. Back your poo poo up and disable Flash.

http://labs.bromium.com/2015/03/12/achievement-locked-new-crypto-ransomware-pwns-video-gamers/

e: apparently it's not UE4 but UDK that's targeted, but that can change

sturgeon general fucked around with this message at 17:30 on Mar 13, 2015

Zaphod42
Sep 13, 2012

If there's anything more important than my ego around, I want it caught and shot now.

al-azad posted:

Other games based on large dice pools like World of Darkness are about constant opposition. For example you roll to attack and your defender rolls to dodge/defend. In these games you're counting "hits" so 5-6 on a d6 is a hit. A TN 2 would require 2 or more hits. As a result there's more of a sharp increase in failures as a result of higher TNs. So in D&D each increase in the TN is a 5% difficulty bump. But having 1 d6 against a TN of 1 would be a 2/6 chance of success but having 2d6 against a TN of 2 is less than half of that.

That's purely oWod (old world of darkness)

Modern WOD rules try to speed up the game a bit, so they have less contested rolls. Rolling to attack means you subtract the defender's dodge/defense from the number of dice you roll, rather than rolling and comparing successes. Its faster that way. :eng101:

nWoD also has a fairly important re-roll mechanic. And they use D10s, not D6s. It makes for a much more interesting and dramatic roll.

Its 3/10 are a success in nWoD, not 2/6 like oWoD. And 1/10 of those trigger a cascading re-roll, which can have another success or even another re-roll success, which can cascade infinitely.

Its actually possible to succeed against any arbitrary TN with a single die roll in nWOD (unless its a "chance die" where you had 0 or less). This makes calculating the exact odds fairly complicated, but you can ballpark it pretty easy.

To get a TN2 with 2D10 its the odds of both getting a success combined with the odds of either getting a re-roll success and then rolling another success on the second roll.

al-azad
May 28, 2009



And then you have bullshit Warhammer 40K rules where you roll to see if your attack hits, roll to see if your weapon pierces the enemy's armor, then your opponent rolls to see if they shrug off the damage.

Don't study Warhammer rules if you're designing a game, thanks.

Zaphod42
Sep 13, 2012

If there's anything more important than my ego around, I want it caught and shot now.

al-azad posted:

And then you have bullshit Warhammer 40K rules where you roll to see if your attack hits, roll to see if your weapon pierces the enemy's armor, then your opponent rolls to see if they shrug off the damage.

Don't study Warhammer rules if you're designing a game, thanks.

40k's rules are probably a good lesson in what not to do.

Omi no Kami
Feb 19, 2014


The Cheshire Cat posted:

X-Com used kind of a weird system because it actually had a double-roll for attacks; the chance to hit was rolled directly and if that check passed, then the shot would always go dead center on your target no matter how far away it was. If it failed, then it would randomly deviate from the center, but the amount it deviated was based on the original chance to hit, so higher accuracy would mean a smaller radius. The net effect of this was that your odds of hitting something are actually higher than what's stated on the UI because with a high enough accuracy and low enough distance, misses can still end up hitting your original target anyway.

Speaking of X-Com, I find the fact that Enemy Unknown predetermines chance-to-hit to be incredibly frustrating. Once you realize that the percent to hit is at least a partially made-up figure, a lot of the tension gets sucked out.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

Omi no Kami posted:

Speaking of X-Com, I find the fact that Enemy Unknown predetermines chance-to-hit to be incredibly frustrating. Once you realize that the percent to hit is at least a partially made-up figure, a lot of the tension gets sucked out.

How do you mean made-up? The game will happily give you a breakdown of exactly how your chance-to-hit is determined (there's a little icon you can click on when aiming at a target). You get bonuses for flanking, or penalties if the unit is in half or full cover, and some units are just naturally harder to hit (e.g. floaters) which manifests as a blanket aim penalty. And there's stuff like scopes, combat drugs, aim penalties on the sniper's snapshot, the Sectoid's psychic buff spell, etc.; all that will appear on the sheet if you look.

BabelFish
Jul 20, 2013

Fallen Rib

TooMuchAbstraction posted:

How do you mean made-up? The game will happily give you a breakdown of exactly how your chance-to-hit is determined (there's a little icon you can click on when aiming at a target). You get bonuses for flanking, or penalties if the unit is in half or full cover, and some units are just naturally harder to hit (e.g. floaters) which manifests as a blanket aim penalty. And there's stuff like scopes, combat drugs, aim penalties on the sniper's snapshot, the Sectoid's psychic buff spell, etc.; all that will appear on the sheet if you look.

And then you miss that 90% hit chance shot three times in a row and lose your team you've spent hours building. There's really nothing more infuriating in gaming.

ToxicSlurpee
Nov 5, 2003

-=SEND HELP=-


Pillbug

BabelFish posted:

And then you miss that 90% hit chance shot three times in a row and lose your team you've spent hours building. There's really nothing more infuriating in gaming.

Or a single Thin Man plinks the rookie for one point of damage who promptly panics and guns down your severely injured star sniper which causes the heavy to panic which then causes the rest of the squad to panic. One of them runs two squares into cover but this activates a pod of mutons who proceed to stomp your squad into paste.

...

Not that I've had that exact scenario happen more than once.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

BabelFish posted:

And then you miss that 90% hit chance shot three times in a row and lose your team you've spent hours building. There's really nothing more infuriating in gaming.

Well, yeah, that's infuriating, but it's also only a 1 in 1000 chance, so it's probably going to happen to a fair percentage of complete playthroughs. That doesn't make the stats made up, though. Just random.

Omi no Kami
Feb 19, 2014


TooMuchAbstraction posted:

How do you mean made-up? The game will happily give you a breakdown of exactly how your chance-to-hit is determined (there's a little icon you can click on when aiming at a target). You get bonuses for flanking, or penalties if the unit is in half or full cover, and some units are just naturally harder to hit (e.g. floaters) which manifests as a blanket aim penalty. And there's stuff like scopes, combat drugs, aim penalties on the sniper's snapshot, the Sectoid's psychic buff spell, etc.; all that will appear on the sheet if you look.

I mean the way it precomputes the result of every shot based on the map seed as protection against save-scumming. When I see that a shot has a 75% chance to hit I want to feel like I'm rolling the dice when I commit to the shot, but once I figured out how it was computing results, it felt more like I was playing russian roulette- when my sniper has a 95% chance to hit and he misses, my reaction isn't "Man, what are the odds of that," it's "Man, I should've had somebody else shoot first and use up that result".

Sigma-X
Jun 17, 2005

Omi no Kami posted:

I mean the way it precomputes the result of every shot based on the map seed as protection against save-scumming. When I see that a shot has a 75% chance to hit I want to feel like I'm rolling the dice when I commit to the shot, but once I figured out how it was computing results, it felt more like I was playing russian roulette- when my sniper has a 95% chance to hit and he misses, my reaction isn't "Man, what are the odds of that," it's "Man, I should've had somebody else shoot first and use up that result".

Yeah this poo poo was infuriating. The notion of if I die to bad luck I need to roll back to an earlier save and move to a different location so that the random shot gets seeded differently rather than just re-rolling was annoying.

I get that they wanted to avoid save scumming but this wasn't communicated to the player in any useful way.

Peewi
Nov 8, 2012

Sigma-X posted:

Yeah this poo poo was infuriating. The notion of if I die to bad luck I need to roll back to an earlier save and move to a different location so that the random shot gets seeded differently rather than just re-rolling was annoying.

I get that they wanted to avoid save scumming but this wasn't communicated to the player in any useful way.

I'm not sure if it was in Enemy Unknown, but Enemy Within actually has an option that makes it use a new seed when reloading a save.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

Omi no Kami posted:

I mean the way it precomputes the result of every shot based on the map seed as protection against save-scumming. When I see that a shot has a 75% chance to hit I want to feel like I'm rolling the dice when I commit to the shot, but once I figured out how it was computing results, it felt more like I was playing russian roulette- when my sniper has a 95% chance to hit and he misses, my reaction isn't "Man, what are the odds of that," it's "Man, I should've had somebody else shoot first and use up that result".

Oh. That's not precomputing, that's just saving the RNG seed in the save file.

Kind of odd that it's not an option though; the Civilization games have made "save RNG seed in savefile" be a toggle-able option so you can savescum if you want to, and they're made by the same guys.

EDIT: ^ well there you go

Zaphod42
Sep 13, 2012

If there's anything more important than my ego around, I want it caught and shot now.

Sigma-X posted:

Yeah this poo poo was infuriating. The notion of if I die to bad luck I need to roll back to an earlier save and move to a different location so that the random shot gets seeded differently rather than just re-rolling was annoying.

I get that they wanted to avoid save scumming but this wasn't communicated to the player in any useful way.

Why is it infuriating? It just means that the game is more based on strategy than repetition. Some things are still random so they're slightly unpredictable, but if a certain strategy fails, doing the same thing over again and just hoping the RNG works for you this time is weaksauce. You should actually try doing something different.

Although I guess that doesn't really work if you savescum every turn, but... don't do that? XCOM is about losing some mans here and there :cheeky:

Anything on a computer isn't truly random anyways :colbert:

al-azad
May 28, 2009



ToxicSlurpee posted:

Or a single Thin Man plinks the rookie for one point of damage who promptly panics and guns down your severely injured star sniper which causes the heavy to panic which then causes the rest of the squad to panic. One of them runs two squares into cover but this activates a pod of mutons who proceed to stomp your squad into paste.

...

Not that I've had that exact scenario happen more than once.

This is fine. It's improbable but possible and when it happens you just deal with it. The real issue with Enemy Unknown is...


TooMuchAbstraction posted:

How do you mean made-up? The game will happily give you a breakdown of exactly how your chance-to-hit is determined (there's a little icon you can click on when aiming at a target). You get bonuses for flanking, or penalties if the unit is in half or full cover, and some units are just naturally harder to hit (e.g. floaters) which manifests as a blanket aim penalty. And there's stuff like scopes, combat drugs, aim penalties on the sniper's snapshot, the Sectoid's psychic buff spell, etc.; all that will appear on the sheet if you look.

Enemy Unknown's RNG is based on a seed dynamically generated by your actions and it doesn't reset when you reload. Basically you can repeat the same action and get the same result every single time but if you reload and change a single thing, even if it's reloading before moving instead of after, you'll get a different result. Because your actions are predetermined your attributes end up feeling like an illusion. You can fail multiple times despite high probability and it's like a kick in the dick.

I'm pretty sure they implemented this in order to cut back on save scumming but that's what iron man mode is for. The game gives the option to eliminate save scumming but subsequently punishes save scumming. People hated the RNG so much that the Second Wave patch/DLC unlocks "save scumming" mode which resets the seed on a reload.

Zaphod42 posted:

Why is it infuriating? It just means that the game is more based on strategy than repetition. Some things are still random so they're slightly unpredictable, but if a certain strategy fails, doing the same thing over again and just hoping the RNG works for you this time is weaksauce. You should actually try doing something different.

Although I guess that doesn't really work if you savescum every turn, but... don't do that? XCOM is about losing some mans here and there :cheeky:

Anything on a computer isn't truly random anyways :colbert:

It's not actually encouraging you to make a different strategy, though. You can literally move 2 steps instead of 3 and result in a seed package that obliterates the enemy in one shot and results in your entire team not getting hit. Or you could move 4 steps, miss, and everyone dies in a horrific scenario. Your attributes and equipment mean nothing when the seed is based on your actions.

On the hilarious side, you could basically relive Edge of Tomorrow/Groundhog Day by reloading your saves every time. A team of naked rookies could take down an enemy base or something. That shouldn't happen under any circumstances but it does because the seed package only cares about your actions.

al-azad fucked around with this message at 22:56 on Mar 13, 2015

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

al-azad posted:

It's not actually encouraging you to make a different strategy, though. You can literally move 2 steps instead of 3 and result in a seed package that obliterates the enemy in one shot and results in your entire team not getting hit. Or you could move 4 steps, miss, and everyone dies in a horrific scenario. Your attributes and equipment mean nothing when the seed is based on your actions.

On the hilarious side, you could basically relive Edge of Tomorrow/Groundhog Day by reloading your saves every time. A team of naked rookies could take down an enemy base or something. That shouldn't happen under any circumstances but it does because the seed package only cares about your actions.

Um, you have a fundamental misunderstanding somewhere in there. I think the problem is that you're expecting a deterministic state machine (i.e. a computer) to come up with different results given the same inputs, which is only going to happen if a cosmic ray strikes your computer in the midst of computations (or some similar external factor interferes). So the RNG depends on past events. So what?

The problem here is that you're pulling back the curtains and revealing an odd behavior that only happens when you start cheating. Weird things happen when you cheat in any game. Super Mario Bros' scrolling stops working properly if you walk through walls. You can get "cutscene-locked" in Super Metroid if you interfere with the final boss fight in certain ways. Goldeneye glitches the gently caress out if you rapidfire rockets. These things aren't de facto evidence of bad game design. They're just you expecting the game to behave itself when it's operating way outside of spec.

Spatial
Nov 15, 2007

TooMuchAbstraction posted:

Um, you have a fundamental misunderstanding somewhere in there. I think the problem is that you're expecting a deterministic state machine (i.e. a computer) to come up with different results given the same inputs, which is only going to happen if a cosmic ray strikes your computer in the midst of computations (or some similar external factor interferes). So the RNG depends on past events. So what?
That's an incredible over-generalisation. From a human perspective computers can generate sequences indistinguishable from randomness very easily. Their basic nature is of no practical relevance.

The fact is, the game actually is designed just like he said, and it's purely intentional for better or worse. I think it even directly tells you this. It isn't in any way analogous to glitching your way into violating game logic invariants.

SweetBro
May 12, 2014

Did you read that sister?
Yes, truly a shitposter's post. I read it, Rem.

Omi no Kami posted:

Speaking of X-Com, I find the fact that Enemy Unknown predetermines chance-to-hit to be incredibly frustrating. Once you realize that the percent to hit is at least a partially made-up figure, a lot of the tension gets sucked out.

What the hell are you talking about?

It saves the RNG seed for each level to prevent save scumming (reloading until you hit your target). You can disable this in the options menu. This however leads to different types of save related abuse, if you know your next RNG value is high you can tell a soldier with a low chance to hit to attack, knowing that they will hit. Likewise if it's low you can either shoot with your high aim soldier to still hit, or you can end your turn knowing that the first enemy attack will likely miss (unless they have %100 aim).

Omi no Kami
Feb 19, 2014


Apparently you can disable it now, that option wasn't in place when I played, but my point was that as a player, realizing that abilities + calculated chance to hit were not the sole determiners of a shot's accuracy gave the entire thing an unpleasantly artificial feel for me.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

Omi no Kami posted:

Apparently you can disable it now, that option wasn't in place when I played, but my point was that as a player, realizing that abilities + calculated chance to hit were not the sole determiners of a shot's accuracy gave the entire thing an unpleasantly artificial feel for me.

So what would you expect to have happen when the game says you have, say, a 75% chance to hit?

al-azad
May 28, 2009



TooMuchAbstraction posted:

Um, you have a fundamental misunderstanding somewhere in there. I think the problem is that you're expecting a deterministic state machine (i.e. a computer) to come up with different results given the same inputs, which is only going to happen if a cosmic ray strikes your computer in the midst of computations (or some similar external factor interferes). So the RNG depends on past events. So what?

Yes? Other games do it. The whole point of random probability is to generate different results using the same actions. I know computers can't actually be random but other strategy games have worked just fine simulating random probability without generating seed packages from player input. The developers realized this and patched in new options to make the game feel more randomized.

But there are several reasons beyond the RNG why EU is a poorly designed game. A large part of the strategy is understanding how the engine handles vision and movement because enemies always have an advantage over you. The other reason is that there are no mitigating factors to its mechanics. We just discussed how the original XCOM has a two-step process to determining hits but EU is very binary in its results. The most popular mod Long War adds in damage reduction which actually gives a tangible benefit to using cover.

al-azad fucked around with this message at 00:56 on Mar 14, 2015

Adbot
ADBOT LOVES YOU

Omi no Kami
Feb 19, 2014


I'm not criticizing their implementation on a technical level, as I think it's reasonable to keep players from save-scumming the difficulty out of the game, but from a player perspective, if the game tells me that it's taking so many factors into account and concluding that I have a 75% chance of hitting, I expect it to roll the dice when I fire, and generate a result based purely on the factors it considered to get 75% in the first place. The idea that the number of steps I take, whether I reload, and the order I have my soldiers fire in has an effect on who hits and who misses is a very big immersion-breaker for me.

It may be the case that the random seed is perfectly fair, but from the player's end it doesn't feel fair, once you know about it, it feels extremely artificial in a way that makes me blame the game when I miss.

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply