WEBVTT

1
00:00:00.080 --> 00:00:02.839
<v Speaker 1>Okay, So let's stick into something that it's way more

2
00:00:02.919 --> 00:00:06.080
<v Speaker 1>fascinating than just making you know, bad guys shoot straight

3
00:00:06.120 --> 00:00:11.199
<v Speaker 1>in games, we're talking about artificial intelligence, but specifically in games,

4
00:00:11.800 --> 00:00:17.079
<v Speaker 1>that kind of hidden intelligence that makes the world's feel alive.

5
00:00:16.960 --> 00:00:19.800
<v Speaker 2>Rights, the stuff making characters seem like they're thinking or

6
00:00:19.839 --> 00:00:21.079
<v Speaker 2>moving believably.

7
00:00:20.879 --> 00:00:23.920
<v Speaker 1>Exactly, and sometimes, let's be honest, it leads to those

8
00:00:23.960 --> 00:00:27.519
<v Speaker 1>glitches that are just hilariously memorable.

9
00:00:27.600 --> 00:00:30.079
<v Speaker 2>Yeah, it's that invisible layer, isn't it, ye, shaping so

10
00:00:30.160 --> 00:00:33.399
<v Speaker 2>much of how you experience the game, making it feel reactive,

11
00:00:33.560 --> 00:00:34.880
<v Speaker 2>not just static.

12
00:00:34.600 --> 00:00:37.719
<v Speaker 1>Totally, and to really get our heads around how it

13
00:00:37.759 --> 00:00:40.359
<v Speaker 1>all works. We've gathered a whole stack of material. We're

14
00:00:40.359 --> 00:00:44.159
<v Speaker 1>talking algorithms, techniques, some history. It's pretty deep stuff.

15
00:00:44.200 --> 00:00:45.039
<v Speaker 2>You can get technical.

16
00:00:45.159 --> 00:00:47.799
<v Speaker 1>Yeah, but our mission here for this deep dive is

17
00:00:47.840 --> 00:00:49.719
<v Speaker 1>to sort of cut through that jargon. We want to

18
00:00:49.759 --> 00:00:53.359
<v Speaker 1>find the really cool, important ideas and give you listening

19
00:00:53.399 --> 00:00:56.479
<v Speaker 1>now a short tut to understanding what's going on behind.

20
00:00:56.200 --> 00:00:58.719
<v Speaker 2>The scenes, like lifting the curtain a bit, Yeah.

21
00:00:58.799 --> 00:01:02.000
<v Speaker 1>Uncover some surprises, maybe have a few aha moments along

22
00:01:02.000 --> 00:01:02.320
<v Speaker 1>the way.

23
00:01:02.560 --> 00:01:04.879
<v Speaker 2>So think of it like getting a peek under the hood,

24
00:01:05.680 --> 00:01:09.599
<v Speaker 2>looking at the simulated brains, making everything tick, your opponents,

25
00:01:09.680 --> 00:01:12.519
<v Speaker 2>your allies, even the whole world sometimes.

26
00:01:12.640 --> 00:01:15.120
<v Speaker 1>Okay, so where do we start. The sources actually bring

27
00:01:15.200 --> 00:01:17.519
<v Speaker 1>up an interesting point about the history. Back in the

28
00:01:17.560 --> 00:01:22.599
<v Speaker 1>mid nineties, AI was actually like a selling point on

29
00:01:22.680 --> 00:01:23.519
<v Speaker 1>the back of the box.

30
00:01:23.599 --> 00:01:26.040
<v Speaker 2>Oh yeah, I remember that era. Beneath a Steel Sky

31
00:01:26.159 --> 00:01:27.280
<v Speaker 2>is a good example.

32
00:01:27.000 --> 00:01:30.719
<v Speaker 1>Right, It promised virtual theater. What was that supposed to be?

33
00:01:30.879 --> 00:01:34.480
<v Speaker 2>Well, the idea, the ambition was for characters who weren't

34
00:01:34.519 --> 00:01:37.840
<v Speaker 2>just puppets. They'd move around, do their own thing, make

35
00:01:37.879 --> 00:01:41.959
<v Speaker 2>the world feel lived in. Virtual theater. Sounded grand, but

36
00:01:42.000 --> 00:01:44.480
<v Speaker 2>the reality, the reality is the sources kind of point

37
00:01:44.480 --> 00:01:47.879
<v Speaker 2>out was maybe a bit less revolutionary. Often it just

38
00:01:47.920 --> 00:01:51.519
<v Speaker 2>met characters pacing back and forth on pretty fixed paths. Still,

39
00:01:51.560 --> 00:01:52.400
<v Speaker 2>it was an early.

40
00:01:52.159 --> 00:01:55.599
<v Speaker 1>Attempt, a bit underwhelming then maybe, But then something came

41
00:01:55.640 --> 00:01:58.640
<v Speaker 1>along that really shifted things, didn't it, gold enneye double

42
00:01:58.640 --> 00:01:59.120
<v Speaker 1>O seven.

43
00:02:00.480 --> 00:02:02.200
<v Speaker 2>Yeah, that was definitely a game changer for a lot

44
00:02:02.239 --> 00:02:03.480
<v Speaker 2>of people's perception of AI.

45
00:02:03.680 --> 00:02:04.640
<v Speaker 1>What did it do differently?

46
00:02:04.959 --> 00:02:07.359
<v Speaker 2>It wasn't just pre programmed patterns. I mean, yes, the

47
00:02:07.359 --> 00:02:10.199
<v Speaker 2>guards us simple state machines, that's true, But the key

48
00:02:10.240 --> 00:02:12.240
<v Speaker 2>thing was this basic sense simulation.

49
00:02:12.319 --> 00:02:13.919
<v Speaker 1>They added sense simulation.

50
00:02:14.039 --> 00:02:17.000
<v Speaker 2>Yeah, characters could essentially see their buddies. If one guard

51
00:02:17.039 --> 00:02:21.319
<v Speaker 2>saw another get taken out, they'd react, maybe investigate, maybe

52
00:02:21.360 --> 00:02:24.800
<v Speaker 2>raise the alarm. It wasn't super complex, but that idea

53
00:02:24.840 --> 00:02:28.400
<v Speaker 2>of awareness of perceiving the world a change things big time,

54
00:02:28.599 --> 00:02:32.639
<v Speaker 2>and that whole concept simulating senses, site, sound, it became

55
00:02:32.719 --> 00:02:35.080
<v Speaker 2>absolutely central to stealth games.

56
00:02:34.840 --> 00:02:38.280
<v Speaker 1>Later on, like Thief or Metal Here sawid.

57
00:02:38.120 --> 00:02:42.840
<v Speaker 2>Exactly Thief, Metal Gear, splinter Cell. The core gameplay loop

58
00:02:43.039 --> 00:02:47.120
<v Speaker 2>often revolves around exploiting or avoiding the AI senses how

59
00:02:47.159 --> 00:02:50.080
<v Speaker 2>guards react to a noise or a shadow or seeing

60
00:02:50.159 --> 00:02:51.240
<v Speaker 2>something suspicious.

61
00:02:51.479 --> 00:02:54.120
<v Speaker 1>So this points to a fundamental cycle that seems to

62
00:02:54.199 --> 00:02:55.759
<v Speaker 1>run through all the material we looked.

63
00:02:55.599 --> 00:02:57.439
<v Speaker 2>At pretty much. Yeah, you can boil a lot of

64
00:02:57.439 --> 00:03:00.400
<v Speaker 2>it down to perception leads to decision making, which leads

65
00:03:00.400 --> 00:03:00.800
<v Speaker 2>to action.

66
00:03:00.919 --> 00:03:01.960
<v Speaker 1>Per section decision action.

67
00:03:02.120 --> 00:03:05.280
<v Speaker 2>Okay, the AI gathers info for the world, decides what

68
00:03:05.319 --> 00:03:09.120
<v Speaker 2>to do about it, and then actually does something, move, shoots, hides, talks.

69
00:03:08.840 --> 00:03:12.280
<v Speaker 1>Whatever, right, and to actually do those actions. Especially back then,

70
00:03:12.680 --> 00:03:15.520
<v Speaker 1>developers were always fighting against hardware limits, weren't they.

71
00:03:15.639 --> 00:03:19.639
<v Speaker 2>Oh, absolutely huge constraint. Early days, you had maybe one

72
00:03:19.639 --> 00:03:23.240
<v Speaker 2>CPU doing everything. Now we've got multiple cores, powerful GPUs.

73
00:03:23.280 --> 00:03:25.080
<v Speaker 1>PPUs are more for graphics though.

74
00:03:24.919 --> 00:03:27.840
<v Speaker 2>Mostly Yeah, they're built for massively parallel stuff, tons of

75
00:03:27.840 --> 00:03:31.159
<v Speaker 2>simple calculations at once, which is perfect for graphics, but

76
00:03:31.520 --> 00:03:34.240
<v Speaker 2>it does influence AI. Sometimes. If you can break an

77
00:03:34.240 --> 00:03:38.080
<v Speaker 2>AI task into lots of small independent bits, maybe you

78
00:03:38.120 --> 00:03:41.520
<v Speaker 2>can leverage the GPU. But CPUs are still king for

79
00:03:41.560 --> 00:03:44.800
<v Speaker 2>that complex, sequential thinking part of AI.

80
00:03:45.039 --> 00:03:48.240
<v Speaker 1>So it's always a trade off performance versus complexity.

81
00:03:47.759 --> 00:03:49.639
<v Speaker 2>Always has been, always will being gamed of.

82
00:03:49.800 --> 00:03:55.080
<v Speaker 1>And it's not just consoles and PCs anymore. You've got phones, tablets, iOS, Android,

83
00:03:55.439 --> 00:03:56.800
<v Speaker 1>AI has to run everywhere.

84
00:03:56.840 --> 00:03:59.680
<v Speaker 2>Now, Yeah, the rise of mobile is huge, and that's

85
00:03:59.680 --> 00:04:03.199
<v Speaker 2>where engines like Unreal, Unity, godot are so important. They

86
00:04:03.199 --> 00:04:05.319
<v Speaker 2>provide this layer of this framework.

87
00:04:04.919 --> 00:04:06.439
<v Speaker 1>So you can write the AI once.

88
00:04:06.479 --> 00:04:11.520
<v Speaker 2>Pretty much, write at once, deploy it on PC, console, mobile,

89
00:04:12.680 --> 00:04:15.879
<v Speaker 2>maybe with some tweaks, but the core logic can often

90
00:04:15.919 --> 00:04:18.720
<v Speaker 2>be reused. That definitely shapes how you design the AI

91
00:04:18.759 --> 00:04:19.800
<v Speaker 2>systems in the first place.

92
00:04:19.839 --> 00:04:22.879
<v Speaker 1>Okay, so keeping that cycle in mind, perception, decision, action,

93
00:04:23.000 --> 00:04:27.000
<v Speaker 1>and let's talk about the action bit, specifically movement. How

94
00:04:27.040 --> 00:04:31.360
<v Speaker 1>do AI characters actually you know, get around because unless

95
00:04:31.360 --> 00:04:33.839
<v Speaker 1>it's maybe an economic sim they need to move.

96
00:04:34.040 --> 00:04:38.079
<v Speaker 2>Movement's fundamental. Yeah, an AI character has a position, maybe

97
00:04:38.079 --> 00:04:42.000
<v Speaker 2>an orientation, physical properties. Yeah, and the movement algorithms figure

98
00:04:42.040 --> 00:04:44.800
<v Speaker 2>out frame by frame where they need to go next

99
00:04:44.879 --> 00:04:45.600
<v Speaker 2>to reach their goal.

100
00:04:45.639 --> 00:04:47.879
<v Speaker 1>But you don't want them just snapping between locations. Right,

101
00:04:48.000 --> 00:04:50.040
<v Speaker 1>has to look physical exactly.

102
00:04:50.120 --> 00:04:54.199
<v Speaker 2>That's where kinematics comes in. It's basically applying physics Newton's laws. Really,

103
00:04:54.240 --> 00:04:58.959
<v Speaker 2>even in a simple way. Velocity can't change instantly right inertia. Yeah,

104
00:04:59.040 --> 00:05:01.959
<v Speaker 2>So the algorithms don't teleport the character. They consider its

105
00:05:02.000 --> 00:05:04.839
<v Speaker 2>current speed and direction and use acceleration to make the

106
00:05:04.839 --> 00:05:08.120
<v Speaker 2>movement smooth and believable. No instance stops or starts.

107
00:05:08.319 --> 00:05:11.240
<v Speaker 1>And the sources talk about these things called steering behaviors

108
00:05:11.279 --> 00:05:12.680
<v Speaker 1>like building blocks for a movement.

109
00:05:13.000 --> 00:05:17.120
<v Speaker 2>They are think of them as simple reactive urges. Seek

110
00:05:17.279 --> 00:05:20.319
<v Speaker 2>tells a character to move towards a target. Flea tells

111
00:05:20.319 --> 00:05:23.360
<v Speaker 2>it to run away. Very basic, but you build on those,

112
00:05:23.439 --> 00:05:27.319
<v Speaker 2>you combine them. So pursue isn't just seek. It tries

113
00:05:27.360 --> 00:05:29.480
<v Speaker 2>to predict where a moving target will be and seeks

114
00:05:29.519 --> 00:05:33.959
<v Speaker 2>that point. Collision avoidant steers away from obstacles. Often these

115
00:05:34.000 --> 00:05:37.720
<v Speaker 2>more complex behaviors work by delegating to the simpler ones

116
00:05:38.360 --> 00:05:41.120
<v Speaker 2>seek the target, but also flee from that wall that's

117
00:05:41.160 --> 00:05:41.920
<v Speaker 2>getting too close.

118
00:05:42.160 --> 00:05:45.800
<v Speaker 1>The material mentioned a potential issue with a simple wander behavior,

119
00:05:45.800 --> 00:05:48.519
<v Speaker 1>something about rotational jerkiness. What does that look like?

120
00:05:48.800 --> 00:05:52.079
<v Speaker 2>Imagine a character just randomly picking a new direction every

121
00:05:52.120 --> 00:05:54.959
<v Speaker 2>single frame. They kind of twitch and spin around unnaturally.

122
00:05:54.959 --> 00:05:58.519
<v Speaker 2>It looks terrible. Uh so simple wander needs smoothing. Maybe

123
00:05:58.560 --> 00:06:01.199
<v Speaker 2>you pick a random point on a circle slightly ahead

124
00:06:01.240 --> 00:06:03.639
<v Speaker 2>of the character and steer towards that. Updating it less

125
00:06:03.639 --> 00:06:06.199
<v Speaker 2>frequently makes it look more like they're meandering, not having

126
00:06:06.199 --> 00:06:06.680
<v Speaker 2>a seizure.

127
00:06:06.839 --> 00:06:10.959
<v Speaker 1>Gotcha. So steering handles the how of moving smoothly, But

128
00:06:11.040 --> 00:06:14.680
<v Speaker 1>how does the AI figure out the where? Especially in

129
00:06:14.720 --> 00:06:17.319
<v Speaker 1>a big complex level. That sounds like pathfinding.

130
00:06:17.680 --> 00:06:21.000
<v Speaker 2>That's exactly what pathfinding is for finding a route a

131
00:06:21.040 --> 00:06:23.720
<v Speaker 2>sequence of steps from point A to point B that

132
00:06:23.800 --> 00:06:27.800
<v Speaker 2>avoids opticles like walls, pits, whatever the level design are

133
00:06:27.800 --> 00:06:28.399
<v Speaker 2>put in the way.

134
00:06:28.600 --> 00:06:31.720
<v Speaker 1>It's the how do I get there from here? Problem?

135
00:06:31.800 --> 00:06:36.240
<v Speaker 1>Precisely the source of mentioned classic algorithms Dykstra's algorithm. I

136
00:06:36.240 --> 00:06:38.560
<v Speaker 1>think I remember that from a computer science class.

137
00:06:38.680 --> 00:06:42.160
<v Speaker 2>Yeah, dykstras is fundamental graph theory, it's guaranteed to find

138
00:06:42.439 --> 00:06:46.000
<v Speaker 2>the absolute shortest path from your start point to every

139
00:06:46.040 --> 00:06:48.720
<v Speaker 2>other reachable point in the graph, representing.

140
00:06:48.199 --> 00:06:49.519
<v Speaker 1>The level every other point.

141
00:06:49.560 --> 00:06:52.000
<v Speaker 2>That sounds like a lot, it can be, and that's

142
00:06:52.040 --> 00:06:54.959
<v Speaker 2>the catch. For games. Usually you only care about the

143
00:06:55.000 --> 00:06:58.639
<v Speaker 2>past to one specific goal. Calculating the shortest path to

144
00:06:58.720 --> 00:07:00.959
<v Speaker 2>everywhere else is often effort.

145
00:07:00.800 --> 00:07:03.480
<v Speaker 1>So games tend to use a more A.

146
00:07:03.560 --> 00:07:05.879
<v Speaker 2>Star A is generally the go to. Yeah. Yeah, it's

147
00:07:05.920 --> 00:07:09.439
<v Speaker 2>smarter about searching, how so it uses a heuristic think

148
00:07:09.480 --> 00:07:11.480
<v Speaker 2>of it as an educated guess or a rule of

149
00:07:11.519 --> 00:07:13.959
<v Speaker 2>thumb to estimate the distance remaining to.

150
00:07:13.920 --> 00:07:16.519
<v Speaker 1>The goal, like as the crow flies distance.

151
00:07:16.439 --> 00:07:21.360
<v Speaker 2>Often yeah, or Manhattan distance. In grid based worlds, Igelegan

152
00:07:21.399 --> 00:07:24.959
<v Speaker 2>combines the actual cost traveled so far with this estimated

153
00:07:25.000 --> 00:07:29.079
<v Speaker 2>future cost. This lets to prioritize exploring paths that seem

154
00:07:29.120 --> 00:07:30.920
<v Speaker 2>to be heading more directly towards the goal.

155
00:07:31.000 --> 00:07:33.600
<v Speaker 1>Ah, so it doesn't waste time exploring paths that are

156
00:07:33.639 --> 00:07:36.600
<v Speaker 1>clearly going the wrong way, even if they look short initially.

157
00:07:36.720 --> 00:07:40.120
<v Speaker 2>Exactly, it focuses the search, makes it much faster than

158
00:07:40.240 --> 00:07:43.639
<v Speaker 2>Diikstra in most typical game scenarios. Now there's a small

159
00:07:43.680 --> 00:07:49.279
<v Speaker 2>trade off mentioned. Oh, if you're heuristic, your guess is bad. Specifically,

160
00:07:49.920 --> 00:07:53.519
<v Speaker 2>if it overestimates the actual cost to the goal, then

161
00:07:53.600 --> 00:07:58.040
<v Speaker 2>a might not find the absolute mathematically shortest path. It

162
00:07:58.120 --> 00:08:00.519
<v Speaker 2>might find a path that looks shorter based on the

163
00:08:00.519 --> 00:08:01.120
<v Speaker 2>bad gas.

164
00:08:01.199 --> 00:08:03.839
<v Speaker 1>So developers might accept a path that's like ninety nine

165
00:08:03.839 --> 00:08:06.399
<v Speaker 1>percent optimal if it means the calculation is way faster.

166
00:08:06.600 --> 00:08:10.399
<v Speaker 2>That's the aha moment right there, exactly. Performance often trump's

167
00:08:10.399 --> 00:08:13.639
<v Speaker 2>perfect optimality. In real time games, good enough, fast enough

168
00:08:13.839 --> 00:08:14.360
<v Speaker 2>is often the.

169
00:08:14.319 --> 00:08:16.959
<v Speaker 1>Mantra makes sense. So for A or diestra to even work,

170
00:08:17.000 --> 00:08:19.000
<v Speaker 1>they need a map, right, but not the full three

171
00:08:19.079 --> 00:08:20.560
<v Speaker 1>D graphics geometry.

172
00:08:20.160 --> 00:08:22.800
<v Speaker 2>Where they need a simplified representation of the navigable space.

173
00:08:22.839 --> 00:08:24.879
<v Speaker 2>You can't search through raw triangles.

174
00:08:24.560 --> 00:08:26.279
<v Speaker 1>Like navigation meshes. I've heard that.

175
00:08:26.319 --> 00:08:29.800
<v Speaker 2>Term nav meshes are super common. They basically represent all

176
00:08:29.800 --> 00:08:33.159
<v Speaker 2>the walkable surfaces as a set of connected polygons like

177
00:08:33.240 --> 00:08:36.960
<v Speaker 2>piles on the floor. The AI path finds across these polygons.

178
00:08:37.000 --> 00:08:39.639
<v Speaker 1>How does that work with the algorithm? Are the polygons

179
00:08:39.679 --> 00:08:40.159
<v Speaker 1>the nodes?

180
00:08:40.480 --> 00:08:42.759
<v Speaker 2>Sometimes the center of the polygons, but often it's the

181
00:08:42.919 --> 00:08:46.720
<v Speaker 2>edges between the polygons. The edges as nodes approach is mentioned.

182
00:08:46.879 --> 00:08:50.039
<v Speaker 2>Path finding becomes finding a sequence of edges to cross

183
00:08:50.200 --> 00:08:52.639
<v Speaker 2>to get from the starting polygon to the goal polygon.

184
00:08:52.799 --> 00:08:56.759
<v Speaker 1>Okay, but what about huge open worlds. Those nav meshes

185
00:08:56.840 --> 00:08:57.879
<v Speaker 1>must get enormous.

186
00:08:57.919 --> 00:09:01.440
<v Speaker 2>They do, and that's where hierarchy pathfinding comes into play.

187
00:09:01.559 --> 00:09:04.480
<v Speaker 2>Layers kind of you group areas together, like maybe this

188
00:09:04.519 --> 00:09:07.200
<v Speaker 2>whole building is one high level note and that neighborhood

189
00:09:07.279 --> 00:09:10.440
<v Speaker 2>is another. The AI first finds a path between these

190
00:09:10.480 --> 00:09:14.440
<v Speaker 2>big regions, like planning a trip using major highways. Then

191
00:09:14.720 --> 00:09:17.320
<v Speaker 2>once it enters a region, it does a more detailed

192
00:09:17.320 --> 00:09:20.759
<v Speaker 2>pathfind within that smaller area, figuring out the local streets.

193
00:09:21.120 --> 00:09:24.639
<v Speaker 1>That seems way more manutable. Okay, so characters can move

194
00:09:24.679 --> 00:09:27.720
<v Speaker 1>realistically with steering, and they can find paths with pathfinding,

195
00:09:27.919 --> 00:09:31.159
<v Speaker 1>But how do they decide decide where to go, whether

196
00:09:31.240 --> 00:09:34.440
<v Speaker 1>to fight or hide or talk. That's the decision making

197
00:09:34.480 --> 00:09:34.879
<v Speaker 1>part of the.

198
00:09:34.879 --> 00:09:37.440
<v Speaker 2>Cycle, right, This is the core intelligence, the brain making

199
00:09:37.440 --> 00:09:40.159
<v Speaker 2>the choices. It determines what the character intends to do.

200
00:09:40.320 --> 00:09:43.559
<v Speaker 1>The sources mentioned decision trees as a common technique, simple

201
00:09:43.679 --> 00:09:44.399
<v Speaker 1>if thin stuff.

202
00:09:44.799 --> 00:09:47.679
<v Speaker 2>Pretty much, they're like flow charts, a series of questions

203
00:09:47.759 --> 00:09:50.679
<v Speaker 2>usually yes no, leading down branches to an action is

204
00:09:50.720 --> 00:09:53.240
<v Speaker 2>the enemy visible? Yes? Do I have AMMO? Yes?

205
00:09:53.279 --> 00:09:53.639
<v Speaker 1>Shoot?

206
00:09:53.840 --> 00:09:56.799
<v Speaker 2>No reload back up the tree is the endy visible?

207
00:09:57.039 --> 00:09:58.000
<v Speaker 2>No patrol.

208
00:09:58.240 --> 00:10:00.639
<v Speaker 1>They sound fast and easy for designers to work with.

209
00:10:00.759 --> 00:10:04.360
<v Speaker 2>They are very fast, execute, modular, easy to build and tweak,

210
00:10:04.799 --> 00:10:07.480
<v Speaker 2>use for tons of stuff from simple reactions to choose

211
00:10:07.480 --> 00:10:08.159
<v Speaker 2>the animations.

212
00:10:08.240 --> 00:10:10.360
<v Speaker 1>What about state machines those seem classic too.

213
00:10:10.679 --> 00:10:16.039
<v Speaker 2>Finite state machines yeah, FSMs. You define distinct states. The

214
00:10:16.080 --> 00:10:21.120
<v Speaker 2>AI can be in patrolling, investigating, attacking, fleeing, and transitions

215
00:10:21.120 --> 00:10:24.080
<v Speaker 2>between them. If you're patrolling and you hear a noise,

216
00:10:24.480 --> 00:10:27.840
<v Speaker 2>the transition condition you switch to the investigating state.

217
00:10:28.120 --> 00:10:30.480
<v Speaker 1>Sounds neat, but maybe it gets messy. If you have

218
00:10:30.519 --> 00:10:31.720
<v Speaker 1>lots of states.

219
00:10:31.440 --> 00:10:33.799
<v Speaker 2>It can become a spaghetti diagram really quickly if you're

220
00:10:33.799 --> 00:10:37.000
<v Speaker 2>not careful, lots of arrows criss crossing. That's why higer

221
00:10:37.039 --> 00:10:38.240
<v Speaker 2>Arsenill state machines.

222
00:10:37.919 --> 00:10:40.360
<v Speaker 1>Were developed, so states within states exactly.

223
00:10:40.720 --> 00:10:45.000
<v Speaker 2>Your combat state might contain substates like taking cover, firing, reloading.

224
00:10:45.200 --> 00:10:48.519
<v Speaker 2>It helps organize complexity, and you can have transitions that

225
00:10:48.600 --> 00:10:51.639
<v Speaker 2>jump across levels, like a sudden loud noise pulling you

226
00:10:51.679 --> 00:10:54.600
<v Speaker 2>out of reloading right back to a top level alert state.

227
00:10:54.840 --> 00:10:58.840
<v Speaker 1>Now The material really highlights behavior trees as being super popular. Now,

228
00:10:59.080 --> 00:11:00.080
<v Speaker 1>what's the deal with them?

229
00:11:00.559 --> 00:11:04.840
<v Speaker 2>Behavior trees are very powerful and crusely very intuitive for designers.

230
00:11:05.399 --> 00:11:08.320
<v Speaker 2>They structure tasks in a tree like way. The AI

231
00:11:08.440 --> 00:11:12.120
<v Speaker 2>executes the tree usually depth first, trying branches until it

232
00:11:12.159 --> 00:11:14.399
<v Speaker 2>finds an action or sequence that succeeds.

233
00:11:14.480 --> 00:11:15.440
<v Speaker 1>Can you give an example?

234
00:11:15.559 --> 00:11:19.120
<v Speaker 2>Sure, a root node might be engage enemy. It has

235
00:11:19.200 --> 00:11:22.639
<v Speaker 2>children like is enemy visible? If yes, it goes down

236
00:11:22.679 --> 00:11:24.919
<v Speaker 2>the attack branch. If no, it tries the search for

237
00:11:25.039 --> 00:11:27.759
<v Speaker 2>enemy branch, which might have subtasks like go to last

238
00:11:27.799 --> 00:11:31.159
<v Speaker 2>known position, then scan area. It feels logical, like how

239
00:11:31.159 --> 00:11:32.600
<v Speaker 2>a person might approach a problem.

240
00:11:32.679 --> 00:11:35.080
<v Speaker 1>Again, they're reusable, hugely reusable.

241
00:11:35.240 --> 00:11:37.960
<v Speaker 2>You create nodes for common actions, move to play, animation,

242
00:11:38.159 --> 00:11:40.679
<v Speaker 2>check condition, and assemble them into trees. You can make

243
00:11:40.679 --> 00:11:43.679
<v Speaker 2>a complex take cover behavior and just drop it into

244
00:11:43.679 --> 00:11:47.879
<v Speaker 2>different AI characters. Trees engines often have visual editors like

245
00:11:48.000 --> 00:11:48.519
<v Speaker 2>Lego for.

246
00:11:48.519 --> 00:11:49.879
<v Speaker 1>AI like al prefabs.

247
00:11:49.919 --> 00:11:51.759
<v Speaker 2>Okay, that makes sense exactly that concept.

248
00:11:51.960 --> 00:11:54.720
<v Speaker 1>Are there other ways? The sources mention things like utility

249
00:11:54.759 --> 00:11:57.639
<v Speaker 1>based systems. Yeah, goal oriented behavior.

250
00:11:57.279 --> 00:12:00.000
<v Speaker 2>Yeah, those are a different philosophy instead of pre defined

251
00:12:00.159 --> 00:12:06.360
<v Speaker 2>logic flows. The AI has goals or motives hunger, thirst, safety, curiosity,

252
00:12:06.639 --> 00:12:09.080
<v Speaker 2>each with a current insistence level.

253
00:12:08.879 --> 00:12:09.720
<v Speaker 1>How much it wants it.

254
00:12:10.039 --> 00:12:12.440
<v Speaker 2>Basically, yeah, the AI looks at all the actions it

255
00:12:12.440 --> 00:12:15.120
<v Speaker 2>could do and evaluates how well each action would satisfy

256
00:12:15.200 --> 00:12:18.279
<v Speaker 2>its most insistent needs. It picks the action that leads

257
00:12:18.279 --> 00:12:20.240
<v Speaker 2>to the lowest overall discontentment.

258
00:12:20.480 --> 00:12:24.120
<v Speaker 1>Sounds more adaptive, maybe less predictable, it can be.

259
00:12:24.559 --> 00:12:27.879
<v Speaker 2>The big challenge is often calculating the utility of an action.

260
00:12:29.000 --> 00:12:32.720
<v Speaker 2>How much will eating this apple reduce my hunger? How

261
00:12:32.759 --> 00:12:35.639
<v Speaker 2>long will it take to pathfind to the apple? Often

262
00:12:35.679 --> 00:12:38.399
<v Speaker 2>requires good estimation heuristics.

263
00:12:37.799 --> 00:12:39.799
<v Speaker 1>Again, seems complex to set up right.

264
00:12:40.000 --> 00:12:42.080
<v Speaker 2>It can be more work up front than say, a

265
00:12:42.159 --> 00:12:46.159
<v Speaker 2>state machine. Rule based systems are another alternative mentioned, using

266
00:12:46.399 --> 00:12:49.600
<v Speaker 2>if then rules like if player is visible and health

267
00:12:49.679 --> 00:12:53.840
<v Speaker 2>is low, then find cover. But writing good comprehensive rule

268
00:12:53.879 --> 00:12:55.039
<v Speaker 2>sets is really hard.

269
00:12:55.159 --> 00:12:57.960
<v Speaker 1>The knowledge acquisition bottleneck they called it.

270
00:12:57.919 --> 00:13:00.879
<v Speaker 2>Right, So while powerful in theory, they're less common in

271
00:13:00.919 --> 00:13:04.480
<v Speaker 2>practice for moment to moment character AI compared to trees

272
00:13:04.600 --> 00:13:05.320
<v Speaker 2>or state machines.

273
00:13:05.399 --> 00:13:09.559
<v Speaker 1>Okay, individual decisions covered. What about coordinating groups or making

274
00:13:09.600 --> 00:13:10.879
<v Speaker 1>bigger strategic plans?

275
00:13:10.919 --> 00:13:14.039
<v Speaker 2>Yeah, moving beyond single characters, that's tactical and strategic. AI

276
00:13:14.559 --> 00:13:18.519
<v Speaker 2>tactical is about local coordination soldiers using cover fire, flanking maneuvers.

277
00:13:19.000 --> 00:13:22.120
<v Speaker 2>Strategic is the big picture, deciding which continent to invade

278
00:13:22.159 --> 00:13:25.159
<v Speaker 2>in a global strategy game, or managing an economy in

279
00:13:25.200 --> 00:13:26.120
<v Speaker 2>an RTS.

280
00:13:26.159 --> 00:13:30.320
<v Speaker 1>For tactics, the sources mention tactical waypoints, not just points

281
00:13:30.360 --> 00:13:33.240
<v Speaker 1>to walk to, but points with extra info.

282
00:13:33.480 --> 00:13:36.759
<v Speaker 2>Exactly, a waypoint might be tagged as good cover spot

283
00:13:36.879 --> 00:13:40.879
<v Speaker 2>versus north or ambush point, but just relying on static

284
00:13:40.879 --> 00:13:44.000
<v Speaker 2>points placed by a designer has limits. What if the

285
00:13:44.039 --> 00:13:45.519
<v Speaker 2>situation changes.

286
00:13:45.320 --> 00:13:47.320
<v Speaker 1>So run time analysis.

287
00:13:46.879 --> 00:13:51.080
<v Speaker 2>Yeah, better systems analyze the environment dynamically, calculating lines of sight,

288
00:13:51.399 --> 00:13:54.120
<v Speaker 2>checking actual cover effectiveness based on where the enemies are

289
00:13:54.200 --> 00:13:54.639
<v Speaker 2>right now.

290
00:13:54.879 --> 00:13:58.639
<v Speaker 1>The frag maps idea sounded cool learning from where players die.

291
00:13:58.879 --> 00:14:02.480
<v Speaker 2>It's a neat example of simple tactical learning. Basically, areas

292
00:14:02.480 --> 00:14:04.919
<v Speaker 2>on the map build up a danger value. If AI

293
00:14:05.000 --> 00:14:08.120
<v Speaker 2>units keep getting killed there, future AI might then learn

294
00:14:08.159 --> 00:14:10.159
<v Speaker 2>to avoid those spots or be more cautious.

295
00:14:10.200 --> 00:14:12.120
<v Speaker 1>But they need to unlearn it too, right, so they

296
00:14:12.159 --> 00:14:15.039
<v Speaker 1>don't avoid a place forever after one unlucky death.

297
00:14:15.200 --> 00:14:18.519
<v Speaker 2>Exactly, a decay factor or unlearning bias is important and.

298
00:14:18.440 --> 00:14:21.279
<v Speaker 1>For strategy, Like in an RTS, how does the AI

299
00:14:21.320 --> 00:14:23.919
<v Speaker 1>decide whether to build more units or research tech.

300
00:14:24.120 --> 00:14:27.639
<v Speaker 2>Often with multi tiered AI, you have layers. A top

301
00:14:27.759 --> 00:14:30.960
<v Speaker 2>level strategic layer makes broad decisions we need more resource

302
00:14:31.000 --> 00:14:33.279
<v Speaker 2>income or prepare for an attack on their.

303
00:14:33.200 --> 00:14:35.200
<v Speaker 1>Base, and that gets passed down right.

304
00:14:35.279 --> 00:14:38.399
<v Speaker 2>A mid level tactical layer might translate attack their base

305
00:14:38.639 --> 00:14:42.519
<v Speaker 2>into a simple strikeforce alpha A coordinates x y and

306
00:14:42.559 --> 00:14:46.600
<v Speaker 2>proceed along route Z. Then the lowest level AI, the

307
00:14:46.639 --> 00:14:50.519
<v Speaker 2>individual unit AI, handles the actual movement in shooting based

308
00:14:50.559 --> 00:14:51.279
<v Speaker 2>on those orders.

309
00:14:51.559 --> 00:14:54.360
<v Speaker 1>So the player is often the top strategic layer in

310
00:14:54.399 --> 00:14:55.080
<v Speaker 1>an RTS.

311
00:14:55.200 --> 00:14:58.080
<v Speaker 2>In many cases, yes, the player sets the goals and

312
00:14:58.200 --> 00:15:01.080
<v Speaker 2>the AI executes the details, though some games have high

313
00:15:01.120 --> 00:15:03.679
<v Speaker 2>level AI opponents making strategic choices.

314
00:15:03.360 --> 00:15:06.879
<v Speaker 1>Too, and tactical pathfinding came up again. Path cost isn't

315
00:15:06.919 --> 00:15:08.200
<v Speaker 1>just distance, right.

316
00:15:08.279 --> 00:15:11.080
<v Speaker 2>It's about the quality of the path caxically speaking. Is

317
00:15:11.120 --> 00:15:14.639
<v Speaker 2>it exposed to enemy fire? Does it offer good ambush opportunities?

318
00:15:15.000 --> 00:15:17.879
<v Speaker 2>A path might be longer but much safer, so tactical

319
00:15:17.919 --> 00:15:19.039
<v Speaker 2>pathfinding would prefer it.

320
00:15:19.159 --> 00:15:23.200
<v Speaker 1>Okay, The big one learning Can game AI actually learn

321
00:15:23.360 --> 00:15:24.799
<v Speaker 1>like you know? Learn learn?

322
00:15:25.320 --> 00:15:28.519
<v Speaker 2>The sources definitely cover learning, but with a crucial caveat

323
00:15:28.559 --> 00:15:31.960
<v Speaker 2>for games, the goal isn't just effective AI. It's AI

324
00:15:32.039 --> 00:15:34.799
<v Speaker 2>that results in good gameplay. An AI that learns an

325
00:15:34.879 --> 00:15:36.639
<v Speaker 2>unbeatable exploit isn't fun.

326
00:15:36.919 --> 00:15:39.240
<v Speaker 1>That's a really important distinction. So what kinds of learning

327
00:15:39.240 --> 00:15:39.799
<v Speaker 1>do they use?

328
00:15:40.039 --> 00:15:44.240
<v Speaker 2>Some simple stuff like parameter modification basically tweaking numbers like

329
00:15:44.519 --> 00:15:47.960
<v Speaker 2>if the AI keeps losing, maybe slightly increase its accuracy.

330
00:15:48.000 --> 00:15:52.879
<v Speaker 2>Parameter uses optimization techniques like kill climbing. Then there's action prediction,

331
00:15:53.120 --> 00:15:55.360
<v Speaker 2>trying to guess what the player will do next based

332
00:15:55.399 --> 00:15:58.279
<v Speaker 2>on past behavior using techniques like n grams.

333
00:15:58.000 --> 00:16:01.639
<v Speaker 1>And reinforcement learning. That's the hot top AI. Generally trial

334
00:16:01.639 --> 00:16:02.480
<v Speaker 1>and error.

335
00:16:02.279 --> 00:16:06.440
<v Speaker 2>Exactly the AI tries ashs, gets rewards or penalties from

336
00:16:06.480 --> 00:16:09.919
<v Speaker 2>the game, find treasure, reward, fall in lava, penalty, and

337
00:16:10.039 --> 00:16:13.039
<v Speaker 2>learns over time which actions lead to good outcomes in

338
00:16:13.080 --> 00:16:16.960
<v Speaker 2>different situations or states. Q learning is a common example mentioned.

339
00:16:17.000 --> 00:16:18.360
<v Speaker 1>What's the challenge there? For games?

340
00:16:18.799 --> 00:16:23.360
<v Speaker 2>Defining the state? Real game worlds are incredibly complex and continuous.

341
00:16:23.879 --> 00:16:27.879
<v Speaker 2>Trying to break down every possible situation, player, position, enemy health,

342
00:16:28.039 --> 00:16:31.120
<v Speaker 2>ammial count, time of day into discrete states for the

343
00:16:31.159 --> 00:16:32.559
<v Speaker 2>algorithm can be really.

344
00:16:32.320 --> 00:16:34.799
<v Speaker 1>Hard and neural networks. Deep learning.

345
00:16:35.120 --> 00:16:38.799
<v Speaker 2>Neural nets are powerful pattern recognizers. They learn by adjusting

346
00:16:38.840 --> 00:16:42.639
<v Speaker 2>connections between artificial neurons. They were used historically in things

347
00:16:42.679 --> 00:16:45.960
<v Speaker 2>like checkers programs or td GAMIN for evaluating board positions.

348
00:16:46.279 --> 00:16:49.879
<v Speaker 2>Deep blue used complex evaluation, possibly including n ends.

349
00:16:50.000 --> 00:16:52.519
<v Speaker 1>But are they used for deciding if a guard should

350
00:16:52.519 --> 00:16:53.120
<v Speaker 1>open a door?

351
00:16:53.720 --> 00:16:57.879
<v Speaker 2>Less so, according to the sources, for general character behavior logic,

352
00:16:58.200 --> 00:17:00.919
<v Speaker 2>things like behavior trees are often more press tactical, easier

353
00:17:00.960 --> 00:17:04.279
<v Speaker 2>to design, debug and control. Neural nets are great for

354
00:17:04.359 --> 00:17:08.440
<v Speaker 2>specific tasks like image recognition or maybe complex evaluation, but

355
00:17:08.599 --> 00:17:11.440
<v Speaker 2>maybe overkill or too inch of a black box for

356
00:17:11.559 --> 00:17:13.599
<v Speaker 2>typical moment to moment decisions.

357
00:17:13.200 --> 00:17:16.160
<v Speaker 1>Right now, So, traditional methods are still really dominant for

358
00:17:16.240 --> 00:17:18.119
<v Speaker 1>a lot of character AI for.

359
00:17:18.079 --> 00:17:21.599
<v Speaker 2>The actual decision logic very much so. The complexity, data

360
00:17:21.640 --> 00:17:25.200
<v Speaker 2>needs and training time for deep learning for general flexible

361
00:17:25.279 --> 00:17:28.839
<v Speaker 2>character behavior are still pretty significant hurdles compared to more

362
00:17:28.960 --> 00:17:30.000
<v Speaker 2>established techniques.

363
00:17:30.279 --> 00:17:35.759
<v Speaker 1>Okay, wow, so we've got movement, pathfinding, decisions, tactics, strategy,

364
00:17:35.799 --> 00:17:38.920
<v Speaker 1>even learning. How does all this stuff actually run inside

365
00:17:39.000 --> 00:17:42.160
<v Speaker 1>the game, and how does the AI even know what's

366
00:17:42.200 --> 00:17:43.559
<v Speaker 1>happening in the world. This is the.

367
00:17:43.480 --> 00:17:48.839
<v Speaker 2>Plumbing right exactly, The implementation details Yeah, super important. First off, scheduling,

368
00:17:49.720 --> 00:17:53.400
<v Speaker 2>you might have hundreds of AI characters. You can't afford

369
00:17:53.440 --> 00:17:57.119
<v Speaker 2>to run every single AI calculation for every character every

370
00:17:57.119 --> 00:17:59.960
<v Speaker 2>single frame. Your game would grind to a halt.

371
00:18:00.240 --> 00:18:02.240
<v Speaker 1>So you need to manage who thinks.

372
00:18:02.000 --> 00:18:06.640
<v Speaker 2>When precisely you schedule AI updates. Maybe important enemies nearby

373
00:18:06.720 --> 00:18:09.680
<v Speaker 2>update every frame, but background characters only update every few

374
00:18:09.720 --> 00:18:13.440
<v Speaker 2>seconds or when something relevant happens. High archo of scheduling

375
00:18:13.599 --> 00:18:15.839
<v Speaker 2>helps manage this complexity.

376
00:18:15.240 --> 00:18:16.960
<v Speaker 1>And anytime algorithms what are they?

377
00:18:17.160 --> 00:18:19.720
<v Speaker 2>Those clever algorithms design so you can interrupt them part

378
00:18:19.720 --> 00:18:21.920
<v Speaker 2>way through their calculation and they can still give you

379
00:18:21.960 --> 00:18:23.880
<v Speaker 2>a usable, even if not perfect result.

380
00:18:24.200 --> 00:18:27.039
<v Speaker 1>Ah. So the AI doesn't just freeze for three seconds

381
00:18:27.039 --> 00:18:29.440
<v Speaker 1>while it calculates the perfect path exactly.

382
00:18:29.599 --> 00:18:31.880
<v Speaker 2>You can get a rough path, quickly, start moving, and

383
00:18:31.920 --> 00:18:33.839
<v Speaker 2>maybe refine the path in the background if it gets

384
00:18:33.839 --> 00:18:37.559
<v Speaker 2>more processing time later. Avoids that deer in headlights.

385
00:18:37.200 --> 00:18:40.440
<v Speaker 1>Lack that can level of detail for AI similar to graphics.

386
00:18:40.160 --> 00:18:44.240
<v Speaker 2>Yep, same principle. AI complexity scales with importance usually distance

387
00:18:44.839 --> 00:18:49.160
<v Speaker 2>faraway AI runs simpler logic, closer AI runs the full simulation.

388
00:18:50.000 --> 00:18:53.440
<v Speaker 2>Behavior Compression is mentioned as a way to smoothly transition

389
00:18:53.559 --> 00:18:55.599
<v Speaker 2>between these levels. So the change is in jarring.

390
00:18:55.680 --> 00:18:58.079
<v Speaker 1>Okay, how does the AI get its info? How does

391
00:18:58.079 --> 00:18:59.480
<v Speaker 1>it perceive the world state?

392
00:19:00.079 --> 00:19:04.720
<v Speaker 2>Good question. The simplest way is polling. The AI just

393
00:19:04.799 --> 00:19:06.880
<v Speaker 2>asked the game can I see the player? Is there

394
00:19:06.880 --> 00:19:09.480
<v Speaker 2>a wall in front of me? Whenever it needs to know?

395
00:19:09.720 --> 00:19:12.640
<v Speaker 1>Sounds simple, but maybe slow if everyone's asking all the.

396
00:19:12.599 --> 00:19:15.960
<v Speaker 2>Time, it doesn't scale well exactly. Imagine hundreds of AIS

397
00:19:16.079 --> 00:19:19.079
<v Speaker 2>constantly querying the world state. Very inefficient.

398
00:19:19.200 --> 00:19:19.920
<v Speaker 1>So what's better?

399
00:19:20.160 --> 00:19:22.759
<v Speaker 2>The event passing is much more common in complex games.

400
00:19:23.079 --> 00:19:26.680
<v Speaker 2>The game generates events sound created at location X, player

401
00:19:26.720 --> 00:19:29.559
<v Speaker 2>spotted by camera, Y, door Z opened. There's usually a

402
00:19:29.640 --> 00:19:32.559
<v Speaker 2>central manager, oh, like a dispatcher, Yeah, an event manager.

403
00:19:32.880 --> 00:19:36.279
<v Speaker 2>AI components listen or subscribe to events they care about.

404
00:19:36.759 --> 00:19:40.640
<v Speaker 2>When an event happens, the manager notifies only the relevant listeners.

405
00:19:41.079 --> 00:19:43.880
<v Speaker 2>Much cleaner, more modular, easier to debug.

406
00:19:44.039 --> 00:19:45.440
<v Speaker 1>That makes way more sense, and.

407
00:19:45.400 --> 00:19:48.119
<v Speaker 2>This ties back nicely to the sophisticated sense management we

408
00:19:48.119 --> 00:19:52.519
<v Speaker 2>talked about earlier. Simulating how information actually propagates.

409
00:19:52.160 --> 00:19:55.400
<v Speaker 1>Not just line of sight sound, bouncing, smell.

410
00:19:55.279 --> 00:19:59.200
<v Speaker 2>Exactly, using sense graphs or similar structures to model how

411
00:19:59.200 --> 00:20:02.759
<v Speaker 2>a sound travels around corners gets muffled by walls. Maybe

412
00:20:02.759 --> 00:20:05.960
<v Speaker 2>how a smell lingers or travels with airflow. That's how

413
00:20:05.960 --> 00:20:09.759
<v Speaker 2>you get really deep stealth gameplay. The AI isn't cheating,

414
00:20:09.960 --> 00:20:13.680
<v Speaker 2>it's reacting to information propagated through a simulated sensory system.

415
00:20:13.839 --> 00:20:15.759
<v Speaker 1>That's how a guard hears you from another room.

416
00:20:15.799 --> 00:20:18.359
<v Speaker 2>Maybe right, they didn't see you, but the sound event

417
00:20:18.400 --> 00:20:21.880
<v Speaker 2>reached their ears through the sense graph. Triggering an investigate

418
00:20:21.960 --> 00:20:23.640
<v Speaker 2>state adds huge depth.

419
00:20:23.759 --> 00:20:28.160
<v Speaker 1>Okay, last piece, Maybe the tools developers aren't just writing

420
00:20:28.200 --> 00:20:31.279
<v Speaker 1>C plus plus for everything right. Designers need ways to

421
00:20:31.279 --> 00:20:32.240
<v Speaker 1>interact with this stuff.

422
00:20:32.559 --> 00:20:35.960
<v Speaker 2>Oh, tools are absolutely critical. Level designers need to place

423
00:20:36.039 --> 00:20:38.920
<v Speaker 2>path finding nodes, or to find clever points or paint

424
00:20:38.960 --> 00:20:42.240
<v Speaker 2>areas the AI should avoid. AI designers need ways to

425
00:20:42.440 --> 00:20:44.000
<v Speaker 2>build and tune behaviors.

426
00:20:44.079 --> 00:20:47.599
<v Speaker 1>Can some of that be automated, like generating the navmesh?

427
00:20:47.720 --> 00:20:51.519
<v Speaker 2>Some can, Yes, initial navmesh generation is often automatic, but

428
00:20:51.680 --> 00:20:54.839
<v Speaker 2>designers almost always need tools to tweak it, fix errors,

429
00:20:54.880 --> 00:20:58.880
<v Speaker 2>add metadata like this area is dangerous and for behavior.

430
00:20:58.480 --> 00:21:01.880
<v Speaker 1>Logic, visual editors like for behavior trees exactly.

431
00:21:02.039 --> 00:21:05.039
<v Speaker 2>Visual editors for state machines or behavior trees are invaluable.

432
00:21:05.319 --> 00:21:08.200
<v Speaker 2>They led designers who might not be hardcore programmers build

433
00:21:08.240 --> 00:21:12.079
<v Speaker 2>complex AI logic visually. Tools like Behavior Designer were mentioned,

434
00:21:12.440 --> 00:21:16.200
<v Speaker 2>and scripting languages are huge too, Lua, Python custom languages

435
00:21:16.240 --> 00:21:18.839
<v Speaker 2>allowing rapid iteration on specific character behaviors.

436
00:21:18.920 --> 00:21:22.119
<v Speaker 1>Gotcha, Okay, we've gone through the whole pipeline. Basically, how

437
00:21:22.119 --> 00:21:24.720
<v Speaker 1>does this all come together? In specific game genres?

438
00:21:24.880 --> 00:21:29.720
<v Speaker 2>Quick examples sure shooters heavy on movement pathfinding for complex

439
00:21:29.799 --> 00:21:33.440
<v Speaker 2>levels decision making often behavior trees or state machines for

440
00:21:33.519 --> 00:21:37.839
<v Speaker 2>combat logic like flanking using cover and robust perception systems

441
00:21:37.839 --> 00:21:41.759
<v Speaker 2>are key. Think Halo's AI using behavior trees or Golden

442
00:21:41.799 --> 00:21:45.000
<v Speaker 2>eyed early sense simulation. Driving games big focus on movement

443
00:21:45.039 --> 00:21:51.240
<v Speaker 2>AI obviously sophisticated steering behaviors for realistic car handling, collision avoidance, drafting,

444
00:21:51.640 --> 00:21:52.319
<v Speaker 2>racing lines.

445
00:21:52.440 --> 00:21:53.759
<v Speaker 1>Artist games must be in Nightmare.

446
00:21:53.880 --> 00:21:58.200
<v Speaker 2>They're definitely demanding large scale pathfinding for potentially hundreds of units,

447
00:21:58.519 --> 00:22:02.319
<v Speaker 2>group movement, streetrategic decision making AI for base building and

448
00:22:02.359 --> 00:22:06.599
<v Speaker 2>resource management, tactical AI for unit formations and battles, lots

449
00:22:06.640 --> 00:22:08.519
<v Speaker 2>of layers, lots of units to manage efficiently.

450
00:22:08.559 --> 00:22:10.160
<v Speaker 1>And then some games are about the AI.

451
00:22:10.359 --> 00:22:14.119
<v Speaker 2>Yeah. AI center genres, creature training games maybe using neural nets,

452
00:22:14.200 --> 00:22:17.519
<v Speaker 2>or reinforcement learning or simulation games where the core is

453
00:22:17.559 --> 00:22:20.799
<v Speaker 2>an ecosystem driven by AI agents following rules, maybe a

454
00:22:20.839 --> 00:22:24.079
<v Speaker 2>food chain where player interaction is about influencing that system.

455
00:22:24.119 --> 00:22:26.160
<v Speaker 1>Wow. Okay, so we've really covered a lot of ground,

456
00:22:26.319 --> 00:22:29.559
<v Speaker 1>from basic movement back in the nineties all the.

457
00:22:29.480 --> 00:22:34.519
<v Speaker 2>Way to complex layered decisions, tactical reasoning, learning systems, and

458
00:22:34.559 --> 00:22:36.200
<v Speaker 2>the nitty gritty of how it's implemented.

459
00:22:36.319 --> 00:22:39.440
<v Speaker 1>We've kind of peeled back the layers on that hidden intelligence. Yeah,

460
00:22:39.680 --> 00:22:43.359
<v Speaker 1>that perception, decision action loop, how characters navigate, how they

461
00:22:43.480 --> 00:22:44.279
<v Speaker 1>choose what to do.

462
00:22:45.079 --> 00:22:48.519
<v Speaker 2>Hopefully you've got a much clearer picture now of the

463
00:22:48.559 --> 00:22:52.519
<v Speaker 2>smarts and the engineering that goes into making game characters

464
00:22:52.559 --> 00:22:56.880
<v Speaker 2>feel believable or challenging or sometimes just playing alive.

465
00:22:57.079 --> 00:22:59.759
<v Speaker 1>Yeah, it's definitely not just simple scripting most of the time.

466
00:22:59.759 --> 00:23:03.079
<v Speaker 1>It's some serious computer science and clever design work.

467
00:23:03.200 --> 00:23:06.440
<v Speaker 2>Absolutely hopefully gives you a new appreciation next time you play.

468
00:23:06.599 --> 00:23:09.200
<v Speaker 1>Okay, so here's something for you to chew on listening

469
00:23:09.319 --> 00:23:12.400
<v Speaker 1>right now. Think about a game you've played recently, an

470
00:23:12.519 --> 00:23:15.359
<v Speaker 1>enemy that felt really smart, or maybe an NPC that

471
00:23:15.440 --> 00:23:17.519
<v Speaker 1>did something unexpected but believable.

472
00:23:17.720 --> 00:23:20.359
<v Speaker 2>Base on what we talked about. What techniques do you

473
00:23:20.400 --> 00:23:23.160
<v Speaker 2>think might be driving that behavior? Was it reacting to

474
00:23:23.240 --> 00:23:26.319
<v Speaker 2>sound because of sense simulation? Did it seem to follow

475
00:23:26.319 --> 00:23:28.559
<v Speaker 2>a logical plan maybe from a behavior tree?

476
00:23:28.640 --> 00:23:31.519
<v Speaker 1>Could you see hints of prioritize steering when it dodged

477
00:23:31.559 --> 00:23:35.119
<v Speaker 1>while still trying to get somewhere, or maybe hierarchical pathfinding

478
00:23:35.240 --> 00:23:37.319
<v Speaker 1>letting it cross a huge map without getting lost.

479
00:23:37.640 --> 00:23:39.839
<v Speaker 2>What kind of Aha moment might you be having right

480
00:23:39.880 --> 00:23:43.240
<v Speaker 2>now about how that character actually worked. Next time you

481
00:23:43.359 --> 00:23:46.240
<v Speaker 2>play Keep an Ear Out, Keep an Eye Out, you

482
00:23:46.319 --> 00:23:48.960
<v Speaker 2>might start noticing the subtle signs of the AI mind

483
00:23:48.960 --> 00:23:51.559
<v Speaker 2>at work. It's fascinating stuff once you know what to

484
00:23:51.559 --> 00:23:51.920
<v Speaker 2>look for.
