Robots défenseurs

Très souvent, lors de discussions sur le bon fonctionnement de certaines fonctionnalités du logiciel, je tombe sur une situation où la fonctionnalité du point de vue de l’utilisateur semble étrange et illogique. La discussion avec le propriétaire du produit ressemblait à ceci :

– Il y a clairement un problème de comportement ici
– Eh bien, nous le publierons et lorsque les utilisateurs commenceront à se plaindre, nous le corrigerons
– ??? Eh bien, d’accord…

Cela semble être un programme efficace, n’est-ce pas ? Un algorithme assez optimal pour les équipes avec un petit budget, des délais serrés, une recherche insuffisante/manque de spécialiste UI/UX. Les utilisateurs se plaindront si quelque chose arrive, ce n’est pas grave.
Une recherche Google révèle que la source de cette méthode provient d’un article – « Développement axé sur les plaintes » par Coding Horror

Une fois, je vendais de la nourriture, y compris des saucisses du docteur, pour 300 roubles. via un terminal dans un supermarché, j’ai quitté le magasin avec cette saucisse en toute confiance qu’elle avait été payée – le terminal m’a proposé de ne pas imprimer le chèque et j’ai accepté pour ne pas gaspiller du précieux papier sur ce chèque. Pendant le processus de « poinçonnage » des marchandises pour chaque produit, le terminal a émis un grincement, signalant que tout a fonctionné correctement. De plus, avec une alerte sonore, le terminal a fait un clin d’œil avec le rétroéclairage du lecteur de codes-barres.

Le lendemain, je suis allé au supermarché pour faire à nouveau des courses et j’ai déposé les courses dans le terminal. À la sortie, j’ai été accueilli par un homme d’apparence sudiste avec une barbe épaisse, me tendant un smartphone, il a dit : « ; “C’est toi devant la caméra ?”, j’ai regardé son téléphone et je me suis vu dans un T-shirt Melodic-Death-Metal d’Arch Enemy avec des crânes et tout ça, il n’y avait aucune raison d’en douter.
“Oui, c’est moi, qu’est-ce qu’il y a ?”, l’homme, en plissant les yeux très fort, dit : “Hier, tu n’as pas frappé la saucisse.” wow

Après une brève enquête pour savoir qui il était et comment il a tiré ces conclusions, il m’a montré une vidéo accrochée au plafond du magasin, dans la vidéo je frappe la saucisse, le terminal clignote avec le rétroéclairage du scanner, J’ai mis la saucisse dans le sac.

– La vidéo montre comment fonctionnait le scanner
– Cela n’a fonctionné pour rien, payez la saucisse !

Un peu déconcerté par cette attitude, j’ai demandé un cahier de réclamation pour écrire que le terminal avait besoin d’améliorations logicielles, car il donnait tous les signes d’un bon fonctionnement, mais en réalité il était simplement buggé, sans le signaler à l’écran de quelque manière que ce soit.

Après 10 minutes de querelles avec lui et son patron, qui a immédiatement pris la défense de son employé et du terminal qui fonctionnait pour rien, ils ont décidé d’appeler la fille de l’administrateur pour qu’elle apporte un cahier de plaintes et frappe le médecin. saucisse.

Ce jour-là, j’ai réalisé à quel point il est difficile pour les utilisateurs de se plaindre des produits matériels et logiciels, et que le mantra « les gens se plaindront » est très probable. Réparons-le » fonctionne très mal. La raison principale, ce sont les gens qui défendent les robots cassés, les solutions logicielles cassées, pour plus de simplicité, je propose d’introduire de nouveaux termes – ” ; Défenseur du robot brisé et défenseur des systèmes brisés.

Les utilisateurs ordinaires ne peuvent pas se plaindre du dysfonctionnement des terminaux car ils sont dérangés par les ZasRoshniks, qui, pour une raison quelconque, s’attachent et commencent à aimer les machines avec lesquelles ils travaillent, les considérant peut-être comme des sortes d’entités animées, oubliant qu’il n’y a rien. y vivre.< /p>

Une situation similaire se produit avec ZaSSoshniki, ces personnes peuvent écumer à la bouche pour défendre certaines lacunes stupides des frameworks, des langages de programmation ou de tout autre produit logiciel, malgré les plaintes des utilisateurs et d’autres développeurs.
Une conversation typique avec ZaSSoshnik est la suivante :

– Ici quelque chose ne fonctionne pas, d’après la documentation tout semble correct
– Oh, donc vous n’avez pas lu ce manuel de 2005, où en bas il est écrit en minuscules que vous devez ajouter PROGRAM_START:6969
– ??? euh

Ces personnes peuvent ne pas comprendre comment elles contribuent elles-mêmes à la propagation des problèmes, des erreurs, de la perte de temps et d’argent de leur propre chef et de celle des autres. À cause d’eux, tout le monde en souffre, car la transformation numérique est impossible si les choses non évidentes et les problèmes liés aux solutions logicielles et matérielles sont étouffés.
Je suis au courant de l’histoire récente d’un bug dans le logiciel Horizon de la Poste britannique qui a poussé les gens à s’endetter, ruiné les mariages et ruiné la vie des gens pendant des décennies. Tout cela a continué grâce à la connivence de personnes qui ont gardé le silence sur les problèmes du logiciel, « protégeant » ainsi l’entreprise. lui.

Mes amis, ne soyez pas des ZaSRoshniks et des ZaSSoshniks, traitez les outils avec lesquels vous travaillez avec un grain de sel, sinon vous serez confrontés à un asservissement total à des systèmes merdiques et cassés, comme des otages dans le nouveau monde numérique du futur. Pour ceux qui ne le peuvent pas – au moins, ne dérangez pas les autres personnes qui essaient de prêter attention aux logiciels/matériels qui ne fonctionnent pas et qui interfèrent, car les développeurs de ces produits ont convenu « » “Lorsque les utilisateurs commenceront à se plaindre, nous y remédierons.”

Sources
https://blog.codinghorror.com/complaint-driven-development/< /a>
https://habr.com/ru/articles/554404/< br />
https://en.wikipedia.org/wiki/British_Post_Office_scandal

Création de l’application bgfx Emscripten

Dans cet article, je décrirai une manière de créer des applications bgfx pour le Web (WebAssembly) à l’aide d’Emscripten.

La plate-forme d’installation est Linux x86-64, par exemple Arch Linux.

Tout d’abord, installons Emscripten version 3.1.51, sinon vous ne réussirez pas, tout cela à cause du changement de type de bibliothèques dynamiques dans la dernière version d’Emscripten. Vous pouvez en savoir plus ici :
https://github.com/bkaradzic/bgfx/discussions/3266

Cela se fait comme ceci :


git clone https://github.com/emscripten-core/emsdk.git



cd emsdk



./emsdk install 3.1.51



./emsdk activate 3.1.51



source ./emsdk_env.sh



Assemblons bgfx pour WebAssembly – Texte :


mkdir bgfx-build-test



cd bgfx-build-test



git clone https://github.com/bkaradzic/bx.git



git clone https://github.com/bkaradzic/bimg.git



git clone https://github.com/bkaradzic/bgfx.git



cd bgfx



emmake make wasm-debug



Par conséquent, dans le dossier .build, vous aurez des fichiers bitcode avec une extension .bc, qui devront être liés à votre application bgfx.
Doit être bgfx.bc, bx.bc, bimg.bc ; différents assemblys ont des noms différents pour ces fichiers, selon le type d’assembly (version/débogage)

Ajoutez un lien vers le fichier CMakeLists.txt avec les fichiers .bc, par exemple, les chemins absolus vers les fichiers du projet bgfx-experiments :


target_link_libraries(${PROJECT_NAME} SDL2 GL /home/demensdeum_stream/Sources/bgfx-build/bgfx/.build/wasm/bin/bgfxDebug.bc /home/demensdeum_stream/Sources/bgfx-build/bgfx/.build/wasm/bin/bxDebug.bc /home/demensdeum_stream/Sources/bgfx-build/bgfx/.build/wasm/bin/bimgDebug.bc)



Maintenant, remplacez le handle de fenêtre natif dans les données de la plateforme par l’initialisation bgfx :


bgfx::PlatformData platformData{};



platformData.context = NULL;



platformData.backBuffer = NULL;



platformData.backBufferDS = NULL;



platformData.nwh = (void*)"#canvas";



Vous devez également changer le type de rendu en OpenGL :


bgfx::Init init;



init.type = bgfx::RendererType::OpenGL;







init.resolution.width = screenWidth;



init.resolution.height = screenHeight;



init.resolution.reset = BGFX_RESET_VSYNC;



init.platformData = platformData;







if (!bgfx::init(init))



{



    throw std::runtime_error("Failed to initialize bgfx");



}



Recompiler les shaders GLSL à 120 :


shaderc -f "VertexShader.vs" -o "VertexShader.glsl" --type "v" -p "120"



shaderc -f "FragmentShader.fs" -o "FragmentShader.glsl" --type "f" -p "120"



Oui, mais les fichiers .glsl doivent être ajoutés à CMakeLists.txt en tant que « fichier de préchargement :


set(CMAKE_CXX_FLAGS ... <Остальная часть>



--preload-file VertexShader.glsl \



--preload-file FragmentShader.glsl \



Il reste à remplacer la boucle de rendu principale de votre application par un appel de fonction while via emscripten_set_main_loop.

Vous pouvez en savoir plus ici :
https https://demensdeum.com/blog/ru/2017/03/29/porting-sdl-c-game-to-html5-emscripten/

Ensuite, assemblez votre projet Emscripten comme d’habitude, tout devrait fonctionner.
Intéressant – la version Emscripten 3.1.51 semble manquer d’OpenAL (ou juste de moi).

Code source du projet qui se compile correctement avec bgfx et Emscripten :
https://github.com/demensdeum/ bgfx-experiments/tree/main/2-emscripten-build

Sources

https://github.com/bkaradzic/bgfx/discussions/3266
https://bkaradzic.github.io/bgfx/build.html
https://emscripten.org/docs/getting_started/downloads.html
https ://demensdeum.com/blog/ru/2017/03/29/porting-sdl-c-game-to-html5-emscripten/
https://llvm.org/docs/BitCodeFormat.html

Masque mortuaire dans le domaine public

À partir d’aujourd’hui, le jeu Death-Mask entre en accès libre – ; Vous pouvez suivre l’avancement de la mise en œuvre du jeu sur le lien : (Wow !)
[Masque de la mort sauvage]

Version actuelle – La version 0.1 contient les commandes fléchées de base, wsad, la génération de cartes, les objets (y compris le masque mortuaire !), le rendu.
Il y a encore beaucoup de travail à faire et je suis très intéressé par vos retours – vous pouvez donc écrire des commentaires sur la page avec la version sauvage du jeu.
Dans la version finale, le jeu se termine une fois que le joueur a trouvé l’objet « ; Masque mortuaire
Bon test : )

Авторы ресурсов

Est-ce possible…

Question : “Puis-je copier le jeu Demon’s Cave sur votre site Web, votre blog, ou sur votre page entre des chatons mignons et des citations de Coelho / Statham ?”
Non Je l’interdis personnellement. Je plaisante, pas personnellement. Copiez et collez simplement le code HTML :

<iframe width="640" height="384"
src= "https://mocha2005.mochahost.com/~demens/games/demonsCave/"></iframe>

Lien vers jsfiddle avec exemple : https://jsfiddle.net/ovL04dqL/3/< /p>

Question : “Je veux accrocher la La Grotte du Démon sur une page avec de la publicité, est-ce possible ?”
Oui, vous pouvez tout faire.

Question : “Je souhaite vendre le jeu Demon’s Cave , est-ce possible ?”
Vous pouvez faire ce que vous voulez avec le moteur de jeu fsagamelibrary.js, laissez simplement un lien vers demensdeum .com
Mais vous devez soit acheter des graphiques et de la musique (ceux qui sont payants), soit utiliser les vôtres. Liste plus détaillée des ressources ici.
Si vous ne laissez pas de lien vers le site principal, alors un démon entrera dans vos rêves.

Question : “Je souhaite créer un mod pour le jeu Demon’s Cave, ou même le réaliser en 3D sur Unity, puis-je vous envoyer le lien plus tard ?”
Bien sûr. Lancer vk.

Page indiquant les auteurs des ressources, listant les licences demensdeum.com/games/demonsCave/info. html< /a>

Manifeste Demens Deum

Demens Deum MiniGames Logo

Demens Deum – une équipe de développeurs indépendants, nous créons de nouvelles choses intéressantes, qu’il s’agisse de jeux, de programmes, de musique, de bandes dessinées. Il existe désormais très peu d’équipes dans le monde prêtes à expérimenter des idées, des technologies et leur mise en œuvre. Notre manifeste – down avec le cadre habituel des genres, down avec des hits clichés gris – Frappons l’esprit du commun des mortels avec des expériences, des univers originaux, des histoires passionnantes, excitons le cœur de ceux qui ont soif !