Facebook et la censure moderne

Facebook a annoncé récemment une nouvelle modification de son algorithme pour les timelines, qui a pour conséquence de faire diminuer la portée organique des pages.

Le problème c’est qu’à la base Facebook voulait permettre aux membres de pouvoir communiquer directement avec leurs amis. Et si on transpose, aux entreprises et associations d’échanger avec leurs fans. Sauf que maintenant, les publications sont publiées progressivement, en fonction de l’intérêt que les gens y portent.

Pour faire simple, quand vous publiez quelque chose, Facebook le propose à quelques personnes : si elles likent/commentent/partagent alors la publication vaut le coup et sera proposée à plus de monde, s’ils ne réagissent pas, alors c’est mort, personne d’autre ou presque ne verra votre publication.

Le problème c’est qu’on ne choisit quelles seront ces personnes censées représenter un échantillon représentatif des fans de la page. Du coup, si FB propose l’annonce de votre spectacle à des gens qui ne sont pas concernés (pas dans la bonne ville, pas dispos…), tant pis pour vous, fallait trouver quelque chose de plus intéressant à publier.

Et d’un coup, comme ça, Facebook installa un système de censure moderne, en rejetant la faute sur les autres (“c’est pas de notre faute, les 3 fans — sur 1000, on est gentils — interrogés sont pas intéressés par vos publications”). Et d’un autre côté ils vous disent :

Vous voulez que vos publications soient vues par plus de monde ? Envoyez-nous un gros chèque signé avec votre propre sang ! Ou alors votre bras gauche, on saura le revendre au marché noir pour gagner plein de fric. 

Et voilà comment les entreprises se font bien pigeonner, maintenant qu’elles ont embauché des CM qui leurs coûtent des blindes (en charges surtout, hein, on est France rappelez-vous).

Prochaine étape : les services d’envoi de mails qui refusent d’envoyer des mails à tous les membres de vos listes de diffusion sous prétexte que les 5 premiers (les adresses de tests oubliées depuis la mise en prod) n’ont pas ouvert le mail ou cliqué sur tous les liens.

L’artisan du Web

La petite citation du jour, sortie tout droit d’une discussion avec Clément.

Je suis un peu comme un artisan : je vais pas sortir la toupie et la grue pour couler l’équivalent d’une brouette de béton pour faire 3 marches.

Et c’est pas fini…

Il y a les artisans qui font tout à la main ou presque et les grosses boîtes de BTP qui arrivent avec des murs en kits qu’ils ont plus qu’à assembler ensemble. C’est pratique, c’est pas cher, ça va vite à mettre en place.

Mais quand il s’agit de faire des ajustements ou de la maintenance, personne sait comment c’est fait du coup le client doit se démerder avec le produit tel qu’il est. Tant pis pour lui si le mur fait 20cm de trop et qu’il dépasse en plein milieu de son couloir.

Pourquoi je dis ça ? J’aime pas les mecs qui bossent sur des gros projets avec des outils hyper pointus ? Loin de là, rassurez-vous.

Non, seulement comme dirait l’autre, il faut de tout pour faire un monde. Quand il s’agit de mettre en place une appli Web avec du temps réel et des tas d’écrans, évidemment qu’un outils comme AngularJS ou Backbone sera utile. Bien sûr que Bootstrap est super sympa pour faire une interface d’admin (ou un site, hein) responsive en 5 minutes (comment ça je suis marseillais ?).

Mais parfois il faut prendre le temps de faire les choses à l’ancienne. Faire du CSS à l’ancienne, sans pré-processeur, du JS vanilla sans jQuery ni Angular. Des fois ça suffit largement pour faire le job. Et c’est aussi comme ça qu’on économise la bande passante de l’utilisateur et les ressources utilisées.

Après tout, c’est vrai, pourquoi on construirait une cabine de pêcheur avec du béton armé épais de 50cm ?

P.S. : Non, je n’ai pas sous-entendu qu’il fallait construire la Tour Eiffel avec des allumettes, parce que ce serait plus cool ou moins mainstream.

Créer un jeu HTML5 avec Quintus (Partie 2) : Placer des éléments sur la scène

Nous revoilà avec Quintus, la fameuse librairie dont je vous ai parlé un peu plus tôt.

Maintenant que l’on a un beau canvas vierge et que la librairie est paramétrée, il va être temps d’afficher quelque chose, non ?

Vocabulaire de base

Pour ceux qui démarrent avec le vocabulaire des jeux, on va commencer par se familiariser avec les composants de Quintus.

Scene : les calques

Pour faire simple, un objet Stage est une sorte de calque, dans lequel vous pouvez caser à peu près tout les éléments graphiques que vous voulez (personnage, décor, texte, bouton…). Vous pouvez aussi superposer plusieurs stages pour gérer de façon indépendante plusieurs éléments (par exemple en affichant le score au-dessus du jeu).

Sprite : les éléments graphiques

En gros tous vos éléments graphiques ou presque seront des sprites. Vous pouvez donc agir sur les dimensions et la position de ces derniers. Mais vous pouvez aussi les animer (de plusieurs façons), les faire tourner, les rendre transparents, etc.

Les sprites sont insérés dans des scènes (scene en vocabulaire Quintus). Vous pouvez en insérer autant que vous voulez à chaque fois.

UI : le composant d’interface

Ce n’est pas vraiment du vocabulaire, mais c’est un composant assez utile dans Quintus qui vous permet de créer pas mal d’éléments (descendants des sprites) comme du texte, des boutons ou des conteneurs (qui permettent d’y insérer d’autres éléments — texte et boutons entre autres).

Tile : un petit parallélépipède rectangle

Pour rester simple et pour gérer facilement les collisions, votre espace de jeu sera composé de tiles (généralement des carrés, mais vous pouvez utiliser n’importe quelle forme, du moment que vous les définissez avec un peu de code). Cela permet via des fichiers externes (Quintus gère les fichiers JSON et TMX) de définir rapidement le décor et l’implantation des éléments statiques du niveau.

Dessine-moi un mouton !

D’accord les enfants, j’ai compris, on passe à la pratique !

On va donc commencer par une page d’intro, assez simple, sur laquelle on va dessiner doucement des trucs simples.

Voir le résultat sur JSFiddle

Pour récapituler : on crée une scène, dans laquelle on insère des sprites (dans lesquels on dessine ou bien des images, du texte, des boutons, etc.). Et on pense bien sûr à afficher notre scène (au rang 0, puisqu’elle est seule).

Des questions, remarques, insultes, commentaires ? Allez-y, c’est permis !

Créer un jeu HTML5 avec Quintus (Partie 1) : Découverte de la librairie

Depuis 2 semaines je me suis lancé dans la création d’un jeu en HTML5. N’ayant jamais développé de vrai jeu (on va pas se cacher que j’ai fait des erreurs de jeunesse, hein, moi aussi j’ai tenté de créer mon mini-jeu en Java pendant les cours, jusqu’à la fameuse NullPointerException au bout de 20 minutes qui anéantit tout espoir) je ne savais pas trop par où commencer…

Donc, mon ami Google se proposant de m’aider pour trouver une librairie pour créer des jeux sans trop se prendre la tête, je tombe sur Quintus et LimeJS. Quintus est une librairie assez récente, créée et maintenue par un dev motivé sur son temps libre. LimeJS est déjà plus connu (j’en avais déjà entendu parler à plusieurs reprises, par-ci, par-là) mais il faut bien avouer que le site ne donne vraiment pas envie (design moche, pas de démo directement accessible) contrairement à celui de Quintus (avec une belle sandbox pour s’amuser et tripatouiller un peu le code d’exemple).

Pour la faire courte, j’ai essayé pendant 2 jours d’avancer sur une version vanilla (sans librairie, donc) après m’être renseigné, histoire de mieux comprendre comment fonctionnait la balise <canvas> (je n’y avais que très peu touché il y a déjà 2 ans). Le résultat me convenait, mais je me suis dit qu’une librairie me permettrait d’éviter certaines parties un peu plus chiantes et complexes (comme la gestion de collision, la vitesse, etc.)

Du coup mon choix s’est vite porté vers Quintus, malgré le côté instable de la librairie : quoi de plus intéressant que de déboguer une librairie entière en plus de son propre code ?! LimeJS c’est too mainstream de toute façon…

Et si on attaquait le tuto ?

Allez, c’est parti, en selle les enfants !

Première étape : intégrer Quintus.

Pour cela, plusieurs méthodes :

  • Utiliser le CDN fourni (au risque d’avoir rapidement une version ancienne et des fonctionnalités manquantes, voire des bugs non résolus)
  • Télécharger le code depuis le repo GitHub (du code bien à jour comme il faut)
  • La jouer ninja en téléchargeant la dernière version du CDN, puis en déboguant à la main les éléments qui vous manquent (en gros 2 petites lignes pour moi, rien de bien sorcier)

Deuxième étape : créer une page HTML basique

Bon ça, rien de bien compliqué, vous savez déjà faire je pense.

Troisième étape : initialiser et paramétrer Quintus

Jusque là ça reste simple, rien de bien compliqué, la doc est là aussi pour vous guider. Je vous ai commenté un peu chaque ligne, histoire de vous familiariser avec le contexte (pour ceux qui n’ont jamais développé de jeu, par exemple).

C’est largement commenté, mais pour faire simple, voilà comment ça se passe : on initialise un objet Quintus, on lui demande de charger les composants qui nous seront utiles, puis on configure le tout pour créer/sélectionner notre canvas. Ensuite libre à vous d’initialiser les contrôles tout de suite ou non (si vous avez des écrans intermédiaires, c’est peut-être pas la peine).

Voir le résultat sur JSFiddle

Partie 2 →