Robôs Defensores

Muitas vezes, durante discussões sobre o funcionamento correto de algum recurso de software, me deparo com uma situação em que a funcionalidade, do ponto de vista do usuário, parecia estranha e ilógica. A discussão com o proprietário do produto foi mais ou menos assim:

– Há claramente um problema de comportamento aqui
– Bom, vamos lançar e quando os usuários começarem a reclamar, então vamos consertar
– ??? Bem, ok…

Parece um esquema funcional, certo? Um algoritmo bastante ideal para equipes com orçamento pequeno, prazos apertados, pesquisa insuficiente/falta de um especialista em UI/UX. Os usuários reclamarão se algo acontecer, tudo bem.
Uma pesquisa no Google revela que a fonte deste método vem de um artigo – “Desenvolvimento Orientado a Reclamações” por Codificação de Terror

Uma vez eu vendia comida, inclusive linguiça médica, por 300 rublos. através de um terminal de um supermercado, saí da loja com esta salsicha com plena confiança de que ela havia sido paga – o terminal se ofereceu para não imprimir o cheque e eu concordei para não desperdiçar papel precioso nesse cheque. Durante o processo de “perfuração” da mercadoria de cada produto, o terminal emitia um guincho, que sinaliza que tudo funcionou corretamente. Além disso, com um alerta sonoro, o terminal piscou com a luz de fundo do leitor de código de barras.

No dia seguinte fui ao supermercado comprar mantimentos novamente e coloquei os mantimentos no terminal. Na saída fui recebido por um homem de aparência sulista e de barba espessa, segurando um smartphone, ele disse – “É você na câmera?”, olhei para o celular dele e me vi com uma camiseta Melodic-Death-Metal do Arch Enemy com caveiras e tudo mais, não havia motivo para duvidar.
“Sim, sou eu, qual é o problema?”, o homem, semicerrando os olhos, disse: “Ontem você não deu um soco na salsicha.” uau

Depois de uma breve investigação sobre quem ele era e como tirou essas conclusões, ele me mostrou um vídeo que está pendurado no teto da loja, no vídeo eu soco a salsicha, o terminal pisca com a luz de fundo do scanner, Coloquei a salsicha no saco.

– O vídeo mostra como o scanner funcionou
– Não deu para nada, paga a linguiça!

Um pouco surpreso com esta atitude, pedi um livro de reclamações para escrever que o terminal precisava de melhorias de software, pois dava todos os sinais de correto funcionamento, mas na realidade estava simplesmente bugado, sem sinalizar isso na tela de forma alguma.

Após 10 minutos de brigas com ele e seu chefe, que imediatamente correu em defesa de seu funcionário e do terminal de merda, eles decidiram ligar para a garota do administrador para que ela trouxesse um livro de reclamações e desse um soco no médico salsicha.

Naquele dia, percebi como é realmente difícil para os usuários reclamarem de produtos de hardware e software, e que muito provavelmente o mantra “as pessoas vão reclamar 𔂿 Vamos consertar” funciona muito mal. A principal razão são as pessoas que defendem robôs quebrados, soluções de software quebradas. Para simplificar, proponho introduzir novos termos – “O que é isso?” Defensor do Robô Quebrado e Defensor dos Sistemas Quebrados.

Os usuários comuns não podem reclamar do mau funcionamento dos terminais porque são incomodados pelos ZasRoshniks, que por algum motivo se apegam e passam a amar as máquinas com as quais trabalham, talvez considerando-as uma espécie de entidade animada, esquecendo que não há nada morando lá.

Uma situação semelhante ocorre com ZaSSoshniki, essas pessoas podem espumar pela boca em defesa de algumas falhas estúpidas em frameworks, linguagens de programação ou qualquer outro produto de software, apesar das reclamações de usuários e outros desenvolvedores.
Uma conversa típica com ZaSSoshnik é a seguinte:

– Aqui algo não funciona, segundo a documentação tudo parece estar correto
– Ah, então você não leu aquele manual de 2005, onde na parte inferior diz em letras minúsculas que você precisa adicionar PROGRAM_START:6969
– ??? ah

Essas pessoas podem não entender como elas próprias contribuem para a propagação de problemas, erros, perda de tempo e dinheiro, próprios e de outras pessoas. Por causa deles, todos sofrem, porque a transformação digital é impossível se coisas não óbvias e problemas com soluções de software e hardware forem abafados.
Estou ciente da recente história de um bug no software Horizon dos Correios Britânicos que levou as pessoas ao endividamento, arruinou casamentos e arruinou a vida das pessoas durante décadas. Tudo isso continuou devido à conivência de pessoas que se calaram sobre os problemas do software, “protegendo” ele.

Amigos, não sejam ZaSRoshniks e ZaSSoshniks, tratem as ferramentas com as quais vocês trabalham com cautela, caso contrário vocês enfrentarão a escravização total de sistemas quebrados e de merda, como reféns no novo mundo digital do futuro. Para quem não pode – pelo menos não incomode outras pessoas tentando prestar atenção a software/hardware que não funciona e interfere, porque os desenvolvedores desses produtos concordaram – com isso. “Quando os usuários começarem a reclamar, nós resolveremos o problema.”

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

Construindo aplicativo bgfx Emscripten

Neste post descreverei uma maneira de construir aplicações bgfx para a web (WebAssembly) usando Emscripten.

A plataforma de instalação é Linux x86-64, por exemplo Arch Linux.

Primeiro, vamos instalar o Emscripten versão 3.1.51, caso contrário você não terá sucesso, tudo por causa da mudança no tipo de bibliotecas dinâmicas na versão mais recente do Emscripten. Você pode ler mais aqui:
https://github.com/bkaradzic/bgfx/discussions/3266

Isso é feito assim:


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



Vamos montar o bgfx para WebAssembly – Escrito:


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



Como resultado, na pasta .build você terá arquivos bitcode com extensão .bc, que precisarão ser vinculados ao seu aplicativo bgfx.
Deve ser bgfx.bc, bx.bc, bimg.bc; diferentes assemblies têm nomes diferentes para esses arquivos, dependendo do tipo de montagem (release/debug)

Adicione um link ao arquivo CMakeLists.txt com arquivos .bc, por exemplo, caminhos absolutos para arquivos do projeto 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)



Agora altere o identificador da janela nativa nos dados da plataforma para inicialização do bgfx:


bgfx::PlatformData platformData{};



platformData.context = NULL;



platformData.backBuffer = NULL;



platformData.backBufferDS = NULL;



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



Você também precisa alterar o tipo de renderização para 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");



}



Recompilar shaders GLSL para 120:


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



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



Sim, mas os arquivos .glsl devem ser adicionados ao CMakeLists.txt como –preload-file:


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



--preload-file VertexShader.glsl \



--preload-file FragmentShader.glsl \



Resta substituir o loop de renderização principal em seu aplicativo por uma chamada de função while via emscripten_set_main_loop.

Você pode ler sobre isso aqui:
https ://demensdeum.com/blog/ru/2017/03/29/porting-sdl-c-game-to-html5-emscripten/

Em seguida, monte seu projeto Emscripten normalmente, tudo deve funcionar.
Interessante – a compilação do Emscripten 3.1.51 parece estar faltando OpenAL (ou apenas eu).

Código fonte do projeto que compila corretamente com bgfx e Emscripten:
https://github.com/demensdeum/ bgfx-experiments/tree/main/2-emscripten-build

Fontes

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

Máscara mortuária em domínio público

A partir de hoje, o jogo Death-Mask estará em acesso aberto – Você pode acompanhar o andamento da implementação do jogo no link: (Uau!)
[Máscara da Morte Selvagem]

Versão atual – 0.1 contém controles básicos de seta, wsad, geração de mapas, itens (incluindo a máscara mortuária!), renderização.
Ainda há muito trabalho a ser feito e estou muito interessado no seu feedback. para que você possa escrever comentários na página com a versão selvagem do jogo.
Na versão final, o jogo termina após o jogador encontrar o item – Máscara Mortuária
Bons testes 🙂

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

É possível?

Pergunta: “Posso copiar o jogo Demon’s Cave para seu site, ou blog, ou para sua página entre gatinhos fofos e citações de Coelho / Statham?”
Nãoeu proíbo pessoalmente. Brincadeirinha, não pessoalmente. Basta copiar e colar o código HTML:

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

Link para jsfiddle com exemplo: https://jsfiddle.net/ovL04dqL/3/< /p>

Pergunta: “Quero pendurar a Caverna do Demônio na página com publicidade, é possível?”
Sim, você pode fazer qualquer coisa.

Pergunta: “Quero vender o jogo Demon's Cave , é possível?”
Você pode fazer o que quiser com o motor de jogo fsagamelibrary.js, basta deixar um link para demensdeum .com
Mas você deve comprar gráficos e músicas (aqueles que são pagos) ou usar os seus próprios. Lista mais detalhada de recursos aqui.
Se você não deixar um link para o site principal, um demônio entrará em seus sonhos.

Pergunta: “Quero fazer um mod para o jogo Demon’s Cave, ou até mesmo fazer em 3D no Unity, posso te mandar o link depois?”
Claro. Lance vk.

Página indicando os autores dos recursos, listando as licenças demensdeum.com/games/demonsCave/info. html< /a>

Manifesto Demens Deum

Demens Deum MiniGames Logo

Demens Deum – uma equipe de desenvolvedores independentes, criamos coisas novas e interessantes, sejam jogos, programas, músicas, quadrinhos. Existem muito poucas equipes no mundo que estão prontas para experimentar ideias, tecnologias e implementações. Nosso manifesto – para baixo com a estrutura usual de gêneros, para baixo com sucessos clichês cinzentos – Vamos atingir as mentes das pessoas comuns com experimentos, universos originais, histórias emocionantes, excitar os corações daqueles que têm sede!