<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Fabio's Blog</title><link>https://blog.fabrb.com/</link><description>Recent content on Fabio's Blog</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 16 Apr 2026 13:21:33 -0300</lastBuildDate><atom:link href="https://blog.fabrb.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Global Game Jam 2019 — A Experiência Deste Que Vos Fala</title><link>https://blog.fabrb.com/2026/global-game-jam-2019-a-experiencia-deste-que-vos-fala/</link><pubDate>Thu, 16 Apr 2026 13:21:33 -0300</pubDate><guid>https://blog.fabrb.com/2026/global-game-jam-2019-a-experiencia-deste-que-vos-fala/</guid><description>&lt;p&gt;&lt;em&gt;Originalmente, este post foi criado em 31 de janeiro de 2019 na plataforma &lt;a href="https://medium.com/@fab.rb/pt-br-global-game-jam-2019-a-experi%C3%AAncia-deste-que-vos-fala-1ff08365053f"&gt;Medium&lt;/a&gt;. Para fins de centralizar todos os posts em um único lugar, estou replicando ele neste blog pessoal. Abraços!&lt;/em&gt;&lt;/p&gt;
&lt;hr class="wp-block-separator has-alpha-channel-opacity"/&gt;
&lt;p id="fe6d"&gt;Praticamente pouca vivência com desenvolvimento de games, ansiedade de sobra em chegar a um lugar sozinho, sono, aquela agonia faltando uma hora pro prazo acabar e a emoção de ver seu filhote ser apresentado ao mundo. Eu diria que participar da #GlobalGameJam2019 foi uma experiência que eu, Fábio, necessito viver mais, e que outros deveriam fazer o mesmo. E nada mais do que compartilhar o que foram essas três noites e dois dias de evento com aqueles que estão lendo agora. Isto, você mesmo. Segue “nois” neste pequeno texto.&lt;/p&gt;</description></item><item><title>1d6 - Implementing dice roll [Godot Engine]</title><link>https://blog.fabrb.com/2025/how-to-dice/</link><pubDate>Tue, 04 Mar 2025 16:47:52 -0300</pubDate><guid>https://blog.fabrb.com/2025/how-to-dice/</guid><description>&lt;figure class="wp-block-image size-full"&gt;&lt;img src="https://blog.fabrb.com/wp-content/uploads/2025/03/kazam_screencast_00000-ezgif.com-video-to-gif-converter.gif" alt="" class="wp-image-191"/&gt;&lt;/figure&gt;
&lt;p&gt;While thinking about the project for &lt;a href="https://itch.io/jam/brackeys-13"&gt;Brackeys Game Jam 2025.1&lt;/a&gt;, I decided to go for a shameful copy of Balatro, but instead of a deck of cards the player would roll dice to score points. The project name: Snake Eyes &amp;amp; The Dicey Vice (Yes, I am in a KGLW vibe lately)&lt;/p&gt;
&lt;p&gt;I scrapped the project because, at the end of the day, it didn't follow the theme. But one major point emerged during development: How do I even implement the logic for a dice roll? Who do I find out the result of the roll? Can I somehow make it customizable?&lt;/p&gt;</description></item><item><title>Capturing input in real time [Zig 0.14]</title><link>https://blog.fabrb.com/2024/capturing-input-in-real-time-zig-0-14/</link><pubDate>Tue, 09 Jul 2024 13:04:04 -0300</pubDate><guid>https://blog.fabrb.com/2024/capturing-input-in-real-time-zig-0-14/</guid><description>&lt;p&gt;&lt;em&gt;Since I couldn't easily find the answer to this problem, I decided to make this post. Keep in mind that I am still learning the language, so the code snippets might not be optimal&lt;/em&gt;&lt;/p&gt;
&lt;hr class="wp-block-separator has-alpha-channel-opacity"/&gt;
&lt;p&gt;I was trying to make a system to move around the terminal when the user presses WASD. Reading input and updating position are easy tasks.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The problem:&lt;/strong&gt; When reading input, the user needs to press RETURN in order to complete the operation. I would need to change this interaction so that every time a key is pressed it checks which character was used.&lt;/p&gt;</description></item><item><title>Instalando Zig 0.14.0 no Linux</title><link>https://blog.fabrb.com/2024/instalando-zig-0-14-0-no-linux/</link><pubDate>Sat, 06 Jul 2024 15:48:53 -0300</pubDate><guid>https://blog.fabrb.com/2024/instalando-zig-0-14-0-no-linux/</guid><description>&lt;p&gt;&lt;em&gt;As instruções desta instalação são encontradas no site &lt;a href="https://ziglang.org/learn/getting-started/"&gt;https://ziglang.org/learn/getting-started/&lt;/a&gt; e &lt;a href="https://zig.guide/getting-started/installation/"&gt;https://zig.guide/getting-started/installation/&lt;/a&gt;. &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Por mais simples que seja, o intuito é ter um conteúdo em PT-BR sobre como o ambiente é configurado… E também como desculpa da criação de um novo post aqui.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;E saiba que estou focando na configuração do ambiente em uma máquina Linux. Alguns comandos podem ser diferentes no Windows.&lt;/em&gt;&lt;/p&gt;
&lt;hr class="wp-block-separator has-alpha-channel-opacity"/&gt;
&lt;p&gt;Primeiro de tudo, precisamos realizar o download do pacote Zig diretamente no site:&lt;/p&gt;</description></item><item><title>Criando animações simples com Tween [Godot Engine]</title><link>https://blog.fabrb.com/2024/criando-animacoes-simples-com-tween/</link><pubDate>Thu, 18 Apr 2024 20:33:29 -0300</pubDate><guid>https://blog.fabrb.com/2024/criando-animacoes-simples-com-tween/</guid><description>&lt;p&gt;Quer fazer animações sem precisar, de fato, implementar um zilhão de linhas de código pra fazer uma animação? Tweens estão aí pra te ajudar, meu caro.&lt;/p&gt;
&lt;p&gt;Neste post irei mostrar, através de um básico projeto de plataforma, como Tweens são simples de se usar, e como você pode fazer animações básicas com ele.&lt;/p&gt;
&lt;figure class="wp-block-image aligncenter size-full"&gt;&lt;img src="https://blog.fabrb.com/wp-content/uploads/2024/04/18-193436-2d_plataform_proto02_DEBUG.gif" alt="" class="wp-image-104"/&gt;&lt;/figure&gt;
&lt;p&gt;Vamos considerar que temos a estrutura de um mapa e de um player movimentável já foi previamente implementado. E o player, para este exemplo, seguirá esta estrutura:&lt;/p&gt;</description></item><item><title>Como carregar um Tilemap a partir de uma imagem [Godot Engine]</title><link>https://blog.fabrb.com/2024/como-carregar-um-tilemap-a-partir-de-uma-imagem/</link><pubDate>Tue, 02 Apr 2024 22:00:28 -0300</pubDate><guid>https://blog.fabrb.com/2024/como-carregar-um-tilemap-a-partir-de-uma-imagem/</guid><description>&lt;p&gt;Aqui irei mostrar como transformar uma imagem como esta:&lt;/p&gt;
&lt;figure class="wp-block-image aligncenter size-full is-resized has-custom-border is-style-default"&gt;&lt;img src="https://blog.fabrb.com/wp-content/uploads/2024/04/stage0000.bmp" alt="" class="wp-image-75" style="border-style:none;border-width:0px;border-radius:0px;object-fit:cover;width:69px;height:auto"/&gt;&lt;/figure&gt;
&lt;p&gt;Em um mapa dentro de um TileMap:&lt;/p&gt;
&lt;figure class="wp-block-image aligncenter size-full has-custom-border is-style-default"&gt;&lt;img src="https://blog.fabrb.com/wp-content/uploads/2024/04/01-200613-22a226.gif" alt="" class="wp-image-74" style="border-style:none;border-width:0px;border-radius:0px"/&gt;&lt;/figure&gt;
&lt;hr class="wp-block-separator has-alpha-channel-opacity"/&gt;
&lt;h2 class="wp-block-heading"&gt;&lt;strong&gt;A estrutura&lt;/strong&gt;&lt;/h2&gt;
&lt;p&gt;Ela será composta de um nó pai do tipo Node2D (aqui chamado de &lt;em&gt;stage_builder_tutorial&lt;/em&gt;), e um filho do tipo TileMap:&lt;/p&gt;
&lt;figure class="wp-block-image aligncenter size-full"&gt;&lt;img src="https://blog.fabrb.com/wp-content/uploads/2024/04/image-9.png" alt="" class="wp-image-91"/&gt;&lt;/figure&gt;
&lt;p&gt;O nó pai irá ter um script controlador da geração de fases, e foram criadas as seguintes propriedades:&lt;/p&gt;
&lt;ol class="wp-block-list"&gt;
&lt;li&gt;Propriedade relacionadas à imagem recebida
&lt;ul class="wp-block-list"&gt;
&lt;li&gt;&lt;strong&gt;stage&lt;/strong&gt;: &lt;em&gt;Texture2D &lt;/em&gt;-&amp;gt; Vai comportar a imagem que será transformada em uma fase.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Propriedades relacionadas a estrutura de cada bloco (ou tile)
&lt;ul class="wp-block-list"&gt;
&lt;li&gt;&lt;strong&gt;resource_tile_colors&lt;/strong&gt;: &lt;em&gt;Array &lt;/em&gt;-&amp;gt; Vai controlar qual quais as cores que serão esperadas. É um array que comporta campos do tipo Color.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;resource_tile_ids&lt;/strong&gt;: &lt;em&gt;Array &lt;/em&gt;-&amp;gt; Vai controlar os ids dos blocos. É um array que comporta campos do tipo Int.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A solução aqui se diz criar estes arrays que possuem o mesmo tamanho para o controle de cada bloco. Existir outras formas de se controlar estas informações, mas vamos seguir desta forma neste momento.&lt;/p&gt;</description></item><item><title>Como passar parâmetros entre cenas [Godot Engine]</title><link>https://blog.fabrb.com/2024/como-passar-parametros-entre-cenas/</link><pubDate>Mon, 18 Mar 2024 07:03:58 -0300</pubDate><guid>https://blog.fabrb.com/2024/como-passar-parametros-entre-cenas/</guid><description>&lt;p&gt;Este exemplo irá fazer com que um valor seja digitado na cena principal, e este valor será reconhecido na cena secundária.&lt;/p&gt;
&lt;p&gt;A estrutura do exemplo seguirá desta forma:&lt;/p&gt;
&lt;figure class="wp-block-image aligncenter size-full"&gt;&lt;img src="https://blog.fabrb.com/wp-content/uploads/2024/03/image.png" alt="" class="wp-image-39"/&gt;&lt;/figure&gt;
&lt;p&gt;Primeiro, vamos construir a base da cena &lt;em&gt;main-scene.tscn&lt;/em&gt;. Para simplificar este exemplo, ele será composto por apenas um controle &lt;em&gt;LineEdit&lt;/em&gt;.&lt;/p&gt;
&lt;figure class="wp-block-image size-full"&gt;&lt;img src="https://blog.fabrb.com/wp-content/uploads/2024/03/image-1.png" alt="" class="wp-image-40"/&gt;&lt;/figure&gt;
&lt;p&gt;Em seguida, iremos criar um script básico que irá cuidar de chamar a outra cena, passando o valor digitado no input. Ficará desta forma:&lt;/p&gt;</description></item></channel></rss>