Poisson frais

Hack ’n’ Slash, Leek Wars, Core War

Résurgence du code

Personnage emblématique des années 80-90, la figure du hacker a quasiment disparu dans les années 2000. La nouvauté de l’internet passée, les héros de WarGames (1983) ou Hackers (1995) se sont retrouvés relégués aux seconds plans, voire du côté des méchants. Le gentleman-hacker n’a pas fait long feu ... Mais tout comme il est tentant pour un auteur de roman de diriger un personnage-écrivain, que l’on dresse des listes de films qui parlent de cinéma, le jeu vidéo franchit parfois à son tour la porte du méta pour parler de sa propre matière : la programmation. Et comme le bricolage est plus rigolo que l’ingénieurerie industrielle, c’est le hacker qui présente le show.

Pirates !

Dans l’imaginaire collectif, le hacker est donc un mélange entre cambrioleur, pirate ou sorcier, capable de s’introduire subtilement dans tout système. Mais oublions dès à présent — nonobstant leur valeur ludique — les mini-jeux qui n’ont de hacking que le nom, et qui apparaissent régulièrement en marge d’un jeu d’action, de Bioshock à Mass Effect. D’autres cas méritent qu’on s’y intéresse bien plus.

Le nom même de Hack ’n’ Slash pirate le sens [1] du genre vidéoludique (avec lequel il n’a pas trop de relation, d’ailleurs). Fruit d’une expérimentation lors du Double Fine Amnesia Fortnight de 2012, le jeu remplace l’épée traditionnelle du Zelda-like par une clef permettant d’accéder aux variables qui se cachent derrière la couche graphique du monde. On ne peut pas "tuer" un ennemi, mais on peut le rendre passif, baisser ses points de vie à zéro, ou encore annuler les dégâts qu’il fait, voire les rendre négatifs — ce qui nous fait regagner de la vie. Dès le début, on constate que l’étendue des possibles est très grande et c’est ce qui fait la force du titre : toutes les manières de hacker sont bonnes tant qu’on arrive au résultat. Y compris celles qui n’ont pas probablement été pensées par les développeurs : si jouer c’est tricher, il n’y a pas de triche possible ! Quel autre jeu offre de telles possibilités ?

Dommage collatéral inhérent au concept : la difficulté est particulièrement mal dosée, alternant entre le trop facile — puisqu’il est possible de tout faire — et certains passages vraiment délicats : la liberté de changer pratiquement tout le code du niveau en cours, c’est bien joli, mais trouver la bonne ligne sans faire planter tout le système, c’est autre chose. D’autant qu’on ne nous donne pratiquement pas les clefs du langage utilisé (une visualisation de Lua), dont la représentation graphique est loin d’être triviale.

La bibliothèque toute borgésienne donne l’accès à l’ensemble du jeu.

Mais en réalité, tout ceci n’est pas vraiment un problème, tant Hack ’n’ Slash est plus une farce qu’un véritable jeu. En pratique, le titre a clairement réussi son pari. Si le début assez mou et répétitif, le rythme s’accélère nettement dès que l’on a accès à des possibilités plus grandes et la fin est réellement captivante pour ceux qui se sont pris au jeu. En tout cas, il a pris la mesure de son ambition à bras-le-corps, surtout comparé à un "véritable jeu" tel que Watch_Dogs où des notions similaires n’ont pas été exploitées autant que les joueurs l’auraient voulu. Mais à sa décharge, il semble difficile de les exprimer dans un jeu grand public.

Ex nihilo

Le hacker ne sait pas seulement détruire ou modifier, il sait aussi construire ... ou plutôt bricoler du code à la manière d’un horloger ou d’un garagiste. C’est à celui qui trouvera la formule la plus élégante, la plus compacte, la plus rapide. La programmation devient art, ou plutôt artisanat.

On peut retrouver des traces de cette approche dans tous les jeux de la préhistoire vidéoludique, à l’époque où la frontière entre joueur et créateur était floue ; mais c’est Core War (1984) qui formalise la première véritable arène. Il faut reconnaître que l’accès est quasiment réservé aux informaticiens, puisqu’il faut y modeler du (pseudo-) langage machine en des programmes qui se lancent dans la même zone mémoire, le but étant de saborder le code du programme adverse par des instructions illégales. L’intérêt du titre tient à ce qu’il y n’a pas une seule stratégie viable, mais un ensemble de familles qui tiennent du pierre-papier-ciseau : se protéger par copie, tenter de localiser l’adversaire, lancer des attaques en aveugle sont les plus classiques. La nécessité de maintenir le code compact — un code trop gros est une cible facile — empêche une stratégie trop évoluée qui piocherait à tous les rateliers virtuels.

Duel en cours entre deux programmes. On constate que Midget est en train de bombarder le niveau tandis que Mice évite les tirs en se recopiant.

En 30 ans, les langages ont eu le temps de changer, mais les problèmes informatiques sont à peu près les mêmes. Encore faut-il leur trouver un intérêt ludique. Markus "Notch" Persson avait ainsi lancé l’audacieux 0x10c, où l’on dirigeait un vaisseau spatial à l’aide d’un antique processeur ; mais malgré l’enthousiasme des geeks et du fan-club de Mojang, le jeu a été finalement archivé, le concept seul n’apportant pas assez de jouabilité.

Revenant à des idées plus simples, Leek Wars (2014) — jeu de mots avec 1337 ou avec leak ? — tente de prendre la relève de Core War en proposant de programmer des IA en forme de poireaux qui s’affrontent sur une arène en deux dimensions. Ici aussi, on manipule un véritable langage de programmation inspiré par la syntaxe usuelle du C ou du Java. En fait, le jeu a des vertus pédagogiques certaines, même si la page tutorielle est assez dense.

On retrouve les habitudes du browser game : l’expérience se gagne petit à petit, ce qui permet de faire évoluer sa force, vie, et autres caractéristiques usuelles de notre poulain-poireau. Mais surtout elle permet d’utiliser de nouvelles fonctions, et ce bridage est plutôt bien vu : les premiers programmes sont forcément très simples et permettent ainsi de se familiariser avec l’environnement de développement. Par exemple, il est possible dès le début de s’approcher de l’ennemi, mais on ne peut s’en éloigner qu’à partir du niveau 5, et déterminer la composition d’une case nécessite le niveau 21 [2].

Les premiers niveaux passés, les stratégies naïves qui faisaient de notre poireau la terreur du potager deviennent bien obsolètes. Surprise : programmer une IA efficace, c’est dur. Il faudra replonger de nombreuses fois dans le cambouis pour y insérer la touche personnelle qui fera mouche. Chaque nouvelle fonction obtenue est un véritable cadeau, qui peut demander une reconstruction complète du code pour être utilisée efficacement. Mais quelle fierté pour le garagiste-horloger lorsque sa création fonctionne ...

Notes

[1] Le vénérable nethack faisait le jeu de mots entre les deux sens de hack, c’est-à-dire pirater et hacher : il était le produit d’une écriture collective des débuts d’internet et s’est lui-même fait "pirater" en de nombreux dérivés comme Slash, lui-même modifié en Slash’EM, lui-même en Slash’EM Extended. En renversant le sens, Hack ’n’ Slash ne fait que refermer la boucle sémantique.

[2] Avec des raccourcis possibles pour les plus pressés : muni de la fonction isEmptyCell (lvl 21), on peut réécrire à la main les fonctions de mouvement comme getPath (lvl 37). Bon courage à celui qui se lance là-dedans.

Il y a 23 Messages de forum pour "Résurgence du code"
  • sseb22 Le 31 octobre 2014 à 16:56

    Article très intéressant pour moi qui ai fait un peu de programmation.
    Je suis très curieux de tester Hack’n Slash même si je ne suis pas certain de vouloir payer 13€ pour ça.

    Toute la science du code qui sert un jeu est à chaque une initiative intéressante mais je doute que ça atterrira jamais dans un jeu grand public, comme tu le dis toi-même : demander à un non-amateur de programmation de rentrer des lignes de code pour continuer sa partie, ça m’étonnerait qu’il accroche !

    Mais je suis étonné que tu n’aies pas cité Watch_Dogs. Je n’y ai pas encore joué mais concrètement, il n’y a rien qui ressemble à du "vrai" Hacking ?

    Et pour terminer, je ne peux m’empêcher de citer Algo-bot, un petit jeu en développement (qui a raté sa campagne KickStarter) dont le but est d’initier le joueur à la programmation grâce à des mécaniques de puzzle game. C’est presque du Serious Game. Je suis son développement depuis un bout de temps maintenant.
    https://www.kickstarter.com/project...

  • Laurent Braud Le 31 octobre 2014 à 17:19

    Merci d’avoir repéré la bourde, le Watch_Dogs s’était transformé en Sleeping_Dogs. C’est réparé (et ça répond donc un peu à la question). Maintenant en toute honnêteté je n’y ai pas joué, parce que 60€ et ça semblait assez pauvre niveau gameplay. Donc j’ai préféré ne pas trop en parler.

    Je conseille Hack ’n’ Slash aux prochaines soldes, quand il passera au-dessous des 5€. Mais bon, encore une fois, ce n’est pas "vraiment un jeu", plutôt une expérience. Par contre Core War et Leek Wars c’est gratuit (mais moins accessible).

    Celui que j’aurais pu citer c’est l’excellent Spacechem (c’est Algobot qui m’y fait penser). Mais à force de glisser on finirait par citer KSP, Minecraft ou Prison Architect ...

  • Martin Lefebvre Le 31 octobre 2014 à 18:27

    Eh eh j’étais tellement sûr que tu avais écrit Watchdogs que je n’ai même pas vu qu’en fait c’était Sleeping Dogs que tu avais écrit. :D

  • Laaris Le 31 octobre 2014 à 21:15

    il semble difficile de les exprimer dans un jeu grand public.

    Enter The Matrix (relativement grand public) avait un mode "hack" qui permettait de débloquer quelques features dans le jeu en lui même (notamment des armes).
    C’était un truc tout bête en shell où on ne faisait en fait que se déplacer dans des répertoires pour lancer des commandes. Mais la progression était bien foutue et même sans rien y connaitre on finissait par comprendre et maîtriser le truc.

    C’est le genre de gadget qui aurait eu sa place dans WatchDog.

  • BlackLabel Le 1er novembre 2014 à 12:01

    sseb22 :"Mais je suis étonné que tu n’aies pas cité Watch_Dogs. Je n’y ai pas encore joué mais concrètement, il n’y a rien qui ressemble à du "vrai" Hacking ?"

    Absolument rien.

  • Laurent Braud Le 2 novembre 2014 à 17:11

    Je devrais arrêter de m’extasier devant Starbound, parce que s’ils sortaient la moitié de ce qu’ils ont promis, ce serait déjà formidable. En tout cas voilà qui est fort à-propos.

  • lyzard Le 3 novembre 2014 à 12:31

    il faut absolument mentionner Untrusted, un jeu open source d’aventure meta basé sur javascript

    http://alexnisnevich.github.io/untrusted/

    L’idée est de s’échapper de chaque niveau en altérant le code de ce même niveau. Un bon jeu qui exploite bien le concept mais qui demande tout de même quelques compétences en programmation.

  • Laurent Braud Le 4 novembre 2014 à 11:06

    Voilà exactement le type de commentaire que j’espérais. C’est très bon cet Untrusted !

  • lyzard Le 4 novembre 2014 à 11:39

    merci, c’est vrai qu’on peut apprécier le très bon level design d’Untrusted qui parvient à renouveler les challenges tout en dosant bien la difficulté : on passe du petit hack astucieux à une réflexion élaborée jusqu’à atteindre un contrôle total du système pour obtenir la vraie fin du jeu. Je crains juste que, contrairement à la grande majorité des jeux, il requiert des connaissances bien spécifiques. Je serais curieux de savoir comment des gens qui n’ont pas fait ou peu fait de programmation s’en sortent.

  • Patsi Le 12 novembre 2014 à 00:07

    C’est un peu naze de centrer un article autour de la notion de hacker sans avoir pris la peine de s’informer sur ce qu’elle recouvrait.

    Ce très loin de n’être que quelqu’un sachant "bricoler du code à la manière d’un horloger ou d’un garagiste", et ce n’est surtout, surtout pas "un mélange entre cambrioleur, pirate ou sorcier, capable de s’introduire subtilement dans tout système".

    Pourquoi évoquer ce que la notion recouvre dans l’imaginaire collectif si ce n’est pour en dénoncer les stupides et dangereuses confusions ?
    Contentez-vous de causer de jeu vidéo si vous être trop peu curieux pour vous intéresser à autre chose.

  • Laurent Braud Le 12 novembre 2014 à 13:38

    Ah pardon, j’ignorais qu’il y avait une appellation d’origine contrôlée. Mais éclairez-nous, cher ami. Pour moi, s’il fallait trouver un point commun entre un agent gouvernemental chinois, un adolescent qui fait du DDoS parce qu’il a découvert 4chan, et Richard Stallman, je sèche un peu.

    Je préfère donc en revenir à la version de l’imaginaire collectif, comme je l’ai indiqué.

  • Patsi Le 12 novembre 2014 à 14:50

    Un ado qui DDoS est rarement un hacker, à défaut de "détourner une chose de la finalité que lui a donnée son créateur" (telle est la définition de l’activité qu’exerce le hacker), puisqu’il aura généralement recours à un logiciel précisément conçu pour cette finalité.
    Je ne vois pas très bien ce que recouvre votre exemple de l’agent chinois. Quant à Stallman, vous pouvez directement lui poser la question (il répond à tous les mails qu’il reçoit, et vous pouvez même lui écrire en français), mais j’imagine qu’il vous répondra à peu près la même chose que moi (je ne sors pas ma définition de nul part).

    La version de l’imaginaire collectif de la notion, que vous persistez à défendre sans même la questionner, est dangereuse sur deux points : elle désigne l’activité de hacker comme condamnable et comme réservée à une élite d’experts en informatique. Or, la philosophie qui fonde ce mouvement est celle de l’émancipation des peuples par le reprise de contrôle, par le détournement, des systèmes auxquels ils sont soumis. Considérer l’émancipation des peuples comme condamnable et réservée à une élite est une confusion stupide et dangereuse pour tous, que vous participez dans cet article à maintenir.

  • Laurent Braud Le 12 novembre 2014 à 16:18

    je ne sors pas ma définition de nul part

    Mais d’où alors ? Je veux bien recevoir la science, il faut me la donner.

    Je ne comprends toujours pas en quoi j’ai transgressé une définition ni pourquoi celle-ci est tellement sacrée. J’ai pris volontairement un sens large, j’ai bien précisé qu’il s’agit d’une définition qu’évidemment je ne prends pas au pied de la lettre. Ca ne veut pas dire qu’on n’a pas le droit de constater son évolution dans la culture sans sortir le bazooka. Non, je n’ai pas très envie d’écrire une ode à la liberté du hacking, surtout que pour moi, encore une fois, la notion est bien floue.

    Deuxièmement, je ne comprends même pas les reproches. Ai-je mentionné « l’activité de hacker comme condamnable » ? J’ai utilisé "rigolo". Ou « réservée à une élite d’experts en informatique » ? J’ai sorti l’adjectif "pédagogique". Bordel on fait difficilement plus gentil.

  • Patsi Le 12 novembre 2014 à 16:56

    Bon, vous ne comprenez pas grand chose, en effet. Je vais donc vous présenter le problème par analogie.

    Imaginez un article présentant divers jeux vidéo mettant en scène des personnages féminin bottant le cul d’une foule d’hommes, et que l’auteur de cet article donne comme dénominateur commun à ces jeux le féminisme, qu’il prend le soin de définir, très gentiment, comme étant dans l’imaginaire collectif une lutte menée par l’ensemble des femmes pour dominer les hommes en les émasculant ou en les égorgeant, de façon rigolote et pédagogique éventuellement.

    Maintenant, imaginez que ce même auteur, après qu’on lui ait sèchement fait remarquer que sa définition du féminisme était fausse, insultante et dangereuse, nous réponde :

    Je ne comprends toujours pas en quoi j’ai transgressé une définition ni pourquoi celle-ci est tellement sacrée. J’ai pris volontairement un sens large, j’ai bien précisé qu’il s’agit d’une définition qu’évidemment je ne prends pas au pied de la lettre. Ca ne veut pas dire qu’on n’a pas le droit de constater son évolution dans la culture sans sortir le bazooka. Non, je n’ai pas très envie d’écrire une ode [au féminisme], surtout que pour moi, encore une fois, la notion est bien floue.

    J’espère que, dans ce cas, vous lui répondriez la même chose que moi : "si vous ne comprenez pas les enjeux du sujet que vous abordez - ce que vous semblez reconnaître -, n’en parlez tout simplement pas, de peur d’entraîner des conséquences que vous ne pouvez prévoir".

    C’est vraiment si compliqué à comprendre ? Si vous ne faites pas l’effort de vous renseigner sur un mouvement idéologique, n’en parlez pas.

  • Laurent Braud Le 12 novembre 2014 à 17:12

    Bien bien tout dans la finesse je vois.

    Courage camarade, et bonne suite dans ta lutte pour la réhabilitation du hacker.

  • Patsi Le 12 novembre 2014 à 17:19

    Merci, camarade.

  • Cédric Muller Le 12 novembre 2014 à 21:03

    Hacker .... un mouvement idéologique ?¿ ? N’y a-t-il pas là un délit d’anonymat ? Emancipation des peuples ? Dois-je vous rappeler que la première chose qu’un enfant fait sur terre est de hacker la vie ? Ne souvenez-vous pas du hacking de vos parents ?

    Non, le hacking n’est pas un mouvement idéologique. Le hacking n’est pas limité à l’informatique, ni à une fonction politique, ou à une volonté technologique : le hacking pré-existe peut être même à l’humain (en tout cas à l’ère technologique que nous vivons). J’aime bien cette idée vague du hacker des bois lupin de la fronde, c’est le fantasme. En ce qui concerne l’idéologie : non, le hacker que vous décrivez (Patsi) est en fait un état d’esprit contemporain, alternatif à la pensée non réfléchie, qui s’est inspiré d’autres idéologies. Et puis même pas. Il y a plus de hackers qu’il existe d’humains sur cette planète. Ne vous faites pas hacker par vos idéologies.

  • Cédric Muller Le 12 novembre 2014 à 21:13

    Tout ceci me fait penser qu’il existe trop de gens qui s’accaparent des définitions, des mots, des marques, des Logo™ et les revendiquent en faisant briller la facette de la Vérité. C’est encore plus tendancieux que les propos tendancieux soit-disants dénoncés ici. Et c’est terriblement fatiguant. Je doute, si mouvement idéologique il y a, que ce dernier puisse encourager à un endoctrinement aussi bas.

    Laurent : vous auriez du parler des jeux qui forment à la pensée transversale ;) (aucun groupe ne revendique encore cette dénomination, bien que tout ceci raisonne un peu trop ésotérique à mon humble avis).

    Très bon article. Il faudrait presque une mise à jour de ce dernier afin d’ajouter Untrusted, qui pousse le concept au niveau supérieur. Et pourquoi pas également parler des serious games, qui in fine sont des tentatives de hacking du réel pour le changer et l’améliorer (je pense au jeu qui a permis de trouver une molécule importante, mais dont j’ai honteusement perdu le nom) ?

  • Patsi Le 12 novembre 2014 à 22:49

    trop de gens qui s’accaparent des définitions, des mots

    Ok, mais alors pourquoi, dans votre précédent message, vous être donné tant de mal à donner la conception que vous aviez de la notion, en semblant vouloir à tout prix remettre en cause celle que j’en donnais ?

    Votre contradiction est d’autant plus comique que je suis assez d’accord avec votre vision de la notion, et que nos deux approchent se complètent très bien dans leur définition, s’éclairant l’une l’autre. Vous trouvez donc "fatigant" que quelqu’un pense la même chose que vous, au final. C’est mignon.

    Ce qui nous sépare est simplement que je suis engagé dans le sort de mes semblables et que, vous, vous préférez votre place paisible de commentateur d’où vous pouvez vous moquer plein d’assurance des vains petits guerriers qui se battent en dessous.

  • Laurent Braud Le 13 novembre 2014 à 09:52

    Mais pourquoi tant de virulence sur un article dont le but est quand même de donner envie à des gens de jouer aux jeux cités et, ce faisant, de s’initier à l’art de la programmation ? Comprendre les outils, il me semble que c’est le premier pas vers « l’émancipation des peuples par le reprise de contrôle, par le détournement, des systèmes auxquels ils sont soumis. » Que fait notre "vain petit guerrier" pour la grande cause, à part déverser sa bile en commentaire ?

    @Cédric : oui, on aurait pu parler de beaucoup de choses ... mais dans un tel article il faut faire des choix et s’imposer des limites, pour éviter de se perdre.

  • Nano Le 13 novembre 2014 à 10:26

    La vache Patsi, on se détends... Le communautarisme à gogo ça commence à bien faire.
    Tu veux que Laurent et Merlanfrit continuent à parler de JV ? c’est exactement ce que Laurent fait dans cet article.

  • Cédric Muller Le 13 novembre 2014 à 12:11

    Ce qui nous sépare est simplement que je suis engagé dans le sort de mes semblables et que, vous, vous préférez votre place paisible de commentateur d’où vous pouvez vous moquer plein d’assurance des vains petits guerriers qui se battent en dessous.

    Je dirais que ce qui nous sépare est notre différentiel d’égo. Oui, nous avons peut être la même vision, non je n’oserais vous juger et tirer des généralités contre-productives. Je ne rigole pas : ce site n’est pas là pour assouvir les besoins binaires en idéologies diverses et variées.

    Laurent : Mes excuses, je réalise que mon message était bien trop réactif.

  • Laurent Braud Le 13 novembre 2014 à 14:33

    De retour sur le sujet, on me signale un jeu qui n’est pas encore sorti : Screeps.

Laisser un commentaire :

Qui êtes-vous ? (optionnel)
Ajoutez votre commentaire ici

Suivre les commentaires : RSS 2.0 | Atom

© Merlanfrit.net | À propos | web design : Abel Poucet