IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Projets Discussion :

RobotChallenge : combat de robots (pré)programmés


Sujet :

Projets

  1. #1
    Membre éclairé
    Avatar de Etanne
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 469
    Points : 855
    Points
    855
    Par défaut RobotChallenge : combat de robots (pré)programmés
    Bonjour à tous,

    J'ai une idée de jeu qui traine dans mon cerveau depuis pas mal de temps.

    Si j'ouvre ici un post, ce n'est ni pour vous montrer une bêta, ni pour rechercher des développeurs.

    J'ai juste besoin de votre aide pour donner votre avis sur le projet et me donner quelques pistes.

    Les bases du projet :

    Sur un plateau rectangulaire (y sur x cases) se trouvent 2 robots. Chaque robot a dans son camp 1 drapeau. Le but est de volé de drapeau de son adversaire et le ramener dans son camp (Capture The Flag). Afin de donner du piquant au jeu, les robots sont capables de poser des mines et tirer avec une arme.

    Les robots ne seront pas pilotés par le joueur, mais un programme développé le joueur (en gros une IA). Ce dernier ne pourra intervenir en plein match. Le jeu sera du type tour par tour

    L'évolution du robot :

    Après un combat, un robot peut repartir avec de l'argent, pouvant ainsi permettre au joueur d'ajouter au robot des options (armes par exemple).

    Afin d'éviter qu'un nouveau joueur joue avec un ancien joueur (donc robot plus évolué), un système de niveau (ou expérience) sera mis en place.

    Méthode de programmation :

    Il y a deux possibilités de programmation des robots.

    Programmation avec l'utilisation de socket :
    Les joueurs devront de connecter à un port du serveur pour combattre. Tour par tour, les joueurs réceptionneront la carte du jeu, et pourront envoyer au serveur l'ordre a effectuer au robot.

    Point positif :
    • La programmation du robot pourra aller loin, car c'est le joueur qui programme dans son langage au choix le robot

    Points négatif :
    • Pouvoir être sur que le joueur ne contrôle pas lui même le robot (ex. clavier)
    • Difficile d'accès au débutant en développement
    • Les deux joueurs devront être disponibles au même moment

    Programmation par langage unique :

    Les joueurs pourront programmer le robot à partir du site web du jeu, par un langage simple. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # Avancer de 2 cases
    MOVE 2
     
     
    # Si devant il y a un ennemi
    IF ON_FRONT IS ENNEMY
     
    	# Tirer au fusie à pompe
    	SHOOT PUMP
     
    END IF
    Point positif :
    • La programmation du robot est simple
    • Accès au programme de son robot partout
    • Possibilité de combattre un robot sans qu'un joueur soit présent

    Points négatif :
    • Langage limité


    Conclusion :

    Voila mon idée de projet (pas détaillé du tout). Je pense qu'il est largement réalisable, mais je me pose des questions sur le langage à utiliser.

    Je suis ouvert pour les remarques et les idées !

    Un grand merci pour votre lecture,
    Flo

  2. #2
    Membre régulier Avatar de TrYde
    Homme Profil pro
    Responsable de l'industrialisation logiciel
    Inscrit en
    Juillet 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Responsable de l'industrialisation logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 55
    Points : 80
    Points
    80
    Par défaut
    Bonjour,

    Ça me fait bien penser au concours Robotique de l'émission E=M6 (avant qu'elle ne deviennent Savoir plus Santé )

    Acheter des armes c'est un point, mais pourquoi ne pas améliorer les senseurs du robot ? On présume qu'un robot "basique" ne peut que voir ce qui est devant lui, mais qu'avec des améliorations on pourrait lui mettre un radar etc, et pouvoir utiliser des conditions telles que "si robot ennemi proche", "si robot derrière". Ça pourrait être intéressant de voir des robots orientés bourrinage et des robots orientés tactique. On peut même envisager (puisque c'est un jeu) des systèmes de brouilleurs temporaires et faire des robots orientés infiltration.

    Pour le système de prog, je vois bien un langage script avec branchements et un nombre déterminé de conditions disponibles (mais pas dispo tout le temps, cf senseurs), et des actions simples comme avancer, reculer, tirer, tourner, tourner arme, etc.

  3. #3
    Membre actif Avatar de gamerome
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 265
    Points : 211
    Points
    211
    Par défaut
    Ta 1ère solution est la bonne. 2 robots avec 2 intelligence différentes (qui correspond à 2 dll par exemple).
    A chaque tour, le plateau est envoyé aux robots qui donnent leur réponses, etc, etc.
    La 2ème solution ne convient pas car pour réaliser une IA poussée, il te faut un vrai langage, pas un fait maison, ca serait trop limité.
    Très bonne idée et tout à fait réalisable, je pense.

  4. #4
    Membre confirmé

    Inscrit en
    Août 2007
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 300
    Points : 527
    Points
    527
    Par défaut
    RobotWar, le hit de l'été 1848 sur Apple II.

  5. #5
    Membre confirmé
    Avatar de Mindiell
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 735
    Points : 546
    Points
    546
    Par défaut
    RoboCode, le même remis à jour en Java (par IBM au départ je crois)...

  6. #6
    Membre éclairé
    Avatar de Etanne
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 469
    Points : 855
    Points
    855
    Par défaut
    Citation Envoyé par TrYde Voir le message
    Bonjour,

    Ça me fait bien penser au concours Robotique de l'émission E=M6 (avant qu'elle ne deviennent Savoir plus Santé )

    Acheter des armes c'est un point, mais pourquoi ne pas améliorer les senseurs du robot ? On présume qu'un robot "basique" ne peut que voir ce qui est devant lui, mais qu'avec des améliorations on pourrait lui mettre un radar etc, et pouvoir utiliser des conditions telles que "si robot ennemi proche", "si robot derrière". Ça pourrait être intéressant de voir des robots orientés bourrinage et des robots orientés tactique. On peut même envisager (puisque c'est un jeu) des systèmes de brouilleurs temporaires et faire des robots orientés infiltration.

    Pour le système de prog, je vois bien un langage script avec branchements et un nombre déterminé de conditions disponibles (mais pas dispo tout le temps, cf senseurs), et des actions simples comme avancer, reculer, tirer, tourner, tourner arme, etc.
    Cela est normal que tu penses au concours de E=M6, je m'y suis inspiré. Merci pour les différentes idées concernant l'option du robot.

    Citation Envoyé par gamerome Voir le message
    Ta 1ère solution est la bonne. 2 robots avec 2 intelligence différentes (qui correspond à 2 dll par exemple).
    A chaque tour, le plateau est envoyé aux robots qui donnent leur réponses, etc, etc.
    La 2ème solution ne convient pas car pour réaliser une IA poussée, il te faut un vrai langage, pas un fait maison, ca serait trop limité.
    Très bonne idée et tout à fait réalisable, je pense.
    Effectivement, la solution 1 est plus intéressante. Dans notre cas, il s'agirait uniquement de communication réseau pour donner les ordres au robot, pour ainsi permettre au joueur de développer le robot soit en C/C++, JAVA, C# ou un autre langage.

    Le langage fabriqué maison est difficile à concevoir, le moindre bug peut avoir un lourd impact, et comme tu le dis, il peut avoir ses limites.

    En réfléchissant, on peut penser au deux solutions !. Dans le premier temps, créer le jeu en jouant commandant son robot par le réseau. Et plus tard la mise en place du langage script pour les débutants.

    Mais hélas la première solution a un problème que je dois absolument résoudre : le joueur peut éventuellement tricher, en commandant son robot lui même avec son programme (utilisation du clavier). Pour cela on peut imaginer qu'un joueur à par exemple 100ms pour jouer, mais cette solution peut poser problème selon les débits des joueurs !.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 432
    Points : 593
    Points
    593
    Par défaut
    La première solution laisser trop de possibilité de cheat.

    Tu peux bien faire la deuxième solution avec un langage déjà existant ? Comme Python par exemple.

    En tout cas je trouve que c'est un très bonne idée.

    Tu peux faire un truc comme labrute.fr où les joueurs crée un compte, upload l'IA de leur(s ?) robot(s), etc. Ca pourrais être super intéressant et populaire au près des programmeurs.

  8. #8
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Intéressant

    Je pense que pour les modules d'intelligence artificielle, il sera effectivement plus intéressant de passer par un langage simple comme Python. L'intérêt, c'est que si qqn veut faire du C/C++/Java/..., ça devrait être possible sans problème.

    Autre solution, un serveur et deux applications tournant en XMLRPC, là, tu lèves toutes les nécessités du langage, tu as juste à indiquer l'interface publique de tes IAs. Mais c'est plus difficile dans le sens où tu auras à fournir un canevas dans tous les langages ou presque. Après, le serveur en Python, c'est simple à faire

  9. #9
    Expert éminent
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Points : 6 812
    Points
    6 812
    Par défaut
    Tu as une idée clair et précise sur ce que tu veux faire, c'est déjà un bon début

    Citation Envoyé par Etanne
    Points négatif :

    * Langage limité
    Je suis pas d'accord, il est tout à fait possible de faire un IA avec de "simple" IF. C'est souvent la base de toute IA : Condition=>Action, définir une base de règles...

    Pour le langage que tu veux utiliser, je n'ai pas vraiment de suggestion pour toi car tu n'as pas dit si tu voulais faire du web ou un application "stand-alone" ?
    Dans le cas d'une application "stand-alone", tu pourrais utiliser des moteurs de scripts déjà existant comme LUA.

    Bon courage

  10. #10
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par raptor70 Voir le message
    Je suis pas d'accord, il est tout à fait possible de faire un IA avec de "simple" IF. C'est souvent la base de toute IA : Condition=>Action, définir une base de règles...
    Non, je suis désolé. Avec des IF, tu ne fais que des systèmes experts très simples, alors qu'on sait faire largement mieux.

  11. #11
    Expert éminent
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Points : 6 812
    Points
    6 812
    Par défaut
    Citation Envoyé par Matthieu Brucher Voir le message
    Non, je suis désolé. Avec des IF, tu ne fais que des systèmes experts très simples, alors qu'on sait faire largement mieux.
    Tout dépend à quel niveau on commence à faire de l'IA mais on peut tout à fait commencer par les IF. On sais effectivement faire mieux, mais c'est toujours plus couteux d'un point de vue performance et mémoire.

  12. #12
    Membre éclairé
    Avatar de Etanne
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 469
    Points : 855
    Points
    855
    Par défaut
    Merci pour toutes vos réponses !.

    De mon coté, j'ai réfléchi ce midi. La première solution (utilisation des sockets) pose un énorme soucis, car c'est beaucoup trop facile de tricher, même en utilisant un délai de temps de réponse.

    Au niveau de la présentation du jeu, je pense qu'il va s'agir d'un simple site web s'occupant de relier les joueurs entre eux (un chat par exemple), et d'un processus (sur le même ou un autre serveur) s'occupant d'organiser les matchs.

    Par rapport au langage utilisé, j'ai pensé de créer pour l'instant un langage n'utilisant pas de variables (pour éviter aux débutant d'être pénaliser).

    Qu'en pensez-vous ? Comment voyez-vous un langage simple ?

    Au niveau de mes connaissances, je n'ai jamais créer de langage !

  13. #13
    Membre éclairé
    Avatar de divxdede
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    525
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 525
    Points : 844
    Points
    844
    Par défaut
    Excellente idée.
    Meme si ce type de jeu à déja existé, il reste suffisament original permettant à un projet bien mené d'être novateur.

    Bon courage a toi.

  14. #14
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Citation Envoyé par Etanne Voir le message
    Qu'en pensez-vous ? Comment voyez-vous un langage simple ?
    Comme une réinvention de la roue et comme une perte de temps. Et les personnes les plus intéressantes pour ton projet iront voir ailleurs, tout simplement.

  15. #15
    Expert éminent
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Points : 6 812
    Points
    6 812
    Par défaut
    Comme te le dit Mathieu, tu risques de passer pas mal de temps car ce genre de problématique est très complexe. Je te conseille, plutot que de recréer ton propre langage, d'utiliser des moteurs de scripts tout fait comme LUA ou autre. Tu gagneras énormément en temps et en énergie.

  16. #16
    Membre éclairé
    Avatar de Etanne
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 469
    Points : 855
    Points
    855
    Par défaut
    Bon je vais jeter un coup d'œil sur les moteurs de scripts...

    Merci !

  17. #17
    Expert éminent
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Points : 6 812
    Points
    6 812
    Par défaut
    Citation Envoyé par Etanne Voir le message
    Bon je vais jeter un coup d'œil sur les moteurs de scripts...

    Merci !
    LUA a une structure très proche des langage actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    -- un commentaire
    if toto == "blabla" then
        montableau:quelquechoseafaire( 12345 );
    else
        i = 654;
    end

    Mais attention, ca aussi c'est du LUA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    -- C'est un appel de la fonction Coucou avec en paramètre, une table de 3 élément
    Coucou{1, 2, "azeazeaze" };
    Coucou{3, 2, "aze" };
    Coucou{5, 2, "azeze" };
    (je ne garanti pas les erreurs de syntaxe )

  18. #18
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Python, mieux pour ce genre de chose et pour permettre à des utilisateurs avancés par la suite d'utiliser des modules perfectionnés (réseaux de neurones/bayesiens, ...)

  19. #19
    Expert éminent
    Avatar de raptor70
    Inscrit en
    Septembre 2005
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Septembre 2005
    Messages : 3 173
    Points : 6 812
    Points
    6 812
    Par défaut
    Effectivement, il en existe d'autre ... je t'ai proposé LUA parce que c'est le seul que je connais ...

  20. #20
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Ben... idem pour moi (quoique j'ai entraperçu LUA et Ruby à un moment )

Discussions similaires

  1. Programmer des robots machines
    Par Porteuris dans le forum Débuter
    Réponses: 5
    Dernier message: 16/02/2009, 10h16
  2. [Dev-Pascal] Programme de combat naval : problème d'affichage
    Par deltarip dans le forum Autres IDE
    Réponses: 1
    Dernier message: 14/02/2009, 23h10
  3. Programmation Robot suiveur de ligne
    Par Homer.j dans le forum Langages de programmation
    Réponses: 1
    Dernier message: 10/12/2008, 20h02
  4. Comment programmer un robot ?
    Par reggae dans le forum Robotique
    Réponses: 4
    Dernier message: 18/12/2005, 11h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo