Você está na página 1de 9

SEJA BEM VINDO AO FRUM.

SEJA BEM VINDO A

UDK - Criando seu ambiente do incio ao fim e distribuindo seu jogo


UDK - Criando seu ambiente do incio 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 no tem imagens de como fica o resultado final, e este tutorial todo escrito com minhas palavras pois vou criando e escrevendo para que eu tambm aprenda ensinando. Bom, o que voc ir aprender aqui se resume em: * 1 - Estrutura de pastas - como so organizadas as pastas * 2 - UnrealScript - onde voc colocar suas classes para que sejam compiladas corretamente * 3 - Arquivos INI - algumas modificaes simples para que seu jogo/mod seja reconhecido pelo compilador/editor * 4 - Mapa bsico - um mapa bsico para teste - apesar de j ter sido feito um tutorial sobre isso, vou colocar aqui tambm algumas dicas importantes e uns comandos de console muito usados durante os testes que ningum passa * 5 - Menu - criao de um menu bsico para seu jogo * 6 - Localizao - 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 contedo deixando s o necessrio 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 inteno do tutorial apenas para mostrar como criar o jogo e no como program-lo, ento vou usar estes scripts prontos apenas para nosso exemplo. Faa o download de tudo e mos a obra.

1 - Estrutura de pastas Aps instalar o UDK voc ter a seguinte estrutura de pasta na raiz: A pasta BINARIES contm os executveis do jogo, do UnrealFrontEnd e alguns outros programas do UDK. Somente em alguns poucos casos esta pasta modificada, portanto no precisa se preocupar com ela. Na pasta DEVELOPMENT onde ficam todos os arquivos que contm seu cdigo-fonte, ou seja, as classes que voc cria. a pasta mais importante para quem quer mudar totalmente o tipo de jogo, mudar cmeras, armas e por ai vai. Mas claro, mudar na programao, e no visualmente. O cdigo fonte tem a exteno .UC e os arquivos quando compilados ficam com a exteno .U. A pasta ENGINE responsvel por guardar toda a engine e no devemos mecher nesta pasta, deixe ela ali queitinha, pois ali que esto os arquivos necessrios para a engine funcionar. J a pasta UTGAME, na maioria das vezes a pasta mais usada, pois aqui que fica todo o contedo do seu jogo, como inis, texturas, materiais, modelos, localizao e por ai vai. Dentro da pasta UTGame temos ento muitas pastas importantes tambm, vou apresentar a estrutura de dentro dela e a descrio de cada uma: A pasta CONFIG contm os arquivos INIs, que so os arquivos de suma importncia 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 no deve usar o contedo do Unreal Tournament 3 que j vem numa verso demo com o UDK apara fins comerciais, pois so arquivos que pertencem a Epic Games, eles apenas deixam ai de teste para voc ter por onde testar e comear. A pasta LOCALIZATION contm os textos de acordo com a linguagem, sejam os textos dos menus, os dos dilogos ou qualquer outro que seu jogo possua. A pasta MOVIES guarda os vdeos de introduo, vdeos de loading do jogo, e por ai vai. A pasta SCRIPT mantm seus arquivos fontes compilados, que so 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 no so importantes no momento, ento no vou falar sobre elas. Uma dica importante, vamos supor que sua equipe v desenvolver um jogo usando o UDK, ento voc precisar de algum controlador de verso para juntar as modificaes e tudo mais. Como exemplo, falarei sobre o SVN. Usando o SVN em seu projeto, as nicas pastas que voc precisar adicionar no SVN sero as pastas DEVELOPMENT e UTGAME. Outra coisa, vamos criar uma pasta com contedo 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

* 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). Ento teremos nossa estrutura de contedo(content) assim: Outra dica: Embora eu aqui coloque as vezes o nome todo em maisculo, voc deve colocar sempre seguindo o padro, pois a engine as vezes da uns bugs com isso, e no coloque espao no nome das pastas. Com o tempo voc vai pegando os macetes e limitaes neste sentido. Uma recomendao do pessoal do The Ball que voc no coloque muitas pastas separando os contedos como o UT3 (Unreal Tournament 3), pois no 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 comeo 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 espaos e/ou acentos). Por direito, voc pode usar todo o cdigo do jogo Unreal Tournament 3, mas no o contedo(mesh, textura, material, som), ento no fique criando classes para controle do seu personagem do zero, sempre herde de algum, por exemplo, se voc quer criar uma classe para controle do personagem, faa assim: class MyPawn extends UTPawn; Sempre use a herana, pois ir facilitar sua vida. Uma dica importante, se voc reparar, em alguns scripts voc tem uma sesso assim, DefaultProperties, isso quer dizer que o que estiver ali dentro, ser visvel pelo editor com o valor padro que est definido ali. Lembrando que se na classe que voc herdou j tiver algum valor padro definido para alguma propriedade, a sua classe criada ir herdar automaticamente, ento s coloque ali o que for necessrio e diferente da classe que voc herdar. Bom, agora precisamos adicionar nossa pasta criada lista de diretrios para compilao. Para isso abra o arquivo: UTGame\Config\DefaultEngine.ini Procure pela sesso:

[UnrealEd.EditorEngine] E adicione a seguinte linha depois da ltima desta sesso: +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 alteraes desmarque o atributo somente leitura do arquivo, e ai sim voc pode salvar as alteraes. 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. Aps apagar este arquivo, vamos compilar nosso cdigo para ver se est tudo OK. Para isso, v na pasta BINARIES(fica na raiz da instalao) e abra o arquivo UnrealFrontEnd.exe. Este programa responsvel por muitas coisas no processo de desenvolvimento, e uma delas compilar nosso cdigo. Aps abrir o programa, v na barra l em cima, clique na setinha ao lado do boto MAKE e depois em FULL RECOMPILE.
Ex pandir e sta im age m Ex pandir e sta im age m

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 compilao acabar. Ai voc pergunta, mas porque MyGame.u? Eu te explico, a razo para ele chamar este arquivo assim porque ele compila todo o seu cdigo 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 padro. Que no nosso caso ser as classes que criamos. Abra o arquivo: UTGame\Config\DefaultGame.ini V ate a sesso:

[Engine.GameInfo] Faa as seguintes alteraes: * 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 alteraes. Entenderam o que fizemos? Apenas estamos dizendo engine que o tipo de jogo padro ser baseado na nossa classe(gametype) e que a classe que representa o player ser a nossa(pawn).

4 - Mapa bsico Bom, neste tpico nem vou me demorar, pois j fiz um outro tutorial sobre isso bem detalhado para voc comear. Link: http://www.devgames.com.br/tutoriais/visualizar/8/udk-basico-primeiro-tutorial-sobreo-unreal-development-kit Crie um mapa bsico qualquer e vou dizer aqui algumas opes 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 aps o texto UDKLift.exe, assim:
Ex pandir e sta im age m Ex pandir e sta im age m

Bom, vou criar um mapa junto com vocs s para ter-mos um mapa igual para o exemplo. Preste ateno nos detalhes, pois so bem teis e interessantes. Abra o editor pelo atalho que criamos. Aps aberto vamos criar nosso mapa bem bsico. Clique com o boto direito sob o cubo na barra esquerda e coloque os atributos como esto na imagem abaixo.
Ex pandir e sta im age m Ex pandir e sta im age m

Uma observao: 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. Aps criar o cubo, clique na ferramenta CSG ADD s para nosso cubo ficar com uma textura padro para nos orientar-mos no editor. Bom, agora aproxime a camera de modo que voc fique dentro do editor.

Adicione uma luz e posicione no centro (boto direito do mouse -> Add Actor -> Add Light). Adicione tambm um playerstart (boto direito do mouse -> Add Actor -> Add PlayerStart).
Ex pandir e sta im age m Ex pandir e sta im age m

Feito isso, salve seu mapa/fase. Preste ateno no nome, pois em nosso arquivo fonte MyGameInfo.uc tem definido o prefixo do nome dos mapas/fases, que MG. Ento 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 atravs dele que a engine sabe qual a classe do tipo de jogo(gametype) deve ser usada. Como o prefixo MG ento ele sabe que a classe a ser chamada MyGameInfo. Agora faa 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.
Ex pandir e sta im age m Ex pandir e sta im age m

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, ns queremos que ele chame a nossa classe MyGameInfo e faa o que tem que fazer com o que programamos nela. um atalho para voc programar e testar as alteraes no mapa rapidamente. Agora, clique com o boto direito no nosso mapa/fase e use o famoso Play From Here, mas cuidado para voc no clicar l fora do cubo, faa isso dentro do cubo. Testou? Bem bacana n? Voc reparou que a camera ficou estilo terceira pessoa? Pois , voc pode alterar e ver o cdigo atravs da classe MyPlayerController. Um simples comando faz toda a mgica: 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 avanada.

5 - Menu

O menu tambm algo simples. E nada mais do que um outro level(mapa/fase) feito que carregado na inicializao. Bom, vamos l, primeiro faa uma cpia do arquivo do mapa/fase que voc acabou de criar. No meu caso vou criar uma cpia do arquivo MGExampleGameLevel.udk, e se voc seguiu o mesmo exemplo, faa isso tambm, gere uma

cpia e renomeie para ExampleGameFrontEnd.udk: Feito isso, abra o arquivo que criamos como cpia(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 boto NEW l embaixo: Na janela que aparecer coloque as informaes como na imagem abaixo, preenchendo o Package, Name, Factory. Selecione a Factory corretamente(UI SCene), seno no adianta.
Ex pandir e sta im age m Ex pandir e sta im age m

De um duplo-clique na UI Scene que criamos, que j deve vir selecionada aps clicar em OK. Preste ateno que esta parte um pouco chata. Quando a janela abrir, clique com o boto direito em qualquer rea quadriculada e v no menu: Place Widget -> Button [Standard]
Ex pandir e sta im age m Ex pandir e sta im age m

Coloque qualquer nome quando aparecer a janela pedindo o nome do boto. Por padro o boto j vem cobrindo toda a rea verde, mas se no vier, redimensione o boto para ficar do tamanho da rea representada pela linha verde. Essa linha verde representa toda a tela. Agora clique com o boto direito em cima do boto e depois clique no menu UnrealKismest Editor. Essa ferramenta bem til pois faz a ligao com o UnrealScript para ns. Na janela do Kismet que abriu, clique l embaixo no item Global Sequence, se j no estiver. Agora clique com o boto direito do mouse na parte cinza, e clique no menu: New Event -> UI -> OnClick. Depois, clique novamente com o boto direito na parte cinza e clique no menu: New Action -> Level -> Activate Level Event:
Ex pandir e sta im age m Ex pandir e sta im age m

Aps 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:
Ex pandir e sta im age m Ex pandir e sta im age m

Uma dica importante: O nome do evento precisa ser nico, ou seja, no pode se repetir. Mas o que eu fiz? no entendi nada! Vamos l. Revisando. Criamos um novo cenrio "UI Scene", colocamos um boto na tela e

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 seno vai ser tudo perdido. Para salvar faa assim, feche a janela do UI Scene e voltaremos ao content browser, ento clique com o boto 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.
Ex pandir e sta im age m Ex pandir e sta im age m

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 boto Open UnrealKismet. Bom, agora vamos adicionar uma nova ao no Kismet. Em um espao vazio, clique com o boto direito do mouse e clique no menu: Add New Action -> UI Scenes -> Open Scene. Adicione um novo evento, clique com o boto direito do mouse e clique no menu: New Event > Level Startup.
Ex pandir e sta im age m Ex pandir e sta im age m

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:
Ex pandir e sta im age m Ex pandir e sta im age m

Adicione agora um novo evento. Clique com o boto direito do mouse numa parte vazia e clique no menu: Add New Event -> Remote Event e depois adicione uma nova ao, clique com o boto 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 boto, lembra?

jiraya

Administrador

Mensagens: 1316 Pontos: 8818 Crditos: 54

Re: UDK - Criando seu ambiente do incio 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 Crditos: 0

Tpicos similares Previso de incio das aulas Jogo da Velha em C Jogo Simples em Java Save do Jogo 100% [ Todas as Misses Feitas + Saude ] Criando sua Ficha

PERMISSO DESTE FRUM:


Voc no pode responder aos tpicos neste frum

Um frum grtis | phpBB | Frum grtis de ajuda | Fale conosco | Assinalar uma queixa | Frum grtis

Você também pode gostar