├── .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 | 
4 |
5 |
6 |
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 | 
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
--------------------------------------------------------------------------------