Forums de Grospixels
Bienvenue sur le forum de Grospixels : [ S'Enregistrer ]
Déjà inscrit ? [ Connexion ]
 
retour sur le site
rechercher
Index du Forum » » Jeux » » Spacechem et les jeux sur la programmation
4 messages • page
1
Auteur Spacechem et les jeux sur la programmation
Kaede
Pixel visible depuis la Lune


Inscrit : Mar 06, 2002
Messages : 5251

Hors ligne
Posté le: 2014-08-23 18:32   [ Edité le: 2014-08-23 18:35 ]
Je vous propose d'utiliser ce topic pour parler de tous les jeux qui offrent au joueur la possibilité de créer et d'executer des programmes de son cru.
On excluera les éditeurs de jeu (plutôt présents sur PC) fournis séparement et offrant souvent des fonctionnalités de scripting, il faut que ça soit une activité qui soit partie intégrante du jeu.

J'ouvre la marche avec le dernier que j'ai découvert dans ce genre : Spacechem.




Spacechem est un puzzle game découpé en niveaux indépendants les uns des autres et séparés par de courtes séquences narratives (100% texte / images fixes).
Le jeu a pour habillage la chimie et la transformation de molécules, et pour contexte un futur (un peu pessimiste, de ce que j'en ai vu).

Le but du jeu est de mettre en place des chaînes de transformation et d'assemblages d'atomes/molécules, à partir d'atomes/molécules prédéterminés disponibles à la demande en entrée, et d'un choix d'instructions qu'il faudra position et combiner dans le bon ordre dans l'écran.
Le terrain de jeu est un écran divisé en quatre carrés de 4*4 cases.
Une instruction "in" alpha/beta permet de rendre active une entrée et faire apparaître l'atome / la molécule correspondante sur le terrain de jeu (alpha/beta, respectivement). De même pour les sorties.
Lorsqu'on appuye sur le bouton play, un cercle rouge, appelé waldo, apparaît sur l'instruction "start" rouge, et suit le chemin décrit par le circuit rouge, exécutant les instructions sur son chemin. De même pour le circuit bleu (avec un cercle bleu).

Chose relativement rare pour un jeu de ce genre, il y n'y a aucune contrainte de temps réel.
Le temps dans Spacechem est exprimé en cycles, chaque niveau commençant au cycle zero. Positionné à ce cycle 0, on place ses instructions, et puis on utilise les boutons de lecture pour dérouler le programme plus ou moins rapidement et voir ce qui se passe. Un clic et on revient au cycle zero (étape nécessaire pour modifier le programme - il n'est pas possible de modifier les instructions alors même que le programme s'exécute).

Avant de vous endormir, je finirai rapidement sur les autres caractéristiques du jeu :
- Dans tout niveau, on dispose en fait de 2 programmes par écran, un rouge et un bleu. Il est souvent nécessaire d'utiliser les deux pour contourner les limitations les plus évidentes d'un circuit.
L'une d'elle est qu'on ne peut positionner qu'une seule instruction par case et par couleur, l'autre est que, pour un même "tour" de circuit, on ne peut passer au plus que 2 fois par la même case (il ne peut y avoir que 2 croisements de même couleur maximum, on ne peut pas surperposer davantage de "routes")
- Le jeu introduit rapidement des réacteurs, sachant que 1 réacteur = 1 écran. Les réacteurs ont chacun des entrées et sorties dispo, et sont reliables les uns aux autres par des sortes de tubes par lesquels transitent les atomes/molécules.

Pourquoi Spacechem est un jeu qui rappelle pas mal penser à la programmation ?
1. Une partie du vocabulaire directement emprunté à la programmation : cycle, commandes (instructions), entrée/sorties (input/output).
2. Certains concepts de base en programmation se retrouvent facilement dans le jeu.
a) Les tests "SI". Dans le jeu, ces derniers reposent en fait sur les sensors (un type de case spéciale qu'on peut déplacer à volonter sur la grille), à combinéeravec une instruction spéciale. Le sensor permet au waldo de prendre un chemin ou l'autre en fonction de l'atome/molécule présente au-dessus du sensor.
b) La notion de boucle. On demande souvent au joueur 20 molécules en sortie, ou plus. Il est donc indispensable que le programme boucle sur lui-même et puisse être exécuté en boucle (le jeu l'arrête dès que nécessaire)
c) Je n'en suis pas encore là, mais le jeu introduit la notion de flip flop, qui a à voir avec les tables de vérité et l'algèbre de Boole
d) Le parallélisme en programmation. Chaque réacteur et chaque waldo constituent un programme qui s'exécute à chaque cycle du jeu. Pour les synchroniser, le jeu fournit une instruction sync, qui permet à un waldo d'attendre l'autre et vice-versa.

Enfin, pourquoi Spacechem est selon moi un jeu qui vaut le détour ?
- C'est un des puzzle game les plus complexes auxquels j'ai jamais joué. Le jeu est loin de se pousser dans ses derniers retranchements, il y a des joueurs qui vont jusqu'à exploiter les moindres subtilités de l'interpréteur du jeu pour résoudre des puzzles des plus difficiles (et les solutions les plus illisibles, du coup)
- Les puzzles sont longs et parfois prise de tête (il m'est arrivé plusieurs fois de partir sur une solution puis voir qu'elle n'est finalement pas viable et tout recommencer), mais il n'y a pas de contrainte de temps
- Il y a de multiples façons de faire pour un niveau, si bien que chaque joueur aura sa propre solution (même si elles pourront être découpées de façon similaire). Finir un niveau est d'autant plus gratifiant.


Et vous, connaissez-vous des jeux qui vous rappellent la programmation ou vous y ont initié ?

FF_Clad
Pixel monstrueux



Inscrit : May 31, 2002
Messages : 2598

Hors ligne
Posté le: 2014-08-23 19:43
Il y a quelques annees, j'ai adore Colobot.

C'est un RTS assez classique de prime abord, mais toutes les unites sont programmable.

Les unites sont fourni avec une IA de base du genre "Si moi vois ennemi moi tire". Au joueur de l'editer afin de les rendre plus redoutable. L'un des tous premiers exemples donne par le jeu c'est "Si moi vois unites qui se deplace, moi tire en tournant sur moi meme pour toujours lui faire face".

Le jeu utilise un langage maison oriente objet.

Le jeu ressemble a ca:


goycoechea
Gros pixel

Score au grosquiz
0016685 pts.

Inscrit : Jul 15, 2005
Messages : 1005

Hors ligne
Posté le: 2014-08-23 20:14   [ Edité le: 2014-08-23 20:15 ]
Manufactoria: http://pleasingfungus.com/Manufactoria/




Un jeu gratuit en flash mais très bien foutu et sacrément casse-tête.

Il s'agit de construire une machine qui va tester des robots. Chaque robot est défini par son programme qui est représenté par un ruban sur lequel est inscrit une suite de symboles de couleur représentant autant d'états (comme dans une machine de Turing).

Chaque niveau/puzzle, on nous donne un critère (par exemple: les symboles du programme doivent être alternés) qui sera utilisé pour accepter ou rejeter les robots (parfois il faudra en plus modifier leur programme).

La phase de fabrication terminée, il y a la phase de test où on peut voir le parcours des robots sur notre machine (ça permet aussi le débuggage car leur programme est affiché).
A noter que s'il ne faut que quelques robots testés pour valider la machine, il faudra prévoir toutes les possibilités car le système détectera la moindre faille et enverra alors le robot doté du programme précis qui la mettra à jour.

Pour construire notre machine, on a une grille de cases sur laquelle on peut disposer les éléments suivants: des portions de tapis roulant (à sens unique), des appareils qui vont envoyer le robot dans un sens ou dans un autre selon la couleur du symbole lu (la tête de lecture se déplace chaque fois qu'un symbole est lu) et des appareils qui vont écrire un symbole sur le programme.

Chose sympathique pour contrecarrer un peu le côté austère du jeu, il y a un petit background assez marrant et original qui est dévoilé dans les tutoriels et les descriptions des robots.

BlackBelt35
Pixel imposant


Joue à Cloudbuilt

Inscrit : Jun 08, 2013
Messages : 570
De : Rennes

Hors ligne
Posté le: 2014-08-24 21:48
Bon, évidemment, en grand fan de la licence que je suis, je ne pouvais pas passer à côté de ce topic sans vous parler de LittleBigPlanet. Et en particulier le deuxième épisode, qui est le premier à intégrer un vrai système natif de portes logiques. (En espérant que ça rentre dans les clous du thème proposé sur ce sujet, ce dont je ne suis absolument pas sûr. )



Pour expliquer un peu de manière succinte, il s'agit d'un jeu où les joueurs vont créer et proposer leurs propres niveaux à la communauté. Il s'agit à la base d'un jeu de plate-forme, mais il est possible de détourner le moteur de jeu pour faire plein de choses différentes. (Jeu de plateau, jeu de course en vue de dessus, point & click, etc...) Le jeu est également basé sur un système de matières, décorations, autocollants et gadgets, qui permettent de créer ses propres objets pour enrichir les niveaux.

En outre, les portes logiques sont au coeur du gameplay de LBP 2. Le tout étant de les combiner de manière intelligente, de manière à ce que certains événements se déclenchent à certains endroits, en fonction de certaines conditions précises. (Appuyer sur tel interrupteur + avoir nettoyé la zone, etc...)

* La AND gate, qui enverra un signal uniquement quant l'ensemble de ses entrées seront activées simultanément.

* La OR Gate qui envoie un signal dès qu'elle a au minimum une entrée activée.

* La XOR Gate, qui va envoyer un signal si, et seulement si, l'une de ses entrées est activée.

* La NOT Gate, qui va envoyer un signal en permanence, sauf quand elle reçoit un signal d'entrée.

Il est en outre possible d'inverser la sortie toutes les portes logiques et tous les gadgets, de manière à couper le signal au lieu d'en envoyer un.

À noter cependant qu'il est possible de créer un système de portes logiques avec les outils du premier épisode. Ca serait trop long à vous expliquer, et très complexe à faire en plus. En gros, on créé des espèces de grosses armoires à base d'émetteurs, blocs dissolvants, pistons et clés magnétiques, de manière à reproduire le comportement d'un vrai système logique natif. Ca marche plutôt bien quant on s'y connait, mais c'est plus du bricolage qu'autre chose.


Il existe également 2 types de signaux :

* Les signaux numériques, qui sont la forme de signal la plus simplifiée. Soit ça marche, soit ça ne marche pas.

* les signaux analogiques, qui ont une intensité variable, comprise entre 0% et 100%. (Il est même possible de créer des signaux à valeur négative depuis une récente mise à jour.) Ils permettent de créer une réponse d'intensité variable. Par exemple : une plate-forme qui se déplace plus ou moins vite, en fonction de l'intensité du signal qu'elle reçoit.


Quelques gadgets logiques utiles pour illustrer un peu :

* les clés magnétiques et récepteurs, qui permettent d'envoyer à distance un signal, quand la clé rentre dans le champ d'action du détecteur.

* Les séparateurs de direction, qui permettent de séparer une output de joystick en 2 signaux analogiques. (La sortie + va envoyer un signal quand le stick est orienté vers la droite, et la sortie - quand il est orienté vers la gauche.)

* Les combinateurs de direction , qui permettent de combiner 2 signaux en un seul signal unique. Si il reçoit une intensité + de 70% et une intensité - de 20%, ça fera un signal de sortie à 50% d'intensité. Cet outil est très utilisé pour créer des jauges de vie.

* Les cartes à puce, qui sont en réalité de gros circuits imprimés chargés de contenir les logiques complexes. Elles sont activées par défaut, mais il est possible de les désactiver, de manière à annuler l'effet des gadgets contenus à l'intérieur.

* Les chronomètres, qui envoie un signal en fonction de la durée configurée et de certains critères. Envoyer un signal une fois rempli, envoyer un signal pendant (et uniquement pendant) le remplissage, envoyer un signal analogique correspondant à l'avancée du compteur, etc...

* Les séquenceurs, qui permettent de configurer un enchaînement d''actions, en fonction des gadgets présents à l'intérieur. Une barre défile sur la carte à puce, et les éléments sont activés uniquement quand la barre les rejoint. Exemple de base : prenez 5 lampes configurées sur la sortie du séquenceur, et elles vont s'allumer chacune leur tour en respectant un ordre précis. Cet outil est très utilisé pour créer des cinématiques, qui nécessitent un enchaînement d'actions précis, comme une bande VHS qui défile.

* Les compteurs, qui vont envoyer un signal après avoir reçu un nombre d'inputs déterminé à l'avance.

* Les sélecteurs, qui vont basculer d'une sortie à l'autre après avoir reçu une input. (J'allume la lampe 1, et si je reçois un signal, je passe à la lampe 2, etc...)

Et plein d'autres choses, bien sûr.


Quelques autres outils importants :

* Les sackbots, qui permettent de créer des PNJ à l'intérieur des niveaux. Il peut s'agir d'un antagoniste, d'un allié, ou plein d'autres choses.

* Divers outils de détection. (Détecter le joueur, les impacts, les projectiles, l'angle, la vitesse, etc...)

* Divers outils pour le déplacement. (Suiveur, déplaceur, gyroscope, etc...)

* le controlinateur, qui permet d'associer les outputs de la manette à plein de fonctions annexes. Cela permet de créer des véhicules, de contrôler un sackbot à distance, etc...

* Les émetteurs, qui vont émettre des objets quand ils sont activés. On peut déterminer le nombre maximum d'objets émis, le nombre simultané présent à l'écran, la vitesse d'émission, etc...

* Le séquenceur musical, qui permet de composer ses propres musiques. (C'est du MIDI assez basique, donc pas de soucis à avoir avec les copyrights.)

* Les blocs d'hologrammes, qui permettent de configurer des zones de collisions invisibles aux yeux du joueur.

Etc...

Bref, je vois invite évidemment à faire un petit tour sur Youtube pour vous renseigner un peu. (Et vous verrez un peu les systèmes de fou-furieux créés par certains. )
_________________

Image



Index du Forum » » Jeux » » Spacechem et les jeux sur la programmation

4 messages • page
1




Forum www.grospixels.com (© 2011-2019 Grospixels)