Olá, mundo!
Recentemente eu
venho acompanhando a incrível série de vídeos Handmade Hero feita
pelo Casey Muratori no seu canal Molly Rocket e eu quero falar sobre
o que eu estou aprendendo e como estou aprendendo isso.
Eu tenho que dizer
que pulei as streams introdutórias pois eu já sabia o básico de C
(ou, pelo menos, eu achava que sabia). Foi um erro, pois eu perderia
bem menos tempo caso eu tivesse assistido todos os episódios
introdutórios. Mas okay, vamos direto para o real primeiro episódio
da série. Bem, na verdade eu pulei ele também pois eu usaria o
Visual Studio. Esse primeiro episódio era sobre configurar o
compilador, mas com o Visual Studio ele já vem configurado.
Okay, no segundo
episódio eu aprendi a como abrir uma janela usando a API do Windows.
Foi um pouco difícil de fazer, mas, e isso vai se repetir, eu só
aprendi quando decidi fazer sem acompanhar o vídeo. Quando eu saio
do tutorial, seja reimplementando algo visto nele ou implementando
algo novo, eu definitivamente aprendo.
Outra dica é usar o
Visual Studio e seu Debugger, pois ele vai te ajudar a entender as
variáveis e seus tipos que, acredite, não são nomeadas de forma
intuitiva. Por exemplo, você não saberia o que é um LPCSTR no seu
primeiro dia, pois é uma abreviação para “Large Pointer to a
Constant String”.
Depois disso, parti
para alocar um buffer de bitmap usando o GDI, que hoje em dia não é
mais utilizado porém para propósitos educacionais é uma benção.
Aprendi como funcionou só depois de refletir no código que escrevi.
Basicamente, o Casey usa o 32 bits para cada pixel, 2 para vermelho,
2 para verde, 2 para azul e 2 que servem apenas para preencher o
espaço vazio. Inclusive, no dia que escrevo esse roteiro é o dia
que eu consegui fazer esse buffer sem ver o tutorial. Foi complicado,
mas foi.
No sexto episódio o
Casey mostrou como carregar o Xinput para gamepads. Aprendi por conta
própria como carregar essa biblioteca dinamicamente com uma DLL e
senti que de fato eu estava ficando melhor.
Depois disso, decidi
divergir um pouco do tutorial pois ele usava DirectSound, que é
velho e ruim. Um membro do Handmade Network, uma comunidade que foi
criada com base no Handmade Hero mas agora é independente, me disse
para usar WASAPI. Desde então eu venho tentando implementar isso,
parece que eu consegui iniciar tudo certinho porém não consigo dar
o output no buffer de som. Edit: Consegui! Eu não estava pensando no
hardware. O som só é produzido se tiver vibração e eu estava
escrevendo um valor constante.
E é basicamente
isso, espero que tenham gostado e até mais!