The Simplest AI Trick in the Book

  Рет қаралды 295,956

GDC

GDC

7 жыл бұрын

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 жыл бұрын
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 жыл бұрын
Halo grunts run away when they are too far from their squad leader or he has died
@yrussq
@yrussq 7 жыл бұрын
The last one was the most practical and elegant as a case.
@ClokworkGremlin
@ClokworkGremlin 4 жыл бұрын
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 жыл бұрын
@@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 жыл бұрын
@@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 жыл бұрын
It's also fucking brilliant too. That's some academic quality of CS.
@biocode4478
@biocode4478 4 жыл бұрын
poor robot is trying its best and doing well but the creator just expects him to fail. reminds me of my mom
@sp0pie928
@sp0pie928 5 жыл бұрын
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
@uliwitness
@uliwitness 3 жыл бұрын
That string/enum sync technique is a variant of what is commonly called "X-Macros", BTW.
@johnappleseed8839
@johnappleseed8839 6 жыл бұрын
"I assume we all know about blackboard architecture. For more info, here's a link to a paywall." Thanks.
@ClokworkGremlin
@ClokworkGremlin 4 жыл бұрын
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 жыл бұрын
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 жыл бұрын
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 жыл бұрын
@@jdick91 This is so misconstrued that I'm surprised you're smart enough to write.
@bunnybreaker
@bunnybreaker 7 жыл бұрын
The irony that Warframe is my biggest distraction from actually making games.
@von_nobody
@von_nobody 7 жыл бұрын
Trick with bread crumbs was used too for first bot of Quake 1. Bots could only move where you move first.
@tehf00n
@tehf00n 7 жыл бұрын
indeed. I would favour a voxel pathfinding setup when available but this does work well.
@-Rook-
@-Rook- 6 жыл бұрын
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 жыл бұрын
>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
@Pablosaurus
@Pablosaurus 6 жыл бұрын
At 2:11 he accidentally says "you humans" and he's from an AI group, coincidence? Yes, probably.
@DerMannInDerWand
@DerMannInDerWand 4 жыл бұрын
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.
@vighneshsivakumar3418
@vighneshsivakumar3418 7 жыл бұрын
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.
@PsychadelicoDuck
@PsychadelicoDuck 7 жыл бұрын
That warframe one was quite clever.
@JohnSmith-ot4hq
@JohnSmith-ot4hq 4 жыл бұрын
Sad to hear that in retroperspect. Wallrunning has since been removed for both NPCs and players
@etin97
@etin97 4 жыл бұрын
John Smith What why?
@thalessantos4812
@thalessantos4812 3 жыл бұрын
warframe is a looter and so players tend to speedrun missions dozens of times. wall runing was kinda slow, even though it was cool
@RazielIgor
@RazielIgor 2 жыл бұрын
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!
@maestbobo
@maestbobo 4 жыл бұрын
Lockheed Martin guy ended up implementing Python in C++. Everything is a dict, values have a boolean interpretation (i.e. truthiness in Python)
@soldierofyhvh5966
@soldierofyhvh5966 6 жыл бұрын
Blue haired guy went somewhere that only he knew the directions to.
@ClokworkGremlin
@ClokworkGremlin 4 жыл бұрын
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*)
@morwar_
@morwar_ 7 жыл бұрын
that last talk was amazing
@SJNaka101
@SJNaka101 2 жыл бұрын
Daaaang that warframe one felt like a tedtalk at the end. Teach the AI so the AI can teach us!
@TheBoundFenrir
@TheBoundFenrir 6 жыл бұрын
that last one is super awesome!
@DJ_POOP_IT_OUT_FEAT_LIL_WiiWii
@DJ_POOP_IT_OUT_FEAT_LIL_WiiWii 7 жыл бұрын
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 жыл бұрын
***** 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 жыл бұрын
+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 жыл бұрын
+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 жыл бұрын
+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
@hauntedshadowslegacy2826
@hauntedshadowslegacy2826 4 жыл бұрын
'-and they'll be there for about a week.' Ffffffffuuuuuuc-
@godalmighty1188
@godalmighty1188 2 жыл бұрын
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.
@alec1020
@alec1020 3 жыл бұрын
I thought for sure that robot one was going somewhere but then it didn't...
@jeffmorse6727
@jeffmorse6727 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 жыл бұрын
@@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.
@TheMrKeksLp
@TheMrKeksLp 4 жыл бұрын
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 жыл бұрын
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 жыл бұрын
@@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 жыл бұрын
@@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 жыл бұрын
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
@DustinRodriguez1_0
@DustinRodriguez1_0 7 жыл бұрын
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 жыл бұрын
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 жыл бұрын
the macro trick is really interesting actually, even though it seems the simplest of all of them
@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.
@sqrlmonger
@sqrlmonger 7 жыл бұрын
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 жыл бұрын
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.
@87392v
@87392v 7 жыл бұрын
This is among the best videos that have released on this channel. Thank you!
@aussieraver7182
@aussieraver7182 2 жыл бұрын
3:42 Can some explain why string compare is bad? My assumption is that it's computationally expensive?
@SowedCastelli
@SowedCastelli 3 жыл бұрын
The bread crumbs. Woo Never thought of that. Nice talk.
@dvsdev
@dvsdev 4 жыл бұрын
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.
@joroc
@joroc 4 жыл бұрын
Simplest trick is to release and unfinished game and charge a lot for expansion packs
@alexslavski5056
@alexslavski5056 6 жыл бұрын
Nice video, but I miss the point of building a robot. How is this a simple trick for AI programming?
@Soumein
@Soumein 6 жыл бұрын
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 жыл бұрын
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 жыл бұрын
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 жыл бұрын
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 жыл бұрын
@@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
@Spellfork
@Spellfork 7 жыл бұрын
I'm gonna make a game and only use string comparisons... BRING IT!
@tylerkillspoon
@tylerkillspoon 6 жыл бұрын
A text adventure? ;)
@ZarkowsWorld
@ZarkowsWorld 5 жыл бұрын
You work at BlueHole?
@archmagusofevil
@archmagusofevil 5 жыл бұрын
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 жыл бұрын
@@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 жыл бұрын
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.
@tctc4413
@tctc4413 7 жыл бұрын
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 жыл бұрын
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 жыл бұрын
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.
@brandonallen2301
@brandonallen2301 3 жыл бұрын
the last one was really cool
@tuazulyrojoeljean
@tuazulyrojoeljean 4 жыл бұрын
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 жыл бұрын
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!
@AmericasComic
@AmericasComic 6 жыл бұрын
23:30 - "shit, I have to follow a robot"
@GRHmedia
@GRHmedia 4 жыл бұрын
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.
@KryyssTV
@KryyssTV Жыл бұрын
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.
@toose8388
@toose8388 6 жыл бұрын
Last guy really likes the word "dynamically"
@TheAssassin409
@TheAssassin409 2 жыл бұрын
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.
@MrFugogugo
@MrFugogugo 7 жыл бұрын
none of these is "simplest" but maybe it's me that still have zero knowledge on AI
@AdamX21198
@AdamX21198 7 жыл бұрын
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 жыл бұрын
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 жыл бұрын
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 жыл бұрын
have you tried looking into flow fields?
@AdamX21198
@AdamX21198 7 жыл бұрын
Flow fields? Like with particles?
@irellevance6925
@irellevance6925 7 жыл бұрын
How do amiibos work? with the same breadcrumb technique?
@SianaGearz
@SianaGearz 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 жыл бұрын
@@SianaGearz ... Thanks for telling me. I may need a gun...
@baker7280
@baker7280 2 жыл бұрын
@@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.
@zachierymorgan9363
@zachierymorgan9363 3 жыл бұрын
sargon on the right
@wildwest1832
@wildwest1832 2 жыл бұрын
C pre-processor let you do some crazy stuff and it cost you nothing maybe some confusion.
@omgwat
@omgwat 6 жыл бұрын
That talk that the second guy gave was freaking useless. I mean, HOW did you exclude inner islands?
@jordanwhittle8713
@jordanwhittle8713 5 жыл бұрын
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 жыл бұрын
@@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 жыл бұрын
@@LiftPizzas It removed 25% of ALL the level data, which it deemed to be invalid.
@slipperynickels
@slipperynickels 7 жыл бұрын
That robot is just a regular Boe-Bot kit...
@gregoryfenn1462
@gregoryfenn1462 Жыл бұрын
How the actual fudge is "spend a week building a robot" a simple trick?
@damianbailey3088
@damianbailey3088 6 жыл бұрын
enooms
@laimiskleinauskas3654
@laimiskleinauskas3654 4 жыл бұрын
does anyone wall run in warframe, i thought we all bullet jump xD
@truefiasco2637
@truefiasco2637 4 жыл бұрын
i guess you can leave the same bread crumbs for a bullet jump and it's probably a bit easier to code.
@dusandragovic09srb
@dusandragovic09srb 3 жыл бұрын
#t=43s, Rez Graham, my dream job.
@YTaccNo3
@YTaccNo3 7 жыл бұрын
i miss the old warframe wallrun tbh
@0xCAFEF00D
@0xCAFEF00D 7 жыл бұрын
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.
@Kombi-1
@Kombi-1 6 жыл бұрын
weird cam
@Beatsbasteln
@Beatsbasteln 2 жыл бұрын
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
@diegorosadossantos8493
@diegorosadossantos8493 7 жыл бұрын
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 жыл бұрын
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 жыл бұрын
@@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.
@mujina93
@mujina93 2 жыл бұрын
The only useful one was the one before the last one. Advice to AI programmers: build a small autonomous robot.
@Kombi-1
@Kombi-1 6 жыл бұрын
ag
@oliverandom6808
@oliverandom6808 3 жыл бұрын
Simplest trick in the book Almost half an hour long
@nalankadi1654
@nalankadi1654 4 жыл бұрын
None of these are simple AI tricks.
@tacticalblank8045
@tacticalblank8045 3 жыл бұрын
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 жыл бұрын
RocketsRocketsRockets was easily one of the best simple AI tricks I could have asked for..
@zygocact5947
@zygocact5947 6 жыл бұрын
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 жыл бұрын
11:35 he said "C++ is strongly typed", not C (old comment, I know)
@YourChannelHere
@YourChannelHere 4 жыл бұрын
General Data Structures is literally python dictionaries in c++, beautiful
@p.t.m
@p.t.m 4 жыл бұрын
In that case, couldn't we realistically just use python to hold data fields that aren't critical for performance? (dialogue, etc)
@diligencehumility6971
@diligencehumility6971 2 жыл бұрын
Whats up with all the blue hair
@IcoKirov
@IcoKirov 7 жыл бұрын
2:50 who cares, there is no friendly fire in most games :D
@GigaPlaya
@GigaPlaya 7 жыл бұрын
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 жыл бұрын
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 жыл бұрын
+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 жыл бұрын
It's not about you shooting, it's about the AI (NPC) making a realistic and human-like reaction.
@taguetrash
@taguetrash 4 жыл бұрын
ew, the hashmap thing with entirely non fixed typing is just... no... Please no...
@mcsnaffle5443
@mcsnaffle5443 4 жыл бұрын
"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.
@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...
@petersmythe6462
@petersmythe6462 3 жыл бұрын
"0.25 seconds simple reaction time" Dream: Did someone say 2.5 milliseconds?
@AdamX21198
@AdamX21198 7 жыл бұрын
Why did I dislike this? This is really helpful. KZbin is broken as all hell, I'm unsubscribed from everything I frequently watch. Only a matter of time.
@Radical_Middle
@Radical_Middle 3 жыл бұрын
you can unsuccessfully solve something only if you have blue hair and think you being funny and cool.
@TheMrTape
@TheMrTape 2 жыл бұрын
Really poor talk throughout. Either obvious stuff done the wrong way or irrelevant stuff done the wrong way.
@duelme1234
@duelme1234 7 жыл бұрын
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 жыл бұрын
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 жыл бұрын
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 жыл бұрын
woah, just take it easy man
@jajohnek
@jajohnek 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 жыл бұрын
yaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaawn
@anarchion2141
@anarchion2141 3 жыл бұрын
Boo for endorsing weapons manufacturers.
Stop Fighting! Systems for Non-Combat AI
28:32
GDC
Рет қаралды 25 М.
You Don't Need a F-ing Publisher
33:32
GDC
Рет қаралды 478 М.
Osman Kalyoncu Sonu Üzücü Saddest Videos Dream Engine 118 #shorts
00:30
Glow Stick Secret 😱 #shorts
00:37
Mr DegrEE
Рет қаралды 144 МЛН
Writing Modular Characters for System-Driven Games
31:09
What Makes Good AI?
15:42
Game Maker's Toolkit
Рет қаралды 3 МЛН
Made Out Of Meat: Health Systems In Video Games
31:27
GDC
Рет қаралды 199 М.
How to Make and Self-Publish a Game in 12 Months
29:58
GDC
Рет қаралды 734 М.
Hidetaka Miyazaki on Game Design
25:54
DondonRV
Рет қаралды 41 М.
I Made a Game Illegally
7:48
PolyMars
Рет қаралды 1,1 МЛН
GDC 2016 - Motion Matching, The Future of Games Animation... Today
30:39
Kristjan Zadziuk
Рет қаралды 131 М.
I have something to say... Harsh truths and Honesty | Indie Game Dev
18:10
Sasquatch B Studios
Рет қаралды 49 М.