CBNA_IA 6002006
Compétition sur l’intelligence artificielle avec
GameMaker.
Le but de cette compétition est de passer un joyeux moment de détente lors de la diffusion des combats d’intelligences artificielles.
L'objectif étant pour chaque participant de créer une équipe de 3 personnages (Humains, Alien, Robots, Canard, Chien etc…) intelligents et qui soient programmés pour assassiner ou détruire les membres des autres équipes.
Courant Juin 2006 les combats seront rediffusés en direct.
Les gagnants obtiendrons un tee-shirt CBNA et une adresse email
@gamemaker.fr, ainsi que le gm6 complet regroupant tous les combattants ainsi que des livres sur L’IA.
Cette competition aura lieu chaque année en plus de toutes les compétitions déjà existantes.
Il est nécessaire de vous inscrire, vous pouvez vous inscrire dès maintenant et jusqu'à la fin de la compétition en vous connectant et en remplissant le formulaire ici:
Formulaire d'inscription ou en passant par:
http://lecbna.com/ > Compétitions >
CBNA_IA 6002006GM6 de Base & Regles: GM6 de Base + Règles au format PDF Règles au format PDF Règles au format HTML (Déconseillé)Lorsque vous aurez terminé votre équipe il vous suffira d'envoyer un e-mail ici: lecbna@estvideo.fr contenant votre équipe au format gm6.S'il reste certaines zones d'ombres veuillez nous écrire soit ici soit par e-mail:
lecbna@estvideo.frNous nous excusons pour le retard mais pour des causes personnelles je n'ai pas eu le temps de bien finaliser les règles et le gm6 de base. Nous comptons sur vous pour les respecter au mieux. Bonne chance et que le meilleur gagne!
Date de Fin de la compétition: 19 Juillet 2006 Faq: - Citation :
- On créé Un personnage?
Non vous créez
trois personnages, qui peuvent selon vos désirs et votre savoir réagir en stratégie de groupe.
- Kryptos a écrit:
- J'ai un soucis à propos des projectiles : quel taille est autorisé ? Il va sans dire, qu'un projectile qui fait la moitié de la room a toutes les chances de toucher sa cible...
Il ne doit pas exceder la largeur ni le double de longueur du personnage. C'est à dire il ne doit pas être plus grand que:
32x64 (Merci, je n'y avais plus pensé).
- bibi26 a écrit:
- Et que la classe "libre" risque d'avoir des tricheries Quelqu'un pourrait bien mettre tout au maximum !
Les gens qui metterons tout au maximum ou presque verrons leur équipe supprimée, comme je l'ai dit: "pas de super machin de la mort qui tue, et des anti-tout". Ou alors je baisserai la puissance de certaines choses.
- Citation :
- Jusqu'où doit on aller dans la qualité d'IA de notre équipe?
Et bien je dirai jusqu'à l'infini, mais plus sérieusement on attend des IA simples qui sachent se déplacer, se mettre à couvert, tirer etc... pas énormément plus, on voudrait juste que les combats retransmis en direct soient marrant et sympa à regarder, comme une arène durant l'antiquité.
- bibi26 a écrit:
- Quand tu dis "Pas de mouvements". Tu entends quoi exactement ?
Lorsque je dis "Pas de mouvements", cela signifie que le personnage n'a le droit de tirer que s'il ne bouge pas.
- bibi26 a écrit:
- Pour le nom de mon équipe qui était Dawn Warrior, le fait d'avoir mis un espace à mon nom semble déranger Game Maker :sarcastique:
Quand je met comme nom team_en_Dawn Warrior et que dans le script obj_proj1_Dawn Warrior je remplance team_en_nomdevotre equipe par team_en_Dawn Warrior, sa ne fonctionne pas. Mais quand je met les deux team_en_Dawn Warrior avec un _ entre Dawn et Warrior sa fonctionne....
C'est ce que j'ai mis dans les règles: team_en_dawnwarrior
Les noms d'objets ne doivent comporter ni majuscule ni espaces. Mis à part pour la variable de base: team = "nomdevotreequipe" tu noteras: team = "Dawn Warrior"
GameMaker ne gère pas les espaces tout comme le HTML, enfin lui le gère quand même grâce à: %20
De Bibi26:
- Citation :
- A ce propos, y a-t-il une distance minimale pour detecter un objet ou on considère que tout le monde se voit. Si on reprend mon exemple d'IA, les ennemis ne voit pas le joueur si celui-ci est caché par un mur. Garde-t-on ce principe ou peut-on voir à travers les murs ?
C'est à vous de voir, mais les IA les mieux notés seront celles qui ne verront pas à travers les murs, et qui sentiront les ennemis venir.
Ce que je propose c'est qu'une zone autour de l'objet: 100 pixels environ on sente qu'il y ait un ennemi où qu'il soit. Et passé 100 pixels la detection se fait à vue. On va dire que l'on se voit jusqu'à 600 pixels. En fait ce qu'il faut c'est que vous ne fassiez pas de "supers tueurs fous", il faudrait que ce soit marrant et convenable. Dans la limite
- Citation :
- Est-ca qu'on a le droit de faire de la magie, (et l'utiliser avec les munitions)faire par exemple un tremblement de terre qui enleve un peu de vie à toutes les unités
Pour le tremblement de terre d'accord, mais à condition que cela n'enlève pas plus de 20 points de vies à toutes les unités, et que ce soit la caractéristique spéciale de ton personnage, les autres armes doivent être plus conventionelles. Mais de toutes façons si ton arme était trop abusive j'en réduirais les possibilités.
- NooZ a écrit:
- J'adore bosser sur l'IA je vais donc normalement y participer
EDIT : il manque un truc, c'est un exemple... parcque c'est un peu chaud de se lancer comme ca sans aucune marque, et sans pouvoir tester notre IA sur une autre....
Super! (;
Justement c'est pour cela qu'il faut lire les règles, et comment fonctionne le GM6 de Base, à vous de programmer votre IA, ensuite vous pouvez faire affronter deux de vos IA. Et pour les tests tu peux faire un objet tout bête qui se déplace juste, et voir les réactions de ton personnages non? Je sais tout ceci n'est pas super au point, mais c'est dur de tout seul tout prévoir, l'an prochain, on saura ce qui est nécéssaire et tout se passera comme sur des roulettes, mais là les débuts sont chaotique, donc si tu as d'autres suggestions elles sont les bienvenues.
- Citation :
- Euh j'ai une atre question : c'est quoi la vitesse angulaire maximale autorisée ? En gros, est-ce que le perso peut faire un demi-tour à la Zelda ou doit-il tourner sur lui-même ? Dans ce cas à quel vitesse (en rad/step) ?
Oh non ça il peut tourner à la vitesse de la lumière, ya aucun problème.
- OKSYD a écrit:
Est-ce que le projectile d'un gars de notre équipe doit-il nous heurter, nous blesser?
Oui le projectile doit vous blesser, et de toutes façons si vous ne le faites pas je le ferai moi au moment du rassemblement des gm6. Et je vais changer le nom de ton équipe.
- Kryptos a écrit:
- Quelle est la vitesse des projectiles ? Je compte en effet permettre à mes personnages d'essayer d'éviter certains projectiles, s'ils ont détécté auparavant qu'on les attaquait.
Au choix entre 12 et 30. Si jamais ça excede je le changerai moi.
- OKSYD a écrit:
- Et est-ce que les capacités du genre: devenir invisible doit utiliser des munitions?
Non c'est en plus, une et uniquement
une capacité spéciale par personnages qu'ils peuvent utiliser mais pas en permanence, pas d'abus en fait.
- Citation :
- non,ça m'étonerait je pense que on peut avoir plein de capacité tant qu'on en abuse pas trop est que sa soit « le super machin de la mort qui tue ».en fait il faut pas réster trés logtemp invisible c'est tout
Oui si l'on a plein de capacité qui ne sont pas "fortes" ça va aussi, je ne suis pas chiant, les règles sont flexibles.
N'oubliez pas: Il est possible de rajouter autant de variables que vous voulez, seul celles de bases ne doivent être supprimées.
- Kryptos a écrit:
- Bon une question sérieuse : quel est le mécanisme de instance_nearest() ?
Ca renvoie l'id de l'instance la plus proche (de quoi) ? Ou ça renvoie l'id de la dernière instance créée ? Ou autre chose ? ...
Je ne veux pas que mes trois persos se concentrent sur une seule cible !
Je propose une alternative : stocker dans un objet un tableau à trois cases dans lequel on écrit le nom de nos persos. Cela pourra être aisément fait manuellement dans l'objet team_en_nomdevotreequipe avant chaque combat.
EX : - Code:
-
// mon équipe : 'the good', ennemis: 'the bad'
// dans l'objet team_en_thegood, event CREATE :
global.enemies[0] = instance_find(obj_bot1_thebad,0);
global.enemies[1] = instance_find(obj_bot2_thebad,0);
global.enemies[2] = instance_find(obj_bot3_thebad,0);
On récupère ainsi l'ID de chaque ennemi. Ensuite on peut s'en resservir.
EX : - Code:
-
var distance;
distance = distance_to_object(global.enemies[0]);
Mais vous pouvez vous débrouillez différemment pour vous attaquer à un ennemi le code que j'ai donné avant c'est pour le projectile:
- Code:
-
if place_meeting(self.x,self.y,team_en_nomdevotreequipe) {(instance_nearest(x,y,team_en_nomdevotreequipe)).vie -= obj_bot1_nomdevotreequipe.dommages}
J'aurais très bien pu user de: instance_place, ou instance_position, car place_meeting ne retourne pas l'id de l'objet touché.
Mais ton système me chiffone, parce que distance_to_object(obj) retourne la distance entre l'instance la plus proche de l'instance obj et obj.
et donc instance_nearest(x,y,obj) retourne l'id de l'instance obj laplus proche de x,y.
Donc au lieu de s'ennuyer à faire un tableau:
- Code:
-
dede = instance_nearest(self.x,self.y,team_en_nomdevotreequipe)
distance = distance_to_object(instance_nearest(self.x,self.y,dede));
Et si tu ne veux pas que tes gars tirent tous sur le même gars, tu n'a qu'à vérifier que obj_bot1_nomdevotreequipe et obj_bot2_nomdevotreequipe n'ont pas les mêmes valeurs de la valeur dede, et qu'ils doivent donc agir en conséquence. Je ne vois pas pourquoi changer tout un système. A moins que je ne me trompe.
- OKSYD a écrit:
- daminetreg a écrit:
-
- Citation :
- Combien d'armes par personnage ? En gros, est-ce qu'un perso peut avoir un flingue et des grenades à main ?
Autant d'armes que tu veux à conditions que cela use la même ressource de munitions et que selon les dommages, cela utilise plus ou moins de munitions.
:p_gne:
- daminetreg a écrit:
- - Vos soldats n'ont droit qu'à une seule arme.
- daminetreg a écrit:
- les IA les mieux notés seront celles qui ne verront pas à travers les murs
re :p_gne:
Sinon pour la vue, si je comprends bien, elle devrait être un peu comme ça, non?
Pour la vue, c'est bon, c'est assez réaliste, du moment qu'elle ne va pas jusqu'à pétaouchnok et qu'elle ne traverse pas les murs. Et pour ce qui est du nombre d'armes, j'ai décidé de pas être chiant sur toutes les règles, celles qui ne gênent pas, parce que ces règles là ne sont pas au point, l'an prochain grâce à vos interventions on aura des règles qui seront imparables, mais cette année ça va être un peu la débandade.
- Citation :
- juste une question ...
vous avez vu ce que ca donne ces valeurs ?
si le mec est bien placé, il voit tout la view en horizontale !
(l'image fait 100*650)
je voteria splutot, si c'est fesable, pour une 'aire de vue' qui ne devrait pas exeder un certain nombre de pixels.
ainsi, on pourait faire des snipers qui voient loin mais pas becoup suir les côtés, ou , au contraire, des medecins très attentifs à leur envirronement proche ^^
Ce que j'ai dis il ne faut pas qu'ils voient à travers les murs primo, et secondo que ce ne soit pas le super truc de fou...
Mais ton idée je voulais la mettre dans les tableaux mais avec ce @*ù!§ d'accident j'ai tout oublié... Il faudrait que je refasse donc des tableaux. Si voulez bien patientez jusqu'à cette après midi.
Aide:Topic sur L'IA par Kryptos:
https://cbna.forumactif.com/viewtopic.forum?t=834Exemple d'IA par Kryptos:
http://daminetreg.lecbna.com/gm6/ia.zipExemple d'IA par daminetreg
:
http://www.lecbna.com/pages/download/moteurs/IA%200.6.gm6Fonctions pouvant vous être utile:
- choose(x1,x2,...)
- distance_to_object(obj)
- point_direction(x1,y1,x2,y2)
J'en rajouterai dès qu'elles me viendrons à l'esprit.