UDK - Criando seu ambiente do início ao fim e distribuindo seu jogo.pdf

9

Click here to load reader

Transcript of UDK - Criando seu ambiente do início ao fim e distribuindo seu jogo.pdf

Page 1: UDK - Criando seu ambiente do início ao fim e distribuindo seu jogo.pdf

SEJA BEM VINDO AO FÓRUM. SEJA BEM VINDO AO FÓRUM.

UDK - Criando seu ambiente do início ao fim e distribuindo seujogo

UDK - Criando seu ambiente do início ao fim e distribuindo seu jogo por jiraya em Dom Ago 15, 2010 1:05 am

Hoje vos escrevo para ensinar e explicar como funciona e como criar seu ambiente para criar

seu jogo/mod com o UDK.

Antes que perguntem, este tutorial é baseado no tutorial do pessoal que criou o The Ball, mas

eu segui o tutorial deles e estou aqui compartilhando com minhas palavras e com imagens,

pois os tutoriais não tem imagens de como fica o resultado final, e este tutorial é todo escrito

com minhas palavras pois vou criando e escrevendo para que eu também aprenda ensinando.

Bom, o que você irá aprender aqui se resume em:

* 1 - Estrutura de pastas - como são organizadas as pastas

* 2 - UnrealScript - onde você colocará suas classes para que sejam compiladas corretamente

* 3 - Arquivos INI - algumas modificações simples para que seu jogo/mod seja reconhecido

pelo compilador/editor

* 4 - Mapa básico - um mapa básico para teste - apesar de já ter sido feito um tutorial sobre

isso, vou colocar aqui também algumas dicas importantes e uns comandos de console muito

usados durante os testes que ninguém passa

* 5 - Menu - criação de um menu básico para seu jogo

* 6 - Localização - você saberá como mudar os textos do seu jogo de acordo com a linguagem

* 7 - Mais sobre os arquivos INI - esta parte será somente para você alterar alguns arquivos

para a parte de cooking e da engine

* 8 - Cooking - você aprenderá sobre como enxugar o conteúdo deixando só o necessário para

rodar o jogo

* 9 - Packing - esta é a parte final, onde você distribui seu jogo em modo stand-alone, sem

depender do jogo Unreal Tournament 3.

--------------------------------------------------------------------------------------

Aqui:

- Alguns scripts - http://www.prsolucoes.com/downloads/udk/mygame.zip

____________________________________________________________________________

Antes que você pergunte o porque dos scripts, já vou respondendo. Como a intenção do

tutorial é apenas para mostrar como criar o jogo e não como programá-lo, então vou usar

estes scripts prontos apenas para nosso exemplo.

Faça o download de tudo e mãos a obra.

Page 2: UDK - Criando seu ambiente do início ao fim e distribuindo seu jogo.pdf

1 - Estrutura de pastas

Após instalar o UDK você terá a seguinte estrutura de pasta na raiz:

A pasta BINARIES contém os executáveis do jogo, do UnrealFrontEnd e alguns outros

programas do UDK. Somente em alguns poucos casos esta pasta é modificada, portanto não

precisa se preocupar com ela.

Na pasta DEVELOPMENT é onde ficam todos os arquivos que contém seu código-fonte, ou seja,

as classes que você cria. É a pasta mais importante para quem quer mudar totalmente o tipo

de jogo, mudar câmeras, armas e por ai vai. Mas claro, mudar na programação, e não

visualmente. O código fonte tem a extenção .UC e os arquivos quando compilados ficam com a

extenção .U.

A pasta ENGINE é responsável por guardar toda a engine e não devemos mecher nesta pasta,

deixe ela ali queitinha, pois é ali que estão os arquivos necessários para a engine funcionar.

Já a pasta UTGAME, é na maioria das vezes a pasta mais usada, pois é aqui que fica todo o

conteúdo do seu jogo, como inis, texturas, materiais, modelos, localização e por ai vai.

Dentro da pasta UTGame temos então muitas pastas importantes também, vou apresentar a

estrutura de dentro dela e a descrição de cada uma:

A pasta CONFIG contém os arquivos INIs, que são os arquivos de suma importância para seu

jogo.

A pasta CONTENT guarda arquivos como materiais, texturas, levels(mapas/fases), sons, e

tudo o que seu jogo terá neste sentido. Uma coisa importante, é que você não deve usar o

conteúdo do Unreal Tournament 3 que já vem numa versão demo com o UDK apara fins

comerciais, pois são arquivos que pertencem a Epic Games, eles apenas deixam ai de teste

para você ter por onde testar e começar.

A pasta LOCALIZATION contém os textos de acordo com a linguagem, sejam os textos dos

menus, os dos diálogos ou qualquer outro que seu jogo possua.

A pasta MOVIES guarda os vídeos de introdução, vídeos de loading do jogo, e por ai vai.

A pasta SCRIPT mantém seus arquivos fontes compilados, que são os arquivos .U.

Já a pasta SPLASH é onde ficam as imagens de splash do seu jogo. Aquelas que aparecem na

entrada e tudo mais.

Existem outras pastas ainda, mas não são importantes no momento, então não vou falar sobre

elas.

Uma dica importante, vamos supor que sua equipe vá desenvolver um jogo usando o UDK,

então você precisará de algum controlador de versão para juntar as modificações e tudo mais.

Como exemplo, falarei sobre o SVN. Usando o SVN em seu projeto, as únicas pastas que você

precisará adicionar no SVN serão as pastas DEVELOPMENT e UTGAME.

Outra coisa, vamos criar uma pasta com conteúdo somente para nosso jogo, sem misturas

com as que já existem. Para isso crie dentro da pasta UTGAME\Content as seguintes pastas:

* UTGame\Content\ExampleGame\Levels

Page 3: UDK - Criando seu ambiente do início ao fim e distribuindo seu jogo.pdf

* UTGame\Content\ExampleGame\Levels

* UTGame\Content\ExampleGame\UPK

A pasta ExampleGame\Levels conterá nossos mapas/fases.

A pasta Example\UPK conterá todos os outros arquivos(texturas/materiais/modelos e por ai

vai).

Então teremos nossa estrutura de conteúdo(content) assim:

Outra dica: Embora eu aqui coloque as vezes o nome todo em maiúsculo, você deve colocar

sempre seguindo o padrão, pois a engine as vezes da uns bugs com isso, e não coloque

espaço no nome das pastas. Com o tempo você vai pegando os macetes e limitações neste

sentido.

Uma recomendação do pessoal do The Ball é que você não coloque muitas pastas separando

os conteúdos como é o UT3 (Unreal Tournament 3), pois não há necessidade, o game deles

tem 1.5GB com apenas 20 arquivos .UPK.

Vamos continuar.

2 - UnrealScript

Bom, vamos agora até a pasta DEVELOPMENT\SRC, pois lá é onde ficam os arquivos fonte.

Descompacte o arquivo .ZIP que você baixou no link que deixei no começo do tutorial dentro

desta pasta(DEVELOPMENT\SRC). Ficando a estrutura assim:

Lembrando que estou criando a pasta com nome de MyGame apenas por seguir o exemplo do

pessoal do The Ball, mas você pode colocar qualquer nome, ou no caso o nome do seu jogo.

Se você está fazendo um jogo chamado Zombie Tower Defense, crie a pasta

ZombieTowerDefense no lugar de MyGame(lembre-se: sem espaços e/ou acentos).

Por direito, você pode usar todo o código do jogo Unreal Tournament 3, mas não o

conteúdo(mesh, textura, material, som), então não fique criando classes para controle do seu

personagem do zero, sempre herde de alguém, por exemplo, se você quer criar uma classe

para controle do personagem, faça assim:

class MyPawn extends UTPawn;

Sempre use a herança, pois irá facilitar sua vida.

Uma dica importante, se você reparar, em alguns scripts você tem uma sessão assim,

DefaultProperties, isso quer dizer que o que estiver ali dentro, será visível pelo editor com o

valor padrão que está definido ali. Lembrando que se na classe que você herdou já tiver algum

valor padrão definido para alguma propriedade, a sua classe criada irá herdar

automaticamente, então só coloque ali o que for necessário e diferente da classe que você

herdar.

Bom, agora precisamos adicionar nossa pasta criada à lista de diretórios para compilação. Para

isso abra o arquivo:

UTGame\Config\DefaultEngine.ini

Procure pela sessão:

Page 4: UDK - Criando seu ambiente do início ao fim e distribuindo seu jogo.pdf

[UnrealEd.EditorEngine]

E adicione a seguinte linha depois da última desta sessão:

+EditPackages=UTGame

+EditPackages=UTEditor

+EditPackages=UTGameContent

+EditPackages=MyGame <- adicione esta linha

A ordem correta das pastas é muito importante, pois diz ao compilador quais pastas devem

ser carregadas e compiladas primeiro.

Esta linha que adicionamos diz que o arquivo MyGame deve ser carregado sempre que o editor

for aberto.

Antes de salvar as alterações desmarque o atributo somente leitura do arquivo, e ai sim você

pode salvar as alterações.

Bom, com este arquivo alterado, podemos apagar o arquivo UTEngine.ini desta mesma pasta,

pois quando o editor for aberto, ele criará automaticamente um outro arquivo UTEngine.ini

baseado no arquivo que alteramos DefaultEngine.ini.

Após apagar este arquivo, vamos compilar nosso código para ver se está tudo OK.

Para isso, vá na pasta BINARIES(fica na raiz da instalação) e abra o arquivo

UnrealFrontEnd.exe.

Este programa é responsável por muitas coisas no processo de desenvolvimento, e uma delas

é compilar nosso código. Após abrir o programa, vá na barra lá em cima, clique na setinha ao

lado do botão MAKE e depois em FULL RECOMPILE.

Expandir esta imagemExpandir esta imagem

Bom, se tudo ocorrer bem, você verá na lista ao lado falando sobre MyGame e na pasta

UTGame\Script você terá o arquivo MyGame.u quando a compilação acabar.

Ai você pergunta, mas porque MyGame.u? Eu te explico, a razão para ele chamar este arquivo

assim é porque ele compila todo o seu código em um único arquivo, que terá o nome do seu

projeto, no nosso caso ele chamou de MyGame.u pois o nome do nosso projeto em

Development\Src é MyGame.

Continuando.

3 - Arquivos INI

Aqui vamos dizer para a engine qual o gametype que ele usará e qual o pawn que ele usará

como padrão. Que no nosso caso será as classes que criamos.

Abra o arquivo:

UTGame\Config\DefaultGame.ini

Vá ate a sessão:

Page 5: UDK - Criando seu ambiente do início ao fim e distribuindo seu jogo.pdf

[Engine.GameInfo]

Faça as seguintes alterações:

* Troque "DefaultGame=UTGame.UTDeathmatch" para "DefaultGame=MyGame.MyGameInfo".

* Troque "PlayerControllerClassName=UTGame.UTPlayerController" para

"PlayerControllerClassName=MyGame.MyPlayerController"

Novamente desmarque o atributo somente leitura do arquivo e salve as alterações.

Entenderam o que fizemos? Apenas estamos dizendo à engine que o tipo de jogo padrão será

baseado na nossa classe(gametype) e que a classe que representa o player será a

nossa(pawn).

4 - Mapa básico

Bom, neste tópico nem vou me demorar, pois já fiz um outro tutorial sobre isso bem

detalhado para você começar.

Link: http://www.devgames.com.br/tutoriais/visualizar/8/udk-basico-primeiro-tutorial-sobre-

o-unreal-development-kit

Crie um mapa básico qualquer e vou dizer aqui algumas opções interessantes que precisamos

alterar.

Mas antes, vamos criar um atalho pra o editor para que ele gere um log.

Vá até a pasta Binaries\Win32 e crie um atalho para o arquivo UDKLift.exe e adicione a

seguinte linha de comando nas propriedades do atalho:

editor -log

Coloque isto logo após o texto UDKLift.exe, assim:

Expandir esta imagemExpandir esta imagem

Bom, vou criar um mapa junto com vocês só para ter-mos um mapa igual para o exemplo.

Preste atenção nos detalhes, pois são bem úteis e interessantes.

Abra o editor pelo atalho que criamos. Após aberto vamos criar nosso mapa bem básico.

Clique com o botão direito sob o cubo na barra à esquerda e coloque os atributos como estão

na imagem abaixo.

Expandir esta imagemExpandir esta imagem

Uma observação: O atributo Hollow quer dizer OCO, ou seja, vamos criar um cubo OCO onde

podemos colocar dentro dele o que quiser-mos, no caso, nosso mapa será dentro do cubo.

Após criar o cubo, clique na ferramenta CSG ADD só para nosso cubo ficar com uma textura

padrão para nos orientar-mos no editor.

Bom, agora aproxime a camera de modo que você fique dentro do editor.

Page 6: UDK - Criando seu ambiente do início ao fim e distribuindo seu jogo.pdf

Adicione uma luz e posicione no centro (botão direito do mouse -> Add Actor -> Add Light).

Adicione também um playerstart (botão direito do mouse -> Add Actor -> Add PlayerStart).

Expandir esta imagemExpandir esta imagem

Feito isso, salve seu mapa/fase. Preste atenção no nome, pois em nosso arquivo fonte

MyGameInfo.uc tem definido o prefixo do nome dos mapas/fases, que é MG. Então salve o

mapa/fase com o nome MG-[Alguma coisa], no meu caso coloquei MG-ExampleGameLevel.

Ah e salve o arquivo na nossa pasta de mapas/fases, que é:

UTGame\Content\ExampleGame\Levels\

O prefixo é importante, pois é através dele que a engine sabe qual a classe do tipo de

jogo(gametype) deve ser usada. Como o prefixo é MG então ele sabe que a classe a ser

chamada é MyGameInfo.

Agora faça um Build ALL pelo editor.

Vá no menu lá em cima chamado View -> World Properties, e expanda o item WorldInfo.

Mude o item Game Type For PIE para usar a nossa classe MyGameInfo.

Expandir esta imagemExpandir esta imagem

Calma, Calma, Calma! Me explique isso.

Bom, primeiro, PIE significa: Play in Editor e alterando este item, estamos dizendo que

quando agente for testar o mapa pelo editor, nós queremos que ele chame a nossa classe

MyGameInfo e faça o que tem que fazer com o que programamos nela. É um atalho para você

programar e testar as alterações no mapa rapidamente.

Agora, clique com o botão direito no nosso mapa/fase e use o famoso Play From Here, mas

cuidado para você não clicar lá fora do cubo, faça isso dentro do cubo.

Testou? Bem bacana né? Você reparou que a camera ficou estilo terceira pessoa? Pois é, você

pode alterar e ver o código através da classe MyPlayerController.

Um simples comando faz toda a mágica: SetBehindView(true);

Uma dica para quando você estiver jogando em modo primeira pessoa e quiser mudar para

terceira pessoa com a camera original, é só você apertar a tecla [TAB].

Vamos continuar que a hora já está avançada.

5 - Menu

O menu também é algo simples. E nada mais é do que um outro level(mapa/fase) feito que é

carregado na inicialização. Bom, vamos lá, primeiro faça uma cópia do arquivo do mapa/fase

que você acabou de criar. No meu caso vou criar uma cópia do arquivo MG-

ExampleGameLevel.udk, e se você seguiu o mesmo exemplo, faça isso também, gere uma

cópia e renomeie para ExampleGameFrontEnd.udk:

Page 7: UDK - Criando seu ambiente do início ao fim e distribuindo seu jogo.pdf

cópia e renomeie para ExampleGameFrontEnd.udk:

Feito isso, abra o arquivo que criamos como cópia(ExampleGameFrontEnd.udk).

Vamos criar uma UI Scene. Para isso, vamos criar um pacote(package). Entre no Content

Browser(menu View -> Browser Windows -> Content Browser).

Clique no botão NEW lá embaixo:

Na janela que aparecer coloque as informações como na imagem abaixo, preenchendo o

Package, Name, Factory. Selecione a Factory corretamente(UI SCene), senão não adianta.

Expandir esta imagemExpandir esta imagem

De um duplo-clique na UI Scene que criamos, que já deve vir selecionada após clicar em OK.

Preste atenção que esta parte é um pouco chata.

Quando a janela abrir, clique com o botão direito em qualquer área quadriculada e vá no

menu: Place Widget -> Button [Standard]

Expandir esta imagemExpandir esta imagem

Coloque qualquer nome quando aparecer a janela pedindo o nome do botão.

Por padrão o botão já vem cobrindo toda a área verde, mas se não vier, redimensione o botão

para ficar do tamanho da área representada pela linha verde. Essa linha verde representa toda

a tela.

Agora clique com o botão direito em cima do botão e depois clique no menu UnrealKismest

Editor.

Essa ferramenta é bem útil pois faz a ligação com o UnrealScript para nós.

Na janela do Kismet que abriu, clique lá embaixo no item Global Sequence, se já não estiver.

Agora clique com o botão direito do mouse na parte cinza, e clique no menu: New Event -> UI

-> OnClick.

Depois, clique novamente com o botão direito na parte cinza e clique no menu: New Action ->

Level -> Activate Level Event:

Expandir esta imagemExpandir esta imagem

Após adicionar os itens, ligue o evento OUT do OnClick com o IN do Activate Level Event.

Depois selecione o evento Activate Level Event e mude o atributo Event Name para

OpenYourLevel. Como mostro na imagem abaixo:

Expandir esta imagemExpandir esta imagem

Uma dica importante: O nome do evento precisa ser único, ou seja, não pode se repetir.

Mas o que eu fiz? não entendi nada!

Vamos lá. Revisando. Criamos um novo cenário "UI Scene", colocamos um botão na tela e

Page 8: UDK - Criando seu ambiente do início ao fim e distribuindo seu jogo.pdf

criamos o evento OnClick que chamará o evento de nome OpenYourLevel do mapa/fase.

Isso poderia ser feito via script? Sim, mas daria mais trabalho.

Agora feche esta janela e clique numa parte vazia do UI Scene e ao lado direito, nas

propriedades procure pela flag Pause Game While Active e desmarque.

Isso fará com que o jogo continue ativo, rodando, enquanto esta tela é exibida.

Agora algo muito importante, você precisa sempre salvar seu trabalho, pois senão vai ser tudo

perdido. Para salvar faça assim, feche a janela do UI Scene e voltaremos ao content browser,

então clique com o botão direito do mouse no nosso basicstartmenu_UI (UIScene) e no menu

que aparecer, clique em Salvar.

Salve na nossa pasta UPK que criamos, lembra? (UTGame\Content\ExampleGame\UPK\), com

o nome que ja está sugerido.

Expandir esta imagemExpandir esta imagem

Bom, já criamos nossa UI, adicionamos os eventos e tal, agora precisamos associar este

evento que criamos ao nosso mapa/fase.

Feche o content browser e clique no botão Open UnrealKismet.

Bom, agora vamos adicionar uma nova ação no Kismet. Em um espaço vazio, clique com o

botão direito do mouse e clique no menu: Add New Action -> UI Scenes -> Open Scene.

Adicione um novo evento, clique com o botão direito do mouse e clique no menu: New Event -

> Level Startup.

Expandir esta imagemExpandir esta imagem

Ligue o evento OUT do Level Startup com o IN do Open Scene. Depois clique no item Open

Scene e mude a propriedade Scene para a UISCene que criamos:

UIScene'MyGameInterface.basicstartmenu_UI'. Ficando assim:

Expandir esta imagemExpandir esta imagem

Adicione agora um novo evento. Clique com o botão direito do mouse numa parte vazia e

clique no menu: Add New Event -> Remote Event e depois adicione uma nova ação, clique

com o botão direito do mouse: New Action -> Misc -> Console Command.

Bom, clique no evento Remote Event e mude a propriedade Event Name para OpenYourLevel

que foi o evento que criamos no botão, lembra?

Page 9: UDK - Criando seu ambiente do início ao fim e distribuindo seu jogo.pdf

Um fórum grátis | © phpBB | Fórum grátis de ajuda | Fale conosco | Assinalar uma queixa | Fórum grátis

Tópicos similares

» Previsão de início das aulas

» Jogo da Velha em C

» Jogo Simples em Java

» Save do Jogo 100% [ Todas as Missões Feitas + Saude ]

» Criando sua Ficha

PERMISSÃO DESTE FÓRUM:

Você não pode responder aos tópicos neste fórum

jirayaAdministrador

Mensagens: 1316 Pontos: 8818

Créditos: 54

Re: UDK - Criando seu ambiente do início ao fim e distribuindo seu jogo por Linus em Sab Nov 13, 2010 1:02 pm

nossa Jiraya seu tutorial esta muito legal^^ parabens novamente

Linus.:Membro:.

Mensagens: 63 Pontos: 81

Créditos: 0