Vamos programar linha a linha o algoritmo de Fogo do jogo DOOM de uma forma extremamente divertida. Esse tutorial sobre como programar serve para quem está aprendendo a linguagem JavaScript principalmente, quem é iniciante, mas garanto que vai ser uma ótima experiência para qualquer pessoa 🙂 E eu tenho certeza absoluta que esse vídeo irá lhe inspirar a fazer mais cursos sobre algoritmos e aprender a programar jogos em JavaScript (eu pelo menos fiquei super empolgado). Além deste vídeo ser um tutorial sobre algoritmos, você também vai aprender sobre estrutura de dados, sobre como renderizar o gráfico final de uma forma criativa e, novamente, tenho certeza absoluta que você vai querer aprender mais sobre como programar jogos 2D.
✅ LINKS CITADOS NO VÍDEO
▸ Código fonte no Github: https://github.com/filipedeschamps/doom-fire-algorithm
▸ Vídeo a história e overview do algoritmo: https://www.youtube.com/watch?v=HCjDjsHPOco
✅ 𝗩𝗜𝗗𝗘𝗢𝗦 𝗠𝗔𝗜𝗦 𝗣𝗢𝗣𝗨𝗟𝗔𝗥𝗘𝗦 𝗗𝗢 𝗖𝗔𝗡𝗔𝗟
▸ Brasileiro programa Inteligência Artificial que aprende a DIRIGIR SOZINHA!!!
▸ Novo algoritmo EDITA VÍDEO como se fosse TEXTO (deepfake)
▸ FERROU!!! O Google EXPLODIU minha cabeça com esse serviço!!!
▸ Hacker usa placa “NULL” e acumula $ 12.000 em multas por BUG de sistema (DEFCON 2019)
▸ Programei 4 robôs que criam vídeos para mim no YouTube
Original source
43 responses to “Tutorial completo de como programar o Fogo do DOOM (JavaScript puro)”
Muito massa programar ao som da chuva ❤️😬
cara eu não entendi nada, mais eu continuei assistindo pq eu achei mt interessante +1 sub!!
Muito bom e didático!
Fui fazendo e vendo o vídeo, mind blowing quando ficou pronto ! hahaha 🙂
Cara isso é show de bola parabéns
Adicionei as opções de você escolher se quer que o vento se movimente para a esquerda, direita ou sem vento.
Parabéns, ótimo vídeo!
Qual o aplicativo que você usou para escrever os códigos?
estranho, estou seguindo seu código só para entender como funciona, porém quando eu coloco esse codigo html += '<div class="pixel-index">${pixelIndex}</div>' , todos os quadrados ficam com ${pixelIndex}, e nao com os numeros
Muito bom… Parabéns!!! faz um vídeo, se já não existir, ensinando a configurar o ambiente de desenvolvimento…
Qual esse programa?
Oi
Ia ser jóia fazer outros vídeos nesse estilo!
Muito massa!!!
👏
Não sei se isso é fácil demais ou não, mas fiquei feliz por conseguir prever o que deveria ser feito na maioria das etapas do código. Tô pensando em estudar JavaScript e esse vídeo me motivou muito. Valeu mano!!! S2
Eu vi este vídeo pela primeira vez quando estava começando a programar e não entendia nada. Hoje já consigo compreender tudo depois de estudar Python e JS no canal do Curso em Video
Foi incrivel nunca vi algo Tao fixe Como isso vou tentar implementar isso de outra forma
quais programas ele usou?
Genial 👏👏👏
Filipe, fiquei com vontade de fazer em python. Usei pyqt e numpy.
Segue o link do repositório no github: https://github.com/andre23arruda/fire-python
Abração
Eu usaria uma matriz bidimensional no lugar de um vetor unidimensional. Fica mais fácil de entender, explicar e mapear para a renderização. E eu navegaria horizontalmente ao invés de verticalmente. É mais eficiente, pois acessa dados que estão próximos na memória. Não faz diferença para uma matriz pequena mas em uma matriz grande faria. Utilizando a implementação de vetor, a navegação horizontal ficaria mais eficiente ainda, pois o endereço de cada linha seria calculado uma única vez por linha, e não uma vez para cada célula.
putz. Obrigado por essa iniciativa, sensacional o video, ganhou mais uma seguidor
Eu não entendia NADA de programação. Ainda não entendo nada, mas gostei. Conteúdo foda. Sucesso, irmão.
Sensacional.
Nossa sensacional passarei esse vídeo para meus alunos
Caramba, ficou muito massa , nem sabia que dava para fazer isso com uma tabela, muito foda
Massa….
Filipe vc é muito bom em javascript, faca uma playlist ensinando .JS pra Iniciantes, seria muito massa aprender com vc!
eu tava achando super normal, até adicionar o efeito de vento no fogo… pirei!!
haha que maneiro! com esse código 10:53 você me ajudou a implementar esses numerosinhos na minha calculadora, como uma "soma old" fiz uma função em JS que pega o numero inserido, transforma em "old" e mostra como o calculo foi feito. em um dos seus vídeo falou sobre, não adiantar reclicar códigos senão entende o que ele faz, mas acho que isso não foi uma reciclagem. haha
Oi Felipe! Já pensou em explicar query de banco de dados?
Porquê não fez um array bi dimensional? seria mais simples
Pato.
Filipe, estou amando o JS. Seus vídeos estão me dando vontade de voltar a escrever HTML e CSS.
Muito massa Felipe… Parabéns, suas explicações são simplesmente magníficas… tudo fica fácil… abração!
Muito fodaaaaaaaa
Edit: percebi que a função render tava antes da de calcular a fonte de fogo, cuidado com isso pessoal.
cara meu codigo nao cria a fonte de fogo, tai o script:
const firePixelsArray = []
const fireWidth = 10
const fireHeight = 10
function start(){
criarDadosDoFogo()
renderizarFogo()
createFireSource()
}
function criarDadosDoFogo(){
const numberOfPixels = fireWidth * fireHeight
for (let i = 0; i<numberOfPixels; i++){
firePixelsArray[i] = 0
}
}
function calcularPropagaçãodoFogo(){
}
function renderizarFogo(){
let html = '<table cellpadding=0 cellspacing=0>'
for(let row=0; row<fireHeight; row++) {
html += '<tr>'
for (let column = 0; column < fireWidth; column++){
const pixelIndex = column + (fireWidth * row)
const fireIntensity = firePixelsArray[pixelIndex]
html += '<td>'
html += `<div class="pixel-index">${pixelIndex}</div>`
html += fireIntensity
html += '</td>'
}
html += '</tr>'
}
html += '</table>'
document.querySelector('#canvasDoFogo').innerHTML = html
}
function createFireSource(){
for(let column = 0; column <= fireWidth; column++){
const overflowPixelIndex = fireWidth * fireHeight
const pixelIndex = (overflowPixelIndex – fireWidth) + column
firePixelsArray[pixelIndex] = 36
}
}
start()
alguem pode me ajuda
não sei ver meu localhost no windows comando serve da erro e não sei qual outro posso usar
Você sabia que os efeitos "fps" de movimentação no doom são um tipo de "3d fake"? saberia como implementar eles?
Show esse fogo aí, agradeço muito pelo aprendizado
Oi tudo bem?
Cara, cai nesse vídeo de paraquedas, mas é o seguinte…. Que TOP sua explicação e a forma como abordou o conteúdo em si…. Vou me inscrever nesse canal é agora !!!! PS.: Tenta fazer mais videos assim, passando conceitos, seria legal… VALEU !
Cara mto top seu conteúdo e a forma que vc apresenta. Faz um mês que estou estudando JS, e me diverti bastante programando o fogo do DOOM com vc kkkkk. Parabéns mano, mais um fã aqui.