├── .gitignore ├── LICENSE ├── README.md ├── TODO.md ├── assets ├── intro.jpg ├── mercado.jpg └── world-creator │ ├── addarea.jpg │ ├── addareainfilter.jpg │ ├── area.jpg │ ├── bar.png │ ├── base.png │ ├── blueprinttexture.jpg │ ├── export.jpg │ ├── exportheatmap.jpg │ ├── filter.jpg │ ├── filterpath.jpg │ ├── filters.png │ ├── map.png │ ├── options.jpg │ ├── pathmontain.jpg │ ├── pathroad.jpg │ ├── sculp.jpg │ ├── sections.png │ ├── unrealinstance.jpg │ ├── unreallandscape.jpg │ ├── unrealmap.jpg │ ├── world1.jpg │ └── world2.jpg └── topics ├── 1-Introducao ├── Engines.md └── Introducao.md ├── 2-Ferramentas ├── Editor.md └── Unity.md ├── 3-Ambiente ├── UnityEditor.md ├── UnityHub.md └── VisualStudio.md └── 7-World ├── 1-Ferramenta.md ├── 10-UE4.md ├── 2-Superficie.md ├── 3-Filtros.md ├── 4-Texturas.md ├── 5-Areas.md ├── 6-Heightmap.md ├── 7-Estradas.md ├── 8-Montanhas.md └── 9-Unity.md /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Gustavo Andrade 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GameDev4Noobs 2 | 3 | ![Photo by Hello Lightbulb on Unsplash](./assets/intro.jpg) 4 | 5 |

6 | gamedev4noobs 7 |

8 | 9 | ## Objetivo 10 | 11 | Olá, bem-vindos ao repositório _gamedev4noobs_. O objetivo deste repositório é entregar, de maneira gratuita e acessível, diversos conteúdos que vão abrangir o desenvolvimento de jogos como um todo. 12 | 13 | Os tópicos estarão divididos por temáticas e assuntos semelhantes, começando pelas motivações e configurações, passando por exemplos básicos e isolados, e indo até a finalização de um jogo. 14 | 15 | ## Requisitos 16 | 17 | Para poder aproveitar os conteúdos do repositório da melhor forma, você irá precisar de uma noção básica de programação, preferencialmente na linguagem C#. 18 | 19 | ## Tópicos 20 | 21 | 1. **Introdução** 22 | - [Motivação](./topics/1-Introducao/Introducao.md) 23 | - [Engines](./topics/1-Introducao/Engines.md) 24 | 2. **Ferramentas** 25 | - [Unity](./topics/2-Ferramentas/Unity.md) 26 | - [Ambiente de desenvolvimento](./topics/2-Ferramentas/Editor.md) 27 | 3. **Unity - Configuração do Ambiente** 28 | - [Unity Hub](./topics/3-Ambiente/UnityHub.md) 29 | - [Visual Studio](./topics/3-Ambiente/VisualStudio.md) 30 | - [Unity Editor](./topics/3-Ambiente/UnityEditor.md) 31 | 4. **Unity - Conceitos Básicos** 32 | - [Conhecendo o Editor]() 33 | - [Objetos]() 34 | - [Scripts]() 35 | - [Console]() 36 | 5. **Unity - Componentes** 37 | - [GameObject]() 38 | - [Camera]() 39 | - [Rigidbody]() 40 | - [Collider]() 41 | - [Canvas]() 42 | - [Physics]() 43 | 6. **Visual Studio - Conceitos Básicos** 44 | - [Conhecendo o Editor]() 45 | - [Debug]() 46 | 7. **Criando Mundos com World Creator 2** 47 | - [Conhecendo a Ferramenta](./topics/7-World/1-Ferramenta.md) 48 | - [Iniciando com Superficies](./topics/7-World/2-Superficie.md) 49 | - [Filtros de Superficie](./topics/7-World/3-Filtros.md) 50 | - [Texturas](./topics/7-World/4-Texturas.md) 51 | - [Áreas](./topics/7-World/5-Areas.md) 52 | - [Heightmap](./topics/7-World/6-Heightmap.md) 53 | - [Estradas](./topics/7-World/7-Estradas.md) 54 | - [Montanhas](./topics/7-World/8-Montanhas.md) 55 | - [Exportando para Unity](./topics/7-World/9-Unity.md) 56 | - [Exportando para Unreal Engine 4](./topics/7-World/10-UE4.md) 57 | 58 | ## Como contribuir 59 | 60 | Para contribuir com esse projeto, basta seguir os passos abaixo: 61 | 62 | 1. Faça um fork desse repositório em sua conta pessoal no Github; 63 | 2. Crie uma branch de `feature/nome-da-feature` em seu repositório; 64 | 3. Faça commits e encha essa branch criada com bastante conteúdo; 65 | 4. Faça um pull request da sua branch para este repositório; 66 | 5. Acompanhe a avaliação do pull-request e responda se necessário. 67 | 68 | Caso tenha alguma dúvida durante esse processo, crie uma issue nesse repositório. 69 | 70 | ## Autores 71 | 72 | - **Gustavo Andrade (@gustaandrade)**: Game Designer, Game Developer e Web Developer - [Portfólio](https://gustavoandrade.design) e [Twitter](https://twitter.com/gustaandrade) 73 | 74 | ## Créditos 75 | 76 | - Foto de capa por [Hello Lightbulb](https://unsplash.com/@hellolightbulb) no Unsplash 77 | 78 |

79 | Made with :purple_heart: 80 |

81 | -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- 1 | - Explicar melhor a parte de precisão 2 | - Explicar Depth 3 | - Colocar artigo sobre multiframe 4 | - Achar cheatsheet de atalhos do WC2 -------------------------------------------------------------------------------- /assets/intro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/intro.jpg -------------------------------------------------------------------------------- /assets/mercado.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/mercado.jpg -------------------------------------------------------------------------------- /assets/world-creator/addarea.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/addarea.jpg -------------------------------------------------------------------------------- /assets/world-creator/addareainfilter.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/addareainfilter.jpg -------------------------------------------------------------------------------- /assets/world-creator/area.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/area.jpg -------------------------------------------------------------------------------- /assets/world-creator/bar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/bar.png -------------------------------------------------------------------------------- /assets/world-creator/base.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/base.png -------------------------------------------------------------------------------- /assets/world-creator/blueprinttexture.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/blueprinttexture.jpg -------------------------------------------------------------------------------- /assets/world-creator/export.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/export.jpg -------------------------------------------------------------------------------- /assets/world-creator/exportheatmap.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/exportheatmap.jpg -------------------------------------------------------------------------------- /assets/world-creator/filter.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/filter.jpg -------------------------------------------------------------------------------- /assets/world-creator/filterpath.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/filterpath.jpg -------------------------------------------------------------------------------- /assets/world-creator/filters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/filters.png -------------------------------------------------------------------------------- /assets/world-creator/map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/map.png -------------------------------------------------------------------------------- /assets/world-creator/options.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/options.jpg -------------------------------------------------------------------------------- /assets/world-creator/pathmontain.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/pathmontain.jpg -------------------------------------------------------------------------------- /assets/world-creator/pathroad.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/pathroad.jpg -------------------------------------------------------------------------------- /assets/world-creator/sculp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/sculp.jpg -------------------------------------------------------------------------------- /assets/world-creator/sections.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/sections.png -------------------------------------------------------------------------------- /assets/world-creator/unrealinstance.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/unrealinstance.jpg -------------------------------------------------------------------------------- /assets/world-creator/unreallandscape.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/unreallandscape.jpg -------------------------------------------------------------------------------- /assets/world-creator/unrealmap.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/unrealmap.jpg -------------------------------------------------------------------------------- /assets/world-creator/world1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/world1.jpg -------------------------------------------------------------------------------- /assets/world-creator/world2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/assets/world-creator/world2.jpg -------------------------------------------------------------------------------- /topics/1-Introducao/Engines.md: -------------------------------------------------------------------------------- 1 | # Engines 2 | 3 | ## O que é? 4 | 5 | A Engine é basicamente o programa que conterá e compilará todo o código que constitui o seu game. A Engine é a principal ferramenta para começar a programar qualquer tipo de game dos mais variados tipos. 6 | Será ela que definirá qual e como será seu desenvolvimento, sendo cada Engine diferente da outra. 7 | 8 | ## Diferenças de cada Engine 9 | 10 | Inicialmente cada Engine se diferença em vários aspectos de outra, tal como; 11 | 12 | - Linguagem de programação 13 | - Interface 14 | - Lógica de programação 15 | - Diferentes resultados 16 | - Focos em determinado estilo de game 17 | 18 | ## Como escolher 19 | 20 | E altamente variável qual será a escolha da Engine, sendo esta que definirá como será seu processo de prática e aprendizado. Apesar disso, pensar em que tipo de game deverá ser desenvolvido é uma boa opção para iniciar. 21 | 22 | ## Mercado 23 | 24 | Atualmente em funcionamente existem várias empresas que consolidaram seus softwares no mercado, sendo elas mais famosas até outras mais independentes e menos conhecidas, sendo elas: 25 | 26 | - Unity 27 | - Unreal Engine 28 | - GameMaker Studio 29 | - Clickteam Fusion -------------------------------------------------------------------------------- /topics/1-Introducao/Introducao.md: -------------------------------------------------------------------------------- 1 | # Motivação 2 | 3 | ## Por que começar a desenvolver games? 4 | 5 | Há alguns anos era irreal pensar que criar games poderia ser uma indústria tão lucrátiva quanto é hoje. A indústria dos games hoje já lucra bilhões a cada ano, e seus esforços para continuar aumentando o alcance do mercado aliádo aos esforços dos desenvolvedores não foram atoa, inflamando cada vez mais esse mercado. 6 | 7 | ![Gráfico baseado em múltiplas pesquisas e divulgado pela Ubisoft](/assets/mercado.jpg) 8 | 9 | Com múltiplas plataformas disponíveis para criação e lançamentos de games, as opções de games e linguagens de programação são das mais variadas possíveis, criando uma comunidade que hoje já ultrapassou audiências com o dobro do tempo de vida como o cinema, a música que há alguns anos atrás eram dominantes. 10 | 11 | Hoje sua dominância no mercado é inegável e um pilar da indústria do entretenimento e com isso se tornando um segmento da área de desenvolvimento que anda em contínua ascensão. 12 | 13 | ## Plataformas 14 | 15 | 16 | 17 | Não só para os jogadores mas também para os programadores, as plataformas disponíveis de cada game são extremamente importânte e assim variando seu estilo de criação. 18 | 19 | ### **PC** 20 | Computador até hoje é de vital importância para a indústria aliádo a diversas outras, devido a sua rápida versatilidade de configurações gráficas, aprimoramentos a longo prazo e principalmente sua indústria de modders, usuários que criam modificações para seus games favoritos, criando atualizações, melhorias de gráficos, novos conteúdos e outros diversos conteúdos que são lançados não oficialmente pela empresa detentora de determinado game porém igualmente valorizado. 21 | 22 | ### **Console** 23 | Plataforma marcante na vida de diversos indivíduos que segmentou mais uma divisão de desenvolvimento que conhecemos hoje, tal plataforma que hoje é dominado pela Microsoft, Sony e Nintendo, até o momento. Os consoles apesar de mais específicos em seu ambiente de desenvolvimento ainda sim são áreas determinante para o lucro da área hoje. 24 | 25 | ### **Mobile** 26 | O setor dos games para celular em muito pouco tempo se tornou gigantesco e já aliou não só em numero de jogadores mas também lucro às plataformas mais antigas, principalmente devido à evolução da plataforma mobile e a familiarização durante o tempo por seus jogadores. Outro fator que foi extremamente importante para o crescimento de tal segmento foi a acessibilidade que um celular possuí, sendo mais em conta do que as plataformas citadas acima. 27 | 28 | ## Ainda não acabou 29 | 30 | Sendo assim, a área de desenvolvimento de games é hoje extremamente influente e lucrátiva para se iniciar, ainda tendo muito o que por vir nos próximos anos. -------------------------------------------------------------------------------- /topics/2-Ferramentas/Editor.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/topics/2-Ferramentas/Editor.md -------------------------------------------------------------------------------- /topics/2-Ferramentas/Unity.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/topics/2-Ferramentas/Unity.md -------------------------------------------------------------------------------- /topics/3-Ambiente/UnityEditor.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/topics/3-Ambiente/UnityEditor.md -------------------------------------------------------------------------------- /topics/3-Ambiente/UnityHub.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/topics/3-Ambiente/UnityHub.md -------------------------------------------------------------------------------- /topics/3-Ambiente/VisualStudio.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/topics/3-Ambiente/VisualStudio.md -------------------------------------------------------------------------------- /topics/7-World/1-Ferramenta.md: -------------------------------------------------------------------------------- 1 | # Ferramenta 2 | 3 | O [World Creator 2](https://www.world-creator.com/) é um gerador em tempo real de terrenos e paisagens de propósito geral, sendo possível criar mundos exportáveis para ser utilizado em **jogos**. 4 | 5 | Com ele conseguimos fazer mundos para nossos jogos de maneira profissional e rápida. 6 | 7 |

8 | 9 |

10 | 11 |

12 | 13 |

14 | 15 | ## Conhecendo a Interface 16 | 17 | Vamos demonstrar alguns comandos básicos da interface do WC2: 18 | 19 |

20 | 21 |

22 | 23 | Neste menu podemos ter acesso a visualização do mapa de forma facilitada. 24 | 25 | 1. Criar um Novo Projeto; 26 | 2. Carregar Projeto; 27 | 3. Salvar Projeto; 28 | 4. Salvar Projeto em um lugar específico; 29 | 5. Ferramento do SYNC-Tool; 30 | 6. Mostrar Mapa de Altura; 31 | 7. Mostrar Informações no canto superior direito; 32 | 8. Mostrar Manequim; 33 | 9. Mostrar Compasso; 34 | 10. Mostrar Wireframe; 35 | 11. Mostrar Filtros; 36 | 12. Mostrar Texturas; 37 | 13. Mostrar Objetos; 38 | 14. Mostrar Detalhes; 39 | 15. Mostrar Tirar uma Foto do Mundo. 40 | 41 | O mapa inicial do WC2 vem com o padrão 2048x2048 com uma seed de heightmap. 42 | 43 |

44 | 45 |

46 | 47 | O menu da direita é onde vai estar tudo o que iremos fazer no mapa, como configurações de renderização do mundo, adicionar filtros, texturas, áreas e adicionar geração procedural de objetos e simulação de mundo. 48 | 49 |

50 | 51 |

52 | 53 | ## Base 54 | 55 | Na tela inicial do menu da direita, teremos o controle de forma geral de nosso landscape, assim conseguindo trabalhar em todos os aspectos gerais do mapa. 56 | 57 |

58 | 59 |

60 | 61 | ### Gerador 62 | 63 | - O Seed irá variar o nosso heightmap inicial; 64 | - O World Creator possui um sistema de **áreas**, que nos permite em separar os lugares do mapa, iremos falar mais sobre ele em uma seção futura. 65 | 66 | ### Tamanho do Mundo 67 | 68 | - Irá travar o tamanho para que a altura e a largura do mundo sejam iguais; 69 | - Define a largura do mundo; 70 | - Define a altura do mundo. 71 | 72 | ### Precisão 73 | 74 | - Por padrão o WC2 vem com 1 metro de precisão, ou seja, a distância entre um **bloco** e outro será de 1 metro. 75 | 76 | ### Customização da geração do mundo 77 | 78 | - Ativando esta opção, podemos alterar manualmente os níveis de altura base de nosso mundo; 79 | - Clicando na opção **Flatten Entire Terrain** podemos deixar o nosso mundo no nível de mar(0). 80 | 81 | ### Nível de Altura 82 | 83 | Aqui é a onde iremos definir a difusão do que estamos acrescentando, sendo divididos por **níveis**(Iremos explicar especificamente sobre esses níveis na seção de Heightmap). 84 | 85 | ## Opções 86 | 87 |

88 | 89 |

90 | 91 | ### Propriedades da Aplicação 92 | 93 | - Salvar Automaticamente determinando um período de tempo. 94 | 95 | ### Configurações do Gerador 96 | 97 | - Habilitar geração em tempo real; 98 | - Habilitar geração usando multiframe; 99 | - Distância de Tesselação, recomendável usar uma distância grande quando modelando montanhas ou estruturas complexas(para conseguir avaliar os detalhes). 100 | 101 | ### Foto 102 | 103 | - Tirar foto do projeto. 104 | 105 | ### Graficos 106 | 107 | Nesta aba é a onde teremos as configurações da ferramente para podermos visualizar o nosso mapa de diferentes perspectivas, como sombras, reflexo, DoF, etc... 108 | 109 | ### Câmera 110 | 111 | Aqui podemos configurar a nossa câmera de navegação para as nossas preferências. 112 | 113 | ### Interface 114 | 115 | - Colocar configurações de coloração de nossa ferramenta. 116 | 117 | [Próxima Seção](./2-Superficie.md) -------------------------------------------------------------------------------- /topics/7-World/10-UE4.md: -------------------------------------------------------------------------------- 1 | # Exportando para Unreal Engine 4 2 | 3 | ## Exportando o Heighmap 4 | 5 | Na aba de Export > Heightmap, iremos colocar as seguintes configurações. 6 | 7 |

8 | 9 |

10 | 11 | Clicando em exportar, recomendamos a utilização desta nomenclatura: 12 | 13 | `HM_Desert_4096x4096_z145.22_1m` 14 | 15 | HM: Heightmap 16 | 17 | Desert: O nome dado para o mapa 18 | 19 | 4096x4096: Area total do mapa 20 | 21 | z145.22: Altura máxima do mapa 22 | 23 | 1m: Precisão do mapa 24 | 25 | ## Exportando o Heatmap 26 | 27 |

28 | 29 |

30 | 31 | * Não há necessidade de exportar a primeira camada 32 | 33 | * Utilize a mesma configuração de flip colocada no heightmap 34 | 35 | ## Importando na UE4 36 | 37 | Para adicionar, clicamos em **Landscape** e importando o arquivo: 38 | 39 |

40 | 41 |

42 | 43 | Após importar, você já ira ter o mapa no editor: 44 | 45 |

46 | 47 |

48 | 49 | ## Criando Textura 50 | 51 | Agora, precisamos criar uma "textura mista" para os nossos heatmap's. 52 | 53 | Iremos considerar um mapa exportando como duas texturas: 54 | 55 |

56 | 57 |

58 | 59 | * Na base, iremos utilizar **sem mistura de peso**, em quanto as texturas seguintes iremos importar o **heatmap** 60 | 61 | * Para utilizar texturas externas, utilize o mesmo **blend** para importar normal, bump etc... 62 | 63 | * Use a instância do material no landscape: 64 | 65 |

66 | 67 |

68 | 69 | * Assim, o mapa exportado ficou desta forma: 70 | 71 |

72 | 73 |

74 | 75 | * Leia as instruções de landscape da UE4, assim conseguindo tirar um maior proveito das dimensôes utilizadas. -------------------------------------------------------------------------------- /topics/7-World/2-Superficie.md: -------------------------------------------------------------------------------- 1 | 2 | * Falar sobre rios 3 | 4 | [Próxima Seção](./3-Filtros.md) -------------------------------------------------------------------------------- /topics/7-World/3-Filtros.md: -------------------------------------------------------------------------------- 1 | # Filtros 2 | 3 | O WC2 possui um sistema de **filtros**, que nos possibilita aplicá-los em nosso mapa, **modelando** da forma que preferirmos. 4 | 5 | O WC2 vem com uma coleção de filtros: 6 | 7 |

8 | 9 |

10 | 11 | * Mapa 12 | 13 | * Dependendo da versão que estiver usando do WC2 irá ter mais filtros ou menos. 14 | 15 | * Mesclando filtros diferentes podemos ter efeitos diferentes do que o esperado, e isso não é algo ruim. 16 | 17 | * Usando níveis de filtro, podemos moldar de forma detalhada ou geral nosso mundo(explicaremos de forma abrangente na seção de Heightmap). 18 | 19 | * Posições de filtros contam, ou seja, os filtros podem se sobrepor dependendo da forma que foi inserido na Layer. 20 | 21 | * Layers(camadas) é uma forma de dividir o que formos adicionar, assim mantendo uma organização. 22 | 23 | Primeiramente, vamos criar uma **Layer** clicando em **Add Layer**, apos isso clicamos em **Filters: Add**, agora vamos adicionar o filtro **Erosion** que está na própria seção de **Erosion** 24 | 25 |

26 | 27 |

28 | 29 | ## Propriedade dos Filtros 30 | 31 | Podemos observar o seguinte: 32 | 33 |

34 | 35 |

36 | 37 | Podemos mecher no seguinte: 38 | 39 | - Força do Filtro 40 | - Tamanho em relação ao altura total 41 | - Suavização 42 | - Detalhamento 43 | - Profundamento 44 | 45 | * Altura mínima e máxima dependendo do filtro vem com valores padrões na altura que é esperado de se utilizar o filtro, certifique-se de alterar se for preciso. 46 | 47 | * Filtros podem possuir opções específicas, sendo os filtros mostrados não possuem uma regra geral. 48 | 49 | * Leia as descrições dos filtros para melhor aproveitamento da ferramenta. 50 | 51 | * Podemos usar os filtros de formas específicas usando as **áreas**, e iremos explicar como fazer isso. 52 | 53 | ## Distribuição dos Filtros 54 | 55 | - Operações básicas. 56 | - Cavidade(será melhor explicado na seção de texturas). 57 | - Noise é utilizado para a difusão entre os filtros, assim trazendo um efeito mais natural(isso não é uma regra). 58 | - Altura aonde o filtro fará efeito. 59 | - Relação entre o mínimo e o máximo do impacto total do filtro ou textura, depende de sua aplicação. 60 | - Ângulo aonde o filtro irá fazer efeito. 61 | 62 | [Próxima Seção](./4-Texturas.md) -------------------------------------------------------------------------------- /topics/7-World/4-Texturas.md: -------------------------------------------------------------------------------- 1 | # Texturas 2 | 3 | Colocar texturas em terrenos possui um processo parecido com o que fizemos com os filtros 4 | 5 | Na aba de texturas, podemos adicionar clicando em **Add** estando na Layer 6 | 7 | Dentre as opções que a WC2 disponibiliza, escolha a que preferir. 8 | 9 | ## Propriedades da Textura 10 | 11 | - Shade é aonde você ira modificar a cor base da textura 12 | - Podemos modificar valores padrões como rugosidade, ruído, altura, força. 13 | 14 | * Usamos a cavidade **Convex** quando queremos que uma textura fique apenas **por cima** em um determinado contexto, e **Concave** quando queremos que a textura apenas não fique no topo. 15 | 16 | * Altura usamos quando uma textura não pode de nenhuma forma estar em lugares altos. 17 | 18 | * Usamos o Ângulo quando queremos dar a impressão de uma textura não natural. 19 | 20 | * O Ruído deixa as texturas espalhadas de uma forma menos "montada". 21 | 22 | * Sobreponto texturas conseguimos posicionar de uma forma mais eficiente. 23 | 24 | * Não recomendamos utilizar as texturas padrões da WC2, se tiver uma intenção mais profissional recomendamos o [Quixel](https://quixel.com/) ou o [Substance](https://www.substance3d.com/) 25 | 26 | [Próxima Seção](./5-Areas.md) -------------------------------------------------------------------------------- /topics/7-World/5-Areas.md: -------------------------------------------------------------------------------- 1 | # Areas 2 | 3 | **Áreas** é uma forma que o WC2 usa para conseguirmos trabalhar com filtros e texturas de uma forma separada e específica. 4 | 5 | Para adicionar uma área é de uma forma parecido como adicionamos filtros: 6 | 7 |

8 | 9 |

10 | 11 | - Name: O Nome da Área que será referenciado quando quisermos escolher a área de filtros / texturas. 12 | - Width e Lenght: Altura e Largura da Área. 13 | - Fit to Terrain Size: Considera a altura e largura total do mapa. 14 | - Resolução: Resolução padrão da área, normalmente não precisa usar isso. 15 | - Overlay Image: Imagem para representação da área. 16 | - Has Heightmap: Dessa forma a nossa área irá ter um heightmap próprio. 17 | - Blendmap: Opções diretamente ligadas a área. 18 | - Show Blendmap: Exibir apenas as bordas da área. 19 | - Border Blend Range: Tamanho da Borda Total. 20 | 21 | # Edit Blendmap 22 | 23 | Aqui podemos esculpir nosso mapa diretamente em uma área, dessa forma não causamos mutação na base do mapa. 24 | 25 |

26 | 27 |

28 | 29 | * Usando Áreas conseguimos "dividir" os filtros de texturas sem que afetem diretamente o mapa 30 | 31 | * Dessa forma conseguimos dividir ações no mapa como "Rochoso" e "Montanhas", sem afetar outras áreas. 32 | 33 | Para adicionar um filtro/textura a uma área, apenas escolhemos a opção **Área** 34 | 35 |

36 | 37 |

38 | 39 | Vamos adicionar o filtro **Erosion** em uma área chamada **Montanha** 40 | 41 |

42 | 43 |

44 | 45 | [Próxima Seção](./6-Heightmap.md) -------------------------------------------------------------------------------- /topics/7-World/6-Heightmap.md: -------------------------------------------------------------------------------- 1 | # Heightmap 2 | 3 | Já mostramos como afetar diretamente nosso mapa e como esculpir, mas, como exatamente funciona os filtros? 4 | 5 | ## Filter Level Strengths 6 | 7 | Os níveis de filtro são baseados no tamanho total do mapa(ou área) dividido pelo nível em questão, por exemplo: 8 | 9 | Considerando um mapa 2017x2017, o step 1 seria 2017 / 2, afetando diretamente o bloco em questão. 10 | 11 | Com isso, quer dizer que este filtro afeta 4 blocos de tamanho 1008x1008. 12 | 13 | Agora, o step 2 seria 2017 / 4, então estamos considerando 16 blocos por 504x504, e assim sucessivamente. 14 | 15 | Levando isso em consideração: 16 | 17 | - Quando quisermos modelar diretamente o mapa em seu contexto geral, utilizamos steps menores. 18 | 19 | - Quando quisermos afetar partes individualmente utilizamos níveis maiores, 20 | 21 | - Níveis intermediários quando quisermos afetar pequenas áreas de relevo. 22 | 23 | [Próxima Seção](./7-Estradas.md) -------------------------------------------------------------------------------- /topics/7-World/7-Estradas.md: -------------------------------------------------------------------------------- 1 | # Estradas 2 | 3 | Para modelar estradas ou estruturas específicas, usamos os filtros de **Design**, no caso iremos usar o **Path** 4 | 5 |

6 | 7 |

8 | 9 | Clicando em **Add Path** e clicando em **Edit Path**, podemos já utilizá-lo em nosso mapa. 10 | 11 | - Adicionar: Shift Esquerdo + Clique Esquerdo 12 | - Adicionar Entre: Ctrc Esquerdo + Click na bolinha 13 | - Remover: Shift Esquerdo + Ctrc Esquerdo + Clique Esquerdo 14 | 15 | Usando esses comandos, conseguimos "delimitar" uma área de forma modelada: 16 | 17 |

18 | 19 |

20 | 21 | ## Opções do Filtro 22 | 23 | Temos opções de altura, força e largura(considerando apenas o path). O **Noise Factor** irá "randomizar" de forma procedural o path em questão, normalmente usado para criação de montanhas. 24 | 25 | * O Level Step pode ser modificado dependendo da necessidade de respeitar a altura total do Path. 26 | 27 | * Modificando as "bolinhas" de forma individual irão afetar as suas distâncias entre as "bolinhas" laterais. 28 | 29 | [Próxima Seção](./8-Montanhas.md) -------------------------------------------------------------------------------- /topics/7-World/8-Montanhas.md: -------------------------------------------------------------------------------- 1 | # Montanhas 2 | 3 | De uma forma parecida que fizemos a estrada, também iremos utilizar o **Path** para a criação de montanhas. 4 | 5 | Utilizando estas configurações: 6 | 7 |

8 | 9 |

10 | 11 | Desta forma, conseguimos modelar uma proposta de montanha para conseguir utilizar os nossos filtros. 12 | 13 | * É recomendável diminuar ao nivel inicial a primeira e última "bolinha". 14 | 15 | * Não utilize filtros de erosão junto com **Path**(no caso, em uma mesma área). 16 | 17 | * Aplique inicialmente filtros de efeito no mapa e depois modele as montanhas / estradas ou coisas do gênero. 18 | 19 | * Especifique o tamanho mínimo das montanhas para conseguir texturas as pedras de uma forma facilitada futuramente. 20 | 21 | * Utilize texturas com cavidade **Convex** para colocar nas "paredes" da montanha. 22 | 23 | [Próxima Seção](./9-Unity.md) -------------------------------------------------------------------------------- /topics/7-World/9-Unity.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gustaandrade/gamedev4noobs/151ddb40008109c5fa3ee942c3c1338a1fcccb6f/topics/7-World/9-Unity.md --------------------------------------------------------------------------------