<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://homeostasis.scs.carleton.ca/wiki/index.php?action=history&amp;feed=atom&amp;title=Game_Engines_2021W_Lecture_12</id>
	<title>Game Engines 2021W Lecture 12 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://homeostasis.scs.carleton.ca/wiki/index.php?action=history&amp;feed=atom&amp;title=Game_Engines_2021W_Lecture_12"/>
	<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Game_Engines_2021W_Lecture_12&amp;action=history"/>
	<updated>2026-04-08T03:33:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://homeostasis.scs.carleton.ca/wiki/index.php?title=Game_Engines_2021W_Lecture_12&amp;diff=22994&amp;oldid=prev</id>
		<title>Soma: Created page with &quot;&lt;pre&gt; Lecture 12 ----------  Game AI  first, should discuss AI and Alife  Artificial Intelligence  - algorithms that immitate &quot;intelligent activity&quot;  Agents are addressed in A...&quot;</title>
		<link rel="alternate" type="text/html" href="https://homeostasis.scs.carleton.ca/wiki/index.php?title=Game_Engines_2021W_Lecture_12&amp;diff=22994&amp;oldid=prev"/>
		<updated>2021-03-04T13:12:25Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;pre&amp;gt; Lecture 12 ----------  Game AI  first, should discuss AI and Alife  Artificial Intelligence  - algorithms that immitate &amp;quot;intelligent activity&amp;quot;  Agents are addressed in A...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
Lecture 12&lt;br /&gt;
----------&lt;br /&gt;
&lt;br /&gt;
Game AI&lt;br /&gt;
&lt;br /&gt;
first, should discuss AI and Alife&lt;br /&gt;
&lt;br /&gt;
Artificial Intelligence&lt;br /&gt;
 - algorithms that immitate &amp;quot;intelligent activity&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Agents are addressed in AI but AI is broader&lt;br /&gt;
 - an agent is just something that acts &amp;quot;independently&amp;quot;,&lt;br /&gt;
   generally in some sort of environment&lt;br /&gt;
&lt;br /&gt;
problems addressed by AI&lt;br /&gt;
 - pattern recognition&lt;br /&gt;
 - planning (path, other)&lt;br /&gt;
 - search &amp;lt;- the big one&lt;br /&gt;
&lt;br /&gt;
Search is key because most of AI involves formulating other problems&lt;br /&gt;
as search problems&lt;br /&gt;
 - e.g., planning is search over possible ordering of tasks&lt;br /&gt;
&lt;br /&gt;
Big contribution of AI: learning is search&lt;br /&gt;
&lt;br /&gt;
Why is AI hard&lt;br /&gt;
 - how to define the right search space?&lt;br /&gt;
 - how to search it effectively (when it is way, way to big to search&lt;br /&gt;
   exhaustively)?&lt;br /&gt;
&lt;br /&gt;
A good search space&lt;br /&gt;
 - allows for expression of possible solutions&lt;br /&gt;
 - can be effectively searched, i.e., it is possible to make &amp;quot;progress&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Think of search spaces as landscapes&lt;br /&gt;
 - in 2D, planes, mountains, valleys, etc&lt;br /&gt;
 - but generalizes to higher dimensions (in sometimes surprising ways)&lt;br /&gt;
 - how do you find the highest peak?&lt;br /&gt;
   - without a global view?&lt;br /&gt;
 - if the landscape is easily searchable, local gradients are helpful&lt;br /&gt;
 - but in general, local gradients only get you so far&lt;br /&gt;
   - because of local maxima (the local hill, not the distant mountains)&lt;br /&gt;
   - once you get to a top of a hill, nowhere to go that isn&amp;#039;t &amp;quot;worse&amp;quot;&lt;br /&gt;
 - good search algorithms have strategies to avoid local maxima&lt;br /&gt;
&lt;br /&gt;
 - note peak = optimal solution, so this is also talking about optimization&lt;br /&gt;
&lt;br /&gt;
Artificial Life&lt;br /&gt;
 - how do we simulate &amp;quot;lifelike&amp;quot; behavior?&lt;br /&gt;
 - ant foraging rather than playing chess&lt;br /&gt;
   - chess is an artificial problem that is hard for humans&lt;br /&gt;
   - looking in an environment for food is easy for most living things&lt;br /&gt;
 - alife is much more interested in &amp;quot;good enough&amp;quot; rather than &amp;quot;optimal&amp;quot; approaches&lt;br /&gt;
 - alife cares about dynamic environments with active, adaptive adversaries&lt;br /&gt;
    - why optimization generally isn&amp;#039;t feasible, the game keeps changing&lt;br /&gt;
    - most AI formulations assume a static task&lt;br /&gt;
    - one formulation: evolutionary stable strategies&lt;br /&gt;
&lt;br /&gt;
How does Alife and AI connect to Game AI?&lt;br /&gt;
 - game AI can make use of AI and alife techniques&lt;br /&gt;
 - but game AI has fundamentally different goals&lt;br /&gt;
&lt;br /&gt;
First, consider symmetric games&lt;br /&gt;
 - computer &amp;quot;player&amp;quot; follows same rules as human player&lt;br /&gt;
 - e.g., Chess, board games&lt;br /&gt;
 - do you want the best computer player you can make?&lt;br /&gt;
   - generally no, as it will often be too good&lt;br /&gt;
   - need ways to make it worse than optimal&lt;br /&gt;
 - traditionally AI players were much worse than good human players&lt;br /&gt;
   - but even there, you need to scale skills&lt;br /&gt;
 - today, AI players can be very good indeed&lt;br /&gt;
&lt;br /&gt;
When can a game AI do really well?&lt;br /&gt;
 - when the search space of possibilities can be effectively searched&lt;br /&gt;
 - modern hardware means we can do a lot more searching!&lt;br /&gt;
 - also, many algorithmic improvements&lt;br /&gt;
 &lt;br /&gt;
How do you scale a symmetric game AI&lt;br /&gt;
 - limit search&lt;br /&gt;
 - add randomness, deliberate mistakes&lt;br /&gt;
 - simulate &amp;quot;styles&amp;quot;&lt;br /&gt;
   - start getting into alife&lt;br /&gt;
&lt;br /&gt;
With asymmetric games, gets more complicated&lt;br /&gt;
 - in general, computer has much more knowledge than the player&lt;br /&gt;
    - controls many agents &amp;amp; the world&lt;br /&gt;
 - thus, it is always possible for the game AI to &amp;quot;win&amp;quot; by cheating&lt;br /&gt;
    - think strategy games where it knows all the rules &amp;amp; secrets&lt;br /&gt;
 - so, to make it fun, the game AI must play &amp;quot;fair&amp;quot;&lt;br /&gt;
    - act as if it doesn&amp;#039;t know more than the player&lt;br /&gt;
    - but, to make the behavior work, you still may need to make use&lt;br /&gt;
      of info the player doesn&amp;#039;t have&lt;br /&gt;
&lt;br /&gt;
most game AI&amp;#039;s cheat in some way&lt;br /&gt;
 - make use of info the player doesn&amp;#039;t have&lt;br /&gt;
&lt;br /&gt;
for situations where the AI task is complex, this may be essential&lt;br /&gt;
 - without cheating, the AI would be too dumb or too slow&lt;br /&gt;
&lt;br /&gt;
Game AI&amp;#039;s need lots of tuning because it is hard to formally define&lt;br /&gt;
what is &amp;quot;fun&amp;quot;&lt;br /&gt;
&lt;br /&gt;
This is also why online gaming has become so popular&lt;br /&gt;
 - more fun to play against people rather than bots,&lt;br /&gt;
   because people play in more &amp;quot;interesting&amp;quot; ways&lt;br /&gt;
&lt;br /&gt;
Think about Among Us&lt;br /&gt;
 - basic mechanics are *so* simple&lt;br /&gt;
 - sophistication comes from interactions with other players&lt;br /&gt;
   - text chat with them!&lt;br /&gt;
   - who is the murderer?&lt;br /&gt;
&lt;br /&gt;
If you allow players to act in completely flexible ways, you get a&lt;br /&gt;
world where bots have to pass the Turing test in order to be fun&lt;br /&gt;
 - if you go there, you really just bring in other humans&lt;br /&gt;
&lt;br /&gt;
In single player games, we have to limit player actions so game AIs&lt;br /&gt;
have a chance to behave in interesting ways&lt;br /&gt;
 - limit branching of stories&lt;br /&gt;
 - limited conversations with NPCs&lt;br /&gt;
&lt;br /&gt;
Compare computer RPGs with playing tabletop RPGs&lt;br /&gt;
&lt;br /&gt;
Text adventures tried to get some of the open-ended feel&lt;br /&gt;
 - but you quickly run into limitations of the parser and world&lt;br /&gt;
&lt;br /&gt;
automated turing test competitons&lt;br /&gt;
 - chatbots that try to pretend they are humans&lt;br /&gt;
 - can be pretty convincing, but mainly by being absurd&lt;br /&gt;
   - you&amp;#039;re not going to have a &amp;quot;real conversation&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Traditionally game AI and real AI are very different&lt;br /&gt;
 - but there&amp;#039;s lots of opportunity for them to become closer in interesting&lt;br /&gt;
   ways&lt;br /&gt;
&lt;br /&gt;
While game engines today have very limited support for game AI, I&lt;br /&gt;
think a future direction for game engines will be adding rich support&lt;br /&gt;
for AI that would enable non-player characters that you could interact&lt;br /&gt;
with in much more flexible ways.  Things like AI Dungeon I think are&lt;br /&gt;
on the forefront of this, so it is worth keeping an eye on them.  The&lt;br /&gt;
trouble is that current mainstream approaches to AI aren&amp;#039;t likely to&lt;br /&gt;
produce really flexible chatbots - I think that would require a more&lt;br /&gt;
alife approach.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Soma</name></author>
	</entry>
</feed>