Aprendendo a desenvolver jogos

Já faz algum tempo em que estou interessado a aprender a desenvolver jogos, apenas por diversão e aprendizado mesmo. A área de desenvolvimento de jogos tem algumas coisas muito diferentes do desenvolvimento que estou acostumado, por exemplo, em alguns momentos é comum carregar tudo na memória no inicio da execução para depois só ir exibindo, algo que as vezes pode ser dispendioso em um programa que precisa atender diversas requisições o mais rápido possível. ...

July 8, 2021 · Lucas Polo

A infraestrutura da minha mesa

Recentemente tirei uma certificação de analista de infraestrtura da minha mesa! 😂 Piadas a parte, consegui deixar minha mesa de trabalho muito organizada utilizando alguns acessórios bem diferentes. Possuo dois computadores, sendo um notebook do trabalho e o meu desktop onde estudo, programo e jogo. Além dos computadores tenho dois monitores na minha mesa, um na vertical que costumo trabalhar dividido em dois (muito útil para deixar chats abertos) e outro widescreen (que também costuma trabalhar dividido) na horizontal. ...

July 5, 2021 · Lucas Polo

Pequeno achado: Por que numeração deve iniciar em zero? De Edsger Dijkstra

Talvez você não conheça, mas Edsger W. Dijkstra é um dos nomes mais proeminentes da história da ciência da computação, sendo uma das pessoas que trabalhou na área ainda nos primeiros protótipos de computadores. Caso você tenha estudado algoritmos já deve ter esbarrado no algoritmo de Dijkstra, que é para encontrar o menor caminho em grafos, mas caso ainda não tenha esbarrado em nenhum trabalho dele, vale apena conhecer este artigo (em inglês) em que ele explica por que a número em sequências numéricas deve iniciar em zero, artigo indicado no excelente livro Python Fluente do Luciano Ramalho. ...

July 1, 2021 · Lucas Polo

Lendo arquivos CSV em Python e fazendo requisições - Parte 1

Algumas vezes surge a necessidade de fazermos algum processamento em uma base de dados, como requisições e afins. É muito comum neste momento recebermos um CSV ou até mesmo uma planilha do Excel, ai neste momento devemos escrever um script que processe essa informação. Suponhamos que precisamos atualizar o nome de algum cliente dado seus id’s e nomes, seguindo um arquivo neste modelo: 1 2 3 4 5 6 7 8 id,nome 1,Cebolinha 2,Monica 3,Magali 4,Cascão 5,Penadinho 6,Alminha 7,Horácio A abordagem mais simples que eu sigo é iniciar criando uma função primária, que no geral chamo de main e iterar no arquivo CSV usando um DictReader: ...

June 28, 2021 · Lucas Polo

Fira Code: a fonte para programadores

As vezes não nos atentamos aos pequenos detalhes da nosso dia a dia, e após anos programando e lendo código eu esbarrei numa coisa muito interessante: fontes para desenvolvedores. Estas fontes específicas para programação ajudam a realçar algumas características específicas do nosso cotidiano, como simbolos e outros detalhes, como também proprorcionam uma leitura agradável do código. A que venho usando nos último tempos é a Fira Code, uma fonte criada com uma funcionalide muito interessante, as ligaturas, que são conexões entre simbolos que semanticamente significam uma única coisa. Por exemplo, por mais que >= sejam dois simbolos, o significado é únificado, assim a Fira Code faz o seguinte quando utilizamos ele: ...

June 24, 2021 · Lucas Polo

O poder do coletivo e o caminho das formigas

Alguns anos atrás esbarrei em um vídeo incrível do Nerdologia sobre O poder do Coletivo, que falava como a inteligência das populações poderiam chegar em resultados excelentes para diversas questões (salvo algumas exceções, como polarizações). Todo esse conceito anda lado a lado com o conceito de Big Data e inteligência artifical, onde analisando dados individuais podemos chegar a resultados ótimos pois o erro da multidão tende a se aproximar de zero: ...

June 21, 2021 · Lucas Polo

Dependências de montagem (build) do Python

Ocasionalmente precisamos instalar o Python na máquina montando (buildando) ele pelo código fonte, seja através de ferramentas como o pyenv ou o asdf como até manualmente. Para isso são necessárias algumas bibliotecas instaladas, segue a lista delas e o comando para instalar em sistemas baseados no Debian: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 sudo apt-get install dpkg-dev \ build-essential \ python-dev \ python3-dev \ libncursesw5-dev \ libsqlite3-dev \ libreadline-dev \ libbz2-dev \ libffi-dev \ libssl-dev \ libgdbm-dev \ zlib1g-dev \ libjpeg-dev \ libtiff-dev \ libpq-dev \ libxml2-dev \ libxslt1-dev \ libsdl2-dev \ libsm-dev \ libxtst-dev \ libcurl4-openssl-dev

June 17, 2021 · Lucas Polo

Resenha do Livro: Fundamentos de Algoritmos para Jogos Digitais de David Santos

Recentemente eu estava em uma empreitada para aprender um pouco mais sobre desenvolvimento de jogos e comecei a procurar alguns materiais na internet. Hoje em dia boa parte desses materiais são voltados para os grandes frameworks de desenvolvimento de jogos, como o Unit, o que é muito interessante, pois além de facilitarem fazer coisas complexas também já se encaixam com os requisitos do mercado que adotam em massa estes frameworks. Porém eu não estava necessariamente querendo aprender a fazer coisas complexas, mas aprender as bases do desenvolvimento de jogos e tive uma grata surpresa ao descobrir o livro Fundamentos de algoritmos para jogos digitais do David V. Santiago (versão Java). ...

June 14, 2021 · Lucas Polo

Criando entradas de desktop no Ubuntu

Ocasionalmente baixamos diretamente o binário ou até mesmo criamos as nossas aplicações e queremos que elas apareçam na lista de aplicações do Ubuntu com icones e tudo. Para fazer isso é bem simples, basta criar um arquivo no diretório ~/.local/share/applications/, exemplo ~/.local/share/applications/meu_aplicativo.desktop. Depois disso basta preencher o arquivo com o seguinte formato: 1 2 3 4 5 6 7 8 [Desktop Entry] Encoding=UTF-8 Name=Nome da Aplicação Exec=/caminho/para/executavel Icon=/caminho/para/imagem/do/icone Terminal=false Type=Application Categories=Development; Agora já estará disponível o ícone na lista de aplicativos e você poderá invocar o aplicativo pelo launcher.

June 11, 2021 · Lucas Polo

Minhas ferramentas do dia a dia - Aplicações

No dia a dia utilizo muitas aplicações para auxiliar no meu processo de trabalho, as principais são estas: DBeaver Community: este aqui é um destaque, aplicativo que permite acesso a diversos bancos de dados para gerenciamento e execução de queries. Já utilizei ele com PostgreSQL, MySQL, SQLite, MS SQL Server, Oracle e até Informix. Não digo que ele é perfeito, mas como permite a utilização com diversos bancos, é muito prático pois mantém tudo concentrado num único app. ...

June 7, 2021 · Lucas Polo