[Novendiales 6] Petri Wars

Forum sur le concours/défi sans périodicité fixe et sans rien à gagner du GCN.

Petri Wars

Messagepar Gavos » 01 Mar 2010, 04:45

Hej hej,

De nombreuses heures après l'échéance, voici notre contribution (perfectible) aux Novendiales: Petri Wars

Vous êtes Serguei Straptokov, un savant fou qui vient de créer une nouvelle souche de bactéries au développement foudroyant. Mais James Staphylus, votre ennemi de toujours, a lui aussi mis au point une nouvelle espèce microbienne. Seul un combat à mort vous permettra de remporter l'appel d'offre du consortium Umbrallo Corporation, seule institution exploiter pleinement les capacités de votre création...


Image


Vous cultivez les bactéries rouges et vous commencez en bas à droite. Faites progresser votre culture bactérienne en posant des gouttes de protéines dessus. Il suffit de sélectionner le type de goutte à droite et de cliquer sur votre culture pour qu'elle s'étende (c'est le premier type qui est sélectionné par défaut, il est également possible d'utiliser les touches 1 à 5). Au milieu se trouve un grain de maïs dont les deux cultures raffolent, si elles l'assimilent elles s'étendront autour. Le but des deux savants est soit d'atteindre le coin opposé, soit de couvrir le maximum de surface une fois toutes les gouttes utilisées (vous en avez 10 de chaque et Staphylus en à 60).

L'exécutable Windows est inclus, pour Linux il faut Ruby >1.8, ainsi que Gosu et Texplay installables grâce à Rubygem ("gem install gosu" et "gem install texplay").

Nous voulions faire ces Novendiales ensemble et en profiter pour découvrir le langage Ruby. On a passé tout le premier week-end à chercher un gameplay intéressant et on a fini par se fixer sur cette idée dimanche soir. On a ensuite choisi la librairie Gosu pour l'affichage (et les inputs) car elle était très simple et le binding (c'est une lib C++) semblait avoir été très bien adapté à l'esprit de Ruby. On a consacré la majeure partie de la semaine à la génération de "taches" paramétrables qui avaient une bonne tête et n'étaient pas lentes à générer, ainsi qu'à la recherche de solution pour des problèmes de performances graphiques dûs à l'affichage de milliers d'images (ce qui a fini par nous faire utiliser la librairie Texplay en complément de Gosu) et au garbage collector de Ruby. Ce n'est donc que samedi soir et dimanche que nous avons fait l'interface, l'IA, et les détails de gameplays (score, fin de partie, etc.). Dimanche à 20h, le jeu était à peine jouable et sans aucun intérêt, c'est pour ça qu'on s'est donné plusieurs heures supplémentaires pour en faire quelque chose d'intéressant...

Bien entendu nous avions plein d'idées pour ce jeu :

* pouvoir choisir faire une sélection de gouttes parmi une liste prédéfinie avant le début de partie
* éventuellement la possibilité de créer ses propres gouttes
* pouvoir choisir paramétrer ses bactéries (attaque, densité, etc.) avant le début de partie
* des maps avec différentes sources de nourritures disposées différemment, éventuellement des "chemins" de protéines sur lequelles les bactéries iraient plus loin, voire des obstacles
* une meilleure finition (notamment de l'interface)
* éventuellement du son

Ruby s'est révélé être un langage intéressant, quoiqu'un peu frustrant par moment de par sa nature de langage de script (et son garbage collector). On a tiré parti de certaines de ses spécificités (ajout de méthodes au runtime par exemple), mais on aurait aimé pouvoir prendre le temps de de le comprendre un peu mieux, surtout vers la fin. Le couple Gosu/Texplay est redoutable en terme de rapidité et simplicité, c'est vraiment une bonne option si l'on veut débuter !

Gavos & Aeness
Gavos
 
Messages: 1076
Inscription: 19 Mar 2005, 13:00

Messagepar deathangel » 01 Mar 2010, 09:11

Elle est costaud ton IA ^^
en 4 parties, 4 roustes :(

c'est sympa comme projet, c'est une bonne idée et ca fonctionne bien, on a vite envie de battre cette IA le plus rapidement possible. j'aurais juste rajouté un peu d'élément d'interface, genre pour savoir quelle type de goutte est en train d'être utilisée car je me suis souvent gourré.

Par contre, pour poser la goutte, est-ce que les bactéries doivent être d'une certaine concentration ? par moment j'avais l'impression de cliquer sur du rose clair en bord de zone bactérienne et que ca ne me le prenait pas en compte.
95% des problèmes informatiques se situent entre la chaise et le clavier
--> Créez votre robot chien : http://doggyproject.free.fr/
--> Gagnez des PACK+ gratuitement : http://www.packbarre.com/
--> S.U.S Tennis de table http://www.sus.asso.fr
Avatar de l’utilisateur
deathangel
Hello World, I'm new !
 
Messages: 963
Inscription: 10 Avr 2005, 08:50
Localisation: Strasbourg

Messagepar Gavos » 02 Mar 2010, 03:17

Oui, on avait un peu avantagé l'IA avec 10 gouttes de plus mais finalement on va lui en donner 50 comme le joueur, elle se débrouille suffisamment bien comme ça :) (beau boulot Aeness !). A noter qu'à la différence du joueur, il en a 50 de n'importe quel type, et non pas 10 de chaque.

C'est au pixel près donc si la goutte n'a pas été posée c'est sans-doute que tu as cliqué sur un pixel noir au milieu de tes pixels clairs (ça nous arrive aussi). On vient d'homogénéisé les taches afin qu'il y ait beaucoup moins de trous, de toutes façons c'est plus joli et ça nous a permis de corriger un bug ! Mais le souci peut toujours arriver, on fera sans-doute un traitement pour le cas particulier où on clique sur un pixel qui est complétement entouré de sa couleur.

On a aussi mis en valeur la tache sélectionnée, c'était en priorité sur notre liste mais on était crevé hier soir. Et il fallait bien finir par rendre quelque chose :D

Demain soir on ajoutera peut-être des maps différentes.

Vous pouvez retélécharger l'archive à la même adresse (notre version d'origine a été renommée ici)
Gavos
 
Messages: 1076
Inscription: 19 Mar 2005, 13:00

Messagepar Lightness1024! » 06 Mar 2010, 18:52

oui donc je plussoie le coup de savoir ce que tu as actuellement selectionné, et des sons pour savoir quand tu clic que c'est pris en compte et quand tu as vidé ton stock.
puis aussi quand l'IA arrive pres de ton coin, une tite alarme serait bien.

sinon c'est vrai qu'elle est trop forte, apres plusieurs parties, il a fallu que je force le coin pour gagner et j'avais 4000 de surface alors qu'elle avait 11000.
c'est tendu !

sinon bien joué, puis ca marche bien. faut quand même lire les explications du post pour commencer. (le jeu n'est pas self explanatory)

gg
Avatar de l’utilisateur
Lightness1024!
Hello World, I'm new !
 
Messages: 698
Inscription: 11 Avr 2005, 12:00
Localisation: paris

Messagepar Gavos » 10 Mar 2010, 12:37

Ah oui, pas bête les retours sonores pour savoir qu'on a bien cliqué ou qu'on n'a épuisé le stock. Par contre l'alerte ça reste à voir, on considérait plutôt que ça faisait partie du jeu de pouvoir se faire surprendre. Il faut savoir surveiller ses arrières tout en attaquant.

L'IA est limitée à 50 gouttes mais de n'importe quel type. En gros notre IA ne sait pas gérer les stocks donc on ne lui demande pas de le faire... enfin pour l'instant. Mais du coup ça l'avantage clairement, elle peut poser plus de gouttes "larges" par exemple.
Gavos
 
Messages: 1076
Inscription: 19 Mar 2005, 13:00


Retourner vers Novendiales

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité