[HN Gopher] Learning Machine Learning for Game Development
       ___________________________________________________________________
        
       Learning Machine Learning for Game Development
        
       Author : atg_abhishek
       Score  : 185 points
       Date   : 2021-03-20 13:49 UTC (9 hours ago)
        
 (HTM) web link (ai.googleblog.com)
 (TXT) w3m dump (ai.googleblog.com)
        
       | correct_horse wrote:
       | I'm looking forward to the next installment "Machine Learning
       | Machine Learning for game development," the blog article written
       | instructing general AI on how to generate better ML models for
       | video games.
        
       | CJefferson wrote:
       | I'm in this research area, it's facinating, but also (like many
       | things in AI) easy to get wrong.
       | 
       | The trickiest bit is deciding exactly what you want your AI to
       | optimise for -- If you want a game where "anyone can win", you
       | end up with coin toss. If you want a game where "skill is
       | everything", you can accidentally end up with "who can click
       | fastest".
       | 
       | On a project I recently worked on (and I'm writing up), we ended
       | up on our 6th or 7th "optimisation function" before we found
       | something where the "AI optimal" seemed actually enjoyable to
       | play.
       | 
       | Of course, if you already have a fairly fixed game, it can be
       | easier to optimise constants, as you already know your target --
       | but people have also been doing that for a long time previously.
        
         | Quarrelsome wrote:
         | I feel like some of these questions are a bit backwards. Isn't
         | it better to give the model an arena to play within and try to
         | make all of the options _viable_? I.E. Balance is maintained
         | when the average of the weapons the gladiators choose to take
         | into the arena are diverse and have less bearing on the win
         | outcome?
         | 
         | This means that rather focusing on what is merely broken one is
         | focusing on both ends, what is broken and what is useless,
         | attempting to push both towards an average of usability.
         | 
         | Personally it astonishes me that groups like WOTC (who produce
         | MTG) don't appear to be using such models given the quantity of
         | mistakes they seem to continue to make in game design.
        
           | vladTheInhaler wrote:
           | Attempting to optimize the card generation process, or deck
           | building, or just play itself seem like _unbelievably_
           | difficult problems. Some effort at least has been made in the
           | first part (see RoboRosewater) but the other two seem almost
           | intractable, given the combinatorial explosion of
           | possibilities in deckbuilding, the incredibly nonlinear
           | interactions between cards (Splinter Twin is a 1 /10 card,
           | Pestermite is maybe 3/10, Splinter Twin + Pestermite
           | literally wins the game on the spot).
        
           | meheleventyone wrote:
           | For something like a deck building game, if all decks are
           | viable (competitive) then there may as well be no deck
           | building component. In fact a game like that is probably a
           | pretty muddy brown color in terms of card variety. That would
           | adversely affect the business model of selling new cards as
           | well.
           | 
           | Desirable qualities in a game in terms of how it is balanced
           | are way more complex than just every option being viable and
           | leading to an even win rate against a similarly skilled
           | opponent.
        
         | ericjang wrote:
         | Interesting! Is there some kind of meta-objective for "AI
         | optimal" that could have replaced the 6 or 7 iterations you did
         | with human R&D? For instance, if you had real human playtesters
         | interacting with the prototypes, is there some signal you could
         | extract to measure that it's "good"?
        
           | CJefferson wrote:
           | The problem is AIs are very good at optimising what you asked
           | them for, rather than what you meant to ask for, and figuring
           | out what you want is super hard :)
           | 
           | As a simple example:
           | 
           | * Start by optimising "players can always do something on
           | their turn" -- but that just ends up with everyone always
           | having exactly one thing they can do (no choice).
           | 
           | * So then say "give players more things to do each turn" --
           | but then they end up being able to do everything every turn
           | (the game gives them too much 'money' (still not really a
           | choice)
           | 
           | * OK, so we want to force players to make a choice -- so we
           | say "No, give players as much choice as possible, but make
           | sure if they choose an option it blocks off others (in
           | practice, make as many sets of maximal tasks as possible)" --
           | but then the AI will make sure every turn every player can do
           | (for example) exactly 3 out of 6 things (any 3), and make
           | sure no matter how well or badly they play they still always
           | get to choose 3 from 6, so the game doesn't really progress,
           | or vary.
           | 
           | So, what we want is choice, but also variability, and
           | progress, and players to feel like they are effecting the
           | game, but also don't let one player run away too early, but
           | also don't make it just "feel random who wins", etc.
        
         | YeGoblynQueenne wrote:
         | >> The trickiest bit is deciding exactly what you want your AI
         | to optimise for -- If you want a game where "anyone can win",
         | you end up with coin toss. If you want a game where "skill is
         | everything", you can accidentally end up with "who can click
         | fastest".
         | 
         | In Magic: the Gathering this balancing act is achieved by a set
         | of constantly changing "environments" (sets of cards) that are
         | updated every few months, when a new set of cards is published.
         | Sets "rotate" in and out of the various environments and
         | there's a few where it's legal to play with all cards ever
         | printed (excluding some that are banned or restricted for being
         | OP- Over Powered).
         | 
         | When a new set rotates (its cards become legal) in a given
         | environment, there will be a reshuffle of the balance of power
         | between already-established decks, that now acquire new cards
         | or lose cards they needed, and some new strategies become
         | available resulting in new decks being designed. Eventually the
         | dust settles and the "tier one" decks (the ones that win the
         | most) are found. Then tournament play in particular becomes a
         | rock-paper-scissors affair, until the next update.
         | 
         | In some of the environments were all cards from all sets are
         | legal (again, minus the ones in the banned or restricted lists)
         | games indeed often come down to a coin toss: the player who
         | goes first wins (in one turn, through some OP combo,
         | typically).
         | 
         | I suspect that a perfectly balanced game is impossible to have
         | and would probably be boring even if it was possible to have
         | it. An element of creativity with constantly updated design
         | parts, like in M:tG is probably the best one can do.
        
           | vvanders wrote:
           | Perfectly balanced games are plentiful, take rock, paper,
           | scissors as an example.
           | 
           | What makes those games interesting is the concept of Yomi[1]
           | and learning to read an opponent. There's a decent amount of
           | literature in the fighting game space and a bunch of other
           | genres overlap as well.
           | 
           | I remain pretty skeptical of ML being a primary tool here
           | since a lot of Yomi is psychological and not necessarily an
           | optimization problem.
           | 
           | [1] https://www.gamasutra.com/blogs/CalebCompton/20190211/336
           | 365...
        
             | philipov wrote:
             | "Nerf rock" - Scissors
        
         | adkadskhj wrote:
         | Personally, i'd like to see AI used for "simple" things, not
         | often tied to the core gameplay loop itself. Ie conceptually if
         | you could tie the right gameplay components to an RNG function
         | then the user could get new/unexpected experiences for a longer
         | time. The problem is RNG often makes crap outputs.
         | 
         | I'd be curious to see ML take this problem. I imagine the
         | examples are limitless, but one that comes to mind might be
         | procedural worlds. Rather than tuning procedural worlds around
         | seed values, what would it look like if we try to get an ML to
         | craft the worlds? Procedurally generated worlds often have that
         | feeling. Things don't make sense, etc. I imagine ML could make
         | some far more diverse patterns that are both interesting and
         | fun.
         | 
         | I'd like to see this pattern of "informed RNG" in a lot of
         | things. Skyrim with NPC patterns to feel a bit more authentic.
         | Etc.
         | 
         | I'm less interested in the classic AI dreams inside games, as
         | it seems far out and less gamey. But our current games with
         | informed RNG? That sounds.. neat.
        
           | Jasper_ wrote:
           | ML is a system that takes a large data set, and an error
           | function, and finds a generated output that minimizes the
           | loss. What data set and error function are you proposing for
           | "RNG"?
        
             | matsemann wrote:
             | That's a wrong simplification of ML. Take RL for instance.
             | 
             | And the parent already explained a concept: generating
             | maps. It could still have an RNG as the base (noise
             | function over something), but then use ML to place elements
             | based on existing human-made maps.
        
             | malka wrote:
             | You feed it rng created world that were curated by humans.
        
           | jonbaer wrote:
           | I think you are right. There are SO many small mini games
           | inside of nearly all RTS games which AI has yet to actually
           | conquer, I will give another simple example, given a random
           | map (and resources) identify chokepoints. As a human this is
           | a huge clue on how to go about a game strategy (policy) but I
           | have yet to find an AI do this (or optimize that part). From
           | what I gather most time is spent on actually optimizing
           | random build orders and modifying them along the way.
        
       | fartcannon wrote:
       | If anyone is having problems loading the page, noscript/disabling
       | javascript will prevent it from displaying a white-only screen.
        
       | DethNinja wrote:
       | What if instead of spending time to train the ML model they just
       | made a dummy client with it's own simple probabilistic state
       | machine or behaviour tree to balance the game?
       | 
       | How much time and resources would be spent for above mentioned
       | approach compared to ML approach?
       | 
       | I think due to statistical nature of ML, it is seen as kind of an
       | hammer to every problem that might be solved statistically(which
       | there are lots of them) but it might not be the most effective
       | use of engineering resources.
        
         | Dzugaru wrote:
         | Anecdotally: I've never seen a "simple state machine" or
         | "simple behaviour tree" in game AI. We've recently started
         | using deep reinforcement learning for our games and its almost
         | like a miracle how simple, effective and scalable the system
         | is. There are some mentioned problems like designing rewards
         | for player enjoyment, but its definitely got a massive
         | reduction in engineering effort.
        
           | Jasper_ wrote:
           | > Anecdotally: I've never seen a "simple state machine" or
           | "simple behaviour tree" in game AI.
           | 
           | That's effectively what game AIs are, today. Users want an AI
           | they can model and simulate in their head, and isn't too
           | brutal of a challenge. Today's machine learning cannot
           | provide a model like that.
        
             | summerlight wrote:
             | The whole point of this research is to early study on
             | unknown aspects of game's design and its consequence on
             | user behaviors and game balance. AI should be able to find
             | and exhibit game play unexpected to the designer, which is
             | not easily achievable with a tight control given to game
             | designers. It's more of systematic state space exploration,
             | not making AI fun to play with.
        
       | wealthyyy wrote:
       | Statistics nah?
        
       | vogg wrote:
       | People always pick these strategy games to use AI on. I would
       | love to see someone do more of a first person shooter, or a
       | Mordau type game. I'm sure it would crush real players but would
       | be interesting to see two AI's compete.
        
       | sabujp wrote:
       | was hoping this game would be in the play store
        
       | thurn wrote:
       | This is super cool, but like the other deepmind projects it's a
       | bit frustrating. I've got nothing against "we did something hard
       | with AI and it worked well", but would greatly prefer it to be
       | followed with "... and we're making this available as something
       | you can use too!"
        
         | b3kart wrote:
         | It's not a DeepMind project. The authors are on the Stadia
         | team.
        
       | naringas wrote:
       | the next civilization game _HAS TO_ use a deep learning based AI.
       | it. simply. must.
        
       | [deleted]
        
       | atum47 wrote:
       | I got a introduction to ML back in college (going through basic
       | Algorithms) and I went straight to use them in game dev. I think
       | it's a fascinating area.
        
       | root_axis wrote:
       | I'd love to see this type of work applied to 4X grand strategy
       | games where the AI has historically been pretty terrible and
       | forces the developers to ramp up difficulty by giving the AI
       | direct material advantages for a skilled player to overcome.
        
       | sillysaurusx wrote:
       | One really cool aspect of this:
       | 
       |  _For the actual game state representation that the model would
       | receive as input, we found that passing an "image" encoding to
       | the CNN resulted in the best performance, beating all benchmark
       | procedural agents and other types of networks (e.g. fully
       | connected)._
       | 
       | It sounds like they literally decompose the game screen into
       | inputs. E.g. in FPS games, your health is often displayed in the
       | exact same spot; it passes a screenshot of that into the network.
       | 
       | Or maybe not. Maybe they decode the game state into an "image" in
       | the sense that health is represented as a single pixel that
       | ranges from RGB 0,0,0 to RGB 255,255,255. That would make more
       | sense, but it's also slightly less exciting. Theoretically the
       | model should be able to infer what health means simply by having
       | enough experience, even if it's a more complex representation
       | like Arabic numerals rather than a handcrafted input.
       | 
       | Anyone know if there are any other details, like model weights
       | (ha ha, not likely), an architecture diagram, a paper, or some
       | code snippet from some prototype that the researchers used for
       | inspiration? The "image" representation is really quite
       | interesting to me, since I hadn't thought about feeding data to
       | networks that way. Theoretically a GAN could learn a thing or two
       | about the world from having this sort of "image" input too.
        
       | kevinstubbs wrote:
       | Cool to see this. I and surely many others in game development
       | independently thought of doing this 5+ years ago. Fascinating to
       | think that no matter how much software the world writes, we will
       | keep finding entirely new ways to add value by writing even that
       | much more code.
        
       | WORLD_ENDS_SOON wrote:
       | This sort of research is maybe less flashy than say using machine
       | learning to automatically generate game assets from photos, but I
       | think this sort of computer-aided game design is possibly the
       | biggest way machine learning will transform video games. As games
       | are becoming bigger and more complicated, the problem of tuning
       | various gameplay parameters explodes exponentially. And, this
       | sort of tuning can have a huge effect on player retention and
       | overall game quality.
       | 
       | In this research the machine learning is being used to balance
       | the game across different asymmetric strategies (different decks
       | in the card game), but you could imagine using similar techniques
       | for balancing and tuning content for single player games as well.
       | Once you have a reasonable model of the player's behavior, you
       | can do all sorts of automatic tuning like balancing the
       | difficulty of jumps in a platformer, tuning enemy positions in an
       | FPS, etc.
        
       | Jabbles wrote:
       | Is this from the part of Stadia that got cancelled? It sounds
       | genuinely innovative and seems astonishing that they would back
       | out of game development.
       | 
       | Or is this what they meant when they said they would be
       | "concentrating on Stadia as a platform"?
        
       | sfjailbird wrote:
       | The most obvious use of ML in this context would be to predict
       | player actions in multiplayer games. Most such games extrapolate
       | the actions of remote players in order to give the illusion that
       | there is no lag between updates. I bet for many situations, a
       | good ML implementation could make this work almost flawlessly. No
       | idea if anyone is doing this yet.
       | 
       | Also, the headline is wrong: It's 'Leveraging Machine Learning
       | for Game Development'.
        
         | Synaesthesia wrote:
         | So how will it be able to predict if I will turn left or right
         | next?
        
           | sfjailbird wrote:
           | With a training set of all previous sessions played, I bet
           | this would often be easy to predict.
        
       | viktorcode wrote:
       | The approach as described has one major downside. It is based on
       | presumption that human players will employ the same strategies as
       | a neural network which learned to play the game. It _may_ be the
       | case, but in reality many imbalances in the game model remain
       | undiscovered or unused by the real players, for various reasons.
       | 
       | The good example of ML for playtesting is what King is doing with
       | their Candy Crash Saga. They have trained neural network on real
       | world usage data, from millions of players. That makes it behave
       | like a real player too, not pathetically weak, and not inhumanely
       | strong. This, if applicable for your game, is a better way to
       | leverage ML.
       | 
       | There are other examples of neural networks finding highly
       | unorthodox strategies in various games, when they learning to
       | play it. It is nothing like human behaviour.
        
       | kjgkjhfkjf wrote:
       | Trust Google to produce the most over-engineered online card game
       | ever.
        
         | jayd16 wrote:
         | Still seems more approachable than Artifact.
        
       | Yenrabbit wrote:
       | Letting these ML agents loose on your game is also a good way to
       | discover bugs in the implementation that a human player might
       | never run into. When I first messed about with RL[1] I quickly
       | discovered this, with my 'AI' learning to abuse invalid moves to
       | get a re-roll of the dice or to stay put when it should have been
       | forced to move. [1] -
       | https://datasciencecastnet.home.blog/2020/01/24/swoggle-part...
        
       | denysvitali wrote:
       | You probably mistyped the title. The original title is:
       | LEVERAGING Machine Learning for Game Development.
        
       ___________________________________________________________________
       (page generated 2021-03-20 23:00 UTC)