No vídeo de hoje, quero falar sobre como
abordo a criatividade. Especialmente no contexto da criação dos
dois jogos Follow the White Rabbit e Maze, para nossa competição de hackers. Dois jogos destinados a serem hackeados. Já fiz um vídeo onde falei sobre
como comecei a aprender sobre desenvolvimento de jogos, e hoje queria focar mais no game
design. Não diria que sou uma pessoa supercriativa,
não me acho particularmente especial nessa área, mas gosto de ser criativo e
gosto de ver a criatividade dos outros.
É por isso que gosto muito da cena de demonstração,
mas também dos CTFs, porque geralmente são criativos e acho que a criatividade é muito importante
na segurança de TI, ou pelo menos se você estiver interessado em pesquisa de segurança. Capítulo 1 – Fazendo um Plano
Muitas vezes, quando as pessoas querem trabalhar em qualquer tipo de projeto. Seja reformando uma cozinha, construindo um site
ou fazendo um jogo, parece razoável primeiro fazer um plano para depois executar as etapas. E por isso é muito comum ver que as pessoas
começam a fazer documentos de design onde planejam todos os recursos do jogo e visualizam
o que deveria ser. Possivelmente passando semanas ou meses apenas
nessa etapa e tornando o jogo cada vez mais complexo e adicionando mais e mais. É muito mais fácil imaginar e fantasiar
sobre o seu jogo do que realmente construí- lo. Então eu não fiz nada disso. Fazer um plano é incrivelmente importante quando
há dinheiro em jogo, quando há riscos associados e quando você trabalha com várias
pessoas.
Se eu quisesse fazer um jogo real
e largasse meu emprego para isso, ou tivesse que gerenciar uma equipe – um plano é essencial para o sucesso. Mas há duas razões pelas quais não fiz
um plano. Em primeiro lugar, ainda estou no processo de aprendizagem. Ainda não conheço o suficiente sobre a ferramenta
Unity, seus recursos e o que é fácil e difícil de implementar. Falta-me muita experiência para fazer
um plano razoável. Ainda me considero na
fase de “brincar” e ganhar experiência. A segunda razão tem a ver com a criatividade. Fazer um plano e fazer um brainstorming com anotações
é um processo criativo, mas tem uma grande desvantagem para mim. A mente é ilimitada. Você poderia imaginar qualquer coisa.
Assim *snap* você pode imaginar um jogo
do tamanho de World of Warcaft, com os gráficos de Call of Duty e a árvore de habilidades
de Path of Exile. Mas isso não é realista. Capítulo 2 – Ser criativo
Sou um grande fã da "limitação criativa" – o conceito de limitar-se propositalmente
para realmente impulsionar a criatividade. E assim, trabalhando com Unity e brincando
mais, estou criando um ambiente limitado para mim. Ao usar o Unity, percebo coisas que são
fáceis e coisas que são difíceis ou impossíveis, e isso orienta um
processo criativo. Eu gosto de imaginar isso como vagar
na névoa em uma floresta com vários caminhos. Sempre vejo um pouco do caminho à frente, mas ele só se
revela lentamente à medida que avanço.
E de vez em quando vejo uma encruzilhada e
espio as direções e escolho aquela que parece atraente. Então não preciso de um grande mapa daquela floresta
para andar nela. Não preciso de um plano passo a passo. Só preciso ter certeza de que estou com os olhos abertos
para poder ver sempre os próximos passos e estar aberto para desviar do caminho atual. Então… depois de brincar bastante
com o Unity, coisas sobre as quais falei no último vídeo, pensei que estava pronto para tentar
fazer esse jogo.
O que quer que seja. Então, quais foram meus próximos passos para iniciar o
processo criativo? Capítulo 3 – Criatividade Kickstart
Se você olhar os nomes do projeto que comecei a seguir, ele foi chamado de blocky. A razão para isso é que eu
ainda não tinha um plano, mas pensei que, como boa prática, poderia reimplementar algo – por exemplo,
o desafio de blocos de Pwn Adventure 3. Esse foi um desafio louco, você encontra um link
para o meu solução para isso na descrição. Você tinha 32 interruptores de entrada e uma enorme
rede de conexões, e tinha que inserir a combinação correta de interruptores para abrir
a porta e chegar à bandeira. De qualquer forma. Às vezes faz sentido “copiar” algo,
mas torná-lo seu. Seja transformador. Dê uma reviravolta, faça diferente. Ainda não tinha certeza de como seria minha versão
, mas não me preocupo com isso. Eu apenas começo com algo. Também percebi que as incríveis ilhas que
construí durante os testes eram muito grandes para mim.
Adoraria ter uma ilha grande, mas acho que
demora muito para povoar. Então criei este novo projeto de blocos e
claro que tive que começar fazendo uma nova ilha com Gaia e tentei criar uma
paisagem interessante. Mas antes que eu pudesse realmente entrar na
ideia dos blocos, cheguei a uma daquelas encruzilhadas na floresta e tive uma inspiração “criativa”. Capítulo 4 – Dano de queda
Lembra dos experimentos com meu controlador de personagem? em algum momento eu percebi, talvez
eu devesse implementar que o jogador morra, ao cair de muito alto.
E eu percebi que isso poderia ser usado como o
primeiro desafio. E se eu fizer um mapa, onde um jogador é forçado
a pular e morrer. E a bandeira está na ilha. Então você precisa hackear o jogo para sobreviver a esse
salto. Teletransporte-se ou torne-se invulnerável. Então eu tive uma primeira ideia a seguir. Neste ponto eu ainda estava pensando em
um jogo no estilo fantasia, como PwnAdventure. Achei que talvez fôssemos um aprendiz na
torre de um mago, e o mago nos diz para pularmos para encontrar um feitiço poderoso. E os “feitiços mágicos” são basicamente o
material de hacking. Então você precisa aprender a hackear o jogo para atingir
a meta. E então, quando você tiver sucesso, o mago
ficará super orgulhoso por você ter rompido as camadas do universo. Ou algo assim. Mas enquanto estava construindo, também percebi que
não tinha muitos recursos de fantasia e tinha mais coisas futuristas. Então, em vez disso, decidi ter uma nave espacial flutuante
. Eu também jogo muito Apex Legends e, claro,
estou familiarizado com outros jogos de battle royale, como Fortnite. E então pensei que seria engraçado se o
jogo começasse como um jogo de Fortnite.
Você voa no ônibus de batalha sobre a ilha. Aí você desiste,… Você desce e desce… Mas você não tem planador. Então bum. você morre…. Achei que seria engraçado. Pesquisei como é o ônibus de batalha
e tentei fazer um com os recursos que tinha. Você sabe que eu não queria entrar na modelagem 3D
. Mas descobri rapidamente que não
conseguiria um balão legal. Então, em vez disso, fiz uma espécie de nave espacial. Se você jogou Maze e encontrou o
Hangar, pode até ter visto este navio. Passei tanto tempo construindo-o que, depois de
abandonar este mapa, não queria que fosse desperdiçado. Então eu incluí lá. Aqui está o primeiro mapa de teste e começou
com esta câmera voadora. Uhhh parece legal, certo? você começa no navio,
depois caminha até a porta. Está aberto. Mas você não vê outra escolha senão pular…. você está certo. Mas se você conseguir hackear e manipular o
jogo, poderá seguir o caminho, entrar nesta caverna e, ao virar da esquina,
poderá encontrar a primeira bandeira. Capítulo 5 – Flags em jogos offline
Quando adicionei esse primeiro flag de teste, percebi como é difícil fazer um jogo hackeável
e esconder esses flags.
Especialmente em um jogo offline. Note que neste momento eu NÃO tinha PLANOS
de fazer um jogo online como o Maze acabou sendo. Achei que NUNCA teria tempo para isso. Então, eu estava preso em esconder bandeiras em um
jogo local. E algo que você deve ter em mente
ao adicionar um sinalizador como este, é uma textura, uma imagem, que pode ser facilmente extraída com
qualquer ferramenta de hacking de jogos Unity. Você nem precisaria iniciar o jogo
para obtê-lo.
Mesmo se você escrever um código que desenhe esse sinalizador, as
pessoas ainda farão engenharia reversa desse código e, então, é um desafio de reversão de código,
não um desafio de hacking de jogo. Portanto, para criar desafios, é importante
entender essa limitação e contorná- la. Também pensei como um desafio de introdução ao hacking de jogos
, isso realmente não é ruim! Agora, existem várias maneiras de resolver esse
primeiro sinalizador. Torne-se imortal corrigindo as
funções de morte, teletransporte-se com o Cheat Engine ou use ferramentas estáticas para encontrar a textura. Legal! Claro que eu queria ter mais bandeiras. Uma Ilha inteira cheia de bandeiras para descobrir. E não tinha ideia real de como fazer isso ainda. Mas eu pensei em continuar e talvez
eu tenha outra inspiração. Capítulo 6 – Modelagem 3D
Enquanto trabalhava no meu controlador de personagem, eu queria saber qual modelo usar. Eu tinha uma boa seleção de Synty, mas não conseguia
decidir. Um goto óbvio, que você também pode ver
no primeiro episódio da minha lista de reprodução Pwn Adventure, o casual Let's Play, escolhi um personagem
com um capuz preto estereotipado.
Então eu queria um personagem com um moletom preto. Infelizmente Synty não tinha um bom. Ele tinha um personagem de capuz, mas não era
um capuz preto e também uma cabeça que não se ajustava. Eu estava mais inclinado para essa cabeça, acho
que meio que se parece comigo. Então aproveitei essa oportunidade para aprender um pouco
de liquidificador e modelagem 3D. Meu objetivo era costurar esses dois modelos juntos. Além de mudar a cor do moletom. Agora, isso foi uma bagunça e não é perfeito.
Alguns dos detalhes são meio mal feitos, mas
consegui. Eu tinha um personagem com um capuz preto agora! Incrível! Mas o que eu faço com isso agora? Capítulo 7 – História Alternativa
Já mencionei minhas ideias sobre o tema Wizard e o tema Fortnite Battle Royal,
mas depois fiz esse personagem hacker estereotipado . E então eu tenho que fazer algo com isso. Enquanto continuava construindo ilhas e consertando
código, tentei pensar em alguma história interessante com isso, ou pelo menos um tema a partir do qual eu pudesse
construir. E você sabe, eu não quero fazer a
merda estereotipada de hacking. Não quero apenas ter outro tipo de
anônimo ou bunker secreto de hackers. Eu não quero fazer o Sr. Robot ou algo assim. Gosto do estereótipo de hacker, mas não
preciso exagerar e, se lançar algo, talvez seja um pouco mais atencioso. E então, em algum momento, eu estava pensando. Mhmhm… Este personagem parece apenas um
cara branco estereotipado, em calças marrons e um moletom preto. Você já assiste um aqui neste vídeo.
Você realmente precisa de um em outro jogo para se
identificar. E se eu inverter os estereótipos? Então pensei “[ __ ] o gamergater” e
fizemos do personagem do jogador uma hacker fodona, que tem que salvar esse nerd indefeso sentado
na frente de seu computador, e ele está ficando com ciúmes porque ela é melhor em hacking do que
ele. Achei que seria uma ideia legal e até
comecei a fazer um quarto escuro com o cara digitando ali no computador. Eventualmente, descartei essa ideia, porque
percebi que não tenho tempo para fazer uma história. E esse personagem robô não tem gênero de qualquer maneira. Talvez algum dia. Capítulo 9 – Questões Técnicas
Dividi os vídeos em partes. Basicamente o vídeo onde compartilho como aprendi a
desenvolver jogos com Unity e é mais técnico, e depois esse, que é mais
sobre game design. Mas é claro que esse processo de desenvolvimento de jogos
ainda tem MUITOS problemas técnicos e é um processo de aprendizado contínuo.
Eu só queria enfatizar isso. Eu não me tornei magicamente um profissional
aqui. Aprendo cada vez mais sobre a Unity. Eu apenas senti que sei o suficiente para tentar fazer um
primeiro jogo sozinho. Que poderia ser o jogo de hacking. Quero destacar um exemplo de problema que
encontrei ao fazer esta caverna com a primeira bandeira. Quando cavei no terreno e depois
adicionei água, percebi que a caverna estava debaixo d'água. É claro que você poderia resolver esse problema
simplesmente tomando uma decisão de design. Qualquer caverna por acaso está acima da água. E essa é uma solução totalmente boa. Mas também tentei ver se de alguma forma conseguiria
resolver. Eu estava usando o Crest para água e
havia ótimos tutoriais, bem como um Discord muito útil.
E lá eu aprendi que o Crest tem um recurso
onde você pode definir uma entrada de água e basicamente forçar a água para cima e para baixo. E então aqui eu apenas fiz uma superfície plana e
forcei a água para baixo. Há muitos problemas a serem mencionados
continuamente, só queria deixar claro que isso ainda faz parte da criação de um
jogo. Capítulo 10 – Uma nova ilha
Não sei ao certo o que me levou a abandonar esta ilha, porque gostei do que
fiz lá. Mas eu acho que foi apenas o tamanho dele. Também ainda era um grande playground porque
aprendi aqui como usar escavadeira para cavar a caverna, crista com as entradas de água, iluminação
dentro da caverna e também usar a renderização da natureza.
Por fim, criei uma nova ilha, menor,
e a chamei de FlagLand. E isso acabou se tornando o primeiro
jogo hackeável que fiz. No início ainda o chamava de FlagLand, mas
depois mudei o nome para “Follow the White Rabbit”. Então, antes de tudo, a ilha é menor e
não usei a nave para o jogador cair. O principal motivo era que, quando você está no
alto, já vê o mapa inteiro. Isso meio que estragaria. Eu queria que o jogador descobrisse e explorasse
a ilha. Os mesmos sentimentos que tive quando comecei Pwn
Adventure na caverna e saí e encontrei esta grande ilha para explorar. Então, neste novo mapa, movi o
desafio de dano de queda para este fosso.

Você pula e no fundo encontra
esta caverna, que o leva até a bandeira. Legal! Resolvi que o jogador começa aqui nesta ponte,
acabei de chegar aqui com uma pequena nave. E então tem a opção de ir para a direita ou para a esquerda. Mas esse desafio de dano de queda é muito fácil
, então eu queria que o jogador fosse lá primeiro. Mas como fazer isso. E foi aqui que tive outra inspiração. Eu vi esses animais do polígono e havia
um coelho branco. E eu pensei que o coelho branco poderia guiar
o jogador até a bandeira, desta forma o jogador também não precisa adivinhar onde as bandeiras
estão escondidas. O coelho branco é obviamente uma referência legal. Muitas pessoas o conhecem de Matrix, mas
vem de Alice's Adventures in Wonderland, onde Alice segue o coelho branco até
um buraco para entrar neste mundo incrível.
E não é que fica lindo aqui? Siga o coelho branco até a toca, aprenda
hacking e entre neste maravilhoso mundo de segurança de TI? Capítulo 11 – Fazendo NPCs
Com os coelhos brancos também enfrentei um novo desafio de desenvolvimento. Como você faz um personagem NPC se mover quando
você se aproxima e se move em um caminho específico e também tem as animações adequadas. Realmente demorei um pouco para resolver isso. E não tenho certeza se fiz isso de uma maneira boa. No final, comprei uma ferramenta chamada Spline Plus
que você pode usar para desenhar waypoints e depois fazer com que um objeto de jogo o siga. Mas o terreno é acidentado e há pedras. Mas esta ferramenta possui um recurso de Projeção, onde
simplesmente colocaria o objeto do jogo em qualquer terreno que encontrar sob o caminho selecionado. Eu também estava pensando em desenvolver algo
assim, ou eu esperava que isso existisse dentro do Unity, mas eu tive que equilibrar
tempo e custo e acabei descobrindo que ser capaz de colocar pontos de referência como este é muito útil. No entanto, não resolveu todos os meus problemas e
escrevi mais algum código para ele.
O que eu acho que seria um recurso incrível
se fosse adicionado ao Spline Plus. Eu basicamente criei um sistema de eventos. Porque eu queria que o coelho começasse a correr
quando o jogador se aproximasse. Então pare novamente. Sente-se e limpe-se. esperando que o jogador se aproxime novamente. E, em seguida, acione também a animação de salto
no ponto certo.
Portanto, neste Rabbit Controller que escrevi,
você pode adicionar eventos a uma lista. Um evento simplesmente define QUANDO é acionado, esse é
o valor do progresso, a distância percorrida no caminho pelo objeto do jogo e um evento do Unity a ser
acionado. E assim, quando o jogador se aproxima, o spline
seguinte é ativado e o coelho começa a correr. Ele roda até uma distância de 59,2 e então
executa a função state2_first_pause. Isso define a animação do coelho como ociosa,
para que ele não corra mais e se sente, e desabilita o caminho a seguir para o
objeto.
Ele também ativa um recurso de gatilho que
significa que quando o jogador se aproxima novamente, o coelho começa a correr seguindo o caminho novamente. De qualquer forma, essa foi a minha solução para esse problema. Gosto do sistema de eventos em que pensei, mas
é claro que ainda tive que comprar um ativo. Eu ficaria muito curioso para saber como outras pessoas
fazem eventos com scripts com NPCs. Procurei vídeos sobre o assunto,
mas não encontrei. Capítulo 12 – A segunda bandeira
Neste momento eu ainda tinha apenas a primeira e não tinha certeza de qual poderia ser a próxima bandeira
. O principal problema para mim era a textura, porque
não queria que o segundo sinalizador fosse resolvido simplesmente extraindo a imagem.
Então eu tive que forçar os jogadores a fazer isso dinamicamente
no jogo. E por isso tive que criar o sinalizador
em tempo de execução, e esconder as partes tão bem, que a análise estática não faz sentido. Esta é a bandeira e é montada com
várias peças diferentes. A string CSCG é do primeiro sinalizador, mas
os outros textos são retirados dos ativos Synty. E eu os coloquei em camadas de forma a criar novas
palavras. E um último componente era o texto regular renderizado,
mas também gerado a partir do código, fazendo uma descriptografia XOR simples. Chamei essa classe de PartialFlag2 porque
sabia que os nomes das classes e funções ainda estão dentro do jogo compilado e podem
ser facilmente descompilados. Os jogadores descobrirão esta classe. Então, eu queria ter certeza de que os jogadores não
tentariam resolver esse desafio estaticamente e que teriam que hackear no jogo, e tentei fazer
isso dizendo a eles que a bandeira provavelmente é difícil de obter estaticamente, então talvez tente uma
abordagem dinâmica.
E o nome desse inteiro é “é
apenas parte da bandeira, tente uma abordagem diferente”. Só para deixar isso bem claro, não quero que os jogadores
fiquem frustrados aqui. Aqui está como esta função se parece descompilada. algumas das minhas mensagens foram perdidas, acho que
otimizadas, mas o importante nome da função ainda existe. Espero que isso seja orientação suficiente para os
jogadores. E então eu simplesmente escondi a bandeira dentro
desta casa, mas não havia como entrar.
Também tentei fazer um caminho de salto com galhos legal
, inspirado em filmes ou outros jogos. Mas eu meio que falhei. Eu não sou bom em design de níveis, realmente parece uma
merda. Mas não importa. Também adicionei os coelhos para guiar o jogador
até esta segunda bandeira e o enredo foi basicamente. O jogador agora caminha na outra direção,
encontra outro coelho e o segue. Mas chega a este portão fechado. Agora aqui você tem que fazer um hack de teletransporte, ou
você é esperto e encontra uma maneira de pular . Na verdade, descobri isso durante o teste, porque
também fiquei irritado com o portão fechado. Mas também sei que outras pessoas também descobriram isso. Então você sobe o caminho.
Muito divertido. E você vê que o coelho desliza pelo
portão e você sabe para onde ir. Agora você simplesmente se teletransportaria para dentro
e encontraria a bandeira. E então, basicamente, você tem o sinalizador fácil que
pode encontrar com a análise estática. Ou a bandeira onde você realmente precisa hackear
algo. Legal! Capítulo 13 – Playtesting
Agora que tenho minhas duas primeiras bandeiras do desafio de hacking do jogo prontas, criei um primeiro
lançamento de teste e o dei a alguns dos outros organizadores da competição de hacking.
Só para ver como eles fazem isso. E é claro que eles resolveram, tudo bem. Não foi um desafio difícil. Também recebi alguns relatórios de bugs e recomendações
que gostaria de adicionar. Mas havia um problema. As bandeiras 1 e 2 podem ser resolvidas simplesmente
usando o CheatEngine para se teletransportar. Então, se alguém o usou para resolver o primeiro
sinalizador, o segundo sinalizador é o mesmo. Isso é um pouco chato. Capítulo 14 – Sem ideias,
tentei pensar em outros desafios, mas meio que fiquei preso. Então, vamos recapitular as limitações. As ferramentas de hacking de jogos no Windows são realmente
loucas. Em primeiro lugar, existe esta ferramenta Cheat Engine,
que já usei várias vezes neste canal, e é incrível para
pesquisar dinamicamente a memória em busca de variáveis interessantes.
E isso pode ser usado basicamente em qualquer jogo
para modificar qualquer coisa. Portanto, modificar a posição do jogador, essencialmente o
teletransporte, é fácil, mas também qualquer outra coisa, como possuir itens específicos ou ter uma certa
quantidade de ouro, é fácil de manipular. Além disso, os jogos do Unity são escritos em
C # e isso torna muito trivial descompilar e MESMO modificar com ferramentas como o
dnSpy. Então eu sabia que qualquer tipo de código que eu escrevesse seria imediatamente
encontrado, lido e modificado caso ajudasse os jogadores. Então eu realmente não posso esconder muito nele. Em jogos que são escritos em algo como
C++ requer um pouco mais de esforço porque você tem que usar disassemblers para ler o
código. Isso ainda não protege de trapaceiros,
mas para um desafio tornaria um pouco mais desafiador. Mas estamos presos com C #. Também sei que existem muitas
ferramentas específicas do Unity que tornam os jogos Unity de engenharia reversa muito fáceis.
Eles podem até mesmo reverter um projeto inteiro
para que você possa abri-lo no Unity novamente. É insano. A propósito, essa também é a razão pela qual
lancei este jogo para a competição apenas no Windows. Mesmo que eu pudesse ter compilado para Linux
e Mac também. As ferramentas, como as ferramentas de engenharia reversa do Unity
, no Windows são tão boas que qualquer um que tentasse resolver os desafios
no Linux ou Mac teria 10 vezes mais dificuldade. Portanto, lançar apenas o Windows pode ser uma droga
para alguns jogadores que precisam instalar uma VM, mas dessa forma posso forçá-los a explorar as
ferramentas malucas do Windows e tornar suas vidas realmente mais fáceis. De qualquer forma… eu realmente não vi muitas opções para
mais desafios. Eu senti que qualquer outro desafio que eu fizesse
se transformaria em um desafio de ofuscação de adivinhação de merda . Mas se eu tivesse um jogo online, onde um servidor
é responsável por distribuir as bandeiras, esse código estaria totalmente sob meu controle e eu poderia
implementar muito mais.
Então… lentamente me dei conta. [ __ ]… talvez eu devesse fazer um jogo online. Capítulo 15 – Finalizando Follow The White Rabbit
Em algum momento tive outra inspiração de como poderia mudar a segunda bandeira. A ideia vem basicamente do que as pessoas
chamam de “datamining”. Sempre que um jogo popular lança uma
atualização, as pessoas “datam” o jogo e tentam encontrar dicas ou vazamentos de conteúdo futuro. E então pensei, “isso pode virar
um desafio”. Os jogos Unity são divididos em várias cenas. Normalmente, cada nível seria sua própria cena. E ao compilar seu jogo Unity, você
precisa adicionar as cenas que deseja incluir. O que significa que talvez você acidentalmente inclua
a cena de uma atualização que ainda não pode ser reproduzida. O Unity também pode carregar várias cenas de uma só vez,
então basicamente removi a casa e a coloquei em sua própria cena vazia. Na ilha, transformei a área
em um canteiro de obras. Insinuando que uma futura atualização do jogo acrescentaria
algo aqui. Portanto, para resolver esse desafio agora, os jogadores
precisam descobrir que há outra cena neste jogo e carregá-la de alguma forma.
Por exemplo, modificando o jogo para forçar o
carregamento desta cena. Para minimizar as suposições e dar
um pouco mais de direção ao que os jogadores devem procurar, também criei um trailer épico
desse jogo, dando dicas sobre essa atualização e mostrando a casa. Eu esperava que isso fizesse as pessoas pensarem:
“se a bandeira está nesta casa, adicionada em uma atualização futura, e na versão que tenho
aqui ainda não está lá, então talvez essa atualização vazou para este lançamento”.
E então talvez você pesquise como os níveis podem
ser estruturados no Unity e aprenda sobre as cenas. Portanto, essas duas bandeiras, a queda e a
mineração de dados, tornaram-se o desafio de Introdução ao Game Hacking para nossa competição. Isso é Siga o Coelho Branco. Na verdade, estou muito orgulhoso disso. Este é o meu primeiro jogo. Ainda tinha alguns bugs que descobri mais tarde. Como se o volume do áudio estivesse quebrado. Mas seja como for, não estou vendendo, então
realmente não me importo. Como eu já disse, percebi que talvez eu
queira fazer um jogo online, afinal. Agora eu também tinha um pouco mais de confiança de que
seria capaz de fazer isso, porque neste ponto eu tenho o conhecimento básico do Unity e
posso fazer jogos 3D simples. Tudo o que eu precisaria agora é algum tipo de servidor
e componente de rede para que os clientes interajam entre si.
Comecei neste novo jogo, que mais tarde se
tornaria “Maze” antes mesmo de finalizar este desafio. Mas decidi incluir essa etapa aqui já,
então o próximo vídeo será sobre como fazer este jogo online..


![Giới thiệu các kênh Marketing 0 đồng [ Bài 1] – Công cụ marketing](https://59s.com.br/wp-content/uploads/2022/12/htmlF_IMG_638b365461402-1024x576.jpg)