{"id":64142,"date":"2025-04-16T07:00:00","date_gmt":"2025-04-16T10:00:00","guid":{"rendered":"https:\/\/quebrandocontrole.com.br\/site\/?p=64142"},"modified":"2025-04-14T23:00:34","modified_gmt":"2025-04-15T02:00:34","slug":"por-um-punhado-de-bits-e-la-vamos-nos","status":"publish","type":"post","link":"https:\/\/quebrandocontrole.com.br\/site\/por-um-punhado-de-bits-e-la-vamos-nos\/","title":{"rendered":"Por Um Punhado De Bits: E L\u00e1 Vamos N\u00f3s&#8230;"},"content":{"rendered":"\n<p>Depois de usar a IA, via ChatGPT, para fazer imagens, sons e at\u00e9 peda\u00e7os de narrativa interativa, \u00e9 chegada a hora do experimento master: c\u00f3digo. Finalmente vou testar a frase &#8220;fa\u00e7a um joguinho&#8221;.<\/p>\n\n\n\n<p>Minha primeira incurs\u00e3o nessa \u00e1rea vai ser no sentido de tentar algo pouco comum nos dias atuais, ou seja, um jogo criado no Delphi. S\u00f3 lembrando, para quem nunca ouviu falar na figura, o Delphi \u00e9 um RAD (Rapid Application Development) ou seja, uma ferramenta f\u00e1cil e simples de usar, que mais se assemelha uma prancheta de desenho: a gente vai montando o visual do jogo e no meio do caminho cria os c\u00f3digos. Ferramenta perfeita para designers programadores.<\/p>\n\n\n\n<p>&#8220;Crie um programa de computador na linguagem Object Pascal do Delphi, que resulte numa narrativa n\u00e3o linear com op\u00e7\u00f5es de direcionamento por decis\u00e3o do usu\u00e1rio. Um game cujo enredo seja uma aventura em uma ilha deserta em busca de um tesouro.&#8221;<\/p>\n\n\n\n<p>N\u00e3o quis for\u00e7ar demais a barra, at\u00e9 porque nem sabia ainda se a IA ia entender Object Pascal + Delphi. Mas eis que a resposta n\u00e3o demorou nem 1 minuto:<\/p>\n\n\n\n<p><em>Claro! Abaixo est\u00e1 um exemplo de um jogo de aventura em uma ilha deserta com narrativa n\u00e3o linear, desenvolvido em Object Pascal (Delphi). O jogo \u00e9 baseado em decis\u00f5es do usu\u00e1rio, com m\u00faltiplos caminhos e finais diferentes.<\/em><\/p>\n\n\n\n<p><em>REQUISITOS: Delphi (qualquer vers\u00e3o moderna, ex: Delphi 10.x), um formul\u00e1rio (Form1) e alguns componentes b\u00e1sicos: TMemo (para a narrativa), TButton (para as op\u00e7\u00f5es) e TLabel (opcional para t\u00edtulo ou instru\u00e7\u00f5es).<\/em><\/p>\n\n\n\n<p><em>ENREDO B\u00c1SICO: Voc\u00ea naufragou em uma ilha misteriosa. Dizem que h\u00e1 um tesouro lend\u00e1rio escondido nela. Suas decis\u00f5es determinar\u00e3o se voc\u00ea encontra o tesouro, se sobrevive\u2026 ou se nunca mais \u00e9 visto.<\/em><\/p>\n\n\n\n<p><em>L\u00d3GICA DO JOGO: Vamos usar um sistema simples de &#8220;estados&#8221; e &#8220;decis\u00f5es&#8221;. Cada parte da hist\u00f3ria \u00e9 um n\u00f3 com escolhas que levam a outros n\u00f3s.<\/em><\/p>\n\n\n\n<p><em>INTERFACE SUGERIDA: Memo1 &#8211; onde a hist\u00f3ria ser\u00e1 exibida, Button1, Button2, Button3 &#8211; para as op\u00e7\u00f5es do jogador.<\/em><\/p>\n\n\n\n<p>E na sequ\u00eancia ele apresenta o c\u00f3digo completo do Form1 e as instru\u00e7\u00f5es para criar os componentes. Achei meio petulante especificar Delphi 10, j\u00e1 que uso a vers\u00e3o 5, mas foi falha minha n\u00e3o ter informado esse detalhe. Tudo bem b\u00e1sico e claro, tive que botar o dedo do designer no projeto, para pelo menos ficar mais agrad\u00e1vel visualmente e menos &#8220;default&#8221;.<\/p>\n\n\n\n<p>Funcionou perfeitamente e mesmo o jogo sendo extremamente simples, a ideia aqui era conferir se o ChatGPT ia de fato &#8220;entender&#8221; o que era para fazer. Zipei tudo num arquivo, que pode ser baixado do endere\u00e7o https:\/\/tilt.net\/testeIA\/Projeto1.zip, bastando fazer o download, descompactar e rodar.<\/p>\n\n\n\n<p>N\u00e3o satisfeito, o ChatGPT ainda deu algumas sugest\u00f5es:<\/p>\n\n\n\n<p><em>Se quiser, posso te ajudar com: sistema de salvamento\/carregamento, adi\u00e7\u00e3o de invent\u00e1rio e objetos, \u00e1udio ambiente ou efeitos sonoros e vers\u00e3o com imagens e transi\u00e7\u00f5es.<\/em><\/p>\n\n\n\n<p>Tentador mas para o teste pretendido, o resultado j\u00e1 estava satisfat\u00f3rio. Quem sabe numa outra oportunidade porque o barato agora \u00e9 testar se ele entende &#8220;fazer em html&#8221;. Explico melhor: com um execut\u00e1vel como feito anteriormente, o jogo s\u00f3 rodar\u00e1 depois de baixado e descompactado e ainda por cima numa m\u00e1quina Windows. Modelo ideal para uma Steam, por exemplo, mas agora eu quero algo mais universal e que rode em qualquer equipamento (sem necessariamente produzir vers\u00f5es individualizadas).<\/p>\n\n\n\n<p>&#8220;Crie um jogo de computador para navegadores web, que resulte numa narrativa n\u00e3o linear com op\u00e7\u00f5es de direcionamento por decis\u00e3o do usu\u00e1rio, cujo enredo seja uma aventura em uma regi\u00e3o montanhosa de Minas Gerais, em busca de um artefato arqueol\u00f3gico.&#8221;<\/p>\n\n\n\n<p>Mudei o enredo apenas para diferenciar as produ\u00e7\u00f5es, afinal o prop\u00f3sito \u00e9 o c\u00f3digo e n\u00e3o necessariamente o tema. Alguns minutos depois:<\/p>\n\n\n\n<p><em>Aqui est\u00e1 o esqueleto de um jogo interativo para navegadores, usando React, com enredo n\u00e3o linear ambientado nas montanhas de Minas Gerais. O jogador toma decis\u00f5es que afetam o rumo da narrativa em busca de um artefato arqueol\u00f3gico.<\/em><\/p>\n\n\n\n<p><em>Se quiser, posso adicionar efeitos sonoros, imagens, trilhas alternativas ou novos personagens. Quer expandir mais algum elemento?<\/em><\/p>\n\n\n\n<p>Come\u00e7ou a ficar interessante e embora a interface do jogo seja bem simples, a tenta\u00e7\u00e3o foi grande.<\/p>\n\n\n\n<p><em>Show! Me diz a\u00ed: o que voc\u00ea gostaria de expandir ou adicionar primeiro? Pode ser:<\/em><\/p>\n\n\n\n<p><em>Novas rotas da hist\u00f3ria (mais caminhos, finais alternativos\u2026);<\/em><\/p>\n\n\n\n<p><em>Personagens secund\u00e1rios com intera\u00e7\u00f5es \u00fanicas;<\/em><\/p>\n\n\n\n<p><em>Invent\u00e1rio de itens com impacto nas decis\u00f5es;<\/em><\/p>\n\n\n\n<p><em>Imagens ou trilha sonora para imers\u00e3o;<\/em><\/p>\n\n\n\n<p><em>Sistema de progresso\/salvamento;<\/em><\/p>\n\n\n\n<p><em>Alguma mec\u00e2nica diferente (tipo minigame, quebra-cabe\u00e7a etc.);<\/em><\/p>\n\n\n\n<p><em>\u00c9 s\u00f3 escolher por onde come\u00e7amos!<\/em><\/p>\n\n\n\n<p>Escolhi Invent\u00e1rio de itens para ver como ele lidaria com elementos flutuantes em narrativas.<\/p>\n\n\n\n<p><em>Boa! Um invent\u00e1rio vai dar mais profundidade \u00e0 jogabilidade e permitir escolhas mais complexas.<\/em><\/p>\n\n\n\n<p><em>Ideia b\u00e1sica: vamos criar um sistema simples de invent\u00e1rio onde itens podem ser adquiridos em certos pontos da hist\u00f3ria (ex: o amuleto).<\/em><\/p>\n\n\n\n<p><em>O invent\u00e1rio afeta as op\u00e7\u00f5es dispon\u00edveis ou os resultados. Os itens s\u00e3o exibidos na interface (tipo um painel no topo ou lateral).<\/em><\/p>\n\n\n\n<p><em>O que vamos implementar: estado do invent\u00e1rio com React (useState), fun\u00e7\u00e3o para adicionar itens, exibir o invent\u00e1rio na interface e condi\u00e7\u00f5es nas escolhas baseadas no invent\u00e1rio (ex: s\u00f3 passa na floresta se tiver o amuleto).<\/em><\/p>\n\n\n\n<p>&#8220;Adicione uma tela de status do personagem.&#8221;<\/p>\n\n\n\n<p><em>O que vou implementar: um painel &#8220;Status do personagem&#8221; acima ou ao lado do invent\u00e1rio, estados para vida e conhecimento, exemplo de uso: perder vida na caverna ou ganhar conhecimento na biblioteca.<\/em><\/p>\n\n\n\n<p><em>Posso mandar esse upgrade agora? Quer adicionar mais algum atributo?<\/em><\/p>\n\n\n\n<p>Dai para frente foi um frenesi de ajustes, uso de tecnologias das quais nunca tinha ouvido falar, at\u00e9 que finalmente pedi para fazer um html simples, para que fosse colocado no meu pr\u00f3prio site, sem exig\u00eancias de instala\u00e7\u00f5es de qualquer tipo:<\/p>\n\n\n\n<p><em>Perfeito! Vamos ent\u00e3o recriar o jogo em HTML + CSS + JS puro, sem React, sem build, sem nada complicado \u2014 s\u00f3 arquivos simples que funcionam direto ao abrir o index.html.<\/em><\/p>\n\n\n\n<p><em>Vou fazer isso agora pra voc\u00ea. Um instante, j\u00e1 te envio o zip.<\/em><\/p>\n\n\n\n<p>E assim terminou o teste para todos os tipos de equipamentos. N\u00e3o toquei em nenhuma linha de c\u00f3digo e deixei tudo a cargo do ChatGPT. E n\u00e3o \u00e9 que funcionou? Pode ver o resultado clicando aqui: https:\/\/tilt.net\/testeIA.<\/p>\n\n\n\n<p>Minha conclus\u00e3o? Fazer um jogo a IA faz. Funcional? Totalmente. Instigante? Sim, rode os dois exemplos e ver\u00e1 que a IA entendeu direitinho sobre o que era o jogo. E visualmente? Bonitinhos mas ordin\u00e1rios e isso pode ser a alma do designer falando mais alto. Talvez se eu acrescentasse para ela usar um visual de quadrinhos dos anos 1920 as coisas acontecessem de modo diferente.<\/p>\n\n\n\n<p>Neste momento, podemos entender que o futuro da produ\u00e7\u00e3o de jogos j\u00e1 chegou e s\u00f3 n\u00e3o v\u00ea (e aproveita) quem n\u00e3o quiser. Bora fazer experimentos desse tipo e ver o que rola no final. Vamos ter um espa\u00e7o s\u00f3 para isso na TILT online, mais especificamente no club VIP.<\/p>\n\n\n\n<p><strong>Em tempo:<\/strong> esta coluna em especial \u00e9 dedicada ao meu grande amigo <strong>Divino Leit\u00e3o<\/strong>, game designer como eu, desde os prim\u00f3rdios da computa\u00e7\u00e3o e que faleceu dias atr\u00e1s (13\/04\/2025). Tenho certeza absoluta de que ao ler este texto, ele mandaria zaps e mais zaps com ideias pra gente testar.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ser\u00e1 que a IA \u00e9 capaz de criar jogos funcionais e instigantes?<br \/>\nDescubra como o autor utilizou IA, via ChatGPT, para criar jogos de computador em Delphi e React. Neste artigo, veja a experi\u00eancia ao desenvolver uma aventura em uma ilha deserta e outra nas montanhas de Minas Gerais, explorando as capacidades da IA generativa na cria\u00e7\u00e3o de narrativas interativas.<\/p>\n","protected":false},"author":78,"featured_media":64145,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[178,1582,6],"tags":[1139,1137,1393],"class_list":["post-64142","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-artigos","category-renato_degiovani","category-ultimas-noticias","tag-criacao-de-jogos","tag-ia","tag-renato-degiovani"],"wpmagazine_modules_lite_featured_media_urls":{"thumbnail":["https:\/\/quebrandocontrole.com.br\/site\/wp-content\/uploads\/2025\/04\/Topo-Colunas-150x150.png",150,150,true],"cvmm-medium":["https:\/\/quebrandocontrole.com.br\/site\/wp-content\/uploads\/2025\/04\/Topo-Colunas-300x300.png",300,300,true],"cvmm-medium-plus":["https:\/\/quebrandocontrole.com.br\/site\/wp-content\/uploads\/2025\/04\/Topo-Colunas-305x207.png",305,207,true],"cvmm-portrait":["https:\/\/quebrandocontrole.com.br\/site\/wp-content\/uploads\/2025\/04\/Topo-Colunas-400x600.png",400,600,true],"cvmm-medium-square":["https:\/\/quebrandocontrole.com.br\/site\/wp-content\/uploads\/2025\/04\/Topo-Colunas-600x600.png",600,600,true],"cvmm-large":["https:\/\/quebrandocontrole.com.br\/site\/wp-content\/uploads\/2025\/04\/Topo-Colunas-1024x720.png",1024,720,true],"cvmm-small":["https:\/\/quebrandocontrole.com.br\/site\/wp-content\/uploads\/2025\/04\/Topo-Colunas-130x95.png",130,95,true],"full":["https:\/\/quebrandocontrole.com.br\/site\/wp-content\/uploads\/2025\/04\/Topo-Colunas.png",1280,720,false]},"categories_names":{"178":{"name":"Artigos","link":"https:\/\/quebrandocontrole.com.br\/site\/category\/artigos\/"},"1582":{"name":"Renato Degiovani","link":"https:\/\/quebrandocontrole.com.br\/site\/category\/artigos\/renato_degiovani\/"},"6":{"name":"\u00daltimas not\u00edcias","link":"https:\/\/quebrandocontrole.com.br\/site\/category\/noticias\/ultimas-noticias\/"}},"tags_names":{"1139":{"name":"Cria\u00e7\u00e3o de Jogos","link":"https:\/\/quebrandocontrole.com.br\/site\/tag\/criacao-de-jogos\/"},"1137":{"name":"IA","link":"https:\/\/quebrandocontrole.com.br\/site\/tag\/ia\/"},"1393":{"name":"Renato Degiovani","link":"https:\/\/quebrandocontrole.com.br\/site\/tag\/renato-degiovani\/"}},"comments_number":"0","_links":{"self":[{"href":"https:\/\/quebrandocontrole.com.br\/site\/wp-json\/wp\/v2\/posts\/64142","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/quebrandocontrole.com.br\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/quebrandocontrole.com.br\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/quebrandocontrole.com.br\/site\/wp-json\/wp\/v2\/users\/78"}],"replies":[{"embeddable":true,"href":"https:\/\/quebrandocontrole.com.br\/site\/wp-json\/wp\/v2\/comments?post=64142"}],"version-history":[{"count":0,"href":"https:\/\/quebrandocontrole.com.br\/site\/wp-json\/wp\/v2\/posts\/64142\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/quebrandocontrole.com.br\/site\/wp-json\/wp\/v2\/media\/64145"}],"wp:attachment":[{"href":"https:\/\/quebrandocontrole.com.br\/site\/wp-json\/wp\/v2\/media?parent=64142"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/quebrandocontrole.com.br\/site\/wp-json\/wp\/v2\/categories?post=64142"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/quebrandocontrole.com.br\/site\/wp-json\/wp\/v2\/tags?post=64142"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}