Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Web] Haskier : Un jeu en ligne... de commandes !

Anonyme
28 mars 2016 à 21:15:13

Bonjour à tous !

Je me nomme Clément Nerma (pseudonyme, je précise), je suis lycéen, actuellement en classe de 1ère S Sciences de l'Ingénieur et développeur amateur sur mon temps libre. Je vais vous présenter aujourd'hui un projet de jeu vidéo que j'ai commencé en novembre dernier (2015) et que j'avais arrêté pour finalement repartir de zérO.

En savoir plus sur le projet

Genèse

Haskier est un jeu sorti en version Alpha le 25 octobre 2015 et abandonné après 19 jours de développement. 7 versions ont vu le jour, mais le projet a finalement été stoppé car le code ne devenait plus maintenable. Le 17 mars (2016), j'ai recommencé le projet à partir de zéro. 7 versions Alpha sont rapidement sorties, et le 25 mars la première beta a été disponible. (Pour plus d'infos, voyez la chronologie sur GitHub).

Généralités

Synopsis

Vous incarnez un jeune homme de 17 ans, étudiant en sécurité informatique, du nom de Shaun. Vous avez déjà développé un outil de prise de contrôle à distance assez redoutable, bien que vous soyez le seul à en connaître l'existence. Votre souhait est, depuis plusieurs mois, de rentrer dans une célèbre organisation de hackers nommée Anonymas. Cependant, celle-ci est très fermée et vous n'arrivez pas à y entrer par les manières "traditionnelles". Dès lors, Shaun s'infiltre sur l'un des serveurs du groupe pour en prendre le contrôle et, à partir des données qu'il y trouve et en recoupant plusieurs sources d'informations, parvient à dresser une liste des membres. Vous laissez alors un message sur leur serveur leur indiquant de vous recontacter s'ils ne veulent pas voir leur identité dévoilée au grand jour.

C'est là que commence le jeu.

Fonctionnement

Le jeu se déroule devant l'interface austère d'une ligne de commande.

Image 01

Néophytes et lambdas, ne vous inquiétez pas, ce jeu est accessible à tous. Cette interface fonctionne comme l'Invite de Commandes sous Windows ou un Terminal Linux/Mac OS. Vous y tapez des commandes et le résultat s'affiche à l'écran. Là où ça devient un jeu, c'est que ces commandes vous permettent de faire énormément de choses plus ou moins facilement, y compris de communiquer avec d'autres personnes.

Image 02

Il existe des commandes pour tout faire, et elles ont été grandement simplifiées pour être accessibles à tous.

Le jeu en lui-même

Le jeu tourne autour d'un scénario que vous débloquez au fur et à mesure, organisé en parties elles-mêmes divisées en labels puis en objectifs, que vous devez remplir pour débloquer la suite. Comme dans tous les jeux, en somme. Sauf qu'ici, cette organisation est particulièrement importante comme nous allons le voir ensuite.

Les commandes que vous utilisez vous permettent d'effectuer un certain nombre d'opérations dont certaines ne vous sont pas accessibles dès le début du jeu. Vous avez accès un ordinateur personnel, votre serveur, d'où vous effectuerez toutes vos tâches. La plupart du temps, il va s'agir de s'infiltrer sur tel ou tel serveur pour en extraire des informations. Mais le fonctionnement est évidemment bien plus complexe, sinon cela ne serait pas intéressant.

Le fonctionnement des serveurs...

Tout le jeu est organisé autour des serveurs, des ordinateurs capables de partager des fichiers avec d'autres ordinateurs. Chaque serveur possède un ou plusieurs comptes utilisateurs, comme sous Windows ou Linux en somme. Chaque utilisateur a le droit ou pas de faire certaines actions. Par exemple, un utilisateur X aura le droit d'accéder à tel dossier alors que Y n'y aura pas accès. X pourra également mettre en place un système de partage de fichiers alors que Y ne pourra pas. Le tout est contrôlé par le jeu qui vérifie vos permissions.

Il y a des commandes dites natives, c'est-à-dire qu'elles sont communes à tous les serveurs : echo, rm, ls, tree, help... D'autres sont installables à partir d'une boutique d'applications en ligne qui vous permettent d'étendre les possibilités de votre serveur en y ajoutant de nouvelles fonctionnalités.

... Et les applications

À l'heure où je vous parle, il existe trois applications différentes, disponibles gratuitement sur la boutique en ligne (toutes ne le seront pas) :

  • icefox, un navigateur qui vous permet d'afficher des fichiers partagés par d'autres serveurs sous formes de pages web ;
  • vampp , un système permettant de mettre en place le partage de fichiers sur votre serveur.
  • ssh , qui permet de se connecter à un autre serveur à distance pourvu qu'on possède un nom d'utilisateur et un mot de passe valides.

Mise à jour du 23/06/2016

  • pico permet d'éditer des fichiers simplement à partir d'un éditeur de texte ressemblant au populaire nano
  • mailbox vous donne accès à une interface de boîte mail qui vous permet de lire mais aussi d'envoyer des emails virtuels
  • D'autres applications vous seront dévoilées au fur et à mesure du jeu :)

Les sauvegardes...

Le jeu sauvegarde automatiquement votre progression de manière très régulière. À chaque fois que vous saisissez une commande, votre partie est sauvegardée. Ne vous inquiétez pas pour la vitesse, une sauvegarde prenant actuellement moins de 2 millièmes de seconde. Votre sauvegarde contient :

  • Tout ce qui est affiché à l'écran, de manière à ce que vous puissiez reprendre le jeu EXACTEMENT là vous en étiez ;
  • L'heure virtuelle du jeu, quelques infos utiles au système ;
  • Le contenu de TOUS les serveurs du jeu : les comptes utilisateurs, les fichiers, les applications... ;
  • Les variables (j'y revient un peu après)

À chaque nouvelle partie, le jeu crée une copie de votre sauvegarde, une archive. Vous allez voir pourquoi.

... Et les Game Over

Pour ne pouvez perdre le jeu (en tout cas, actuellement) qu'en remplissant mal l'objectif qui vous a été confié. Supposons que vous deviez saisir un code crucial, si vous rentrez le bon, le jeu continue, sinon vous perdez : Game Over.

Lors d'un Game Over, votre sauvegarde est automatiquement supprimée et irrécupérable. Vous voyez mieux maintenant pourquoi des archives sont faites à intervalles réguliers ? Si le jeu est aussi sévère, c'est tout simplement parce qu'un objectif qui n'est pas rempli ne PEUT PAS être rattrappé. Imaginons que vous ratiez le piratage d'un serveur et que quelqu'un s'en rendre compte, dans la réalité cela ne serait pas rattrapable.

Après un Game Over, vous pouvez restaurer une archive de votre sauvegarde (la procédure est dans le tutoriel).

Un peu d'humour ?

Vous vous rendrez vite compte que le jeu contient des petits clins d'oeils : Anonymas pour Anonymous, bien sûr, Icefox pour Firefox... Certains sont évidents, d'autres non. Je vous laisse le plaisir de les découvrir par vous-mêmes ;)

Un exemple de mission :

Imaginons que vous devez vous infiltrer sur un serveur pour y récupérer des données. La première chose à faire est de vérifier que l'application de connexion à distance ssh est bien installée. Dès lors, comment faire ? Vous devez trouver comment forcer le login et le mot de passe pour vous connecter au serveur. Mais là, vous vous rendez compte que votre compte utilisateur ne possède pas les droits nécessairse pour lire le fichier dont vous avez besoin. Vous devez maintenant trouver comment effectuer une élévation de privilèges. Attention, ce ne sera pas forcément la même manipulation selon les serveurs, qui possèderont des sécurités différentes.

Objectifs

Mon objectif en créant Haskier est d'amuser le joueur et le maintenir en haleine grâce à un scénario qui incluera bien évidemment le maximum de suspense possibles. Les premières expériences de jeu ne seront pas forcément très agréables, mais une fois les commandes (si j'ose dire) bien en main, vous vous y plairez bien plus. Il est évident que ce jeu ne vas pas attirer des millions de joueur et que son allure assez austère risque d'en repousser certains, mais je vous demande de bien vouloir essayer, au moins pour voir à quoi ça ressemble. Le jeu n'est pas d'une difficulté élevée mais vous fera quand même réfléchir pour trouver la solution. L'autre objectif est de créer un jeu autour de notions réelles : les serveurs partageant des fichiers, les tokens pour gérer les droits, le système multi-user, l'élévation de privilèges, l'utilisation des exploits... Tout est simplifié pour être accessible à ceux qui ne connaissent rien à l'informatique, même si une connaissance de l'invite de commande aidera évidemment à s'en sortir. Une aide est présente pour chaque commande et décrit son utilisation.

Le projet et son originalité

Il n'y a pas d'âge pour jouer à ce jeu, même à cinquante ans il peut s'avérer intéressant (du moins, je pense). Il faut "juste" accrocher au principe d'avoir pour interface une invite de commande d'où on effectue toutes ses opérations, et pas une belle interface graphique. Notez qu'il y a bien sûr des couleurs, du gras, de l'italique... Mais cela reste assez simpliste.

On teste ?

Voici le lien pour tester Haskier : http://haskier.890m.com/ Et le dépo GitHub : https://github.com/ClementNerma/Haskier/

Vos retours ?

Indiquez-moi comment vous trouvez Haskier et quelle est votre expérience de jeu pour que je puisse l'améliorer. Merci à vous !

-
Edité par Anonyme 23 juin 2016 à 11:55:08

  • Partager sur Facebook
  • Partager sur Twitter
28 mars 2016 à 22:05:29

Salut,

Ça a l'air assez intéressant (et assez impressionnant au vu de ton niveau d'études). En revanche je tombe sur une page blanche en suivant ton lien. La console m'indique ceci :

Erreur

  • Partager sur Facebook
  • Partager sur Twitter
29 mars 2016 à 8:59:34

J'ai modifié le titre du sujet, et au passage le lien que tu as donné ne fonctionne pas.
  • Partager sur Facebook
  • Partager sur Twitter

Je ne suis plus modérateur, ne me contactez plus pour des demandes, je n'y répondrai pas.

Anonyme
29 mars 2016 à 10:29:52

Je suis désolé, tout fonctionnait bien hier. Je vais essayer de redémarrer le serveur.... Voilà ça refonctionne. Je vais remettre une version PHP en ligne sur un autre hébergeur pour régler les problèmes... Quant à l'erreur 500, c'est un bug de mon hébergeur ;-(

  • Partager sur Facebook
  • Partager sur Twitter
29 mars 2016 à 11:57:25

Jeux qui a l'air super intéressant ! Je le test ce soir :)

EDIT : Je l'ai tester et je tombe sur cette errreur la :

No application seems to be running here!

-
Edité par JackBauer75 29 mars 2016 à 16:04:30

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
29 mars 2016 à 17:29:21

Malheureusement le VPS semble être HS.... Je n'ai pas accès à mon PC ce soir mais je le remettrai en ligne demain après midi. Désolé !

  • Partager sur Facebook
  • Partager sur Twitter
30 mars 2016 à 14:57:39

Enfin un jeu vraiment original mais inaccessible pour le moment; dommage...

  • Partager sur Facebook
  • Partager sur Twitter
30 mars 2016 à 16:02:41

Ne run pas les jeu ou application sur C9, ça les coupent au bout d'un moment, ou dès que tu stops l'utilisation :)

Cela dit, ça a l'air vraiment pas mal !

  • Partager sur Facebook
  • Partager sur Twitter

Site personnel : Julien Gidel - AutoMatePHPresentation

Anonyme
30 mars 2016 à 16:11:08

Oui mais je croyais que c'était au bout de trois jours, pas au bout de 6 heures ! Le re-upload sur Hostinger est en cours...

EDIT : Voilà ! La version PHP est disponible : http://haskier.890m.com/ Désolé de l'attente...

-
Edité par Anonyme 30 mars 2016 à 16:20:04

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
30 mars 2016 à 16:22:18

Cool !

Edit : Pas moyen d'afficher le 1 :(

-
Edité par Anonyme 30 mars 2016 à 16:24:32

  • Partager sur Facebook
  • Partager sur Twitter
30 mars 2016 à 16:23:11

Dans le tuto le 1er choix "pour commencer" je trouve que le texte met trop de temps a s'afficher , mais bon je suis au boulot la j'ai pas le temps de bien tout essayer :) mais sa a l'air super original !
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
30 mars 2016 à 16:41:48

Euh... C'est normal que certaines commandes disparraissent au fur et à mesure ?
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
30 mars 2016 à 16:47:16

Tu ne peux pas afficher le 1 ? C'est-à-dire ? Et que veux-tu dire par "certaines commandes disparaissent au fur et à mesure ?"

J'en profite pour remercier motez avec qui je réfléchis au scénario du jeu !

-
Edité par Anonyme 30 mars 2016 à 16:48:34

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
30 mars 2016 à 16:50:59

La combinaison Shift+1 affiche '&' (le problème vient peut-être de mon clavier)

Et pour la disparition des apps il m'a suffit de taper 'cpm update icefox' (qui avait disparu)

Au passage, a quoi serve les .hps ?

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
30 mars 2016 à 17:16:17

Comment l'application icefox a-t-elle disparu ? As-tu supprimé le dossier "apps" ou "icefox" ? Les .hps sont des fichiers JavaScript qui sont le code source des applications. Évitez d'y toucher si vous ne voulez pas risquer d'endommager sérieusement votre sauvegarde de jeu. Si vous les modifiez, vous prenez le risque que les applications ne fonctionnent plus.

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
30 mars 2016 à 17:18:58

Pas dans mes souvenirs ^^, je ne vois pas ce qui aurait put entrainer cette disparition

( PS : comment on utilise ssh-hack ? (sauf si cela fait parti du jeu) )

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
30 mars 2016 à 17:22:12

ssh-back tu veux dire ? ssh-back permet de revenir sur le serveur sur lequel on était avant une connection SSH ssh-home permet de revenir au serveur initial Mais cela sera expliqué plus loin dans le jeu (les fichiers du jeu sont en cours de développement et ne seront sans doute totalement jouables que demain)

-
Edité par Anonyme 30 mars 2016 à 17:23:51

  • Partager sur Facebook
  • Partager sur Twitter
30 mars 2016 à 17:25:00

Moi la commande ssh fonctionnait, puis le jeu à planter (une commande a échoué et je ne pouvais plus rien taper même après 2 minutes d'attente), et après avoir relancer le jeu la commande "ssh" n'existe plus

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
30 mars 2016 à 17:25:28

Ok, dernière question, est il possible de relancer le tutoriel ?
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
30 mars 2016 à 17:27:22

@Flavinho : Quelle commande as-tu tapé exactement ? @Nada#3 : <stroke>Si tu reset ta partie... Ouvre la console JavaScript (Ctrl+Maj+J en général) et tape "r();" puis Entrée</stroke> En fait tu peux juste utiliser : "game.goLabel('TUTORIAL'); go();"

RE-EDIT : La commande ssh-hack n'est pas utilisable actuellement, encore en cours de développement.

La version que je publierais ce soir / ou demain contiendra les outils nécessaires pour effectuer le (court) scénario actuel du jeu et quelques petites choses.

-
Edité par Anonyme 30 mars 2016 à 17:31:37

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
30 mars 2016 à 17:37:03

Merci et bonne continuation :D
  • Partager sur Facebook
  • Partager sur Twitter
30 mars 2016 à 17:39:34

Je ne sais malheureusement pas car au rechargement la commande que j'avais saisi a disparu

Ah beh j'ai rechargé le jeu et la commande fonctionne à nouveau

-
Edité par Ozee31 30 mars 2016 à 17:40:22

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
30 mars 2016 à 18:58:47

J'avais oublié de préciser l'URL du dépo GitHub : https://github.com/ClementNerma/Haskier

Pour ceux qui souhaitent discuter d'Haskier (bugs / développement) : https://haskier.slack.com

La bêta 0.2 viens de sortir. Le jeu est (normalement) totalement jouable jusqu'à la fin du court scénario actuellement disponible.

EDIT : Le jeu est prêt ! N'oubliez pas de réinitialiser votre sauvegarde pour bénéficier de la suite du jeu : ouvrez la console JavaScript et tapez r(); puis Entrée

-
Edité par Anonyme 30 mars 2016 à 19:07:45

  • Partager sur Facebook
  • Partager sur Twitter
30 mars 2016 à 20:14:09

Un truc qui serait sympa, c'est d'afficher l'intégralité du texte d'un coup (notamment pour le tutoriel). J'ai tenté de jouer, j'ai fait 1, j'ai attendu 10 ans, puis j'ai fait 2 et j'ai pas eu le courage d'attendre de nouveau (surtout que ça va jusqu'a 8)
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
30 mars 2016 à 20:28:55

Tu peux augmenter la vitesse d'affichage, mais seulement lorsque tu peux saisir des commandes. Sinon tu peux essayer d'ouvrir la console et d'écrire : readingLineDuration=25 et ça ira beaucoup plus vite

-
Edité par Anonyme 30 mars 2016 à 20:41:13

  • Partager sur Facebook
  • Partager sur Twitter
30 mars 2016 à 20:38:48

Il semble être bien mais il faut ABSOLUMENT que tu autorises le joueur à faire ENTRER pour charger tout le dialogue d'un coup!
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
30 mars 2016 à 21:02:04

Par dialogue, tu entend les phrases du tutoriel où lorsque tu communique avec un employé ?
  • Partager sur Facebook
  • Partager sur Twitter
30 mars 2016 à 21:02:13

Petit soucis pour la 1er mission (recuperer le mdp dans le serveur) apres avoir recuperer le mot de passe le jeu a commencer a buger et je n'ai pas pu taper le mdp , j'ai donc eu le droit a un gameover (qui au passage a un soucis )
  • Partager sur Facebook
  • Partager sur Twitter
30 mars 2016 à 21:28:42

Clément7 a écrit:

Par dialogue, tu entend les phrases du tutoriel où lorsque tu communique avec un employé ?


Les deux ;)
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
30 mars 2016 à 21:34:09

@victorbaudot : J'ai changé les constantes de vitesse mais je ne peux pas permettre l'appui sur la touche Entrée pour faire tout passer. En revanche le texte défilera bien plus vite sans que cela soit gênant pour ceux qui lisent plus lentement.

@valentin75 : Quelles commandes as-tu tapé ? Ce bug est vraiment bizarre... Essaye de réinitialiser ta sauvegarde (en tapant r(); dans la console JavaScript) et recommence une partie pour voir si le bug est toujours présent... Le serveur de cache a eu un problème il y a quelques dizaines de minutes, réessaye pour voir.

  • Partager sur Facebook
  • Partager sur Twitter