<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Intelligence Artificielle dans &#8220;Battle For Independence&#8221;</title>
	<atom:link href="http://jeremy.chatelaine.name/blog/programmation/intelligence-artificielle-dans-startrip2/feed" rel="self" type="application/rss+xml" />
	<link>http://jeremy.chatelaine.name/blog/programmation/intelligence-artificielle-dans-startrip2</link>
	<description>Des jeux video a la finance, a la creation d'entreprise</description>
	<pubDate>Sat, 04 Feb 2012 16:05:41 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Vincent</title>
		<link>http://jeremy.chatelaine.name/blog/programmation/intelligence-artificielle-dans-startrip2#comment-5391</link>
		<dc:creator>Vincent</dc:creator>
		<pubDate>Fri, 16 Nov 2007 02:51:08 +0000</pubDate>
		<guid isPermaLink="false">http://jeremy.chatelaine.name/blog/?p=4#comment-5391</guid>
		<description>@Jeremy &#38; msx:

Je viens de tomber sur cet article par hasard (excellent d'ailleurs, bien expliquÃ© et trÃ¨s intÃ©ressant).

Je suis pas un expert mais quel est l'avantage de cette approche avec une table de pointeurs sur fonctions, comparÃ©e Ã  une machine d'Ã©tat qui serait implÃ©mentÃ©e faÃ§on OO: une classe abstraite "State" et la dÃ©river pour chaque Ã©tat spÃ©cifique? Les Ã©tats pourraient eux-mÃªmes dÃ©cider des transitions  et ainsi Ã©viter les transitions interdites (s'accroupir alors que l'entitÃ© vole). Les mÃ©thodes OnEnter(), OnExit(), OnProcess() etc seraient aussi appelÃ©es correctement car dÃ©finies dans la classe de base.

ProblÃ¨me de performances? de facilitÃ© Ã  modifier si nÃ©cessaire?</description>
		<content:encoded><![CDATA[<p>@Jeremy &amp; msx:</p>
<p>Je viens de tomber sur cet article par hasard (excellent d&#8217;ailleurs, bien expliquÃ© et trÃ¨s intÃ©ressant).</p>
<p>Je suis pas un expert mais quel est l&#8217;avantage de cette approche avec une table de pointeurs sur fonctions, comparÃ©e Ã  une machine d&#8217;Ã©tat qui serait implÃ©mentÃ©e faÃ§on OO: une classe abstraite &#8220;State&#8221; et la dÃ©river pour chaque Ã©tat spÃ©cifique? Les Ã©tats pourraient eux-mÃªmes dÃ©cider des transitions  et ainsi Ã©viter les transitions interdites (s&#8217;accroupir alors que l&#8217;entitÃ© vole). Les mÃ©thodes OnEnter(), OnExit(), OnProcess() etc seraient aussi appelÃ©es correctement car dÃ©finies dans la classe de base.</p>
<p>ProblÃ¨me de performances? de facilitÃ© Ã  modifier si nÃ©cessaire?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: msx</title>
		<link>http://jeremy.chatelaine.name/blog/programmation/intelligence-artificielle-dans-startrip2#comment-71</link>
		<dc:creator>msx</dc:creator>
		<pubDate>Sun, 08 Oct 2006 19:04:52 +0000</pubDate>
		<guid isPermaLink="false">http://jeremy.chatelaine.name/blog/?p=4#comment-71</guid>
		<description>c'est pire que ce que j'avais imaginé à propos de catwoman et d'EA :(
ça a l'air d'être un pb récurrent dans les JV... y a toujours autant de mecs qui réfléchissent pas (avec un ou plusieurs responsables technique pour superviser le tout... en particulier dans les grosses boites)

Concernant les machines à états et leurs langages, regardes plutôt cette page :

http://www.lri.fr/~blanch/publications/ihm2002/ihm2002-hsm.html

(c'est destiné aux IHMs mais ça peut aussi être adapter à l'IA)</description>
		<content:encoded><![CDATA[<p>c&#8217;est pire que ce que j&#8217;avais imaginé à propos de catwoman et d&#8217;EA <img src='http://jeremy.chatelaine.name/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /><br />
ça a l&#8217;air d&#8217;être un pb récurrent dans les JV&#8230; y a toujours autant de mecs qui réfléchissent pas (avec un ou plusieurs responsables technique pour superviser le tout&#8230; en particulier dans les grosses boites)</p>
<p>Concernant les machines à états et leurs langages, regardes plutôt cette page :</p>
<p><a href="http://www.lri.fr/~blanch/publications/ihm2002/ihm2002-hsm.html" rel="nofollow">http://www.lri.fr/~blanch/publications/ihm2002/ihm2002-hsm.html</a></p>
<p>(c&#8217;est destiné aux IHMs mais ça peut aussi être adapter à l&#8217;IA)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeremy Chatelaine</title>
		<link>http://jeremy.chatelaine.name/blog/programmation/intelligence-artificielle-dans-startrip2#comment-70</link>
		<dc:creator>Jeremy Chatelaine</dc:creator>
		<pubDate>Sun, 08 Oct 2006 08:17:31 +0000</pubDate>
		<guid isPermaLink="false">http://jeremy.chatelaine.name/blog/?p=4#comment-70</guid>
		<description>Autant le dire tout de suite, utiliser un language script pour l'IA est loin d'etre la solution miracle.

Debugger est clairement pas la joie, selon le language script il est aussi difficile de faire ce que l'on veut avec, mais le plus dur est d'avoir une ligne clair entre code et script.

Si on fait un language script pour les designers il est minimaliste et au final un designer n'est pas un programmer et ca loupera pas, un programmeur devra s'y coller. Si c'est un programmeur qui s'y colle un language script minimaliste va le frustrer au plus haut point.

Bref je suis pas fan de language script.

L'usage le plus ridicule que j'ai vue d'un langage script c'etait avec Catwoman. Les pauvres programmeurs utilisaient un language script fait maison pour faire le gameplay.
Du coup le language etait inadapte, impossible a debugger, et le plus drole de tous il ne se relancait pas pendant le jeu. Du coup y'avait aucun avantage a etre un language script.</description>
		<content:encoded><![CDATA[<p>Autant le dire tout de suite, utiliser un language script pour l&#8217;IA est loin d&#8217;etre la solution miracle.</p>
<p>Debugger est clairement pas la joie, selon le language script il est aussi difficile de faire ce que l&#8217;on veut avec, mais le plus dur est d&#8217;avoir une ligne clair entre code et script.</p>
<p>Si on fait un language script pour les designers il est minimaliste et au final un designer n&#8217;est pas un programmer et ca loupera pas, un programmeur devra s&#8217;y coller. Si c&#8217;est un programmeur qui s&#8217;y colle un language script minimaliste va le frustrer au plus haut point.</p>
<p>Bref je suis pas fan de language script.</p>
<p>L&#8217;usage le plus ridicule que j&#8217;ai vue d&#8217;un langage script c&#8217;etait avec Catwoman. Les pauvres programmeurs utilisaient un language script fait maison pour faire le gameplay.<br />
Du coup le language etait inadapte, impossible a debugger, et le plus drole de tous il ne se relancait pas pendant le jeu. Du coup y&#8217;avait aucun avantage a etre un language script.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: msx</title>
		<link>http://jeremy.chatelaine.name/blog/programmation/intelligence-artificielle-dans-startrip2#comment-69</link>
		<dc:creator>msx</dc:creator>
		<pubDate>Sat, 07 Oct 2006 21:38:30 +0000</pubDate>
		<guid isPermaLink="false">http://jeremy.chatelaine.name/blog/?p=4#comment-69</guid>
		<description>Dans les JV, y a dix milles manières de coder son IA... J'ai déjà vu des jeux professionnels fais sans aucune machine à états (je citerai pas de noms). Le pb ça donne du codes dégulasses, difficiles à débuger et pas du tout flexible.

Pour la programmation de machine à état, il y a plusieurs manière de la programmer. Certains utilisent des macros (pour cacher des switchs et des if /else) avec pour chaque états des macros du genre : OnInit, OnExit, OnUpdate, OnChange... (bien entendu chaque état peut possèdé un timeout et passer à l'état suivant). D'autres font des machines à états comme ce que tu as décrit. Par contre, une machine à état est quelque chose qui est souvent ammené à être changé. L'idéal serait qu'elle fasse partie des données de ton jeu et non qu'elle soit à l'interieur de ton code. Pour cela, tu peux faire appel à un langage script et implementer un bouton reset qui te permettra de changer ta machine à état ingame...ça te fera gagner du temps pour le dév de ton jeu.</description>
		<content:encoded><![CDATA[<p>Dans les JV, y a dix milles manières de coder son IA&#8230; J&#8217;ai déjà vu des jeux professionnels fais sans aucune machine à états (je citerai pas de noms). Le pb ça donne du codes dégulasses, difficiles à débuger et pas du tout flexible.</p>
<p>Pour la programmation de machine à état, il y a plusieurs manière de la programmer. Certains utilisent des macros (pour cacher des switchs et des if /else) avec pour chaque états des macros du genre : OnInit, OnExit, OnUpdate, OnChange&#8230; (bien entendu chaque état peut possèdé un timeout et passer à l&#8217;état suivant). D&#8217;autres font des machines à états comme ce que tu as décrit. Par contre, une machine à état est quelque chose qui est souvent ammené à être changé. L&#8217;idéal serait qu&#8217;elle fasse partie des données de ton jeu et non qu&#8217;elle soit à l&#8217;interieur de ton code. Pour cela, tu peux faire appel à un langage script et implementer un bouton reset qui te permettra de changer ta machine à état ingame&#8230;ça te fera gagner du temps pour le dév de ton jeu.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeremy Chatelaine</title>
		<link>http://jeremy.chatelaine.name/blog/programmation/intelligence-artificielle-dans-startrip2#comment-68</link>
		<dc:creator>Jeremy Chatelaine</dc:creator>
		<pubDate>Sat, 07 Oct 2006 08:06:42 +0000</pubDate>
		<guid isPermaLink="false">http://jeremy.chatelaine.name/blog/?p=4#comment-68</guid>
		<description>Petit edit: J'ai renomme "Startrip2" en "Battle For Independence".</description>
		<content:encoded><![CDATA[<p>Petit edit: J&#8217;ai renomme &#8220;Startrip2&#8243; en &#8220;Battle For Independence&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Khalzaam</title>
		<link>http://jeremy.chatelaine.name/blog/programmation/intelligence-artificielle-dans-startrip2#comment-48</link>
		<dc:creator>Khalzaam</dc:creator>
		<pubDate>Mon, 18 Sep 2006 19:37:17 +0000</pubDate>
		<guid isPermaLink="false">http://jeremy.chatelaine.name/blog/?p=4#comment-48</guid>
		<description>Genre, chui pas programmeur, et j'ai (presque) tout compris !
Merci tonton Kamron !
Le fait de rajouter des exemple de ce que tu expliques est vraiment parlant, continue comme ça en tout cas.
Merci pour nous, et pour Startrip 2 ;)</description>
		<content:encoded><![CDATA[<p>Genre, chui pas programmeur, et j&#8217;ai (presque) tout compris !<br />
Merci tonton Kamron !<br />
Le fait de rajouter des exemple de ce que tu expliques est vraiment parlant, continue comme ça en tout cas.<br />
Merci pour nous, et pour Startrip 2 <img src='http://jeremy.chatelaine.name/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mike</title>
		<link>http://jeremy.chatelaine.name/blog/programmation/intelligence-artificielle-dans-startrip2#comment-41</link>
		<dc:creator>mike</dc:creator>
		<pubDate>Thu, 14 Sep 2006 22:20:50 +0000</pubDate>
		<guid isPermaLink="false">http://jeremy.chatelaine.name/blog/?p=4#comment-41</guid>
		<description>Hehe, j'ai bossé sur un moteur de machines à état pour des interfaces graphiques dans des décodeurs tv numérique qui reprend exactement la même architecture.
Le modèle que j'ai utilisé apporte en plus une mécanique de messages traités en fonction des états. Est ce que ce genre de chose ne pourrait pas être utile dans un moteur d'IA (genre exécution d'ordres reçus par une entité supérieure) ?

Très bon article Jérémy, c'est sympa de voir que c'est pas si compliqué de faire de l'IA ;-)</description>
		<content:encoded><![CDATA[<p>Hehe, j&#8217;ai bossé sur un moteur de machines à état pour des interfaces graphiques dans des décodeurs tv numérique qui reprend exactement la même architecture.<br />
Le modèle que j&#8217;ai utilisé apporte en plus une mécanique de messages traités en fonction des états. Est ce que ce genre de chose ne pourrait pas être utile dans un moteur d&#8217;IA (genre exécution d&#8217;ordres reçus par une entité supérieure) ?</p>
<p>Très bon article Jérémy, c&#8217;est sympa de voir que c&#8217;est pas si compliqué de faire de l&#8217;IA <img src='http://jeremy.chatelaine.name/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeremy Chatelaine</title>
		<link>http://jeremy.chatelaine.name/blog/programmation/intelligence-artificielle-dans-startrip2#comment-34</link>
		<dc:creator>Jeremy Chatelaine</dc:creator>
		<pubDate>Wed, 13 Sep 2006 20:25:55 +0000</pubDate>
		<guid isPermaLink="false">http://jeremy.chatelaine.name/blog/?p=4#comment-34</guid>
		<description>Je crois que ceux de Peter frappent a ta porte... :)</description>
		<content:encoded><![CDATA[<p>Je crois que ceux de Peter frappent a ta porte&#8230; <img src='http://jeremy.chatelaine.name/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stéphane</title>
		<link>http://jeremy.chatelaine.name/blog/programmation/intelligence-artificielle-dans-startrip2#comment-33</link>
		<dc:creator>Stéphane</dc:creator>
		<pubDate>Wed, 13 Sep 2006 20:10:41 +0000</pubDate>
		<guid isPermaLink="false">http://jeremy.chatelaine.name/blog/?p=4#comment-33</guid>
		<description>Je suis mort de rire, genre on a quelque chose de vachement ressemblant... bon j'appelle mon avocat on va te faire un procès.</description>
		<content:encoded><![CDATA[<p>Je suis mort de rire, genre on a quelque chose de vachement ressemblant&#8230; bon j&#8217;appelle mon avocat on va te faire un procès.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

