Partage
  • Partager sur Facebook
  • Partager sur Twitter

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

    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 ClementNerma 23 juin 2016 à 11:55:08

    • Partager sur Facebook
    • Partager sur Twitter
    Créateur du projet Rave (anciennement SilverNight) et NightOS
      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
        Développeur Web Belgique | Ancien modérateur préféré de la communauté <3
          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
          Créateur du projet Rave (anciennement SilverNight) et NightOS
            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
              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
              Créateur du projet Rave (anciennement SilverNight) et NightOS
                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 - Livre de chevet : A lire absolument, Ou les sources directement... 

                    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 ClementNerma 30 mars 2016 à 16:20:04

                    • Partager sur Facebook
                    • Partager sur Twitter
                    Créateur du projet Rave (anciennement SilverNight) et NightOS
                      30 mars 2016 à 16:22:18

                      Cool !

                      Edit : Pas moyen d'afficher le 1 :(

                      -
                      Edité par Nada#3 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
                          30 mars 2016 à 16:41:48

                          Euh... C'est normal que certaines commandes disparraissent au fur et à mesure ?
                          • Partager sur Facebook
                          • Partager sur Twitter
                            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 ClementNerma 30 mars 2016 à 16:48:34

                            • Partager sur Facebook
                            • Partager sur Twitter
                            Créateur du projet Rave (anciennement SilverNight) et NightOS
                              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
                                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
                                Créateur du projet Rave (anciennement SilverNight) et NightOS
                                  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
                                    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 ClementNerma 30 mars 2016 à 17:23:51

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                    Créateur du projet Rave (anciennement SilverNight) et NightOS
                                      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
                                        30 mars 2016 à 17:25:28

                                        Ok, dernière question, est il possible de relancer le tutoriel ?
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          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 ClementNerma 30 mars 2016 à 17:31:37

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                          Créateur du projet Rave (anciennement SilverNight) et NightOS
                                            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
                                                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 ClementNerma 30 mars 2016 à 19:07:45

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                Créateur du projet Rave (anciennement SilverNight) et NightOS
                                                  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
                                                    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 ClementNerma 30 mars 2016 à 20:41:13

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                    Créateur du projet Rave (anciennement SilverNight) et NightOS
                                                      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
                                                        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
                                                        Créateur du projet Rave (anciennement SilverNight) et NightOS
                                                          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
                                                              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
                                                              Créateur du projet Rave (anciennement SilverNight) et NightOS

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

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown