The Simplest AI Trick in the Book

Поділитися
Вставка
  • Опубліковано 6 лис 2016
  • In this 2015 GDC lecture, DigiPen's Steve Rabin, Insomniac Games' Jonathan Adamczewski, Lockheed Martin's Kevin Dill, Maxis' Rez Graham, and Digital Extremes' Dan Brewer share a plethora of AI development techniques that skip past the complicated programming and get right into the basic psychology that will trick players into thinking they're in an episode of Westworld.
    GDC talks cover a range of developmental topics including game design, programming, audio, visual arts, business management, production, online games, and much more. We post a fresh GDC video every weekday. Subscribe to the channel to stay on top of regular updates, and check out GDC Vault for thousands of more in-depth talks from our archives.
    Follow us on Twitter
    / official_gdc
    Check out our Facebook page for GDC exclusives
    / gamedevelopersconference
    Visit our site: ubm.io/2ctNvqZ

КОМЕНТАРІ • 208

  • @jessicalee333
    @jessicalee333 4 роки тому +142

    The simplest AI trick in the book is - make the bad guys run away sometimes, not necessarily for a discernible reason. It worked for Clyde in Pac-Man, it worked for the Grunts in Halo, it sometimes leads players into a worse situation and seems really tactically clever... just make them run away and/or hide a bit sometimes.
    I think that's a bit simpler than having human players teach your AI ninjas to run on walls. Though... now I want to see a section of a game where the player has to teach a bunch of NPC rookie trainees who suck at first, but eventually come to your rescue as an elite team of hard-mode AIs.

    • @CamoflaugeDinosaue
      @CamoflaugeDinosaue 3 роки тому +15

      Halo grunts run away when they are too far from their squad leader or he has died

  • @yrussq
    @yrussq 7 років тому +306

    The last one was the most practical and elegant as a case.

    • @ClokworkGremlin
      @ClokworkGremlin 4 роки тому +25

      It appears to be the only one that's not shockingly entry-level, honestly.
      That, and the navmesh thing with Sunset Overdrive.

    • @yrussq
      @yrussq 4 роки тому +11

      @@ClokworkGremlin From his explanation i didn't manage to figure out how they've solved that super isolated mesh in the SO. Too many words. Plus it didn't feel effective anyway.

    • @p.t.m
      @p.t.m 4 роки тому +5

      @@yrussq Essentially they built a system to detect and remove any island with no links to another island, as opposed to removing them manually.

    • @simonfarre4907
      @simonfarre4907 3 роки тому +3

      It's also fucking brilliant too. That's some academic quality of CS.

  • @sp0pie928
    @sp0pie928 5 років тому +99

    the simplest AI trick in the book is getting your robot-ninja AI to run off of walls after they learn it from human players

  • @biocode4478
    @biocode4478 4 роки тому +123

    poor robot is trying its best and doing well but the creator just expects him to fail. reminds me of my mom

  • @johnappleseed8839
    @johnappleseed8839 6 років тому +460

    "I assume we all know about blackboard architecture. For more info, here's a link to a paywall."
    Thanks.

    • @ClokworkGremlin
      @ClokworkGremlin 4 роки тому +36

      I think he explains it well enough from context. While I haven't studied "blackboard architecture" by that name at all, it appears to be a global data repository that all the different game objects are able to store and read data from. Which explains why you'd need it to be general.
      His solution is basically the very first one I thought of when considering the issue, though he has a few more optimizations to it.

    • @titojdavis8374
      @titojdavis8374 3 роки тому +2

      works for lockheed so... ya

    • @SilverAura
      @SilverAura 2 роки тому

      @@ClokworkGremlin And here I thought I was being clever by just letting the more interactive game content access to a static pointer.

    • @jdick91
      @jdick91 2 роки тому +12

      Are you kidding me? I'm getting to watch this lecture from a conference other people paid a lot of money to learn skills that will help them build on their careers, without having to pay a dime myself, but I'm NOT also entitled to a complete masterclass without having to pay for it?! This is outrageous. My wife Karen will certainly be having words with them.

    • @yungskeleton-wotvffbe8939
      @yungskeleton-wotvffbe8939 2 роки тому +21

      @@jdick91 This is so misconstrued that I'm surprised you're smart enough to write.

  • @bunnybreaker
    @bunnybreaker 7 років тому +182

    The irony that Warframe is my biggest distraction from actually making games.

  • @uliwitness
    @uliwitness 3 роки тому +18

    That string/enum sync technique is a variant of what is commonly called "X-Macros", BTW.

  • @von_nobody
    @von_nobody 7 років тому +93

    Trick with bread crumbs was used too for first bot of Quake 1. Bots could only move where you move first.

    • @tehf00n
      @tehf00n 7 років тому +6

      indeed. I would favour a voxel pathfinding setup when available but this does work well.

    • @-Rook-
      @-Rook- 6 років тому +7

      I suspect that this is really effective especially now that we can have big bread crumb bins and share the paths through a server. To be honest the quake 1 bots omicron, reaper, zeus, etc were some of the most fun bots I've played against and there is a lot of information about them still on the internet. My simple AI trick don't forget the gems of the past (especially if their source code is simple and available).

    • @Alistair
      @Alistair 5 років тому +5

      >My simple AI trick don't forget the gems of the past (especially if their source code is simple and available).
      There were some incredible bots for Counter-Strike back then too. I started off playing with Quake bots and then made my own CS bot. Having a good objective oriented bot can actually be more fun than playing online in some cases, depending on who you're playing with

  • @vighneshsivakumar3418
    @vighneshsivakumar3418 7 років тому +58

    20:30 Ok, I've had my issues with Warframe's design changes over the years (I used to play very early on but stopped when it started getting overly grindy), but that is an absolutely brilliant design idea and probably not extremely difficult to implement. The data logistics might be an issue given the dynamic nature of the game but it looks like they're already designing for that as well.

  • @Pablosaurus
    @Pablosaurus 6 років тому +164

    At 2:11 he accidentally says "you humans" and he's from an AI group, coincidence? Yes, probably.

    • @DerMannInDerWand
      @DerMannInDerWand 4 роки тому +2

      Probably just a lizard person secretly designing robots to enslave all of humanity

    • @TonkarzOfSolSystem
      @TonkarzOfSolSystem 2 роки тому

      Saying that doesn't mean he's not a human, only that he's addressing a group of humans.

  • @PsychadelicoDuck
    @PsychadelicoDuck 7 років тому +51

    That warframe one was quite clever.

    • @JohnSmith-ot4hq
      @JohnSmith-ot4hq 4 роки тому +4

      Sad to hear that in retroperspect. Wallrunning has since been removed for both NPCs and players

    • @etin97
      @etin97 4 роки тому +2

      John Smith What why?

    • @thalessantos4812
      @thalessantos4812 4 роки тому +2

      warframe is a looter and so players tend to speedrun missions dozens of times. wall runing was kinda slow, even though it was cool

  • @soldierofyhvh5966
    @soldierofyhvh5966 6 років тому +60

    Blue haired guy went somewhere that only he knew the directions to.

    • @ClokworkGremlin
      @ClokworkGremlin 4 роки тому +11

      His lecture was basically the contents of three of the one-week assignments in my freshmen-level robotics class 16 years ago.
      (we built 3 different pathfinding robots using different sensor layouts, and our final project was competitive Roomba. My class was the first instance, later instances got *nuts*)

  • @RazielIgor
    @RazielIgor 2 роки тому +14

    People walk around everyday with their phones, so if we collect the data that where people walks, store that in an online blackboard and give robots access to that data, they will learn where they can all walk as well. So they will teach new humans where they can walk too!

  • @morwar_
    @morwar_ 7 років тому +10

    that last talk was amazing

  • @maestbobo
    @maestbobo 4 роки тому +59

    Lockheed Martin guy ended up implementing Python in C++.
    Everything is a dict, values have a boolean interpretation (i.e. truthiness in Python)

  • @TheBoundFenrir
    @TheBoundFenrir 6 років тому +7

    that last one is super awesome!

  • @SJNaka101
    @SJNaka101 2 роки тому +4

    Daaaang that warframe one felt like a tedtalk at the end. Teach the AI so the AI can teach us!

  • @TheMrKeksLp
    @TheMrKeksLp 4 роки тому +60

    First speaker: "If you do a string compare I'm gonna shoot you"
    Third speaker: KEEP ALL YOUR DATA IN DICTIONARIES

    • @yrussq
      @yrussq 4 роки тому

      Third speaker was talking about hashed data comparisons.

    • @satibel
      @satibel 4 роки тому +5

      yep, it's a hashmap so the string is converted to a sort of integer. and then it can be searched by dichotomy (look halfway, if is greater, go to the upper part else, go to the lower part, repeat till you either have the numbers equal or the section be 1 in length.)
      it's fairly fast as a dictionary with 1 million entries would be searched in under 20 iterations if the string doesn't exist.
      in the end strings are just arrays of numbers, so the hash could be simply each letter end to end.

    • @iswm
      @iswm 4 роки тому +2

      @@satibel the term you're looking for is "binary search". also you typically hash directly to an address or an offset so no probing is required unless there is a collision.

    • @TheMrKeksLp
      @TheMrKeksLp 4 роки тому +1

      @@satibel Looking up a value by a string key in a hashmap requires calculating the string's hash and a final string compare for each lookup. That's not what I would classify as "fast". Not to mention that growing a hashmap requires rebuilding the entire map by rehashing all elements to get the new indices

    • @TheMrKeksLp
      @TheMrKeksLp 4 роки тому +2

      Doing anything by string is a very bad idea most of the time and shows a flaw in the code architecture. It's slow, not typesafe and leads to bugs. Sometimes it's needed e.g. for referencing external data (files, bone names, shader uniforms) but it can easily be avoided for anything code internal. But even then you should have properly typed "keys" that get constructed once with the string and are then passed around and used to cache lookup info. Storing arbitrary data in a string keyed hashmap per entity is pretty much the worst way to implement data storage

  • @hauntedshadowslegacy2826
    @hauntedshadowslegacy2826 4 роки тому +12

    '-and they'll be there for about a week.'
    Ffffffffuuuuuuc-

  • @DJ_POOP_IT_OUT_FEAT_LIL_WiiWii
    @DJ_POOP_IT_OUT_FEAT_LIL_WiiWii 7 років тому +470

    The oldest trick in the book is picking an easy theme. That's why there's so many zombies game. They're slow, stupid, all look the same and are easy to draw.

    • @DJ_POOP_IT_OUT_FEAT_LIL_WiiWii
      @DJ_POOP_IT_OUT_FEAT_LIL_WiiWii 7 років тому +19

      ***** I live in Montreal Canada (like Phil Fish sigh..) and I can therefore assure you that nu-males are a societal problem here. Montreal is pretty much their capital. They campaign for the removal of urinals so they can force everyone to piss sitting down. Anyway these Indie games are pretty stupid as far as I'm concerned. Many are failures because devs are making the games they want instead of providing what the market is asking for. I guess that this specific demographic buys the game out of pity though and they make a killing out of kickstarter with their begging videos.

    • @AdamX21198
      @AdamX21198 7 років тому +5

      +JJ K Haha holy shit so true, I think I'll keep working on my passion project though, I'll make other games fine-tuned for a demographic, unless there's a market for Open World RPGs that I haven't heard of...? ;D
      Perhaps these nu-male hipsters are making really Artsy-Fartsy games not based on popular genres? Did The Witness sell well, or did good game design? Minecraft sure made a killing, and that game wasn't even finished when it sold like hotcakes, and the combat was terrible. I wonder what the secret is, marketing? I think it's marketing. Minecraft went viral, Fez was easily interpreted (very "compressed" and easily marketable), and a lot of people know what Grand Theft Auto is.
      I don't think it's all about market demand, people need to know our cool games exist, they need viral exposure.
      (Custom Robo is *amazing* and amazingly underrated)

    • @DJ_POOP_IT_OUT_FEAT_LIL_WiiWii
      @DJ_POOP_IT_OUT_FEAT_LIL_WiiWii 7 років тому

      ***** There's quite a lot of bias when looking only at success stories. Original concepts can work on PC but you're indeed not helping the marketing push by having to explain your game. The market is what people buy, plain and simple, never what they tell you they want. I'm more in the mobile market. Almost every person I talk to tell me I need to come up with 'original ideas' to sell and proceed to rave on Angry Birds, Flappy Birds, Candy Crush and the likes. Quite ironic when you consider all these games are clones. Casinos games, match-3 and runners are very popular and not novelty materials. Viral marketing or huge budgets are indeed mandatory for success.

    • @DJ_POOP_IT_OUT_FEAT_LIL_WiiWii
      @DJ_POOP_IT_OUT_FEAT_LIL_WiiWii 7 років тому +3

      +XΣRXΣS Perhaps The Witness is doing quite good because its developer Jonathan Blow XD spends most of his time catering to Indie games press and events. The graphics are above average and the environment is well designed but its gameplay sucks ass IMO.

    • @AdamX21198
      @AdamX21198 7 років тому +3

      +JJ K Guess I'll make a gorgeous Open World RPG with an interesting world with polished modern mechanics, then grow some balls and host panels at conventions at least once a week showcasing my work. Sounds like a plan.
      IT IS TIME TO BUY A VOLKSWAGEN TYPE 2

  • @godalmighty1188
    @godalmighty1188 2 роки тому +3

    That little robot could know its position. Give it another set of wheels that aren't attached to motors, but which have high traction and low inertia. Attach there to a sensor that can tell how much the wheels have turned individually. Withe the wheel diameter and each wheel's roll distance, you can plot out lines and curves that represent the path taken, the distance traveled, and the relative position to the start with high accuracy. Basically, a ball-wheel mouse on the bottom of the bot. A laser mouse would work as well, but may have clearance issues.

  • @DustinRodriguez1_0
    @DustinRodriguez1_0 7 років тому +16

    Has anyone ever studied various game quantitatively and compiled an 'Elements of Gameplay Mechanics' type book? I am thinking something like the numbers the first presenter pointed out about reaction time. My guess is that if you were to study, say, platformer games you could come up with an objective guideline on how to make an 'easy' or 'hard' game (or just a particular jump) based on the various factors involved (character speed, accuracy needed in distance, amount of distance jumped, difference in height of platforms, etc).
    Take games which are widely acknowledged as difficult (old school Mega Man games, Super Meat Boy, etc) then a bunch widely acknowledged as easy and break down the numbers so that if you want to create a challenging platformer, or an easy one, you don't have to just experiment and hope you got it right and can account for the varying skills of a huge audience. That's just one example in one genre, but I could imagine a really helpful encyclopedia that covers many. Does such a thing exist?

    • @user-zu1ix3yq2w
      @user-zu1ix3yq2w 7 років тому +1

      Dustin Rodriguez sounds pretty cool. there are a couple of gamasutra articles. The Chemistry of Game Design (or a similar title) was one of them I think.

  • @esad9341
    @esad9341 7 років тому +19

    the macro trick is really interesting actually, even though it seems the simplest of all of them

  • @alec1020
    @alec1020 3 роки тому +10

    I thought for sure that robot one was going somewhere but then it didn't...

    • @jeffmorse6727
      @jeffmorse6727 3 роки тому +3

      Yeah the conclusion was just "real life is harder than games" but I don't see how that's at all relevant to games developers

    • @SilverAura
      @SilverAura 2 роки тому +2

      @@jeffmorse6727 The relevant bits I pulled from it were a raised awareness of how the input you're giving your AI can be just as much a part of your challenge as how it handles it.

  • @sqrlmonger
    @sqrlmonger 7 років тому +11

    re: 2nd Speaker Pathfinding mesh...
    So uhm, why not just traverse all path edges and mark or record all the navigable nodes/islands and remove the rest (or at least tag them review)?
    You can even cross-reference your node/islands with collision volumes and instantly throw out any node/island entirely contained within collision volumes to reduce workload of reviewing the remaining nodes.

    • @imakegames770
      @imakegames770 6 років тому +2

      I dunno man, that sounds like some exponential looping. You might get way too many Big O's.

    • @ClokworkGremlin
      @ClokworkGremlin 4 роки тому

      That's exactly what I was wondering.

  • @zartron1
    @zartron1 Рік тому

    The first speaker's second idea has nothing to do with AI but is one of the most valuable things I have every learned.

  • @aussieraver7182
    @aussieraver7182 2 роки тому

    3:42
    Can some explain why string compare is bad?
    My assumption is that it's computationally expensive?

  • @87392v
    @87392v 7 років тому +8

    This is among the best videos that have released on this channel. Thank you!

  • @SowedCastelli
    @SowedCastelli 3 роки тому +2

    The bread crumbs. Woo Never thought of that. Nice talk.

  • @brandonallen2301
    @brandonallen2301 3 роки тому

    the last one was really cool

  • @Spellfork
    @Spellfork 7 років тому +57

    I'm gonna make a game and only use string comparisons... BRING IT!

    • @tylerkillspoon
      @tylerkillspoon 6 років тому +17

      A text adventure? ;)

    • @ZarkowsWorld
      @ZarkowsWorld 5 років тому +1

      You work at BlueHole?

    • @archmagusofevil
      @archmagusofevil 5 років тому +14

      I can't wait to see your code. Some pseueocode nightmare I'm now imagining:
      PlayerHP = PlayerHP + "minus five"
      ComplexWordArithmeticFunction(PlayerHP)
      If PlayerHP == "zero or lower" then PlayerLives = PlayerLives + "minus one"

    • @yyny0
      @yyny0 5 років тому +5

      @@archmagusofevil PlayerHP = PlayerHP + '❤' * 5; PlayerHP = PlayerHP[0:-5];

    • @ClokworkGremlin
      @ClokworkGremlin 4 роки тому

      Learn to program in D, it doesn't mind string comparisons *at all.*
      (D is my favorite programming language.)

  • @petersmythe6462
    @petersmythe6462 2 роки тому +2

    Yeah orientation and navigation are some pretty difficult problems in the real world. One solution is to have a robot estimate it's own position and orientation somehow. Another is to not care about absolute position or orientation.

  • @joroc
    @joroc 4 роки тому +28

    Simplest trick is to release and unfinished game and charge a lot for expansion packs

  • @tuazulyrojoeljean
    @tuazulyrojoeljean 4 роки тому +1

    Maybe it is that english is not my primary language, but... What was the actual ''trick'' the second guy supposedly shared?
    I didn't catch it at all. I got the uncommunicated island's problem but how you're supposed to keep those one connected in the navmesh from the others?

    • @PepsiMagt
      @PepsiMagt 4 роки тому +2

      He starts from the spawn area,which is known to be traversable, and then he simply makes a depth search of the nav-tree, marking all reached node as traversable. The unmarked nodes are deleted. This can all be precomputed.

    • @tuazulyrojoeljean
      @tuazulyrojoeljean 4 роки тому

      @@PepsiMagt Thanks!

  • @tctc4413
    @tctc4413 7 років тому +15

    as for the warframe ai trick , not that many playerswall run when after the introduction of bullet jump , atm wall running is something that most players avoid and it explains why after jumping into one of the many black reset spots in the warframe map the mobs will just replete that !

    • @NZPIE
      @NZPIE 7 років тому +6

      I'm not even sure you can even wall run anymore... I've tried it before, and failed many times.
      Edit: I'm talking about the Parkour 1.0 wall running, not the new one. At most, the new one is wall hopping.

    • @HampterLover985
      @HampterLover985 7 років тому +1

      Yea I never wall run either, but I'm sure they use the same concept to tell the AI where to do other types of movements other than wall running.

  • @dvsdev
    @dvsdev 4 роки тому +12

    I don't really feel like any of this would classify under the title terms "Simplest" and "AI", several were just programming tricks, that could apply to AI, but not in a way that was represented. The Robot/realworld comparison gave no applicable value to use, beyond try this, and the wall running learning technique didn't feel simple. Don't get me wrong, I liked most of what I heard. I just don't think anyone really hit the mark of "The Simplest AI Trick in the Book"

    • @tiagodarkpeasant
      @tiagodarkpeasant 4 роки тому

      the point of the robot was "stop cheating"

    • @marcelh7864
      @marcelh7864 4 роки тому

      If you are familiar with programming the generic data structure is really a simple solution to a complex problem. We did something similar in my 3rd semester project but I don't know who wouldn't come up with such a structure after some time with basic OOP. But yeah it's not a AI trick.

  • @alexslavski5056
    @alexslavski5056 6 років тому +31

    Nice video, but I miss the point of building a robot. How is this a simple trick for AI programming?

    • @Soumein
      @Soumein 6 років тому +2

      I didn't think it was a trick either; he may have just been saying to try to understand the AI's world sensors in relative terms.
      If we take his NPC must stand up and play guitar example, you'll need a sensor for what state the NPC is currently in (Idle standing, sitting in a chair, interacting with another object, etc), a pathfinding system to navigate the room (find open tiles, doorways, walls, and the fastest route), and the objects it can interact with (the guitar, a computer, a door).
      Dunno.

    • @alexslavski5056
      @alexslavski5056 6 років тому +5

      This may be a nice approach of thinking about designing AI (although I don't really get its merits), but completely irrelevant to the topic. Or I may be missing something about that speech.

    • @ChrisOi86
      @ChrisOi86 6 років тому +26

      I think it was more of a "thought hack" to change your view on AI in games, a tip to make you think in a different context

    • @rezination
      @rezination 5 років тому +32

      This is an old comment, but I'll reply anyway....
      @VioKyma has it right, the purpose of my section of the talk was not to specifically give you a single in-code trick you can use, but to provide a bit of a thought experiment. Specifically, I think it's important to build an AI for a totally different medium to force you out of your box. It's the same logic behind learning a new programming language; doing it changes how you think about programming. Building AI in a totally different context changes how you think about things and forces you outside of your bubble. And that's a good thing, because staying inside one's bubble is why most shooter games abuse behavior trees (among other things). ;)

    • @tiagodarkpeasant
      @tiagodarkpeasant 4 роки тому +2

      @@rezination that is why i never made a bomberman ia, i just cant think of a way to make it without cheating with "danger grids" and have no idea how to make them try to kill instead of just runaway

  • @AmericasComic
    @AmericasComic 7 років тому

    23:30 - "shit, I have to follow a robot"

  • @wildwest1832
    @wildwest1832 2 роки тому

    C pre-processor let you do some crazy stuff and it cost you nothing maybe some confusion.

  • @toose8388
    @toose8388 6 років тому +3

    Last guy really likes the word "dynamically"

  • @GRHmedia
    @GRHmedia 4 роки тому +10

    Yea, got to say going from automation programming to game AI is been a lot easier. Game AI don't kill real people when it messes up.

  • @irellevance6925
    @irellevance6925 7 років тому +2

    How do amiibos work? with the same breadcrumb technique?

    • @SianaGearz
      @SianaGearz 4 роки тому +4

      This question doesn't make sense. Amiibo is a plastic toy with an NFC tag attached to the bottom of it. It has no movement capability.

    • @weckar
      @weckar 4 роки тому +3

      @@SianaGearz ... Thanks for telling me. I may need a gun...

    • @baker7280
      @baker7280 2 роки тому +1

      @@SianaGearz i would assume he means how do amiibos in smash work. In smash they are like cpus but learn from the player and level up.

  • @TheAssassin409
    @TheAssassin409 2 роки тому +4

    weird to hear a Warframe dev talk about wall running and AI following the player. one of which has been removed from the game entirely because of how buggy it was, and the other is so buggy that your companions still die getting stuck in walls.

  • @KryyssTV
    @KryyssTV Рік тому +5

    Rez decided to completely ignore the point of the forum in favour of bragging about his pet robot which has absolutely no practical applications or new insights into game related AI.

  • @zachierymorgan9363
    @zachierymorgan9363 3 роки тому +1

    sargon on the right

  • @damianbailey3088
    @damianbailey3088 6 років тому +6

    enooms

  • @dusandragovic09srb
    @dusandragovic09srb 3 роки тому

    #t=43s, Rez Graham, my dream job.

  • @slipperynickels
    @slipperynickels 7 років тому +2

    That robot is just a regular Boe-Bot kit...

  • @laimiskleinauskas3654
    @laimiskleinauskas3654 4 роки тому +3

    does anyone wall run in warframe, i thought we all bullet jump xD

    • @truefiasco2637
      @truefiasco2637 4 роки тому +1

      i guess you can leave the same bread crumbs for a bullet jump and it's probably a bit easier to code.

  • @omgwat
    @omgwat 6 років тому +9

    That talk that the second guy gave was freaking useless. I mean, HOW did you exclude inner islands?

    • @jordanwhittle8713
      @jordanwhittle8713 5 років тому +8

      you just find a/all navmesh polygons that you know is traversable and just flood-fill and mark all connected polygons. when you're done you just remove all polygons that haven't been marked because they are clearly not reachable. you could also check for polygons which exist inside of geometry that the player should never be inside of - if there is a shipping container that the player cant enter, there will be no actual inside geometry and all of the normals of the container will be facing outwards and that is detectable

    • @LiftPizzas
      @LiftPizzas 4 роки тому +1

      @@jordanwhittle8713 If the problem is AI getting stuck because it can't find a path out, seems like you could also write a temporary routine to iterate through coordinates, attempt to path from that point to a known good, and use those pass/fail results. A separate computer can spend all week or all month doing it on its own and it doesn't require trying to explain "a shipping container that the player should never be inside of" to a computer. If I understood correctly, the method that was used (and was supposed to be a "trick") only detected 25% of the invalid data and left 300,000 "bad" polygons unflagged. I don't see how reducing the occurrence of a game-breaking bug by 25% is a trick worth talking about.

    • @projjalc
      @projjalc 4 роки тому +6

      @@LiftPizzas It removed 25% of ALL the level data, which it deemed to be invalid.

  • @0xCAFEF00D
    @0xCAFEF00D 7 років тому +1

    4:00
    There's better ways to do this if you try. But it's an OK way to do it. Certainly much better than maintaining two tables.

  • @MrFugogugo
    @MrFugogugo 7 років тому +83

    none of these is "simplest"
    but maybe it's me that still have zero knowledge on AI

    • @AdamX21198
      @AdamX21198 7 років тому +2

      I'm still trying to figure out how to robustly have objects follow paths automatically after they are created. I just don't know??!?!?!?! I can understand generating a path based on a node octree with automatic checking of cell occupation, but having your little guy follow that path without re-generating the path constantly to prevent getting stuck? Fuck!

    • @tonystroemsnaes554
      @tonystroemsnaes554 7 років тому +4

      place nodes at all corners of a path, and make the ai go towards the points, changing new target point when hitting the previous target point

    • @AdamX21198
      @AdamX21198 7 років тому +1

      Well of course, but in terms of obstacle avoidance as AI goes along the generated path (thus making the path inaccurate), how would one go about creating an optimized solution for that without recalculating the path constantly?
      I also gotta figure out how to go about "clustering" agents into one big AI agent (for large squads and armies moving in the same formation) which would definitely boost that FPS.
      Definitely gonna get started on some stuff tonight, feeling good!

    • @sprK92
      @sprK92 7 років тому +3

      have you tried looking into flow fields?

    • @AdamX21198
      @AdamX21198 7 років тому

      Flow fields? Like with particles?

  • @Kombi-1
    @Kombi-1 6 років тому

    weird cam

  • @Beatsbasteln
    @Beatsbasteln 2 роки тому +1

    the dude with the robot was such a cute robot-father

    • @andrigunawan5691
      @andrigunawan5691 5 місяців тому

      21:57 yep, Respawn might not have enough time to actually make a proper AI for enemy Pilots on foot in Titanfall 2 single-player campaign, and it was scrapped instead of actually going into the game

  • @gregoryfenn1462
    @gregoryfenn1462 Рік тому

    How the actual fudge is "spend a week building a robot" a simple trick?

  • @YTaccNo3
    @YTaccNo3 7 років тому +7

    i miss the old warframe wallrun tbh

  • @diegorosadossantos8493
    @diegorosadossantos8493 7 років тому +4

    David [Rez] Graham from Game Coding Complete 4th hahaha

    • @rezination
      @rezination 5 років тому

      Yep, that's me. Game Coding Complete was a long time ago now.

    • @rezination
      @rezination 5 років тому +2

      Ryan: I'm sorry I wasn't able to reach you when you were a student. The sad truth of being a teacher is that you can't reach everyone, no matter how hard you try and, despite what it may have felt like, I did try. Last time we spoke, I told you that I hoped you found your path in life, and truly hope you have. I wish you only the best.

    • @rezination
      @rezination 5 років тому +6

      @@ryanfuxa6738 To be fair, I have no control or insight into the financials of the school. Faculty is intentionally kept out of that for ethical reasons (so one can't treat students differently no matter what their financial situation is, for example) so I can't comment on any of that stuff. You also weren't in my department, so I don't know what your situation was in terms of classes and grades. I will say that my veteran students are usually the most hard-working. I kind of wish all my students were vets because they know how to work. Many kids right out of high school don't. :-/
      Anyway, game dev is really, really hard and it's not for everyone. It takes a particular kind of thinking and problem solving ability to make it click. You can love games with a passion, but the creation of games is very different and takes a level of dedication many aren't prepared for.
      For example, if you really wanted to make games for a living, you would be spending your weekend time working on side projects and learning on your own. There are so many resources you almost don't need a school anymore. Besides, you can't just love games, you have to love game dev itself. You have to love the process of making stuff. That's something no one can teach you. For me, my degree is in electrical engineering, not programming. I taught myself how to program in my spare time and made my own games while working full-time jobs that I hated, so not only do I know exactly where you're coming from, I am proof that you can break out of it. That's literally how I broke into the industry. And remember, this was a time before Unity and Unreal, so it was all C++ and x86 Assembly. There weren't really any game dev schools at that time and I come from a relatively poor background, so paying for more college was right out.
      That having been said, if you still want to try your hand at games, I would be willing to help you. I've mentored others who couldn't afford schooling. Of course, I understand if you don't want to do that, just thought I'd offer.
      You're in a terrible situation, but at the end of the day, you have a choice whether to be motivated by that situation to change and get better, or whether you let it drag you down.
      Anyway, my offer stands. Either way, I wish you success.

  • @YourChannelHere
    @YourChannelHere 4 роки тому +1

    General Data Structures is literally python dictionaries in c++, beautiful

    • @p.t.m
      @p.t.m 4 роки тому +2

      In that case, couldn't we realistically just use python to hold data fields that aren't critical for performance? (dialogue, etc)

  • @Kombi-1
    @Kombi-1 6 років тому +1

    ag

  • @mujina93
    @mujina93 2 роки тому +3

    The only useful one was the one before the last one. Advice to AI programmers: build a small autonomous robot.

  • @IcoKirov
    @IcoKirov 7 років тому +9

    2:50 who cares, there is no friendly fire in most games :D

    • @GigaPlaya
      @GigaPlaya 7 років тому +3

      When Friendly Fire is turned on, players get angry with each other. Often, I aim at an enemy. When I pull the trigger, someone runs in front of me. I don't think players check if they are running into a line of fire.

    • @satannstuff
      @satannstuff 7 років тому +4

      That depends on how easy it is to get killed that way. In MechWarrior Online for example your rear armor is generally much weaker than your front armor and there is no respawn in many game modes, so players take more care to not run into the line of fire especially at high skill levels. Even though getting killed outright that way is pretty rare, it can easily cripple a mech and having to go an entire match with most of your weapons blown off or one well aimed shot from death tends to teach you to be more careful next time. It helps that there is a minimap that shows where the friendlies behind you are.

    • @tylisirn
      @tylisirn 7 років тому +4

      +VideoDaze this is one area where games suffer from interface limitations compared to real life. We have much worse situational awareness because we don't have peripheral vision, and we can't easily and intuitively glance to the side or behind to see where our teammates are and what they are doing without interrupting our own "forward" action.

    • @arthurgirip4974
      @arthurgirip4974 5 років тому +2

      It's not about you shooting, it's about the AI (NPC) making a realistic and human-like reaction.

  • @oliverandom6808
    @oliverandom6808 3 роки тому +2

    Simplest trick in the book
    Almost half an hour long

  • @diligencehumility6971
    @diligencehumility6971 2 роки тому

    Whats up with all the blue hair

  • @mcsnaffle5443
    @mcsnaffle5443 4 роки тому +1

    "Thousands of active players" - Less and less I imagine since players joined a multiplayer game to find themselves fighting against bots.

    • @KryyssTV
      @KryyssTV Рік тому

      But if the bots are trained by players then, depending upon how much of their behaviour is mimicry, it doesn't matter if they're a bot since the end result is no different to playing against a real person.

  • @AdamX21198
    @AdamX21198 7 років тому +3

    Why did I dislike this? This is really helpful. UA-cam is broken as all hell, I'm unsubscribed from everything I frequently watch. Only a matter of time.

  • @nalankadi1654
    @nalankadi1654 4 роки тому +6

    None of these are simple AI tricks.

    • @tacticalblank8045
      @tacticalblank8045 3 роки тому +2

      But... they are? They're all at least tangentially related to AI programming, and they're all pretty simple.
      1. Realistic reaction times + a C++ macro trick for named enum values
      2. Throw away parts of your navmesh that aren't connected to anything (how they got there was kinda complicated but the final solution was fairly straightforward)
      3. Just a generic data structure
      4. Working in a more restricted medium can change your perspective (more of a "be a better AI programmer" thing than an actual game dev technique)
      5. Instead of coming up with a complex algorithm for getting your AI to do something unusual like wallrunning, they can just literally follow the player

    • @SilverAura
      @SilverAura 2 роки тому +1

      RocketsRocketsRockets was easily one of the best simple AI tricks I could have asked for..

  • @taguetrash
    @taguetrash 4 роки тому +3

    ew, the hashmap thing with entirely non fixed typing is just... no...
    Please no...

  • @petersmythe6462
    @petersmythe6462 3 роки тому +2

    "0.25 seconds simple reaction time"
    Dream: Did someone say 2.5 milliseconds?

  • @zygocact5947
    @zygocact5947 6 років тому +4

    C is not strongly typed, lol.
    It's not dynamically typed like some scripting languages, but it's not strongly typed either.

    • @rezination
      @rezination 5 років тому

      Depends on what you mean by strong typed: stackoverflow.com/questions/430182/is-c-strongly-typed

    • @CZGhost4Man
      @CZGhost4Man 4 роки тому +1

      11:35 he said "C++ is strongly typed", not C
      (old comment, I know)

  • @jrag1000
    @jrag1000 3 роки тому

    Navigating a room, lol.
    And suits actually thought there would be self-driving cars on the roads with human-driven cars?
    Like I said 4 years ago, never happen never will... lol
    And CDPR couldn't do wall-run, navigation mesh A.I., smart Police, cars that follow a road, reactive NPC's.
    The list goes on and on and on...

  • @Radical_Middle
    @Radical_Middle 3 роки тому +1

    you can unsuccessfully solve something only if you have blue hair and think you being funny and cool.

  • @duelme1234
    @duelme1234 7 років тому +24

    Ninja? I'm sorry DE, but did you guys even check the definition of NINJA when you created the game? This type of "NINJA" is at the most, space mercenaries. I mean this is more like what the west THINKS ninjas should be like, acrobats that can dodge and block bullets and of course, **cough** cough** wall run. But did you guys ever realized that ninja are stealthy, and most of your warframes and weapons goes directly against that. I mean if you have 2 player that started a new account at that same time, the person that is not stealthing and rushing throught everything will progress much faster in the game. So ya DE, learn your lessons.

    • @duelme1234
      @duelme1234 7 років тому +2

      Mikhail Obv 3 frames, WOW! And how many frames are there in warframe? 33, so there are, wait for it, 3/33 or 1/11 frames that are stealth based! Wow, great job DE. And if you need a specific frame to be encouraged to stealth, that's just bad game design (stealthing is part of the definition of ninja, and doing everything guns blazing is not)

    • @AmeshaSpentaArmaiti
      @AmeshaSpentaArmaiti 7 років тому +50

      if naruto counts warframe counts.
      if genji counts warframe counts.
      if ryu hayabusa counts warframe counts.
      ninjas are almost entirely fictional, there is no consensus on what they should be like.

    • @TheBigYC
      @TheBigYC 7 років тому +11

      woah, just take it easy man

    • @jajohnek
      @jajohnek 7 років тому +7

      1. "Space Ninja" sells.
      2. I loved going stealthy and slower and avoiding detection. Unfortunately I had to turn off the multiplayer in warframe because you just can't do that with the 3 other people rushing in.
      3. Yeah, sad that the rushing attitude gets more rewarded, but I enjoyed my gameplay nevertheless.
      4. It's 1 again - it's space ninjas dude. Starwars is pretty much space ninjas as well and it just works. SPACE NINJAS GO!

    • @Rocknoob49
      @Rocknoob49 7 років тому +1

      yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawn

  • @TheMrTape
    @TheMrTape 2 роки тому +1

    Really poor talk throughout. Either obvious stuff done the wrong way or irrelevant stuff done the wrong way.

  • @anarchion2141
    @anarchion2141 3 роки тому +1

    Boo for endorsing weapons manufacturers.