Compartilhe

quinta-feira, 17 de dezembro de 2009

Criando seu ambiente do início ao fim e distribuindo

Esse tutorial foi escrito pelo Paulo Coutinho direto do site www.devgames.com.br. Para você que está só esperando aprender a compilar o jogo feito, essa é a hora. Siga em frente, aprenda e ganhe dinheiro. Não se esqueça de nos enviar um link para download do jogo de Demonstração que você produzir.

Agradeço ao Mol Mol Wellington por ter passado esse tutorial.

"Olá,

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.

Link: http://tutorial.toltecstudios.com/

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

0 - O que você irá precisar

Este tópico zero, é somente para deixar aqui o que você precisar baixar para que tudo funcione.

- UDK - http://www.udk.com/download.html

- 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.

1 - Estrutura de pastas

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

http://www.devgames.com.br/images/imagens/85/original_imagem.png

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:

http://www.devgames.com.br/images/imagens/86/original_imagem.png

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
  • 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:

http://www.devgames.com.br/images/imagens/87/original_imagem.png

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:

http://www.devgames.com.br/images/imagens/88/original_imagem.png

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:

[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.

http://www.devgames.com.br/images/imagens/89/original_imagem.png

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:

[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:

http://www.devgames.com.br/images/imagens/90/original_imagem.png

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.

http://www.devgames.com.br/images/imagens/91/original_imagem.png

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.

http://www.devgames.com.br/images/imagens/92/original_imagem.png

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

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).

http://www.devgames.com.br/images/imagens/93/original_imagem.png

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.

http://www.devgames.com.br/images/imagens/94/original_imagem.png

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.

http://www.devgames.com.br/images/imagens/95/original_imagem.png

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:

http://www.devgames.com.br/images/imagens/96/original_imagem.png

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:

http://www.devgames.com.br/images/imagens/97/original_imagem.png

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.

http://www.devgames.com.br/images/imagens/98/original_imagem.png

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

http://www.devgames.com.br/images/imagens/99/original_imagem.png

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]

http://www.devgames.com.br/images/imagens/100/original_imagem.png

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:

http://www.devgames.com.br/images/imagens/101/original_imagem.png

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.

http://www.devgames.com.br/images/imagens/102/original_imagem.png

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

http://www.devgames.com.br/images/imagens/103/original_imagem.png

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

http://www.devgames.com.br/images/imagens/104/original_imagem.png

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:

http://www.devgames.com.br/images/imagens/105/original_imagem.png

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 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.

http://www.devgames.com.br/images/imagens/106/original_imagem.png

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.

http://www.devgames.com.br/images/imagens/107/original_imagem.png

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.

http://www.devgames.com.br/images/imagens/108/original_imagem.png

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.

http://www.devgames.com.br/images/imagens/109/original_imagem.png

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

http://www.devgames.com.br/images/imagens/110/original_imagem.png

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:

http://www.devgames.com.br/images/imagens/111/original_imagem.png

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?

http://www.devgames.com.br/images/imagens/112/original_imagem.png

Agora clique no Console Command e adicione o comando: open MG-examplegamelevel, como na imagem abaixo:

http://www.devgames.com.br/images/imagens/113/original_imagem.png

Lembrando que você pode criar mais de um comando, clicando no sinal de mais (+).

Esse comando que será executado no console será ativado quando clicar-mos no botão, então nossa UI será para isso, ao clicar no botão vamos chamar nosso mapa/fase inicial.

Adicione agora uma nova ação, clique com o botão direito do mouse numa parte vazia e clique no menu: New Action -> Toggle -> Toggle Cinematic Mode.

http://www.devgames.com.br/images/imagens/114/original_imagem.png

Agora adicione uma variável, clique com o botão direito do mouse e depois no menu: New Variable -> Player -> Player.

http://www.devgames.com.br/images/imagens/115/original_imagem.png

Agora ligue conforme a imagem abaixo. Está tudo juntinho pois não queria que a imagem ficasse grande para não tomar muito espaço na tela.

http://www.devgames.com.br/images/imagens/116/original_imagem.png

Bom, vou explicar o que você fez. Você ligou oevento Level Startup em duas ações:

  • OpenScene - que exibirá nossa tela que criamos no Kismet
  • Toggle Cinematic Mode - aqui você poderá chamar uma apresentação de início de jogo, um vídeo, uma história ou algo do tipo, ao qual você pode usar a ferramenta Matinee para isso. Adicione o item que você criar na propriedade desta ação.

E o Toggle Cinematic está ligado ao Player que executará o comando no console que está ligado ao evento OpenYourLevel que criamos no Kismet, no OnClick ou seja, o evento será o mesmo que você clicar na UIScene que criamos, que é ativar o mapa/fase para jogar-mos.

Uma observação: Isto não funcionará no editor, somente no jogo mesmo.

0 - Localização

A internacionalização é bem simples, sempre que o jogador seleciona uma linguagem diferente a engine aponta para os respectivos diretórios. Mas nós vamos usar a localização INT (internacional) ou Inglês :)

Vamos fechar nosso editor, mas salve tudo.

O editor só detecta a localização INT em sua inicialização.

Crie um arquivo de texto chamado MyGame.int dentro da pasta: UTGame\Localization\INT.

Neste arquivo que criamos adicione as linhas:

[ExampleOfASection]
01=Meu jogo
02=To play click the button

O que está entre os colchetes é chamado de sessão, quem está acostumado com arquivo INI conhece. Os números ali embaixo da sessão representa o número da linha, mas você pode usar qualquer coisa, como um texto por exemplo.

Se você for usar texto, evite os espaços e acentos.

Agora abra o editor novamente, depois abra nosso arquivo que contém a UIScene. Se você seguiu o tutorial, será ExampleGameFrontEnd.

Abra o content browser, de um duplo-clique na nossa UIScene em nosso pacote(package).

Clique com o botão direito do mouse e clique no menu: Place Widget -> Label [Standard].

http://www.devgames.com.br/images/imagens/117/original_imagem.png

Faça isso duas vezes, de modo que você tenha duas labels em sua UIScene:

http://www.devgames.com.br/images/imagens/118/original_imagem.png

Após adicionar as labels, clique na primeira label e no menu ao lado acesse a propriedade: Data -> Data Source -> Markup String e coloque o seguinte texto ali: strings:mygame.ExampleOfASection.01


Para explicar, caso você ainda não tenha sacado. Quando você definiu este texto na propriedade Markup String, você está dizendo que o conteúdo da label será uma string contida na sessão ExampleOfASection, no item 01 do jogo MyGame(o nosso jogo). Se você tivesse colocado no arquivo de localização assim:

[Game]

titulo=Meu jogo

Então você colocaria assim na propriedade Markup String da label:strings:mygame.meujogo.01

Agora faça o mesmo para a segunda label, troque apenas o 01 por 02, ficando assim na propriedade Markup String da segunda label: strings:mygame.ExampleOfASection.02

Agora feche a janela do UIScene e não esqueça de salvar. Clique com o botão direito no item do content browser e depois em salvar, e ele já irá salvar no lugar que selecionamos antes.

7 - Mais sobre os arquivos INIs

Bom, já amanheceu e eu ainda estou aqui, às 6:00 da matina.

Feche seu editor, pois para altera-mos os arquivos INIs, precisamos fechar ele.

Abra o arquivo:

UTGame\Config\DefaultEngine.ini

Procure pela sessão [URL], e altere conforme abaixo:

  • MapExt=udk - Não altere aqui, a não ser que você tenha salvo seus mapas com outra extenção.
  • Map=UTFrontEnd.udk - Altere para ExampleGameFrontEnd.udk. Isso irá fazer com que carregue nosso menu como padrão.
  • LocalMap=UTFrontEnd.udk - Da mesma forma que acima, altere para ExampleGameFrontEnd.udk.

Então nosso INI ficará assim nesta sessão, nos itens abaixo:

  • MapExt=udk
  • Map=ExampleGameFrontEnd.udk
  • LocalMap=ExampleGameFrontEnd.udk

Os outros itens, deixe como estão.

Agora procure pela sessão: [Engine.PackagesToAlwaysCook] e adicione a seguinte linha:

+Package=ExampleGameFrontEnd

Isso fará com que o UnrealFrontEnd sempre compile faça o cook deste arquivo.

Agora procure pela sessão: [Engine.StartupPackages] e adicione a seguinte linha:

+Package=MyGameInterface

Isso fará com que o jogo sempre carregue este pacote. Lmebra que criamos este pacote para poder fazer a interface? Mas você não precisa colocar aqui todos os seus pacotes, somente os que forem relacionados a interface, para que sejam carregados primeiro.

Agora procure pela sessão: [Engine.PackagesToForceCookPerMap] e adicione a seguinte linha:

.Map=ExampleGameFrontend

.Package=MyGameInterface

Isso fará com que o pacote seja carregadao com o mapa(somente com este), pois as vezes a engine falha em carregar alguma coisa dela, então forçamos aqui somente os elementos da interface serem "cookeds" juntamente com o mapa/fase.

Você pode também se quiser, alterar a sessão: [FullScreenMovie] e adicionar o que você quer carregar como filme ou tela de carregamento. Se não quiser alterar, não precisa.

Terminamos, salve e exclua o arquivo UTEngine.ini para que seja criado outro baseado nessas nossas novas configurações.

Agora inicie o jogo e teste o menu que criamos, o pressionamento do botão e por ai vai. Clique no atalho "Game - Unreal Development Kit".

Aqui funcionou beleza.

http://www.devgames.com.br/images/imagens/119/original_imagem.png

8 - Cooking

Mais que raio de cooking é esse?

Calma, vamos lá. Este é o processo de compilação final do seu projeto. Ele pega o conteúdo que você usou no seu projeto(texturas, materiais, mapas/fases, modelos), codigos, localização e tudo mais, e ainda protege para dificultar que qualquer um veja ou altere o conteúdo do seu jogo.

Vamos à prática, feche o jogo, o editor e tudo mais e abra o UnrealFrontEnd(Binaries\UnrealFrontend.exe).

Clique na ABA cooking, vai aparecer um campo de texto para você digitar o nome do mapa, digite o nome do nosso mapa: MG-ExampleGameLevel.

Não precisa fazer o cook do outro mapa/fase(ExampleGameFrontEnd), pois lembra que adicionamos ele no INI para sempre ser feito o cook dele, pois ele faz parte da interface?

Agora clique no botão COOK lá em cima.

http://www.devgames.com.br/images/imagens/120/original_imagem.png

Após este processo, deverá ter sido criado uma pasta chamada CookedPC em UTGame, que é o conteúdo que será distribuido para o usuário final.

http://www.devgames.com.br/images/imagens/121/original_imagem.png

9 - Packing

Este é o processo mais esperado, a hora de empacotar todo o trabalho, gravar numa mídia e vender :)

Para fazer é muito difícil e complicado, preste MUITA atenção.

Ainda no UnrealFrontEnd, clique no botão Package Game.

Vai aparecer uma janela pedindo para você digitar o nome do jogo. Coloque o nome e clique no botão grande lá em baixo: Package

http://www.devgames.com.br/images/imagens/122/original_imagem.png

Pronto. Será gerado o arquivo de instalação na pasta raiz do UDK:

http://www.devgames.com.br/images/imagens/123/original_imagem.png

DICAS:

1 - Para adicionar BOTs no seu período de testes, abra o console no jogo e digite: addbots 3 (adiciona 3 bots)

2 - Para receber todas as armas do jogo durante os testes, abra o console no jogo e digite: allweapons

3 - Caso você não queira usar a camera em terceira pessoa via código, mas quer as vezes mduar a câmera de primeira pessoa para terceira pessoa, durante o jogo aperte a tecla [TAB]

4 - Use SEMPRE o mesmo nome do seu jogo em tudo, não fique criando um nome para cada coisa, se seu jogo se chama Banana Maluca, então use o nome BananaMaluca para o projeto e BM para a sigla/prefixo.

5 - O editor é meio lento pelo menos aqui em meu pc, então se você ficar dando 2 cliques direto para abrir um item no content browser, pode ser que ela abra atrás da janela do content browser, preste atenção nisso.

6 - Para mover os objetos e organizá-los no Kismet e UIScene, basta primeiro selecionar o item que você quer arrastar e em seguida pressione o control e ai sim você pode arrastar o item.

7 - Se no editor você arrastar os objetos mas na visualização principal você ver que não muda nada, faz um Build ALL que resolve tudo, geometria, luz, paths.

BUY ME A COFFEE:

Esse tutorial foi bem feito, levou quase 7 (sete) horas para ser feito, ou para ser mais exato 6:48 (de 00:00 até 06:48).

Deu muito trabalho, tirei 40 screenshots, cortei cada uma, testei tudo para não passar nada errado, expliquei cada detalhe, mas se ainda sim tiver dúvidas, você pode postar aqui. As vezes minha esposa até briga comigo pois as vezes deixo de dar atenção a ela para poder ficar aqui fazendo os tutoriais e ajudando assim a comunidade. Não é fácil, mas Deus tem me dado forças e paciência, pois encontrar bons materiais sobre a UDK é muito difícil, e o pessoal lá de fora também não colabora."

Pessoal, vale lembrar que o Paulo Coutinho se dispôs a ajudar a todos com o seu conhecimento.

Como todo autônomo, ele também precisa de suporte técnico para isso. Quem puder, firme uma parceria com ele para a aquisição de um PC mais potente (POTENTE EU FALO DE QUAD CORE EXTREME EM DIANTE). Você que está acompanhando o nosso blog e é do ramo de construção civil ou naval, vale a pena firmar uma parceria de serviço em troca de maquinário. Isso não é problema nenhum. Eu mesmo fiz isso e foi uma parceria muito gratificante para mim e para uma empresa na minha cidade. Adquiri a máquina do jeito que eu precisava e hoje tenho como trablhar no ramo.

O Paulo precisa de uma máquina melhor e um apoio financeiro de $ 99 dólares para o licenciamento da UDK. Mais a frente falaremos mais sobre esse valor de licenciamento da UDK. Mas calma, não é nada de que se preocupar. É obrigatório somente em caso de comercialização. Para produção e aprendizado não é preciso.

Estes são os objetivos e alvos do Paulo neste momento, e quem puder ajudar com alguma doação, basta clicar no botão abaixo. A forma de doação utiliza o serviço PagSeguro da UOL no qual qualquer um pode doar via cartão, boleto, transferência. Não é obrigação, é para quem pode ajudar também com este suporte/doação/contribuição.




Fonte: http://www.devgames.com.br/tutoriais/visualizar/10/udk-criando-seu-ambiente-do-inicio-ao-fim-e-distribuindo-seu-jogo

36 comentários:

Unknown disse...

Óla boa tarde fiz tudo conforme indicado mais na hora de compilar compila certinho sem erro nenhum nao tem nem aviso , somente quando vou rodar o exe do arquivo do jogo ja empacotado da um erro do windows e o progama e fechado sendo que aparece somente o logo da unreal e logo em seguida aparece o erro , vc pode me ajudar nisto ?
e quanto ao personagem como eu troco o personagem padrao aquele robozinho ?


fico grato por qualquer ajuda ate mais ...

28 de dezembro de 2009 às 06:13
Clovis Eduardo disse...

Olá clayton pereira , seja bem vindo.

Aqui já chegou a ocorrer erro semelhante por várias vezes quando estou fazendo modelagem, porém, nunca na compilação. Eu creio que seja algum problema de sistema operacional mesmo, tipo, no uso de memória virtual e etc.
Tente realizar o mesmo tipo de ação em outro sistema operacional. Verifique também se está instalada a versão Beta 1 ou Beta 2 da UDK. Lembro que a Beta 1 dava muitos erros que foram corrigidos na Beta 2.

Tente este tutorial em português que ensina a compilar:
http://udkbrasil.blogspot.com/2009/12/criando-seu-ambiente-do-inicio-ao-fim-e.html

Quanto ao robosinho, existem poucos tutoriais que ensinam a customisar seus próprios Players. porém, muito o que se tem disponível é baseado em programação.

Infelizmente, os feras na Unreal Engine 3 não ajudam. Mas calma. Segue abaixo um tutorial que ensina como trocar o robosinho por um player próprio:

UDK-CustomPlayerCharacterTutorial
https://docs.google.com/fileview?id=0By91YmpSeg58NTZkOTNhMDctYWU4OC00Y2FhLTgxM2QtNmU1MzNlNzAzNThl&hl=en

Lembrando que o tutorial já espera que você tenha o seu personagem customisado e com todas as animações prontas.

Este abaixo é para mudar a câmera
easy 3rd person controls //UDK//
http://www.3dbuzz.com/vbforum/showthread.php?p=1488022

Espero ter ajudado. Como a UDK é "nova" e possui pouco estudo disponibilizado na net, o blog ainda é um tanto precário em conteúdo, mas creio que aos poucos estaremos evoluindo nos tutoriais.

Boa Sorte

28 de dezembro de 2009 às 17:49
Unknown disse...

obrigado ai clovis pela resposta , estou pensando em desenvolver o meu trabalho final em udk fazendo um jogo para apresentar com projeto de graduação , e estou buscando informações na net pois o tempo e curto , se vc souber de mais informações que possam me ajudar neste projeto , irei ficar muito agradecido

15 de janeiro de 2010 às 18:08
Clovis Eduardo disse...

Com certeza clayton pereira
na medida do possível, juntarei as informações queu conseguir sobre a UDK. Boa sorte no trabalho final.

15 de janeiro de 2010 às 19:26
Unknown disse...

POR QUE VC NÃO MONTA UM PROJETO DE DESENVOLVIMENTO DE UM JOGO PARA GENTE PODER PARTICIPAR , TIPO REUNIR PESSOAS QUE ESTEJAM DISPOSTAS A PARTICIPAR , NO MEU CASO POSSO AJUDAR COM PROGRAMAÇÃO E COM A ESQUEMATIZAÇÃO 2D DOS PERSONAGENS E DOS CENARIOS .PESQUISA AI QUALQUER COISA INCLUI MEU NOME .VOU ESTAR OCUPADO ATE O MEIO DO ANO MAIS DEPOIS LÁ EM JUNHO ESTAREI LIVRE PARA UM PROJETO COMO ESTE .

20 de janeiro de 2010 às 05:00
Clovis Eduardo disse...

Fala clayton pereira
A idéia do blog é realmente dar apoio a formação de grupos de estudo da UDK.
O ideal seria a formação de grupos de estudo locais, com reuniões periódicas e com metas.

Aqui onde moro, montamos um grupo de estudo, mas, devido ao período de verão, a maioria está longe da UDK por conta de trabalho. Eu sou um desses e só devo voltar a estudar impiedosamente a UDK após o carnaval. Nessa época eu trabalho em dois empregos para tirar um trocado a mais. Mas fique sabendo que, no que depender de meu conhecimento, vou ajudar a quem precisar.

Qualquer coisa estou no msn abajah@hotmail.com

é nóis

20 de janeiro de 2010 às 19:42
Leonardo Davi Lúcifer disse...

Alguem poderia me ajudar com um tutorial ou qualquer outra coisa como que faz para mudar o personagem que ja comeca com a engine, e tbm os outras personagens que ja vem com o UDK...
Agradeco desde ja, mto obrigado!!!!

15 de março de 2010 às 16:11
Clovis Eduardo disse...

Leonardo, dá uma olhada nisso aqui
https://docs.google.com/fileview?id=0By91YmpSeg58NTZkOTNhMDctYWU4OC00Y2FhLTgxM2QtNmU1MzNlNzAzNThl&hl=en

16 de março de 2010 às 04:13
Leonardo Davi Lúcifer disse...

vlw pela dica clovis!!!
Eu gostaria de aprender ainda mais sobre o UDK, e gostaria de saber se mais alguem esta interessado em fazer um grupo de estudos, e montarmos um forum para criar um jogo.

16 de março de 2010 às 10:12
Leonardo Davi Lúcifer disse...

Se alguem estiver interessado em fazermos um grupo de estudo, me add ai no msn, para nos conversarmos mais sobre o UDK.
tbbtnerd@hotmail.com

16 de março de 2010 às 10:19
Anônimo disse...

boa tarde! estou tendo problemas com o UDK, após instala-lo ele funciona perfeitamente, mas quando saio dele e tento reinicia-lo ele sempre da erro e não funciona mais.. Alguém já teve algum problema assim? tenho dois computadores, todos com 4gb de ram , 500gb de Hd só mudam as placas de video, pois uma é GF8800gtx e a outra ATI HD 4870 de 512MB..winxp32 instalado.. valeu …

16 de março de 2010 às 11:28
Clovis Eduardo disse...

Ae pessoal, vai abaixo o meu msn
abajah@hotmail.com

Vamos criar sim, a idéia do Blog era justamente essa. O Ideal é a formação de grupos nas cidades, mas, pelo que percebi, a maioria tem dificuldades em se reunir (me incluo nisso)

Frank
Um amigo meu teve o mesmo problema usando a UDK no XP e só conseguiu resolver quando migrou para um OS mais novo. Eu recomendo o WIN7, ser for possível instalar o ORIGINAL para n ter problemas com DLLs e DX10.

16 de março de 2010 às 12:28
Anônimo disse...

bom dia!
Clovis, agradeço pela sua resposta e colaboração, creio que apesar das adversidades já é hora dos brasileiros começares a por a mão na massa, a UDK é uma oportunidade de conhecermos um motor de jogo de alto desempenho e de forma gratuita.
O que às vezes dificulta o aprendizado é o fato de todo conteúdo disponível na internet, em sua maioria, ser de origem inglesa, mas como dis o slogan da Petrobrás o desafio é nossa energia..

17 de março de 2010 às 04:59
Clovis Eduardo disse...

"o desafio é nossa energia"
Boa frase Frank

Pessoal, eu embora entendendo um pouco de inglês, vou falar uma verdade e não vejo vergonha nenhuma nisso, uso um tradutor online sempre que tenho dificuldade. Principalmente quando se trata de perguntar em algum fórum internacional.

O segredo do aprendizado na área de 3d é a prática "exaustiva".

Estou usando a versão Beta da UDK mais recente e vi que algumas coisas mudaram para melhor, como no sistema de seleção de cores para o FOG, entre outras coisas.

Experimentem apertar a tecla TAB e digitar behindview depois enter. Isso fará com que o player mude para a terceira pessoa.

17 de março de 2010 às 07:20
Clovis Eduardo disse...

Gostaria de pedir ao pessoal que está me adicionando no MSN que indique que veio por causa do Blog de Estudo da UDK. Fica melhor pr'eu organizar as coisas aqui.
Valeu

18 de março de 2010 às 08:33
Unknown disse...

eai blz gente...
otimo tutorial to fazendo ele
tah me ajudando mt!
mais aki to parado numa parte
"Após adicionar as labels, clique na primeira label e no menu ao lado acesse a propriedade: Data -> Data Source -> Markup String e coloque o seguinte texto ali:"

naum mostra o texto e nem depois quando muda para 02
tem como me dar um help please

Vlw galera to aprendendo mt com os feras

30 de março de 2010 às 13:13
Unknown disse...

Ola...
heim descobrir jah oq tem q tar escrito!
passando para vcs e se kizerem podem colcoar para ninguem se confudir igual a mim.
o texto eh e depois eh soh trocar o 01 para 02 ^^
olhei no sit original http://www.toltecstudios.com/theball/tutorialudk.htm
vlw, muito obrigado

30 de março de 2010 às 18:45
Leonardo Davi Lúcifer disse...

Vlw Clovis por posta esses tutoriais de como criar um char será mutio útil para mim e mais um monte de gente que está aprendendo o UDK.
Faz tempo que eu nao mexo com o UDK, pois estou tentando divulgar o meu site(oque esta bem dificil), mas continuo acessando o blog que está cada vez melhor.
Abracao galera do UDK Brasil!!!
Show de Bola.

12 de maio de 2010 às 21:12
Clovis Eduardo disse...

Leonardo Davi Lúcifer

Será útil não só pra vc, mas pra mim tbm. Heehe

Valeu, fica a vontade
é nóis.

13 de maio de 2010 às 03:45
Anônimo disse...

To com a ultima versao do UDK e alguns arquivos estão com o nome diferente UTGame agora é UDKGame. Eu adicionei as linhas de comando nos arquivos INI mas a pasta q criei nao aparece no content browser

8 de junho de 2010 às 14:09
Anônimo disse...

Depois q fiz esse tuto qq mapa q eu fiz anterior qnd rodo roda com bug o jogador nao tem arma e meio q flutua no mapa

8 de junho de 2010 às 14:25
ADiVAN disse...

oi sou novato na UDK,baixei a utima versão UDK-2010-05.
tô com um problema e que nessa versão não existe o arquivo "UDKLift.exe".
como faço pra dar continuidade ao tuto?

desde já agradeço.

13 de junho de 2010 às 08:58
Anônimo disse...

oi,vc falou que pera criar a pasta do meu jogo eu presiso entrar na pasta UTGAME mais a minha aparese UDKGAME e agora --'.Comesei a 3 dias e estoiu indo para a parte avansada e presiso saber como finalisar o jogo.

porfavor mi ajude!!

22 de junho de 2010 às 05:41
Clovis Eduardo disse...

ADiVAN - Verifique se você está usando a versão mais recente da UDK

Anônimo - Se não me engano (ou se fiz o tutorial como manda o script) os nomes que você citou correspondem a mesma função.
UTGAME: Unreal TounamentGame
UDKGAME: Unreal Development KITGame

________________________________________________________________


Fiz o TUTORIAL e deu certo

18 de julho de 2010 às 18:58
Anônimo disse...

Olá galera muito bom post, mas tenho um problema, nao estou conseguindo usar o UI Scene nao sei porque. Na hora de por o Factory no Content Browser nao aparece o UI Scene e por causa disso nao consegui fazer o menu e nem continuar o tutorial.

Me ajudem ai galera vlw!!!

11 de novembro de 2010 às 15:31
Isabelly disse...

Olá pessoal, bom dia!

Estou gostando do tuto, porém empaquei na parte onde cria-se uma UI Scene.

Em View -> Browser Windows -> Content Browser, ao tentar selecionar Factory = UI Scene, não exibe a opção de UIScene pra mim.... alguém sabe como solucionar este problema?

Agradeço a ajuda.

1 de dezembro de 2010 às 06:00
Isabelly disse...

Olá pessoal, boa tarde!

Pra quem estava com o mesmo problema que eu, eu estava com a versão do UDK 11-2010 e não encontrei UIScene. Baixei a versão de 07-2010 e já visualizo o UIScene em Factory. Fica a dica.

Agora já consigo seguir!

3 de dezembro de 2010 às 08:45
Unknown disse...

olá,desculpe o incomodo mas eu estou com dificuldades em executar o unreal fronted por que eu não estou conseguindo encontrar o aplicativo que seria o administrador para abrir o unreal fronted. Ai eu não consigo coloca-lo como administrador (é aquele aplicativo que tem um u amarelo com um circulo preto atras dele e varias flechas amarelas em volta.


Obrigado espero que possam me ajudar.

23 de dezembro de 2010 às 18:35
Clovis Eduardo disse...

Felipe, vá em C:\UDK\UDK-2010-11\Binaries

24 de dezembro de 2010 às 05:10
Unknown disse...

ah obrigado. Mas não é bem esse o erro,o erro decorrente é que eu não estou achando o programa que eu devo abrir o unreal fronted para dar o make e full recompile.
Obrigado

25 de dezembro de 2010 às 17:00
Unknown disse...

no meu factory não aparece a opção pacpage. O meu udk é 2010-12.
obrigado

27 de dezembro de 2010 às 16:57
Unknown disse...

Desculpe packpage não,quis dizer uiscene.

28 de dezembro de 2010 às 07:09
Clovis Eduardo disse...

Felipe, ainda não testei a nova versão> mas parece que o pessoal está tendo dificuldades em achar a UISCENE. Tente usar a versão anterior ao mês 11.

28 de dezembro de 2010 às 08:18
Unknown disse...

Obrigado

5 de janeiro de 2011 às 11:34
Anônimo disse...

Estou iniciando em um projeto de jogo que precisa se comunicar com dispositivos externos para envio de dados como velocidade, posição, gravidade... è possível acessar externamente (com um programa c++) as variáveis manipuladas dentro do jogo da UDK feito com o udkscript?

Obrigao

22 de setembro de 2011 às 21:24
Léo Nogueira disse...

No meu UDK não aparece a opção Level Starup. Como faço pra prosseguir? Quero testar isso pra já fazer meu game todo ainda esse ano!
Muito obrigado, o tutorial é ótimo e muito mais ainda a iniciativa...

23 de setembro de 2011 às 13:25

Postar um comentário

Seu comentário é importante para a manutenção do BLOG.

Não será publicado comentários que infringirem as seguintes regras:

01- ofensas gratuitas aos membros da UDKBrasil
02- descrédito para com a postagem
03- links com malwares ou qualquer tipo de fraude
04- palavras de baixo calão contra participantes
05- links de download não serão permitidos, a não ser que sejam gratuitos (freeware ou software de teste) e relacionados a UDK ou Computação Grafica.

Pedimos a gentileza de não USAR CAPS LOCK ligado.

OBS; assim que seu comentário for publicado,se junto dele NÃO houver uma resposta para sua dúvida,é porque não sabemos te responder...infelizmente, não sabemos de tudo!!

Seja bem vindo.

Fórum UDKBrasil

Top View Semanal

Top View Mensal

Top View de todos os Tempos

 
UDK BRASIL | by TNB ©2010