<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Anthor.Net &#187; Jeu par Navigateur</title>
	<atom:link href="http://www.anthor.net/blog/category/jeu-par-navigateur/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.anthor.net</link>
	<description></description>
	<lastBuildDate>Mon, 05 Dec 2011 16:29:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>Démarrage rapide avec Webgame Achievements</title>
		<link>http://www.anthor.net/blog/developpement/demarrage-rapide-avec-webgame-achievements/</link>
		<comments>http://www.anthor.net/blog/developpement/demarrage-rapide-avec-webgame-achievements/#comments</comments>
		<pubDate>Tue, 05 Oct 2010 17:23:35 +0000</pubDate>
		<dc:creator>Anthor</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Jeu par Navigateur]]></category>
		<category><![CDATA[Achievements]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.anthor.net/?p=768</guid>
		<description><![CDATA[Un service destiné à être utilisé par des néophytes se doit d&#8217;avoir une bonne documentation, actuellement, ceci manque sur Achievements, principalement par manque de temps, et aussi car j&#8217;aime avoir un contact proche avec les participants. Néanmoins, je livre ici une première version du &#171;&#160;Quick Start&#160;&#187;, et d&#8217;autres suivront. La publication va permettre de motiver [...]]]></description>
			<content:encoded><![CDATA[<p>Un service destiné à être utilisé par des néophytes se doit d&#8217;avoir une bonne documentation, actuellement, ceci manque sur <a href="http://www.webgame-achievements.com/">Achievements</a>, principalement par manque de temps, et aussi car j&#8217;aime avoir un contact proche avec les participants.</p>
<p>Néanmoins, je livre ici une première version du &laquo;&nbsp;Quick Start&nbsp;&raquo;, et d&#8217;autres suivront. La publication va permettre de motiver plus de jeux à participer, notamment en expliquant de façon un peu plus détaillé le fonctionnement de l&#8217;API. Ce tuto est disponible pour les éditeurs, de façon privé, dans leur interface.</p>
<p><span id="more-768"></span></p>
<p>
        <strong>Achievements</strong> se compose d&#8217;une classe PHP ainsi que d&#8217;une feuille de style, permettant la communication avec le service et l&#8217;affichage au sein du jeu.
    </p>
<p>
        Le service requiert d&#8217;installer sur le serveur l&#8217;extension <strong>CURL</strong> (Pour communiquer avec le serveur) et l&#8217;extension <strong>MCRYPT</strong> (Pour crypter les communications entre votre jeu et le serveur).
    </p>
<p>
        Imaginons une page standard comportant un formulaire, ce formulaire servira à introduire les mécanismes de communication vers le service, en simulant l&#8217;activité du joueur, tel qu&#8217;une attaque ou une création d&#8217;objets.
    </p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #000088;">$nbObject</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'playerAction'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'playerAction'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">// Ici votre code habituel pour gérer l'action du joueur</span>
    <span style="color: #000088;">$nbObject</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'playerAction'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;!DOCTYPE html PUBLIC 
    &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; 
    &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Démarrez rapidement avec Achievements&lt;/title&gt;
&lt;/head&gt;
&nbsp;
&lt;body&gt;
    &lt;form action=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'PHP_SELF'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; method=&quot;post&quot;&gt;
        &lt;input type=&quot;text&quot; name=&quot;playerAction&quot; value=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$nbObject</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; /&gt;
        &lt;input type=&quot;submit&quot; value=&quot;Action du joueur&quot; /&gt;
    &lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</pre></div></div>

<p>
        La page d&#8217;exemple est volontairement simplifiée afin de se concentrer sur la mise en place du service.
    </p>
<h4>Inclure la classe Achievements</h4>
<p>
        Récupérer le code PHP de la classe Achievements (Disponible dans la rubrique <a>Éditeur &raquo; Fichier API</a>) afin de l&#8217;injecter dans un fichier &laquo;&nbsp;Achievements.php&nbsp;&raquo;.<br />
        Si vous utilisez la version commune, il faut penser à modifier les clés privées et publiques, pour correspondre à celle de votre jeu.
    </p>
<p>
        Une fois le fichier créé, il suffit de l&#8217;inclure dans votre projet. De cette manière, la classe est accessible pour être utilisée.
    </p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">require_once</span> APPLICATION_PATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/Achievements.php'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$nbObject</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'playerAction'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'playerAction'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">// Ici votre code habituel pour gérer l'action du joueur</span>
    <span style="color: #000088;">$nbObject</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'playerAction'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;!DOCTYPE html PUBLIC 
    &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; 
    &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Démarrez rapidement avec Achievements&lt;/title&gt;
&lt;/head&gt;
&nbsp;
&lt;body&gt;
    &lt;form action=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'PHP_SELF'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; method=&quot;post&quot;&gt;
        &lt;input type=&quot;text&quot; name=&quot;playerAction&quot; value=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$nbObject</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; /&gt;
        &lt;input type=&quot;submit&quot; value=&quot;Action du joueur&quot; /&gt;
    &lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</pre></div></div>

<p>
        Il est recommandé de placer cette ligne le plus tôt possible dans votre projet et avant toute sortie HTML.
    </p>
<h4>Inclure le style CSS</h4>
<p>
        Vous pouvez définir différentes couleurs afin d&#8217;harmoniser le service avec votre jeu dans la rubrique <a>Éditeur &raquo; Éditeur de style CSS</a>.
    </p>
<p>
        Une fois vos couleurs définies, copier/coller le code source obtenu à la fin de votre fichier CSS actuel, ou bien en créer un nouveau et intégrez-le dans le header de votre jeu.
    </p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">require_once</span> APPLICATION_PATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/Achievements.php'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$nbObject</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'playerAction'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'playerAction'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">// Ici votre code habituel pour gérer l'action du joueur</span>
    <span style="color: #000088;">$nbObject</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'playerAction'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;!DOCTYPE html PUBLIC 
    &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; 
    &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Démarrez rapidement avec Achievements&lt;/title&gt;
&nbsp;
    &lt;link href=&quot;/css/achievements.css&quot; media=&quot;screen&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
&lt;/head&gt;
&nbsp;
&lt;body&gt;
    &lt;form action=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'PHP_SELF'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; method=&quot;post&quot;&gt;
        &lt;input type=&quot;text&quot; name=&quot;playerAction&quot; value=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$nbObject</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; /&gt;
        &lt;input type=&quot;submit&quot; value=&quot;Action du joueur&quot; /&gt;
    &lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</pre></div></div>

<p>
        Il est recommandé d&#8217;utiliser votre fichier CSS existant afin de limiter le nombre de requêtes sur votre serveur.
    </p>
<h4>Instancier un joueur spécifique</h4>
<p>
        Un joueur est reconnu sur <strong>Achievements</strong> grâce au hash de son email.<br />
        L&#8217;architecture de la classe permet de travailler sur plusieurs joueurs à la fois, ainsi, vous pouvez tout à fait accorder un succès à un joueur qui a paré l&#8217;attaque du joueur courant.
    </p>
<p>
        Dans notre exemple, nous instancions uniquement le joueur courant, afin d&#8217;envoyer des informations le concernant.<br />
        Dans tous les cas le hash de l&#8217;email est unique, assurant que le joueur retrouvera ces informations qu&#8217;il soit inscrit ou non sur <strong>Achievements</strong> au moment de l&#8217;action.
    </p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">require_once</span> APPLICATION_PATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/Achievements.php'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$myPlayerAchievements</span> <span style="color: #339933;">=</span> Achievements<span style="color: #339933;">::</span><span style="color: #004000;">getInstance</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'emailDuJoueur@domaine.com'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$nbObject</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'playerAction'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'playerAction'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">// Ici votre code habituel pour gérer l'action du joueur</span>
    <span style="color: #000088;">$nbObject</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'playerAction'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;!DOCTYPE html PUBLIC 
    &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; 
    &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Démarrez rapidement avec Achievements&lt;/title&gt;
&nbsp;
    &lt;link href=&quot;/css/achievements.css&quot; media=&quot;screen&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
&lt;/head&gt;
&nbsp;
&lt;body&gt;
    &lt;form action=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'PHP_SELF'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; method=&quot;post&quot;&gt;
        &lt;input type=&quot;text&quot; name=&quot;playerAction&quot; value=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$nbObject</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; /&gt;
        &lt;input type=&quot;submit&quot; value=&quot;Action du joueur&quot; /&gt;
    &lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</pre></div></div>

<h4>Afficher les succès au joueur</h4>
<p>
        Une fois que vous avez accès à l&#8217;instance du joueur courant, il faut pouvoir lui afficher le résultat de ses succès.<br />
        Une méthode dédiée s&#8217;occupe de cela en fournissant un code xHTML, ainsi que le javascript associé.
    </p>
<p>
        En la plaçant avant la fermeture de la balise <body>, vous vous assurez que les messages destinés au joueur courant lui parvienne uniquement lorsqu&#8217;il affiche une page complète.<br />
        En effet en cas de redirection, la méthode n&#8217;est pas appelée et les messages restent dans le cache jusqu&#8217;à ce que le joueur affiche une page.
    </p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">require_once</span> APPLICATION_PATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/Achievements.php'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$myPlayerAchievements</span> <span style="color: #339933;">=</span> Achievements<span style="color: #339933;">::</span><span style="color: #004000;">getInstance</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'emailDuJoueur@domaine.com'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$nbObject</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'playerAction'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'playerAction'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">// Ici votre code habituel pour gérer l'action du joueur</span>
    <span style="color: #000088;">$nbObject</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'playerAction'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;!DOCTYPE html PUBLIC 
    &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; 
    &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Démarrez rapidement avec Achievements&lt;/title&gt;
&nbsp;
    &lt;link href=&quot;/css/achievements.css&quot; media=&quot;screen&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
&lt;/head&gt;
&nbsp;
&lt;body&gt;
    &lt;form action=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'PHP_SELF'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; method=&quot;post&quot;&gt;
        &lt;input type=&quot;text&quot; name=&quot;playerAction&quot; value=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$nbObject</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; /&gt;
        &lt;input type=&quot;submit&quot; value=&quot;Action du joueur&quot; /&gt;
    &lt;/form&gt;
&nbsp;
    <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$myPlayerAchievements</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">printStatus</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;/body&gt;
&lt;/html&gt;</pre></div></div>

<h4>Communiquer avec Achievements</h4>
<p>
        Une fois la mise en place effectuée, il ne reste plus qu&#8217;à communiquer avec <strong>Achievements</strong> lorsqu&#8217;un joueur effectue une action.
    </p>
<p>
        Pour cela il faut créer un succès dans l&#8217;interface du service, et récupérer le code donné. La clé du succès est automatiquement remplacée par la clé du succès courant.<br />
        Le service recevra la valeur donnée et renverra une réponse contenant les informations nécessaires à l&#8217;affichage.<br />
        Ces informations sont traitées de façon automatisées par la classe, et vous n&#8217;avez donc pas à vous en préoccuper.
    </p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #b1b100;">require_once</span> APPLICATION_PATH <span style="color: #339933;">.</span> <span style="color: #0000ff;">'/Achievements.php'</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$myPlayerAchievements</span> <span style="color: #339933;">=</span> Achievements<span style="color: #339933;">::</span><span style="color: #004000;">getInstance</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'emailDuJoueur@domaine.com'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$nbObject</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'playerAction'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span><span style="color: #990000;">empty</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'playerAction'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">// Ici votre code habituel pour gérer l'action du joueur</span>
    <span style="color: #000088;">$nbObject</span> <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>int<span style="color: #009900;">&#41;</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'playerAction'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #666666; font-style: italic;">// Le code envoyant la valeur courante à Achievements</span>
    try
    <span style="color: #009900;">&#123;</span>   
        <span style="color: #000088;">$myPlayerAchievements</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">updateAchievement</span><span style="color: #009900;">&#40;</span>
            <span style="color: #0000ff;">'XXXXXXXX'</span><span style="color: #339933;">,</span> <span style="color: #666666; font-style: italic;">// Clé du succès</span>
            <span style="color: #000088;">$nbObject</span>
        <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
    catch<span style="color: #009900;">&#40;</span> Exception <span style="color: #000088;">$e</span> <span style="color: #009900;">&#41;</span> 
    <span style="color: #009900;">&#123;</span>
        <span style="color: #666666; font-style: italic;">// Mettre ici votre gestion d'erreurs.</span>
        <span style="color: #666666; font-style: italic;">// Ou laisser vide pour ne pas bloquer le jeu en cas de panne du service.</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;!DOCTYPE html PUBLIC 
    &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; 
    &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;title&gt;Démarrez rapidement avec Achievements&lt;/title&gt;
&nbsp;
    &lt;link href=&quot;/css/achievements.css&quot; media=&quot;screen&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
&lt;/head&gt;
&nbsp;
&lt;body&gt;
    &lt;form action=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'PHP_SELF'</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; method=&quot;post&quot;&gt;
        &lt;input type=&quot;text&quot; name=&quot;playerAction&quot; value=&quot;<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$nbObject</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; /&gt;
        &lt;input type=&quot;submit&quot; value=&quot;Action du joueur&quot; /&gt;
    &lt;/form&gt;
&nbsp;
    <span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$myPlayerAchievements</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">printStatus</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
&lt;/body&gt;
&lt;/html&gt;</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.anthor.net/blog/developpement/demarrage-rapide-avec-webgame-achievements/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Webgame Achievements</title>
		<link>http://www.anthor.net/blog/developpement/webgame-achievements/</link>
		<comments>http://www.anthor.net/blog/developpement/webgame-achievements/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 13:44:00 +0000</pubDate>
		<dc:creator>Anthor</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Jeu par Navigateur]]></category>
		<category><![CDATA[Achievements]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.anthor.net/?p=741</guid>
		<description><![CDATA[J&#8217;en avais vaguement parlé dans un précédent billet, et c&#8217;est aujourd&#8217;hui chose faite ! &#171;&#160;Achievements&#160;&#187; est en ligne dans une première version et n&#8217;attend plus que des jeux se joignent à l&#8217;aventure pour prendre son envol. Comme l&#8217;explique SorenS, Achievements permettra aux jeux par navigateur de fidéliser un peu plus leurs joueurs avec un service [...]]]></description>
			<content:encoded><![CDATA[<p>J&#8217;en avais vaguement parlé dans un <a href="http://www.anthor.net/blog/developpement/trophees-et-succes-dans-les-jeux-par-navigateur/">précédent billet</a>, et c&#8217;est aujourd&#8217;hui chose faite !</p>
<p>&laquo;&nbsp;<a href="http://www.webgame-achievements.com/">Achievements</a>&nbsp;&raquo; est en ligne dans une première version et n&#8217;attend plus que des jeux se joignent à l&#8217;aventure pour prendre son envol.</p>
<p>Comme l&#8217;explique <a href="http://rkueny.fr/jeu-web/fideliser-ses-joueurs-sur-son-jeu-facebook">SorenS</a>, Achievements permettra aux jeux par navigateur de fidéliser un peu plus leurs joueurs avec un service simple à mettre en place.<span id="more-741"></span></p>
<p>Une classe PHP permet de communiquer avec l&#8217;API et gère l&#8217;affichage du résultat pour les joueurs. Le résultat est visible sur les <a href="http://www.webgame-achievements.com/fr/demonstration">démonstrations</a>, qui utilisent la même API que les jeux. Ces démonstrations sont avant tout destinées aux futurs éditeurs du service afin de comprendre les différents types de succès qu&#8217;il est possible de mettre en place.<br />
Grâce à un système de cache évolué aussi bien côté serveur que côté client, le service est rapide et ne fait pas plus de requêtes que nécessaire.</p>
<p>Par exemple, si un joueur a déverrouillé un succès, alors aucune requête ne sera faite à l&#8217;API. De la même manière des vérifications permettent lors de l&#8217;édition d&#8217;un succès de débloquer le cache afin de refaire des requêtes vers l&#8217;API lorsque le joueur effectuera des actions sur le jeu. Tout cela étant évidemment transparent, car il n&#8217;y a que 3 méthodes pouvant être appelées.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Un singleton pour utiliser un joueur en particulier</span>
<span style="color: #000088;">$myAchievement</span> <span style="color: #339933;">=</span> Achievements<span style="color: #339933;">::</span><span style="color: #004000;">getInstance</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'emaildujoueur@mondomaine.com'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Une fonction lorsqu'un joueur se connecte au jeu</span>
<span style="color: #000088;">$myAchievement</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">playerPlays</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'login'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Une fonction pour mettre à jour un succès</span>
try
<span style="color: #009900;">&#123;</span>  
    <span style="color: #000088;">$myAchievement</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">updateAchievement</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'clé du succès'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'valeur'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
catch<span style="color: #009900;">&#40;</span> Exception <span style="color: #000088;">$e</span> <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Exception: '</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$e</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">getMessage</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #990000;">die</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// Une fonction à n'utiliser qu'en fin de fichier avant la fermeture de &lt;body&gt; </span>
<span style="color: #666666; font-style: italic;">// pour gérer l'affichage du joueur concerné par l'instance.</span>
<span style="color: #000088;">$myAchievement</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">printStatus</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Le service est fourni avec un back-office complet qui permet aux éditeurs d&#8217;être globalement autonome dans la gestion de leurs jeux et de leurs succès. Il est gratuit, et le seul retour se situe lors de l&#8217;affichage des succès pour le joueur, afin de le rediriger sur son profil. Concernant les emails, ils ne sont pas envoyés au service. Tout fonctionne grâce à une clé unique générée pour chaque email.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anthor.net/blog/developpement/webgame-achievements/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Sommes-nous des imposteurs ?</title>
		<link>http://www.anthor.net/blog/divers/sommes-nous-des-imposteurs/</link>
		<comments>http://www.anthor.net/blog/divers/sommes-nous-des-imposteurs/#comments</comments>
		<pubDate>Sat, 12 Jun 2010 16:44:12 +0000</pubDate>
		<dc:creator>Anthor</dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[Jeu par Navigateur]]></category>

		<guid isPermaLink="false">http://www.anthor.net/?p=734</guid>
		<description><![CDATA[C&#8217;est fou comme la mauvaise foi de personnes avec qui vous pouvez travailler ou de joueurs peuvent vous faire perdre du temps et de l&#8217;énergie inutilement ! Du coup, le temps passe, le chômage aussi et j&#8217;ai souvent l&#8217;impression de stagner, recommencer à partir de zéro après quelques mois intensifs est très mauvais pour la [...]]]></description>
			<content:encoded><![CDATA[<p>C&#8217;est fou comme la mauvaise foi de personnes avec qui vous pouvez travailler ou de joueurs peuvent vous faire perdre du temps et de l&#8217;énergie inutilement !<br />
Du coup, le temps passe, le chômage aussi et j&#8217;ai souvent l&#8217;impression de stagner, recommencer à partir de zéro après quelques mois intensifs est très mauvais pour la motivation.<span id="more-734"></span></p>
<p>Dans les jeux par navigateur, on rencontre souvent des personnes qui pensent qu&#8217;un jeu tient en une idée de 3 lignes. Ce qui est rarement le cas. Hormis pour les petits jeux qui ne demandent que 5 minutes, un jeu est constitué d&#8217;une multitude de petits modules qui s&#8217;interconnectent entre eux pour former un ensemble de règles homogènes.<br />
Créer les règles, les algorithmes, l&#8217;équilibrage demande beaucoup de réflexions et de temps afin d&#8217;avoir une bonne vision d&#8217;ensemble, mais il est très dur de parvenir à avoir un jeu vaste lorsque l&#8217;on travaille seul.<br />
Trouver la bonne personne avec qui travailler est difficile, d&#8217;autant qu&#8217;il semble que l&#8217;on rencontre rarement des personnes ayant déjà une expérience en entreprise, et d&#8217;un travail sérieux</p>
<p>Les &laquo;&nbsp;créateurs&nbsp;&raquo; de jeux par navigateur sont-ils globalement des imposteurs ?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anthor.net/blog/divers/sommes-nous-des-imposteurs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Trophées et Succès dans les jeux par navigateur</title>
		<link>http://www.anthor.net/blog/developpement/trophees-et-succes-dans-les-jeux-par-navigateur/</link>
		<comments>http://www.anthor.net/blog/developpement/trophees-et-succes-dans-les-jeux-par-navigateur/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 21:40:25 +0000</pubDate>
		<dc:creator>Anthor</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Jeu par Navigateur]]></category>
		<category><![CDATA[Achievements]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.anthor.net/?p=715</guid>
		<description><![CDATA[Qu&#8217;ils soient appelés Trophées sur PS3, Succès sur xBox ou Steam, ou différemment sur d&#8217;autres plateformes, la fonctionnalité reste la même. Rassembler les joueurs vers un but secondaire afin d&#8217;ajouter un challenge aux jeux. Psychologiquement, ça à l&#8217;air de fonctionner, l&#8217;effet sur les joueurs est immédiat en donnant l&#8217;envie d&#8217;atteindre un but pouvant être comparé [...]]]></description>
			<content:encoded><![CDATA[<p>Qu&#8217;ils soient appelés Trophées sur PS3, Succès sur xBox ou Steam, ou différemment sur d&#8217;autres plateformes, la fonctionnalité reste la même.<br />
Rassembler les joueurs vers un but secondaire afin d&#8217;ajouter un challenge aux jeux.<br />
<span id="more-715"></span><br />
Psychologiquement, ça à l&#8217;air de fonctionner, l&#8217;effet sur les joueurs est immédiat en donnant l&#8217;envie d&#8217;atteindre un but pouvant être comparé avec d&#8217;autres joueurs, voir ses amis.</p>
<p>Techniquement, ce n&#8217;est pas compliqué à implémenter, mais alors pourquoi les jeux web n&#8217;en proposent pas plus ?<br />
Tout simplement je pense car le domaine est trop fragmenté. Un jeu seul ou un éditeur seul aura moins de poids qu&#8217;une plateforme qui mélange un grand nombre de jeux différents.</p>
<p>Il existe <a href="http://muxxu.com/">Muxxu</a>, mais celui-ci reste limité à quelques-uns des jeux <a href="http://www.motion-twin.com/">Motion-Twin</a>. Si le portail est intéressant, il reste limité car non ouvert.</p>
<p>Dès le début du développement de Tarschool, j&#8217;avais en tête de le relier à un portail permettant de partager à la fois les comptes, mais aussi des succès. De plus, les joueurs me l&#8217;ont suggéré.</p>
<p>Je suis donc parti sur une API permettant de communiquer avec un portail. Un joueur est identifié grâce au hash de son email.<br />
Lorsqu&#8217;il effectue une action sur le jeu, l&#8217;API est contactée et renvoie soit une erreur, soit la réussite de l&#8217;envoi, et gère elle-même l&#8217;affichage pour les joueurs si un succès est débloqué.</p>
<p>On distinguera trois types de succès : Atteindre une certaine valeur, Atteindre une valeur unique, Effectuer une action unique. Le dernier correspondant à une valeur unique de 1 ^^ Ces succès pouvant aussi avoir un prérequis avant de pouvoir être débutés/validés.</p>
<p>Toutes les communications se feront en cryptées à l&#8217;aide d&#8217;une clé publique et d&#8217;une clé privé. En l&#8217;état actuel, la classe servant pour le jeu est bien avancé, le plus compliqué a été de rendre compatible le cryptage avec le plus de configuration possible.</p>
<p>Plus d&#8217;infos bientôt, si certains sont intéressés pour des tests, n&#8217;hésitez pas à me contacter.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anthor.net/blog/developpement/trophees-et-succes-dans-les-jeux-par-navigateur/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Tarschool a fêté sa première année !</title>
		<link>http://www.anthor.net/blog/divers/tarschool-a-fete-sa-premiere-annee/</link>
		<comments>http://www.anthor.net/blog/divers/tarschool-a-fete-sa-premiere-annee/#comments</comments>
		<pubDate>Thu, 20 May 2010 12:40:15 +0000</pubDate>
		<dc:creator>Anthor</dc:creator>
				<category><![CDATA[Divers]]></category>
		<category><![CDATA[Jeu par Navigateur]]></category>
		<category><![CDATA[Tarschool]]></category>

		<guid isPermaLink="false">http://www.anthor.net/?p=688</guid>
		<description><![CDATA[Et voilà, déjà un an de plaisirs et de tracas ! Tarschool est ma première expérience de jeu par navigateur ouverte publiquement, et comme toute première expérience ce fut un étalement de sentiments contrastés. Beaucoup de joies aux vues des évolutions subies en 1 an, quelques déceptions aussi. Avec 10% de joueurs actifs sous 7 [...]]]></description>
			<content:encoded><![CDATA[<p>Et voilà, déjà un an de plaisirs et de tracas ! Tarschool est ma première expérience de jeu par navigateur ouverte publiquement, et comme toute première expérience ce fut un étalement de sentiments contrastés. Beaucoup de joies aux vues des évolutions subies en 1 an, quelques déceptions aussi.<br />
<span id="more-688"></span><br />
Avec 10% de joueurs actifs sous 7 jours, je pense que Tarschool est dans une bonne moyenne.<br />
Actuellement, sur ces 10%, 10% prennent aussi un abonnement au jeu, ce qui lui permet d&#8217;être autonome financièrement pour le serveur, mais pas forcement humainement.</p>
<p>J&#8217;ai ajouté les forums, la messagerie, les tournois, les guildes, et bien d&#8217;autres options en une année. Certaines par obligation comme un tracking des comptes beaucoup plus poussé&#8230;</p>
<p><a href="http://www.anthor.net/wp-content/uploads/2010/05/stats-tarschool-joueurs.jpg" rel="lightbox"><img src="http://www.anthor.net/wp-content/uploads/2010/05/stats-tarschool-joueurs-150x150.jpg" alt="" title="stats-tarschool-joueurs" width="150" height="150" class="alignright size-thumbnail wp-image-696" /></a> La tranche d&#8217;âge des 14/16 ans est la plus représentée, on peux remarquer que d&#8217;autres tranches sont aussi assez bien représentées.<br />
Ce qui à mon sens ajoute un problème, le conflit des générations ! Les personnes plus âgées se plaignant de l&#8217;ambiance, ce que je comprend tout à fait, alors que les plus jeunes ont tendances à se plaire dedans !</p>
<p>Globalement, la tranche 14/16 ans est celle qui essai le plus de créer de multiples comptes, comme si c&#8217;était une sorte de plus au jeu ! C&#8217;est un peu une déception de devoir passer autant de temps à analyser les comportements pour supprimer ces comptes supplémentaires, d&#8217;autant que comme chacun le sait, l&#8217;adresse IP ne suffit pas ! Ce sujet fera bientôt l&#8217;objet d&#8217;un article, et probablement d&#8217;un script associé.</p>
<p>D&#8217;autres évolutions sont prévus sur Tarschool, notamment l&#8217;internationalisation, l&#8217;ajout de mini-jeux, de trophées&#8230; Trophées qui à terme sont voués à être partagés entre plusieurs jeux.</p>
<p>Après une petite phase de vide et de départ dans l&#8217;équipe, Tarschool va continuer sur sa lancée. Une première année bien remplie donc, et une nouvelle qui commence bien !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anthor.net/blog/divers/tarschool-a-fete-sa-premiere-annee/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Les tournois dans Tarschool</title>
		<link>http://www.anthor.net/blog/jeu-par-navigateur/les-tournois-dans-tarschool/</link>
		<comments>http://www.anthor.net/blog/jeu-par-navigateur/les-tournois-dans-tarschool/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 13:12:33 +0000</pubDate>
		<dc:creator>Anthor</dc:creator>
				<category><![CDATA[Jeu par Navigateur]]></category>
		<category><![CDATA[Tarschool]]></category>

		<guid isPermaLink="false">http://www.anthor.net/?p=445</guid>
		<description><![CDATA[Un bon petit mois pour ce module, entrecoupé d&#8217;une pléthore de corrections de petits bugs et d&#8217;ergonomies en tout genre ! Il aura fallu toutes sortes d&#8217;ajustements sur Tarschool pour intégrer au mieux les tournois. Surtout au niveau de la classe de gestion des combats qui avait été construite à la va vite. La plupart [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.anthor.net/wp-content/uploads/2009/08/LOGO-tarschool150px.jpg" alt="" title="" width="150" height="63" class="alignleft size-full wp-image-447" /><br />
Un bon petit mois pour ce module, entrecoupé d&#8217;une pléthore de corrections de petits bugs et d&#8217;ergonomies en tout genre !</p>
<p>Il aura fallu toutes sortes d&#8217;ajustements sur <a href="http://www.tarschool.fr/" target="_blank">Tarschool</a> pour intégrer au mieux les tournois. Surtout au niveau de la classe de gestion des combats qui avait été construite à la va vite. La plupart des fonctions manquaient de points d&#8217;ancrages, et les résolutions étaient faites à moitié dans la classe et à moitié dans le contrôleur ! Néanmoins tant qu&#8217;elle était utilisée à un seul endroit cela ne me posait aucun problème !</p>
<p>J&#8217;ai pris le parti de faire un tournoi de type battle, c&#8217;est à dire qu&#8217;il est toujours possible de monter dans le classement tant qu&#8217;il reste d&#8217;autre joueurs à la même position.<br />
Je pense que cela permettra aux joueurs frustrés de la limite des combats de pouvoir jouer plus même si il n&#8217;y a pas que des avantages puisqu&#8217;il peuvent aussi descendre dans le classement en cas de nombreuses défaites <img src='http://www.anthor.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Le module s&#8217;occupe de prévenir les joueurs de leurs combats, de la fermeture des inscriptions, de la distribution des prix&#8230;<br />
Le module est prévu pour pouvoir à terme proposer aux joueurs VIP de créer leurs propres tournois, avec tarif d&#8217;entrée, restriction à une guilde&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anthor.net/blog/jeu-par-navigateur/les-tournois-dans-tarschool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plateau de jeu en 3d isométrique, le retour (1)&#8230;</title>
		<link>http://www.anthor.net/blog/developpement/plateau-de-jeu-en-3d-isometrique-le-retour-1/</link>
		<comments>http://www.anthor.net/blog/developpement/plateau-de-jeu-en-3d-isometrique-le-retour-1/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 07:34:41 +0000</pubDate>
		<dc:creator>Anthor</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Jeu par Navigateur]]></category>

		<guid isPermaLink="false">http://www.anthor.net/?p=403</guid>
		<description><![CDATA[Il y a quelques mois déjà, j&#8217;avais mis au point un module de plateau de jeu en 3d isométrique. Mis de côté pour le développement de Tarschool, je n&#8217;avais plus du tout mis le nez dedans. Ayant un peu plus de temps, et parfois le besoin de me changer les idées, il m&#8217;arrive désormais de [...]]]></description>
			<content:encoded><![CDATA[<p>Il y a quelques mois déjà, j&#8217;avais mis au point un module de plateau de jeu en 3d isométrique. Mis de côté pour le développement de Tarschool, je n&#8217;avais plus du tout mis le nez dedans.</p>
<p>Ayant un peu plus de temps, et parfois le besoin de me changer les idées, il m&#8217;arrive désormais de travailler un peu dessus.<br />
<span id="more-403"></span><br />
Je me suis pour le moment principalement attelé à la création du continent au nord, avec sa côte ouest, et ses 14 villes. Pour le moment seul l&#8217;emplacement des villes et des rivières a été terminé.<br />
Cette partie représente environ 200 cases de large sur 200 cases de haut. Ce qui fait environ 1/12ème du monde prévu pour le moment.</p>
<p>J&#8217;espère très prochainement pouvoir ouvrir ce monde à la visite, mais il reste des optimisations à faire au niveau de l&#8217;affichage.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anthor.net/blog/developpement/plateau-de-jeu-en-3d-isometrique-le-retour-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Quelques nouvelles de Tarschool&#8230;</title>
		<link>http://www.anthor.net/blog/jeu-par-navigateur/quelques-nouvelles-de-tarschool/</link>
		<comments>http://www.anthor.net/blog/jeu-par-navigateur/quelques-nouvelles-de-tarschool/#comments</comments>
		<pubDate>Sat, 23 May 2009 19:30:18 +0000</pubDate>
		<dc:creator>Anthor</dc:creator>
				<category><![CDATA[Jeu par Navigateur]]></category>
		<category><![CDATA[Tarschool]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.anthor.net/?p=397</guid>
		<description><![CDATA[Voilà maintenant quelques semaines que nous avons sorti Tarschool en version bêta, il me fallait donc faire un petit résumé de mes premières impressions ! Tout d&#8217;abord l&#8217;accueil a été plutôt positif malgré un certain nombre de bugs découverts dès la sortie du jeu ! Nous avons corrigé rapidement la majorité des bugs et des [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.anthor.net/wp-content/uploads/2010/04/LOGO-tarschool150px1.jpg" alt="" title="" width="150" height="63" class="alignleft size-full wp-image-398" /><br />
Voilà maintenant quelques semaines que nous avons sorti <a href="http://www.tarschool.fr/" target="_blank">Tarschool</a> en version bêta, il me fallait donc faire un petit résumé de mes premières impressions !</p>
<p>Tout d&#8217;abord l&#8217;accueil a été plutôt positif malgré un certain nombre de bugs découverts dès la sortie du jeu !<br />
Nous avons corrigé rapidement la majorité des bugs et des failles découvertes, sans difficulté.<br />
La première difficulté est apparue après un problème d&#8217;incohérence dans les combats, pour ne pas fausser les futurs classements nous avons décidés de remettre le jeu à zéro&#8230;<br />
<span id="more-397"></span><br />
Tarschool est basé sur le Zend Framework et cela m&#8217;a vraiment permis de corriger et modifier les fonctions très rapidement sans aucun souci.<br />
L&#8217;utilisation du cache APC est aussi un réel soulagement du côté du serveur, ce qui permet d&#8217;avoir un accès rapides aux données avec un minimum de requêtes sur la base de données.<br />
Je suis donc satisfait de mes choix de départ, mais aussi de l&#8217;avenir grâce à la réutilisation du moteur de Tarschool pour de futures jeux plus évolués.<br />
ZF suit une évolution assez rapide en ce moment et suit les dernières mises à jour de fonctionnalités de PHP, et son apprentissage a été plutôt rapide.</p>
<p>Après 2 semaines, Tarschool a atteint la centaine de joueurs actifs, ce qui est plutôt positif sachant le peu de référencement effectué pour le moment, mais beaucoup de travail reste à faire.<br />
Notamment au niveau de la dynamique du jeu, celui-ci ne prend pas assez en compte le côté communautaire.<br />
Il va nous falloir trouver des solutions pour donner envi aux joueurs de rester, et à de nouveaux de venir&#8230;<br />
Pas encore de quoi bosser dessus à temps plein !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anthor.net/blog/jeu-par-navigateur/quelques-nouvelles-de-tarschool/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Développement de Tarschool avec Zend Framework</title>
		<link>http://www.anthor.net/blog/jeu-par-navigateur/developpement-de-tarschool-avec-zend-framework/</link>
		<comments>http://www.anthor.net/blog/jeu-par-navigateur/developpement-de-tarschool-avec-zend-framework/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 18:10:27 +0000</pubDate>
		<dc:creator>Anthor</dc:creator>
				<category><![CDATA[Jeu par Navigateur]]></category>
		<category><![CDATA[Tarschool]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.anthor.net/?p=389</guid>
		<description><![CDATA[Après avoir fait mes premiers essais pour le développement du site du futur studio, j&#8217;ai continué à m&#8217;échauffer avec le Zend Framework en commençant le développement de Tarschool. Un mois s&#8217;est passé, et je commence à pouvoir développer comme je l&#8217;entends de manière fluide.Depuis une semaine, j&#8217;ai même entrepris de l&#8217;utiliser professionnellement. Pour le moment, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.anthor.net/wp-content/uploads/2010/04/LOGO-tarschool150px.jpg" alt="" title="" width="150" height="63" class="alignleft size-full wp-image-390" /><br />
Après avoir fait mes premiers essais pour le développement du site du futur studio, j&#8217;ai continué à m&#8217;échauffer avec le <a href="http://framework.zend.com/" target="_blank">Zend Framework</a> en commençant le développement de <a href="http://www.tarschool.fr/" target="_blank">Tarschool</a>.</p>
<p>Un mois s&#8217;est passé, et je commence à pouvoir développer comme je l&#8217;entends de manière fluide.<br />Depuis une semaine, j&#8217;ai même entrepris de l&#8217;utiliser professionnellement.<br />
Pour le moment, peu de regrets, le développement se déroule sans encombre et avance très rapidement !</p>
<p>Grâce au Zend Framework, je retrouve des algorithmes que j&#8217;avais commencé à mettre en place pour le développement de jeux avec une forte montée en charge.<br />
En utilisant APC, on évite facilement 90% des requêtes sur la base de données, mais on évite aussi, les jointures à répétition.<br />
En contre-partie il ne faut pas oublier de vider le cache lorsqu&#8217;il y a une mise à jour !</p>
]]></content:encoded>
			<wfw:commentRss>http://www.anthor.net/blog/jeu-par-navigateur/developpement-de-tarschool-avec-zend-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

