Transcrições
1. Introdução ao curso: Oi, bem-vindo.
Já faz um bom tempo que pretendo criar esse curso
. Nos últimos anos, venho explorando o que
significa criar jogos, alguém que vem de
uma formação criativa, mídia
digital, música, design de
artes visuais e narrativa E uma das coisas mais
empolgantes que eu vi é como a IA abriu
as portas para artistas, designers e
pessoas criativas que não vêm de uma formação tradicional em
programação. Por muito tempo, criar
jogos podia parecer trancado atrás da
barreira técnica por causa disso. Você pode ter um mundo em
sua cabeça, um personagem, um mecânico, um sentimento, um estilo visual
que deseja dar vida Mas, no momento em que você
abre o motor de jogo, tudo pode
de repente parecer sobrecarregado com códigos, scripts, componentes, erros, pastas, configurações e sistemas Pode parecer que o lado
técnico está
entre você e o jogo
que você realmente deseja criar Mas estou aqui para dizer
que esse é o caso, não mais. Isso lhe dá uma nova maneira de começar. Isso é o que eu acho. Você pode
começar com uma ideia simples. Descreva o que você
quer que aconteça. Use ferramentas assistidas por IA, ajude a criar a primeira versão
e, em seguida, teste-a no modo de jogo. É aí que o curso na interseção
entre arte e tecnologia, entre imaginação
e implementação, entre a coisa que você
imagina em sua mente e os sistemas que a fazem se
comportar dentro de um jogo Meu objetivo é ajudar você a usar IA como assistente criativo e
técnico, para que você possa passar menos
tempo em campos bloqueados
pelo código e mais tempo moldando a experiência que você
realmente deseja criar Vamos começar de forma simples. Pequenas ideias, pequenos recursos, você aprenderá a
descrever o que deseja, orientar as ferramentas,
testar os resultados e aprimorá-los passo a passo. Então, nesta primeira seção, veremos
as ferramentas básicas de que precisamos, como elas funcionam juntas e como criamos nosso primeiro pequeno recurso jogável
dentro do motor Vamos começar.
2. Preparando como fazer o que está: De volta. Portanto, antes de começarmos, gostaria de fazer
algumas recomendações porque existem
várias formas ou caminhos. Você pode seguir em frente e
seguir este tutorial. Vou te dar
minha recomendação para que você use exatamente o que eu estou usando. Essa definitivamente será
minha recomendação. Por causa do tutorial, nem
vamos falar sobre
o que é melhor ou o que é pior. É só para que você possa
acompanhar adequadamente. No entanto, quero dizer que esses princípios realmente se aplicam
a qualquer coisa. Você pode estar usando isso
para qualquer tipo de configuração. Oi, a futura lua está aqui. Esse vídeo vai
ser bem longo. Então, se você quiser minha
escolha imediatamente
, será Unity,
BS code e Codex É isso mesmo. Se você quiser
mais informações porque eu queria que esse vídeo fosse
informativo, continue assistindo Mas se você quer apenas
respostas rápidas, são essas três. Uh, eu vou usar o
Unity para o motor de jogo. Acho que é absolutamente compatível com essa forma
de pensar e projetar. Acho que outro motor de jogo muito
forte que seja compatível com essa forma de pensar
é bom, provavelmente. Eu não o uso pessoalmente, mas pelo que descobri,
só de ver outras
pessoas usando, parece-me que
essa forma
de pensar em implementar é altamente
compatível com Deus. Se você quiser experimentar
, me avise. Uma coisa para este tutorial é que o Unreal é um motor de
jogo incrível Eu não o usei extensivamente, mas por causa
deste tutorial, eu não o recomendaria Vai ser uma dor se você tentar seguir este
tutorial com o Unreal Então, para nosso editor de código, é
aqui que editamos nosso código ou onde nossos assistentes editarão
nosso código Ou, se o assistente
estiver criando o código, podemos abrir e inspecionar o código. Eu recomendo que façamos
isso porque nos
familiarizaremos com o código
que a IA está escrevendo e
não apenas ficaremos completamente
alheios ao que o
computador está fazendo, você familiarizaremos com o código
que a IA está escrevendo e não apenas ficaremos completamente alheios ao que o
computador está fazendo Eu acho que é muito
educativo fazer isso dessa maneira. Então, minha recomendação,
é claro, será o VS Code, e minha recomendação é realmente instalar a
extensão do Codex Não há
configuração melhor do que essa. É a configuração dourada para o que vamos
fazer aqui esta noite. Há outras opções. Então, para o assistente de IA, acho que se você escolher
Claude com Open AI, Codex ou Chat GBT, ou se escolher Gemini, acho que
estará super seguro com qualquer dessas três ferramentas de assistente
de E eu tenho uma menção honrosa, e vou
dá-la ao Open Code Que eu também o recomendo fortemente, por um motivo. É super, super barato. É extremamente barato. Você pode começar
com cerca de $5, eu acredito, eles cobram
pelo seu primeiro mês Então, acho que não há
melhor maneira de começar. A maioria deles
tem assinaturas por cerca de 20 dólares É uma loucura. Ainda assim, eu recomendo fortemente que você invista em uma ferramenta como
Cloud, Codex ou Gemini Esses três são como ter um atirador de elite, enquanto
aqui é como ter
um E, na verdade, acho
que isso é muito preciso porque
os fuzis de assalto também são muito úteis, porque permitem que você
trabalhe muito, se isso faz algum sentido E esses caras são
extremamente, extremamente precisos. Acho que eles não
cometem mais erros. Se você estiver com um orçamento menor, opte pelo código aberto. Isso só vai te dar um pouco mais de trabalho, porque você corrigirá
mais erros com mais frequência. E com esses caras, eles não cometem erros. É uma beleza absoluta
trabalhar com eles. Se você acabar trabalhando em
tempo integral em um videogame, provavelmente
desejará
ter um desses,
mesmo que seja apenas uma assinatura de $20
e, em seguida, uma assinatura de $5, fique à vontade para investigar e
fazer a melhor ligação possível
3. Trabalhando no TDT Loop: Olá e bem-vindo de
volta. Espero que esta seja uma visão confortável para você Então, vou explicar bem rápido. Bem, agora,
aqui, aqui estou eu. Olá. E aqui, você poderá
ver o ambiente de codificação ou, pelo menos, o assistente
que estou usando para
programar os recursos dessa pequena cena que
configurei para você Temos um jogador e
temos um inimigo no momento, não
há
muita coisa dita a eles. Uh, nada além
do movimento, porque o
movimento é na verdade um pouco, é um recurso um
pouco sorrateiro de programar. Então, não vamos começar
com isso porque você realmente precisa mexer
nas configurações do projeto Portanto, o movimento é uma espécie de barreira escondida por trás de algumas outras
configurações no Unity, que
não são as mais fáceis de começar. Então, se formos para nossa pasta de
ativos, a raiz do nosso projeto, você verá que várias coisas podem ser um
pouco confusas no início Não vamos nos
preocupar com isso agora. Então, eu quero que você
abra seu projeto. Vou esperar por você. Você pode pausar este vídeo se precisar E você verá que
temos cenas. Se em seu projeto, sua cena não estiver
aberta por padrão, você pode entrar nas cenas e
clicar na cena de amostra, e ela
abrirá isso para você. Quando estiver lá,
quero que você abra
a pasta project
e depois os scripts. É aqui que vamos
criar nossos comportamentos e todas essas coisas que
tornam o jogo ao vivo. E vamos realmente
começar com isso. Por aqui, temos
o player de pastas. Por favor, não
mexa com isso agora. Só queremos que nosso jogador
realmente seja capaz de se mover. Portanto, não olhe para isso, mas não mexa muito com
isso Então, vamos clicar com o botão direito do mouse em
nossa área de projeto em qualquer lugar. E vamos querer
criar e
criar um
script de comportamento mono. Basta clicar nisso. Vamos chamá-lo de Novo comportamento. E toda vez que
criamos uma nova faixa, o
Unity realmente compilará
dessa forma Quando está fazendo isso,
chamamos isso de compilação. E vamos
clicar com o botão direito do mouse e abrir o projeto
C Shar Se você já
instalou seu IDE,
o que, para este tutorial, eu recomendo que você baixe o VS Code, para que você
possa acompanhar. Aberto, eu recomendo que
a ferramenta de IA que eu mais
recomendo é simplesmente
usar o Codex ou talvez o Clod Mas acho que o Codex é
o que tem a melhor e melhor integração
com o VS Code E eu gosto muito do
VS Code porque ele permite que você veja
seu código e outras coisas. Não preste atenção. Na verdade, não preste
atenção nisso. Esse é um roteiro que faz parte
do meu projeto maior no qual eu estava trabalhando por último e
aqui no canto inferior esquerdo, é
aqui que realmente
conversamos com o agente. Então, na verdade
, eu cliquei em Novo
comportamento e St me deu isso Então, deixe-me clicar nisso
novamente. E aqui estamos. Novo comportamento. Então
é isso que está fazendo. Então, vamos clicar e
jogar um pouco. Veja o que temos para começar. Então, para começar, na verdade, eu estou clicando em
W AZ para mover para cima, baixo, A para a esquerda, D para a direita, W para
cima, S para baixo. Então você pode realmente se movimentar. Você pode pressionar Shift
para, tipo, se mover mais rápido. É só com isso que estamos começando. Eu recomendo que se você está começando um novo projeto e
é seu primeiro projeto, comece com um projeto que já
lhe dê locomoção Como se movimentar,
chamamos isso de locomoção
no design de jogos. Então é
isso que temos. Então, vamos começar com
algo super simples. Por que não criamos, como
esse inimigo vermelho aqui? Vamos supor que esses
caras sejam inimigos. Não está se movendo.
Não está fazendo nada. Então, por que não
fazemos com que ele nos siga? Acho que esse é um recurso bastante
simples com
o qual podemos começar. Então, na verdade,
vamos expandir essa ideia cerca de três vezes durante a
duração deste curso, mas este vídeo é para mostrar a você,
da forma mais abstrata, do que trata
esse curso. Da maneira mais simples e simples, é uma mentalidade de pensamento
que basicamente pega uma ideia, a move
para um conceito real
e, em seguida, você a testa E a ideia desse curso
é principalmente essas três coisas. Em seguida, eu o divido
em várias partes, para que você possa realmente depurar seu jogo e realmente
criar um jogo, porque se você está sempre fazendo isso nessas
três etapas simples, essa é a filosofia Sim, essa é a filosofia. Mas se você continuar
fazendo isso assim, vai ficar confuso, bagunçado,
bagunçado Então, na verdade, uma das partes sobre as quais o design loop
fala é a documentação. Mas não vamos
entrar nisso, mas vamos falar sobre
as partes simples. Vamos
descrever por que fazemos isso. Vamos explicar isso para o assistente e depois
vamos testá-lo. E vamos
direto ao assunto. Então, acho que você não
conseguirá ver o que estou digitando, mas vou
pensar em voz alta enquanto digito, confiar no
que você pergunta
e, confiar no
que você pergunta
e na verdade, deixar o computador saber o que
você vai fazer para que ele possa ajudá-lo
melhor quando
você realmente espera
o que fazer Então escute. Então dissemos que
queremos que o inimigo nos siga. E meu objetivo agora é que o
Unity tem, na verdade, algumas ferramentas
para ajudar você a conseguir isso. Meu objetivo é ser capaz de
fazer isso apenas a partir do código. E eu acho que você pode fazer
isso apenas editando a transformação dessa
coisa, do inimigo. Se você olhar aqui, você tem esse componente
que é a transformação. Se você editar isso, poderá
fazer
com que se mova de forma tão simples quanto isso. Se você criar um componente que esteja analisando sua posição ou a posição
desse cara, e ele o atualize de
uma forma que faça sentido. Você quer que o
componente analise sua posição e que ele atualize sua posição
com base em onde você está. Então, deixe-me tentar expressar isso para o computador, porque
se há um componente que podemos criar e ele pode
simplesmente mover o inimigo em minha direção procurando minha posição
e atualizando sua posição, talvez possamos fazer com que ele
nos persiga. Então, vamos tentar isso. Então, aqui estou de volta ao Codex. Eu vou dizer, Ei, cara. Então, estou tentando adicionar um componente e
acho que aprender a linguagem do Unity vai
te ajudar muito com o tempo Eu
encorajo você a apenas praticar, praticar, praticar com
este loop de design de jogos. E eu acho que você vai
ficar cada vez melhor. Você
poderá ver as coisas acontecerem no primeiro dia
nos primeiros dois dias. Na primeira semana,
você poderia criar um jogo em alguns dias,
talvez com esse método, apenas adicionando e adicionando recursos. Então, estou tentando
adicionar um componente
ao círculo inimigo para
que ele me persiga. Vamos chamar isso de realista. Quero me sentir realista
e não super rápido. Então, eu sou capaz de realmente
evitá-lo e torná-lo justo para o jogador e fazer com que seja justo
que o jogador o evite Não estamos
nos preocupando com danos
ou algo parecido. Eu só quero que o inimigo me
persiga, o jogador, certo? Então, espero que, quando o
Codex escrever um roteiro para nós, esse componente inimigo seja
capaz de nos perseguir E, a propósito, uma coisa a menos, há um componente
para o movimento do jogador. Então você pode consultar
D. Então, acabamos com um movimento para o inimigo
que é consistente com a velocidade atual do nosso jogador. Só um pouco mais devagar, certo? Então, na verdade,
vou configurá-lo para 5,5. E eu vou
apenas acendê-lo. Não precisamos de muita
cognição para isso. Então, vou filmar e ver o
que acontece. Eu voltarei. Então está me
dizendo que está feito. Então está me dizendo
que está feito. Ele criou uma pasta, chamou-a de inimiga, muito inteligente. Então, entramos nisso, abrimos
o componente que ele criou. E olá. Esse é o componente que ele
criou. Bem simples. Uma coisa que você verá quando estiver criando ou a IA estiver
criando compostos para você há uma coisa no código
Unity ou C Sharp, as interações que
são simplesmente incríveis, e você vai adorar e aprender a usá-las chamadas de campos serializados ou
campos públicos E esses são componentes que
você pode realmente ajustar ao vivo ao
adicioná-los à cena E você pode ajustar coisas
como velocidade, qualquer coisa, na verdade. Você pode ajustar qualquer coisa
quando estiver no modo de jogo. E é simplesmente incrível, tipo, as portas que a
tecnologia abre para nós, pessoas
artísticas, sabe? E aqui,
podemos ver que ele criou
campos serializados para velocidade máxima. Para aceleração, ele
cria um campo serializado. desaceleração criou
um campo serializado
e, à distância de parada, criou um campo serializado, que eu acho
genial e provavelmente demais Portanto, temos um novo comportamento mono. Então, uma vez que
criamos nosso componente, isso significa que no
Unity, uma vez carregado, temos um comportamento mono que
podemos adicionar ao nosso inimigo Então, eu recomendo que você vá até
o objeto do jogo inimigo. Esses são
objetos do jogo à sua esquerda. E deixe-me realmente minimizar isso, porque eu não acho que
você possa realmente ver claramente. Eu vou fazer isso. Portanto, é mais limpo, com certeza. Na verdade, este é o plano de fundo da
minha área e este é o meu jogo independente no
qual estou trabalhando Não deveria estar lá, mas acho que está
nessa visão, caso você esteja curioso. Então, na verdade, eu não pedi ao
Codex que
adicionasse o componente ao objeto do jogo, e ele geralmente não o faz Quando seu projeto
é mais complexo, não é
necessário
esse tipo de liberdade. Então, vou supor que
ele não o adicionou
porque toda vez que
eles atualizam o Codex, ele faz mais e
mais coisas por você Algumas das coisas,
eu não acho que seja bom que esteja funcionando,
mas funcionou. Vou presumir
que não funcionou. Então, criou um
comportamento mono que é
chamado de circle Enemy
Chase motor two D. O que queremos fazer
é ir até o inimigo Esse é o círculo.
Se formos para a cena, você vê que quando eu a seleciono,
ela vai para o círculo. Muitas vezes, ele não
vai adicioná-lo aqui. E se o componente não
for adicionado
ao objeto real do jogo inimigo aqui, ele
não se moverá. Simplesmente não é. Portanto, ainda há atrito
entre a implementação
e o código Então, não está fazendo
tudo por você. Você ainda precisa aprender Unity. E acho que isso é um alívio, e acho que é
um bom meio termo. De qualquer forma, seguindo em frente, se
ele não adicionou o componente, tudo o que você precisa fazer é ir aqui, adicionar um componente e
começar a digitar o nome dele Se você não se lembra,
basta ir aqui. Circule o inimigo Chase. Então comece a digitar circle
enemy Chase Motor Se ele não aparecer aqui, provável que, se você
for ao console, é
provável que, se você
for ao console,
tenha um erro aqui, um erro vermelho e feio E esses são chamados de erros de
compilação. Se isso acontecer com você, tudo que você precisa fazer é
voltar ao Codex Volte para o Codex,
copie o erro, copie-o e simplesmente
entregue a eles. Não diga nada,
apenas dê para você. E eu juro para você,
isso vai resolver isso. Isso é tudo que você
precisa saber. Então, oh, isso é OBS.
Não é aí que eu quero. Então você clica em círculo ou digita circular o inimigo Chase Motor
two D. E você o adiciona. E lembra, eu
estava falando sobre serializados
ou campos públicos São esses caras aqui. Então, antes de realmente mexer
com eles, vamos testá-los. Vamos testar como ele está se comportando. Talvez não esteja nem um pouco se movendo. Ou talvez esteja se movendo super rápido. Então,
esses campos serão muito úteis. Vamos testá-lo. Vamos apenas testá-lo. Oh, meu Deus. Oh, meu Deus. Então, quando
se aproxima de você, oh, meu Deus. Oh, meu Deus. Quero dizer, se isso não é, tipo, um recurso adequado, eu não
sei o que é. Eu simplesmente não sei o que é. E se você está
acompanhando, quero dizer,
parabéns, porque se você pudesse adicionar esse
recurso ao meu lado, você poderia adicionar
praticamente qualquer recurso se fosse paciente
o suficiente, porque, sim, esse é um recurso simples, simples, o mais simples
que você poderia adicionar, provavelmente um dos mais. Mas, ao mesmo tempo,
isso é o que é. Você cria um componente. Você o adiciona ao objeto do jogo
que deseja afetar
e as coisas simplesmente
acontecem quando você pressiona play. Você poderia mudar isso. Sua imaginação é o limite. Na verdade, poderíamos configurá-lo
para que o componente ou o inimigo não
nos persigam até chegarmos perto. Quer experimentar? Vamos experimentá-lo. Ei, podemos realmente fazer com
que o inimigo
não nos persiga sempre, mas seja alertado quando ultrapassarmos um
certo limite Então ele começa a perseguir. Vamos tentar. História. Vamos apenas tentar. E está
me dizendo que foi isso que aconteceu. Na verdade, era uma função
super simples. Ele adicionou seis linhas. Eu removi uma linha. Clicamos em Recarregar. E vamos
ver se está realmente funcionando. Na verdade, para que isso faça
um pouco mais de sentido, vou começar com o
inimigo meio que encurralado. Mais ou menos assim. Não queremos acioná-lo
muito cedo, certo? Algo que você
realmente deve observar é que, às vezes, ele pode criar novas funções em um novo script
ou um novo comportamento mono, e você quer ter
certeza de que está realmente adicionando-o
ao objeto de jogo adequado Porque se esperamos que as coisas sempre sejam adicionadas
ao mesmo componente, nem sempre
é o caso Então, na verdade, queremos estar altamente envolvidos no ciclo. Então, vamos tentar agora mesmo. Então eu perguntei, eu quero que o inimigo
não esteja sempre me perseguindo, mas uma vez que cruzamos um
certo limite, ele começa a me
seguir, sabe? Tipo, ele é
alertado. Oh, meu Deus. Isso meio que me
assustou. Oh, meu Deus. Porque tem, tipo, uma aceleração muito rápida. Oh, meu Deus. Oh, meu Deus. Oh, meu Deus. E o que isso me faz pensar
é que eu realmente
queria , tipo, perseguir um
pouco mais. Então eu vou dizer isso. Podemos realmente fazer isso? Então eu acho que o limite de começar a
perseguir é ótimo. Mas acho que uma vez que esteja perseguindo, eu gostaria de perseguir um limite maior do que o limite inicial
da perseguição, se isso fizer Para chegarmos
ao limite, ele persegue mais do que o
necessário para iniciar
a perseguição real Isso é o que eu quero dizer. Ok, então está
me dizendo que está feito. O inimigo agora tem
dois limites, alerta e distância de perda de
interesse Veja como a linguagem que essas coisas
têm é simplesmente incrível Como perder o interesse. Talvez eu pudesse ter dito
perder o interesse. Nós vivemos. Nós alertamos e aprendemos, certo? Então, vamos fazer o Unity
carregar e testá-lo. Recarregue, é claro. E provavelmente será um campo serializado
que podemos alterar Então, distância de alerta. Achei que estava um
pouco perto demais. Então, vou mudar para
talvez 7,5. Interesse perdido. Eu quero
fazer com que sejam 12, talvez. Isso não é 12. Olá. Olá.
Não pode ser menor. Então eu vou fazer
Ok, vamos lá. Vamos fazer com que seja 11. Vamos fazer com que seja 11. Vamos testá-lo. Olá. Ah. E, como você pode ver, não está
perdendo o interesse tão rapidamente. Tipo, eu tenho que
ir um pouco mais longe. Oh, meu Deus, está perseguindo agora. Está me perseguindo novamente. Não está
desaparecendo, muito rápido. Portanto, é dessa forma que
você pode realmente criar dificuldades de outras maneiras. Então, na verdade, vou mudar
isso para talvez nove. Então, nove. Isso não é nove. Então, nove. Isso, vou voltar para 6.5 e o
legal é que você pode,
tipo, editá-los em qualquer lugar quando tiver campos
serializados Então, é super legal. Então você quer fazer
isso. Então aqui está. Então, isso foi apenas para demonstrar o loop da maneira
mais simples possível. E daqui em diante, daremos mais e mais dicas
para que você possa realmente se tornar
mais proficiente nesse ciclo Documente as coisas corretamente,
planeje com antecedência adequadamente. E
também aprenderemos
algumas coisas sobre o Unity, porque aprendemos
mais sobre as ferramentas, a linguagem, e todas essas coisas vão nos ajudar muito ao longo do caminho Espero que essa primeira demonstração do loop tenha sido esclarecedora E espero que eu
ache o máximo que isso tenha sido uma abertura de
mente para você. Então você aprende ou começa a aprender sobre as
ferramentas que existem que tornam possível a criação de comportamentos no
jogo. Se você vem de uma formação mais artística ou de
uma perspectiva de design, acho que você ainda está mergulhando
na água, mas acho que isso só torna as coisas mais viáveis porque eu não estou
realmente pensando em código Existem detalhes técnicos, sim, mas acho que se torna
mais uma Unity aprendida Como se fosse o Photoshop. E aprenda exatamente como
falar com a máquina. Vamos deixar
isso para aqui. Lembre-se de que a primeira
parte do ciclo era pensar em um recurso,
descrever o recurso e depois testar o recurso. Essa é a
maneira mais simples de
dizer que você pode realmente
começar a testar hoje. Você poderia criar um
jogo inteiro só com isso. Um jogo pequeno. Eu serei isso.
Mas novamente no final.