Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Concours de programmation] IA Contest

Codez la meilleure IA et affrontez les autres joueurs.

Anonyme
    18 septembre 2011 à 21:55:48

    Bonjour,

    Dans ce topic, je vais vous présenter mon projet IA Contest.

    Image utilisateur

    J’ai 21 ans et je suis développeur web. Passionné par la programmation et plus particulièrement par les intelligences artificielles, j’apprécie particulièrement les compétitions de programmation. Au fil des années, j’ai participé à plusieurs de ces concours. C’est pourquoi j’ai décidé de concevoir ce jeu.

    Genèse


    Le projet à débuté au printemps 2011, je cherchais à apprendre les Canvas HTML5. Au départ ce n’étaient que des petits tanks qui bougeaient aléatoirement sur le terrain. En cours d’année, j’ai eu quelques cours sur le Ruby, ce langage m’a vraiment plu. À ce moment je suis parti dans l’idée de créer un concours de programmation. J’ai donc créé le serveur de match en Ruby.

    Généralités et avancement



    IA Contest est un concours de programmation où vous avez la possibilité de programmer vos propres intelligences artificielles. Le but de ce concours est de s’amuser mais également de pouvoir apprendre la programmation de manière interactive, sociale et ludique ! Le concours est fait pour s’adapter à tous les niveaux de joueurs, du débutant au programmeur avancé.

    Scénario


    Il s'agit d'un combat de tank de 2 à 6 joueurs. Le but est de survivre et d’éliminer les tanks adversaires. Pour cela, vous devez programmer votre tank avec des méthodes prédéfinies.
    Voilà un exemple d’une IA. Le langage utilisé pour la programmation est le Ruby.
    class Player < Me
    	def run
    		# Ennemi le plus proche
    		enemy = @enemies.list(false).min_by {|e| e.distance(self)}
     
    		# Le tank se tourne en direction de l'ennemi
    		angle = angleTo(enemy)
    		if angle > 5
    			turn!(:right)
    		elsif angle < -5
    			turn!(:left)
    		end
     
    		# Si il detecte un ennemi dans un rayon de 200px sur 15°, il tire sinon il avance
    		if detect(@enemies.list(false), 15, 200).count == 0
    			move!(:front)
    		else
    			fire!
    		end
    	end
    end
    


    Une fois votre IA créée, vous pouvez créer des matchs contre les joueurs de votre choix. Ces matchs sont visibles en live. Tous les membres peuvent venir les suivre. Un match dure en moyenne 1 à 2 minutes, mais il peut durer jusqu’à 10 minutes.
    IA Contest propose un classement des meilleurs IA.

    Technologies


    Voilà les technologies que j’ai utilisées pour concevoir ce jeu.

    Le serveur de jeu est codé en Ruby.
    Le Ruby a l'avantage d'être complètement objet, performant et simple.

    Le transfert des données au client se fait par websockets
    Cela permet de travailler en direct avec le client (matches en live).

    Le rendu d'un match utilise la balise HTML5 Canvas.
    Elle n'a pas encore toutes les possibilités du Flash, mais c'est une technologie prometteuse.

    Le site internet est développé avec le Framework PHP Yii

    Liens



    Objectifs


    Beaucoup de membres me demandent de rendre IA Contest multi-langage. Actuellement c'est un des principaux objectifs. J’ai commencé à créer la structure pour implémenter le PHP.

    Planning


    Voilà quelques tâches qui sont planifiée.
    • Mise en place du Mini-chat
    • Amélioration de la documentation
    • Statistiques de fin de match

    Recrutement


    Je suis actuellement seul sur ce projet et il me demande beaucoup de travail.
    Je recherche donc quelques personnes qui pourraient participer au développement du projet.
    • Rédacteur : Participation à la rédaction des tutoriaux et des news.
    • Traducteur anglais : Traduction du site internet en anglais.
    • Développeur Ruby : Développement du serveur de jeu
    • Développeur PHP : Développement du site internet avec le Framework Yii.
    • Autre : Vous pensez pouvoir apporter autre chose au projet.

    Envoyez moi un message si vous êtes intéressé à participer au projet. :)


    J'attends avec plaisir vos impressions et questions ! ;)
    • Partager sur Facebook
    • Partager sur Twitter
      18 septembre 2011 à 23:07:05

      Bonjour !

      Je ne suis pas un programmeur pur et dur à la base, mais j'aime beaucoup ce type de projet parce que c'est un bon moyen de s'entraîner à programmer, justement ! Ton projet m'intéresse d'autant plus que je m'initie justement au langage Ruby (via le framework Ruby on Rails). :)

      J'attends avec impatience la sortie pour pouvoir tester tout cela. As-tu prévu un système de "niveaux" pour les contests ou de genre de "tutoriels", ou bien on est lâchés comme ça, à la dure? (Je croise les doigts pour que ce soit la première des solutions !)

      Sinon, pour l'aperçu, rien à redire. Le site et le jeu sont simples, mais efficaces. :) Juste corriger les petites fautes: on écrit "connexion", et non pas "connection"; ainsi que "match" et non pas "matche" (du moins il me semble). ;)

      Pripoko
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        18 septembre 2011 à 23:19:59

        Salut,

        Merci pour ton commentaire.

        Citation : Pripoko

        As-tu prévu un système de "niveaux" pour les contests ou de genre de "tutoriels", ou bien on est lâchés comme ça, à la dure?


        J'ai prévu des tutoriels qui expliquent le fonctionnement du jeu ainsi que quelques tanks d’exemple.
        Sinon une doc de référence avec classes, attributs et méthodes.

        La programmation est libre et en même temps bien encadrée par la structure disponible.

        Merci pour les fautes. ;)
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          20 septembre 2011 à 9:16:43

          Hello,

          Je suis à la recherche d'un hébergement dédié ou virtualisé pour mon projet.
          J'ai déjà regardé les offres d'OVH.

          Connaissez vous d'autres hébergeur avec des tarifs abordables ?
          Plutôt dédié ou virtualisé ? Sachant que le serveur de jeu consommera pas mal de ressource.


          Merci d'avance pour votre aide ! ;)
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            21 septembre 2011 à 17:29:09

            Un petit up. :)
            J'en profite pour vous annoncer que je prépare une petite vidéo d'aperçu.
            • Partager sur Facebook
            • Partager sur Twitter
              21 septembre 2011 à 18:34:59

              Dommage qu'il n'y ai que ruby

              Sinon le principe est vraiment compié sur le dernier concours d'IA qui a été mené a terme sur ce site (je passe tous les projets avortés)
              • Partager sur Facebook
              • Partager sur Twitter
              Développeur freelance web et mobile : Mon blog | Todr App
              Anonyme
                21 septembre 2011 à 19:13:31

                Salut,

                N’empêche que Ruby est un très bon langage, une bonne occasion de l'apprendre. :p
                Je proposerais d'autres langage peut être plus tard.

                Citation : Atrakeur

                Sinon le principe est vraiment compié sur le dernier concours d'IA qui a été mené a terme sur ce site


                Je dirais plutôt inspiré.
                J'ai vraiment aimé les anciens concours, c'est pourquoi je suis parti sur un scénario similaire.
                J'y apporte tout de même quelques nouveautés.

                Au final, le site proposera plusieurs autres scénarios différents.
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  5 octobre 2011 à 11:05:19

                  Une vidéo en ligne ici ;)

                  Les bots ne sont pas très développés, mais c'est déjà bon aperçu de ce que les utilisateurs verront en live.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    7 octobre 2011 à 18:33:57

                    Citation : Jeremy_ga

                    Connaissez vous d'autres hébergeur avec des tarifs abordables ?
                    Plutôt dédié ou virtualisé ? Sachant que le serveur de jeu consommera pas mal de ressource.


                    Kimsufi est adapté pour tes besoins, sinon voie chez 1&1 avec leurs serveurs Virtuels
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      9 octobre 2011 à 22:24:23

                      Hello,

                      Merci, kimsufi correspond parfaitement à mes besoins. ;)


                      Sinon quelques news sur le projet, le serveur de jeu et fonctionnel et toutes les fonctions disponibles aux joueurs sont programmées.

                      Bientôt une première beta jouable ! :p


                      Jérémy
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        30 décembre 2011 à 15:52:49

                        Hello à tous,

                        Le site internet est en phase d'être finalisé. Le serveur va être mis en place ces prochaines semaines pour lancer la beta. :p
                        • Partager sur Facebook
                        • Partager sur Twitter
                          30 décembre 2011 à 21:03:33

                          Beau boulot ! Ca donne envie (même avec les fautes d'orthographe :sarcastique:) !
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Anonyme
                            2 février 2012 à 18:37:47

                            Bonjour à tous,

                            Le site internet est maintenant disponible sur www.ia-contest.com :p

                            Jérémy
                            • Partager sur Facebook
                            • Partager sur Twitter
                              2 février 2012 à 19:32:57

                              J'avais déjà mis ton post en favoris, j'attendais la sortie du site.

                              J'adore le concept !

                              J'ai lu vite fait la doc et je trouve que c'est très bien expliqué.

                              Etant donné que je connais pas du tout le ruby, je vais lire la doc officielle pour voir la syntaxe et tout et tout.
                              Dès que j'aurais le temps, je ferais mon IA.
                              (si j'arrive à en faire une :D )
                              • Partager sur Facebook
                              • Partager sur Twitter
                                2 février 2012 à 20:14:49

                                Concept vraiment superbe, j'aime !
                                J'attends avec impatiente la sortie du site. En attendant, je me lance dans le doc vue que je ne connais pas ruby :D !
                                • Partager sur Facebook
                                • Partager sur Twitter
                                Anonyme
                                  2 février 2012 à 20:33:20

                                  Citation : vodros

                                  J'attends avec impatiente la sortie du site. En attendant, je me lance dans le doc vue que je ne connais pas ruby !



                                  Le site est en ligne ici ! ;)
                                  Mais le serveur de matches n'est pas encore en ligne.

                                  Sinon est-ce que ça serait utile d'avoir une petite doc sur Ruby directement sur le site ?

                                  Jérémy
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    2 février 2012 à 21:37:41

                                    Citation : Jeremy.ga

                                    Citation : vodros

                                    J'attends avec impatiente la sortie du site. En attendant, je me lance dans le doc vue que je ne connais pas ruby !



                                    Le site est en ligne ici ! ;)
                                    Mais le serveur de matches n'est pas encore en ligne.

                                    Sinon est-ce que ça serait utile d'avoir une petite doc sur Ruby directement sur le site ?

                                    Jérémy



                                    Ouai ce serait très utile.
                                    Genre faudrait mettre que les choses de bases style la syntaxe et quelques petits trucs utiles.
                                    Juste l'essentiel.

                                    Parce que les personnes qui vont venir sur ton site auront déjà codée mais pas forcément en ruby.
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      2 février 2012 à 22:04:47

                                      +1 lludo, une doc sur ruby directement sur le site est mieux. Listant juste les bases pour comprendre et développer une IA.

                                      Sinon quand je disais j'attendais la bêta je voulais dire le lancement du jeu :) !
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      Anonyme
                                        2 février 2012 à 22:09:35

                                        Ok, je vais compléter la doc. ;)

                                        Si tout se passe bien le serveur est en ligne ce weekends. J'attend juste les accès à mon VPS.
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          3 février 2012 à 22:48:59

                                          N'oublie pas de faire part de la sortie bêta sur Rubylive, je suis sûr que beaucoup de dev Ruby vont s'éclater sur ton site ! ;)
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Anonyme
                                            3 février 2012 à 23:01:10

                                            Citation : Pripoko

                                            N'oublie pas de faire part de la sortie bêta sur Rubylive, je suis sûr que beaucoup de dev Ruby vont s'éclater sur ton site !


                                            Merci bonne idée !
                                            Je connaissais pas rubylive. C'est sympa !
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              4 février 2012 à 13:16:29

                                              Bonjour,
                                              J'ai vu que tu as ouvert le serveur de matchs.
                                              Pourquoi ne pas mettre une (ou plusieurs) IA de "test" pour tester notre IA ?
                                              Genre si y a aucun match en cours, j'ai la possibilité de tester mon IA face à des IA que tu auras créé style "facile/moyen/difficile".
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                              Anonyme
                                                4 février 2012 à 13:22:40

                                                Hello,

                                                Citation : Iludol

                                                Pourquoi ne pas mettre une (ou plusieurs) IA de "test" pour tester notre IA ?


                                                C'est dans les fonctionnalités prévues. Je vais faire une application desktop pour tester les IA.

                                                Mais sa risque de prendre quelque temps avant d'être finalisé, j'ai énormément de fonctionnalités prévues.
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  4 février 2012 à 15:35:25

                                                  Je viens de "créer" une IA de test où il n'y a rien juste le code natif, mais je remarque qu'il faut qu'elle soit validé, why ?
                                                  Et une option pour garder une IA en "bêta" serait bien comme sur le SdZ pour les tuto en bêta.
                                                  Et sinon comment on lance une partie ?
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                  Anonyme
                                                    4 février 2012 à 15:49:01

                                                    Citation : vodros

                                                    Je viens de "créer" une IA de test où il n'y a rien juste le code natif, mais je remarque qu'il faut qu'elle soit validé, why ?


                                                    Pour le moment c'est manuel mais je prévois d'automatiser la validation. C'est pour éviter des codes malveillants.

                                                    Citation : vodros

                                                    Et une option pour garder une IA en "bêta" serait bien comme sur le SdZ pour les tuto en bêta.


                                                    C'est noté, bonne idée !

                                                    Citation : vodros

                                                    Et sinon comment on lance une partie ?


                                                    Quand tu es connecté : Matches en cours -> Créer un match
                                                    et tu sélectionnes les IA.
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                    Anonyme
                                                      7 février 2012 à 16:44:11

                                                      Hello à tous,

                                                      J'ai ouvert un blog du développement afin de pouvoir informer les utilisateurs des développements réalisé sur le site. Vous le trouverez en bas du site dans le footer.

                                                      Prochaine étape : un module de suggestions et bug report, entre temps n'hésitez pas à me donner des retours ;)

                                                      Jérémy
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        8 février 2012 à 15:59:56

                                                        Moi j'attends toujours la DOC sur Ruby pour me lancer :3
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          8 février 2012 à 16:08:04

                                                          Ca semble interesssant mais il n'a aucun match en cours...
                                                          Et je trouve pas le moyen d'en creer.

                                                          Merci
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                          Anonyme
                                                            8 février 2012 à 16:52:08

                                                            Hello,

                                                            Citation : vodros

                                                            Moi j'attends toujours la DOC sur Ruby pour me lancer :3


                                                            La doc arrive bientôt. ;)

                                                            Citation : saturn1

                                                            Ca semble interesssant mais il n'a aucun match en cours...
                                                            Et je trouve pas le moyen d'en creer.


                                                            Dans Matches en cours à gauche -> créer un match.
                                                            C'est une bonne remarque, je vois que la navigation n'est pas évidente, je vais améliorer ça.

                                                            Jérémy
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                            Anonyme
                                                              9 février 2012 à 19:05:04

                                                              J'ai mis en place une sandbox, vous pouvez maintenant tester vos IA qui n'ont pas été validées.

                                                              Jérémy
                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              [Concours de programmation] IA Contest

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown