<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Pt-Br on Canoi Gomes</title>
    <link>https://notes.canoigomes.com.br/tags/pt-br/</link>
    <description>Recent content in Pt-Br on Canoi Gomes</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>pt-br</language>
    <managingEditor>canoigomes@proton.me (Canoi Gomes)</managingEditor>
    <webMaster>canoigomes@proton.me (Canoi Gomes)</webMaster>
    <lastBuildDate>Tue, 31 Dec 2024 19:00:00 -0300</lastBuildDate><atom:link href="https://notes.canoigomes.com.br/tags/pt-br/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Minha Jornada Pessoal no Desenvolvimento de Game Engines</title>
      <link>https://notes.canoigomes.com.br/posts/2024-12-31-minha-jornada-pessoal-no-desenvolvimento-de-game-engines/</link>
      <pubDate>Tue, 31 Dec 2024 19:00:00 -0300</pubDate>
      <author>canoigomes@proton.me (Canoi Gomes)</author>
      <guid>https://notes.canoigomes.com.br/posts/2024-12-31-minha-jornada-pessoal-no-desenvolvimento-de-game-engines/</guid>
      
      <description>&lt;p&gt;Recentemente lancei um projeto que vinha trabalhando desde o ano passado, a &lt;a href=&#34;https://github.com/canoi12/selene&#34;&gt;selene&lt;/a&gt;, mas parando pra fazer uma análise do que desenvolvi até agora e das ideias que ainda tenho para a mesma, vi que muitos dos conceitos apareciam nos meus primeiros projetos de engine, nem que seja em forma de protótipo ou ideia. Por mais que um projeto seu nunca veja a luz do dia, ou não venha a ser finalizado, só de colocar um esforço de aprendizado ali já serve de muita coisa. E fazendo essa análise dos projetos em que já trabalhei, acabei achando uns paralelos bem interessantes de como meu passo seguinte acaba meio que sendo influenciado pela minha dificuldade no momento. Aqui vou tentar filtrar mais sobre game engines, frameworks e projetos do tipo, mas até mesmo meu tempo usando diversas engines como GameMaker, Construct 2, Godot, etc, foram valiosos e moldaram de certa forma meus interesses.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Reestruturando a Selene Framework</title>
      <link>https://notes.canoigomes.com.br/posts/2024-07-16-reestruturando-a-selene-framework/</link>
      <pubDate>Tue, 16 Jul 2024 19:00:00 -0300</pubDate>
      <author>canoigomes@proton.me (Canoi Gomes)</author>
      <guid>https://notes.canoigomes.com.br/posts/2024-07-16-reestruturando-a-selene-framework/</guid>
      
      <description>&lt;p&gt;Já tem um tempo que sigo nessa empreitada de achar um formato interessante para essa lib. Como já comentei em uma &lt;a href=&#34;https://notes.canoigomes.com.br/post/2023-10-19-selene-engine-pt-br&#34;&gt;postagem anterior&lt;/a&gt;, essa lib nasceu com uma proposta bem parecida com um LÖVE da vida, com um core todo escrito em C (como render e sistema de áudio) e um frontend em Lua que faz uso dessas estruturas.&lt;/p&gt;
&lt;p&gt;Porém recentemente decidi abandonar essa ideia do core em C, e fazer a framework em Lua, ou seja, todo o renderer e seus tipos como Imagens, Canvas, Batch, entre outros, serão escritos em Lua. E o core em C seria apenas um wrapper para algumas libs, como &lt;code&gt;SDL2&lt;/code&gt;, &lt;code&gt;OpenGL&lt;/code&gt;. Também uso para expor algumas funções de filesystem também como, &lt;code&gt;mkdir&lt;/code&gt;, ou listar arquivos em um diretório, coisas que Lua não tem por padrão. Com isso eu acabo deixando o funcionamento do meu executável bem simples, já que é um executável que permite a execução de scripts Lua e possui algumas libs uteis. Embutido também há um pequeno script em Lua que vai ser responsável por fazer o &amp;ldquo;boot&amp;rdquo; da framework.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Selene Engine [PT-BR]</title>
      <link>https://notes.canoigomes.com.br/posts/selene/2023-10-19-selene-engine-pt-br/</link>
      <pubDate>Thu, 19 Oct 2023 12:37:00 +0000</pubDate>
      <author>canoigomes@proton.me (Canoi Gomes)</author>
      <guid>https://notes.canoigomes.com.br/posts/selene/2023-10-19-selene-engine-pt-br/</guid>
      
      <description>&lt;p&gt;Nas ultimas semanas estava focado em reestruturar um dos meus projetos que é basicamente uma game framework/engine que utilize Lua como linguagem de script, o projeto inicialmente nasceu como &lt;a href=&#34;https://github.com/canoi12/poti&#34;&gt;poti&lt;/a&gt;, mas há algum tempo estava tentando ressignificar outro dos meus projetos, a &lt;a href=&#34;https://github.com/canoi12/selene&#34;&gt;selene&lt;/a&gt;, e por achar que o nome casa mais com o projeto em questão, decidi fazer essa troca.&lt;/p&gt;
&lt;p&gt;Inicialmente eu estava focado em fazer a framework base em C e operar ela utilizando Lua, então a ideia seria ter um renderizador básico em C, uma engine de áudio básica também, etc. Maaas, decidi seguir por um caminho diferente, e até explorar mais a ideia inicial do projeto que é a de ter um core simples e o projeto ser o mais modular possível via Lua, então ao invés de construir essas estruturas em C usando as libs (SDL2, OpenGL, &amp;hellip;), achei melhor expor as funções das lib pra Lua e construir a framework lá.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>bitEngine - criando janelas multiplataforma</title>
      <link>https://notes.canoigomes.com.br/posts/2023-04-24-bite-multiplatform-engine/</link>
      <pubDate>Sun, 23 Apr 2023 10:02:00 +0000</pubDate>
      <author>canoigomes@proton.me (Canoi Gomes)</author>
      <guid>https://notes.canoigomes.com.br/posts/2023-04-24-bite-multiplatform-engine/</guid>
      
      <description>&lt;p&gt;Tirando um pouco da poeira daqui.&lt;/p&gt;
&lt;p&gt;Dessa vez decidir começar um projeto sobre uma parte que venho querendo aprender a um tempo, que seria como criar o contexto básico pra um jogo (janela, input, gráficos e áudios) utilizando somente bibliotecas do próprio sistema, em resumo, eu queria entender mais como bibliotecas como &lt;a href=&#34;https://libsdl.org&#34;&gt;SDL2&lt;/a&gt; e &lt;a href=&#34;https://libglfw.org&#34;&gt;GLFW&lt;/a&gt; funcionam por baixo dos panos.&lt;/p&gt;
&lt;p&gt;Nisso (como sempre faço na minha vida) decidi criar um projeto pra focar nos estudos dessa parada, &lt;a href=&#34;https://github.com/canoi12/bite&#34;&gt;bite&lt;/a&gt;, a ideia é:&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Reescrevendo a Tea</title>
      <link>https://notes.canoigomes.com.br/posts/2021-08-05-reescrevendo-tea/</link>
      <pubDate>Thu, 05 Aug 2021 10:35:00 +0000</pubDate>
      <author>canoigomes@proton.me (Canoi Gomes)</author>
      <guid>https://notes.canoigomes.com.br/posts/2021-08-05-reescrevendo-tea/</guid>
      
      <description>&lt;p&gt;Bom, e mais uma vez, to reescrevendo uma biblioteca. Primeiramente queria explicar um pouco o motivo por trás, e isso vem da filosofia que pretendo seguir com o projeto &lt;a href=&#34;https://github.com/cafe-engine&#34;&gt;Cafe&lt;/a&gt;, onde eu quero que ela seja construída utilizando libs simples e com finalidades bem específicas:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tea: parte gráfica&lt;/li&gt;
&lt;li&gt;Latte: sistema de arquivos&lt;/li&gt;
&lt;li&gt;Mocha: áudio&lt;/li&gt;
&lt;li&gt;Coffee: linguagem de script&lt;/li&gt;
&lt;li&gt;&amp;hellip;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bom, como citado aí, o objetivo inicial da &lt;code&gt;Tea&lt;/code&gt; era lidar com tudo que fosse relacionado a gráficos na engine. No projeto que eu estava focando anteriormente, o &lt;a href=&#34;https://github.com/canoi12/tinycoffee&#34;&gt;tiny coffee&lt;/a&gt;, utilizava GLFW para lidar com input e gerenciamento de janelas e OpenGL 3.2 para a renderização, a grande vantagem de se utilizar GLFW era a facilidade de se compilar estaticamente no projeto, porém tem a questão de o render precisar ser todo escrito do zero e com uma API gráfica (OpenGL, Vulkan, ..). Decidir então tentar novamente a &lt;a href=&#34;https://www.libsdl.org&#34;&gt;SDL2&lt;/a&gt;, que já tem um render próprio (além de também dar a possibilidade de criar um context OpenGL e Vulkan) e é extremamente portável.&lt;/p&gt;</description>
      
    </item>
    
  </channel>
</rss>
