• maironw Mairon S. Wolniewicz
    2018-09-29 11:30:20 -0300 Thumb picture

    Desenvolvendo um jogo em um microcontrolador - Parte 1

    Medium 3675067 featured image

    Faz um tempo que eu não frequento o Alvanista. Da última vez em que estive por aqui com mais participação, eu meio que estava tentando fazer um jogo para computador. O mais legal? Na época eu não fazia ideia de como programar e devido aos mais diversos motivos o projeto nunca foi pra frente. Um deles foi minha entrada na faculdade, onde acabei tomando como minha área favorita justamente a programação.

    Uma das disciplinas optativas que curso é a de Microcontroladores. Pra quem não saca, um Arduino é um microcontrolador. E pra quem não conhece nem ele, dá pra dizer resumidamente que um microcontrolador é um dispositivo compacto com um processador e a opção de enviar e receber sinais, útil o suficiente para ser embarcado em muitos projetos de engenharia.

    Para deixar claro, o microcontrolador que eu estou usando é um Tiva C Launchpad. Entrarei no mérito de suas configurações quando necessário.

    Diferente de programar software simples para um sistema operacional qualquer, ao programar em um microcontrolador você tem a preocupação de resolver problemas utilizando registradores. Sabe quando alguém fala que computação se resume a 0 e 1? O que a gente faz aqui é praticamente dizer para o processador o que vai valer 0 e o que vai valer 1, e ter como resposta toda uma lógica de ações que ele vai realizar.

    Como intermediário entre um código escrito na linguagem C dizendo para a placa o que fazer e esses comandos binários que ela interpreta, o algoritmo é lido na linguagem Assembly, mais próxima de como o computador entende as coisas do que como o ser humano faz.

    Sabe o que também era programado em Assembly? Jogos de Game Boy. Seja Super Mario Land, Pokémon Red/Blue e Zelda Link's Awakening. Todos foram criados do zero com essa linguagem em mente.

    O desafio proposto a mim foi, utilizando o Tiva C, uma matriz de botões 4x4 e uma tela do clássico celular Nokia 5110, montar um jogo convincente o suficiente para ser aprovado na disciplina. Nada mais justo, partindo de critérios como simplicidade, nostalgia e principalmente semelhança, eu criar minha própria versão de um jogo de Game Boy para o microcontrolador. O escolhido foi The Legend of Zelda.

    Essa é a tela que eu devo utilizar. Ela possui duas grandes limitações: sua resolução é de apenas 84x48 pixels e ela é monocromática, mostrando apenas os pixels ligados ou desligados. Comparando ao GB, ele possui resolução de 160x144 pixels e consegue mostrar 4 escalas de cinza na tela.

    O intuito inicial do jogo é fazer algo o mais próximo de The Legend of Zelda Link's Awakening, mas provavelmente apenas sendo possível atacar e perder vida para os inimigos, sem dungeons.

    Primeiro vou falar da parte mais legal: mostrar as coisas na tela.

    Como parâmetro, utilizei o spritesheet original de Link's Awakening e de ambos os Oracles.

    Meu código, escrito em C, não consegue carregar uma imagem no formato bmp e simplesmente colocar ela na tela. O processo vai um pouco além disso.

    Primeiro, é necessário remover as cores da imagem. Apenas as cores preto e branco serão interpretadas.

    Para minha tela, o que tiver a cor preta, valerá como 0, enquanto branco valerá como 1. Essa lógica também serve para dizer quais pixels da tela estarão desligados (0) e ligados (1).

    Portanto, se eu quero que um sprite apareça com seus contornos em preto na tela, devo desenhá-lo ao contrário no computador.

    Essa é a imagem que eu devo reproduzir, num formato bitmap de 16 bits. Para minha tela interpretar, contudo, eu devo transformá-la em um vetor hexadecimal com as informações de pixel ligado ou desligado. A imagem do Link olhando para a esquerda é usada no meu código na forma:

    Sem entrar no mérito do processo de como a função da tela trata esses números, basta dizer para ela mostrar "link_left_1" nas posições x e y desejadas, e meu personagem aparece na tela.

    Em outros posts eu pretendo explicar um pouco mais da lógica por trás tanto do gameplay e dos botões quanto da própria disposição de coisas na tela, que devido ao pequeno tamanho, se torna um desafio.

    No momento eu tenho como versão de testes a seguinte aplicação:

    The Legend of Zelda: Link's Awakening

    Plataforma: Gameboy
    1257 Jogadores
    17 Check-ins

    50
    • Micro picture
      emphighwind · 19 dias atrás · 2 pontos

      Massa, programação não é o meu forte, mas eu sempre acho interessante de ver estes projetos DIY, não conhecia este Tiva C ai, os únicos microcontroladores que eu mexi direito e arranho alguma coisa foram o próprio ATmega do arduino e o ESP8266.

    • Micro picture
      tiagotrigger · 19 dias atrás · 2 pontos

      Que demais, tá ficando legal. Quero ver pronto, boa sorte com o projeto. o/

    • Micro picture
      msvalle · 19 dias atrás · 2 pontos

      Parabéns pelo projeto, e sucesso no desenvolvimento!
      @alvadevs

  • jonatasbermudes Jonatas Bermudes
    2017-08-25 13:32:29 -0300 Thumb picture
    <p>Depois de muuuito tempo sem mexer na engine Unit - Alvanista

    Depois de muuuito tempo sem mexer na engine Unity, resolvi voltar. Como estava perdido no meu projeto passado, seguindo recomendações da própria equipe da Unity, vou começar do zero um jogo mais simples.

    A ideia é só fazer um joguinho de plataforma 2D pra relembrar como se usam as ferramentas do Unity... Acabei de fazer os sprites do personagem principal... Aceito sugestões de nome, hahaha. ^_^

    23
    • Micro picture
      roberto_monteiro · 1 ano atrás · 3 pontos

      Que coisa mais linda!

      1 resposta
    • Micro picture
      laumiramos · 1 ano atrás · 3 pontos

      Muito show, a principio pensei que era um olho e um bico,, depois me liguei que eram dois olhos haha no Unity mexi muito pouco, foi em um workshop, mas, lembro dos mini movie feito no no Ps em pixels, trabalhinho massa pra fazer haha, enfim, parabéns!

      1 resposta
    • Micro picture
      willguigo · 1 ano atrás · 3 pontos

      Que legal!

      1 resposta
  • 2017-05-03 01:11:28 -0300 Thumb picture
    <p>Ripei os sprites do Museu do Mega Man 7 alguns d - Alvanista

    Ripei os sprites do Museu do Mega Man 7 alguns dias atrás, pra quem tiver interesse, está postado no SPRITE DATABASE

    (Não tinha no spriters resource nem no sprites INC)

    Clica pra amplicar

    Mega Man 7

    Plataforma: SNES
    3493 Jogadores
    64 Check-ins

    25
    • Micro picture
      hard_frolics · mais de 1 ano atrás · 3 pontos

      Boa!

    • Micro picture
      riki_samejima · mais de 1 ano atrás · 3 pontos

      Eu venho estudando pixel art há mais de 2 anos, e esse Sprite database e o Spriters-resource eu entro TODO dia. Me sinto até mal por não ter feito nenhuma doação ainda.

      3 respostas
  • spencerv Spencer Voorhees
    2016-12-05 22:16:56 -0200 Thumb picture

    Algum desenvolvedor indie de plantão?

    Gostaria de pedir ajuda aos universitários de plantão.

    Recentemente, comecei meus estudos no desenvolvimento de roms para Mega Drive e preciso de uma Mega ajuda com tiles e sprites.

    Se souber de alguém que possa contribuir ou ao menos clarear minhas ideias, marque esse alguém aqui.

    Desde já agradeço. ;)

    P.S.: marcando alguns perfis com bastante atividade na rede. Se quiser ser desmarcado, comente abaixo.
    @sophos, @xualexandre, @u3marcos, @sulivan, @molinsky, @volstag, @mastershadow, @filp, @montanaro, @dantedias, @rafaschiabel, @bakujirou, @claujr, @marlonfonseca, @leosouza, @darlanfagundes, @kiliano, @lgd, @memoriabit, @emula, @ssa, @raccoon, @canal03, @retroninjas, @gamerdesconstrutor

    Game Dev Tycoon

    Plataforma: PC
    754 Jogadores
    69 Check-ins

    51
  • 2016-11-02 01:43:19 -0200 Thumb picture

    #166 Gun Volt

    Fiz esse gif para demonstrar que, mesmo sem saber desenhar, se você conseguir dominar algumas ferramentas básicas de um programa de edição (seleção, copiar, colar e borracha), você já consegue criar variações para um sprite já existente. Segue o Gun Volt do Mega Man X (ignorem os olhos).

    Basicamente o que fiz foi alternar as tampas que se abrem pra ele atirar. No jogo elas abrem ao mesmo tempo, e com um pouco de observação, você percebe que maior parte do sprite não se altera, então com um copiar e colar e borracha, você consegue criar as variações copiando apenas o pedaço que precisa e apagando "os excessos".

    Claro que isso é só um quebra-galho, mas pra você que está inventando de fazer sua animação, seu fangame ou seus quadrinhos e precisa se virar sozinho, talvez sirva de algo. 

    A partir de 4 frames, foi possível fazer esses 12 (e aí também é possível fazer todos esses com muitas variações para os olhos. Aqui embaixo também pode notar que separei a parte superior do corpo, porque depois me facilita criar mais variações com posições de pernas diferentes):

    Você pode conferir os sprites originais que usei no Sprites INC.

    Mega Man X

    Plataforma: Nintendo Wii
    126 Jogadores
    1 Check-in

    24
    • Micro picture
      andre_luiz · quase 2 anos atrás · 2 pontos

      Outra coisa possível é criar variações de cenários, já que eles são feitos com tiles

      4 respostas
  • 2016-10-25 15:01:27 -0200 Thumb picture

    #162 Bill Rizer Sprite Upgrade

    Original / Upgrade

    Créditos: Kradakor

    ______________________________________________________________________________

    Quer ser marcado nos próximos posts? Só avisar!

    @bakujirou

    Contra

    Plataforma: NES
    2998 Jogadores
    28 Check-ins

    10
  • 2016-06-11 01:06:21 -0300 Thumb picture

    Resolvi brincar com pixel hoje de novo

    Fazia muito tempo que não tentava mexer em sprites ou pixel art, resolvi dar uma brincada hoje. Queria poder colocar o Tommy do Power Rangers The Movie de SNES na posição de outros personagens.

    Mesclei ele com a pose padrão do Rocky (o primeiro e o segundo são os originais do jogo, o terceiro é o editado):


    E também, sem animação agora, na pose de um chute do Adam (que é o original do jogo):

    Claro que como eu não entendo nada disso, as partes que precisei mexer ficaram todas cagadas (o cinto, as botas e os bolsos). As botas não são originais também, são de outra parte de um chute que ele dá, então isso foi o que deu dessas quimeras :P

    ____

    Edit: Essa posição daqui de baixo foi feita bem em cima do Rocky, mas acho que precisa de ajuste, a regata tem a gola mais larga, tbm não fiz os outros frames ainda.

    Críticas são muito bem vindas.

    Mighty Morphin' Power Rangers: The Movie

    Plataforma: SNES
    5802 Jogadores
    38 Check-ins

    26
    • Micro picture
      zuppao · mais de 2 anos atrás · 2 pontos

      mto legal mesmo =D
      so tive a impressao do Tommy mexer os peitos "a lá" Terry Crews =P
      Acho que se vc adicionar mais 1 ou 2 (no max) frames essa animacao ia ficar perfeita...

      ta usando a mesma qnt de frames que a animaçao do Rocky?

      4 respostas
    • Micro picture
      lcfreezer · mais de 2 anos atrás · 2 pontos

      (por exemplo, o bolso de trás da calça no chute, que continuo achando estranho, alem do cinto)

  • 2016-04-16 00:05:36 -0300 Thumb picture

    #089 X VS Zero

    Outros posts sobre Mega Man:

    | Bad Box Art Mega Man | Mighty Nº 9 | X VS Zero | Zero VS Omega Zero| Abertura de Mega Man 8 versão NES |

    ____________________________________________________________________________________

    Quer ser notificado sempre que tiver um post novo? Avise na sessão de comentários ou por mensagem privada para ser marcado!

    Mega Man X5

    Plataforma: Playstation
    4655 Jogadores
    85 Check-ins

    8
    • Micro picture
      tiagotrigger · mais de 2 anos atrás · 2 pontos

      Essa batalha decisiva não tem um final muito decisivo. xD
      Mas ficou bem legal.

      2 respostas
  • felipefabricio felipefabricio25
    2015-11-21 16:19:27 -0200 Thumb picture
    <p>Venho brincando com Sprites de novo.&nbsp;É lega - Alvanista

    Venho brincando com Sprites de novo. É legal!

    Eu peguei os sprites clássicos lá do Balloon Fighter, pra começar. Esses aqui, pra quem não conhece.

    Então eu fiz um contorno nele.

    (Foi difícil encaixar tudo nesse contorno EAUHAEUHAUHAE)

    Então eu dei uma "repintada" nele, colocando umas cores melhores e tals, melhorando esse olho estilo reflexo de foto... Enfim. Ficou assim.

    Achei parecido com um sprite de SNES ueauheauhaeuhae

    (aliás, esse jogo merece um remake...)

    Eu fui inverter as cores para fazer um Player 2 e achei que ele ficou excessivamente parecido com o Mario. Então eu embalei, fui atrás das cores de verdade do Mario e fiz um sprite inspirado nele.

    Eu me lembrei de Super Mario Maker, que tem um monte de sprites de vários personagens. Então eu me empolguei e fui fazendo um atrás do outro. Luigi...

    ...Wario...

    ...Waluigi... (WAAA)

    E aí eu parti para alguns de Zelda, já que esse povo do macacão era só um recolor com algumas mínimas alterações. Creio que esses não ficaram muito bons, mas...

    ...Mas, bem, esse é o Link. As roupas verdes são inconfundíveis EAHUEAHUEA

    E aqui a Zelda. Ela está bem estranha, já que não já um "item na cabeça" reconhecível dela. Eu coloquei o azul da gema na testa do visual de TP, que foi no qual eu me inspirei, mas...

    (além disso, todas as roupas dela são cheias de detalhes, lol)

    Enfim, estou fazendo mais, porque eu me divirto muito fazendo isso. Provavelmente ainda vou fazer mais de Mario, Zelda, uns de Fire Emblem, Kid Icarus, aquele povo aleatório de Smash, etc. É muito legal fazer isso aeuhaeuhaeuhae

    E a musiquinha viciante de Balloon Fight, pra terminar \o

    Balloon Fight

    Plataforma: NES
    455 Jogadores
    1 Check-in

    33
    • Micro picture
      tierry · quase 3 anos atrás · 2 pontos

      Jogava isso no Dynavision.

    • Micro picture
      luansilva2000 · quase 3 anos atrás · 2 pontos

      Ficou massa!

    • Micro picture
      superdong · quase 3 anos atrás · 2 pontos

      meu querido vc poderia tá fazenu cosa mas util como upar sua party

      1 resposta
  • mun Laise Araújo
    2015-10-24 21:33:25 -0200 Thumb picture

Carregar mais postagens

Continuar lendo &rarr; Reduzir &larr;
Carregando...