Cenas e nós

Introdução

../../_images/chef.png

Imagine por um momento que você não é um desenvolvedor de jogos mais. Em vez disso, você é um chef! Troque sua roupa comum por um daqueles longos chapéus e uma daquelas camisas de abotoamento duplo. Agora, no lugar de jogos, você cria novas e deliciosas receitas para seus convidados.

E então? Como um chefe de cozinha cria uma receita? Receitas são divididas em duas seções: a primeira são os ingredientes, e a segunda são as instruções de preparo. Desta forma, qualquer um pode acompanhar a receita e saborear sua magnífica criação.

Fazer jogos no Godot usa a mesma estratégia. Usar o motor é como estar em uma cozinha. Nesta cozinha, os nós são como uma geladeira cheia de ingredientes frescos para serem cozidos.

Existem muitos tipos de nós. Alguns mostram imagens, outros nós reproduzem som, outros exibem modelos tridimensionais, etc. Existem dúzias deles.

Nós

Mas vamos começar com o básico. Nós são peças fundamentais na criação de um jogo. Como já mencionado, um nó pode desempenhar uma variedade de funções especializadas. Entretanto, todo nó sempre terá os seguintes atributos:

  • Tem um nome.
  • Tem propriedade editáveis.
  • Pode receber uma chamada para processar cada quadro.
  • Pode ser estendido (ter mais funções).
  • Pode ser adicionado a outros nós como filho.
../../_images/tree.png

Esse último é importante: nós podem ter outros nós como filhos. Quando arranjados dessa maneira, os nós compõem uma árvore.

No Godot, a habilidade de arranjar os nós desta forma cria uma ferramenta poderosa para organizar projetos. Já que diferentes nós têm diferentes funções, combiná-los permite a criação de funções mais complexas.

Não se preocupe se ainda não entendeu. Continuaremos a explorar esse conceitos nas próximas seções. O fato mais importante para lembrar por ora é que nós existem e eles podem ser organizados desta forma.

Cenas

../../_images/scene_tree_example.png

Agora que o conceito de nós foi definido, o próximo passo lógico é explicar o que é uma Cena.

Uma cena é composta por um grupo de nós organizados hierarquicamente (no estilo árvore). Além disso, uma cena:

  • sempre tem um único nó raiz.
  • pode ser salva no disco e carregada posteriormente.
  • pode ser instanciada (mais sobre isso depois).

Executar um jogo significa executar uma cena. Um projeto pode conter muitas cenas, mas, para o jogo começar, uma delas deve ser selecionada como cena principal.

Basicamente, o editor do Godot é um editor de cena. Ele tem um monte de ferramentas para edição de cenas 2D e 3D, assim como interfaces com usuário, mas o editor é baseado no conceito de editar uma cena e os nós que a compõem.

Criando um novo projeto

Vamos tornar esses conceitos abstratos em algo mais concreto com um exemplo. Seguindo a longa tradição dos tutorias, vamos começar com um projeto “Olá, mundo”. Isso nos apresentará o uso do editor.

Rodar o executável do Godot fora de um projeto, abrirá o Gerenciador de Projetos. Isso ajuda os desenvolvedores a gerenciar seus projetos.

../../_images/project_manager.png

Para criar um novo projeto, clique na opção “Novo Projeto”. Escolha e crie um caminho para o projeto e especifique o nome “Novo Projeto”:

../../_images/create_new_project.png

Editor

Uma vez criado o “Novo Projeto”, abra-o. Isso abrirá o editor do Godot:

../../_images/empty_editor.png

Como mencionado antes, fazer jogos no Godot é como estar em uma cozinha. Então vamos abrir a geladeira e adicionar uns nós frescos ao projeto. Vamos começar com uma mensagem “Olá, mundo!” que vamos colocar na tela.

Para fazer isso, pressione o botão “Novo Nó” (que se aparenta como um sinal de adição):

../../_images/newnode_button.png

Isso abre o diálogo Criar Nó, mostrando a longa lista de nós que podem ser criados:

../../_images/node_classes.png

Nele, selecionamos o nó “Label” (rótulo). Pesquisar por ele é provavelmente o jeito mais rápido:

../../_images/node_search_label.png

E, finalmente, criamos o rótulo! Um monte de coisa acontece quando Criar é pressionado:

../../_images/editor_with_label.png

Primeiramente, a cena se altera para o editr 2D (porque Label é um tipo de nó 2D), e então o rótulo aparece, selecionado, no canto superior esquerdo da vista.

O nó aparece no editor de árvore da cena (caixa no canto superior direito), e as propriedades do rótulo aparecem no Inspetor (caixa no cano inferior direito).

O próximo passo é mudar a propriedade “Texto” do rótulo. Vamos alterá-la para “Olá, mundo!”:

../../_images/hw.png

Certo, tudo está pronto para executar a cena! Pressione o botão RODAR CENA na barra superior (ou pressione F6):

../../_images/playscene.png

Eeee… Opa.

../../_images/neversaved.png

As cenas precisam ser salvam para serem executadas, então salve-a com um nome tipo Ola.tscn em Cena -> Salvar:

../../_images/save_scene.png

E aqui é o ponto que algo curioso acontece. O diálogo de arquivo é um especial, e some lhe permite salvar dentro do projeto. A raiz do projeto é “res://”, que significa “caminho dos recursos” (“resources”, em inglês). Isso significa que arquivos só podem ser salvos dentro do projeto. No futuro, quando fizer operações com arquivos no Godot, lembre-se de que “res://” é o caminho dos recursos, e, não importa a plataforma ou o local de instalação, essa é a maneira de localizar onde os arquivos de recursos estão dentro do jogo.

Depois de salvar a cena e pressionar para rodar a cena de novo, a demonstração “Olá, mundo!” deve finalmente executar:

../../_images/helloworld.png

Sucesso!

Nota

If this doesn’t immediately work and you have a hiDPI display on at least one of your monitors, go to Project → Project Settings → Display → Window then enable Allow Hidpi under Dpi.

Configurando o projeto

Pronto, hora de configurar o projeto. No momento, a única forma de rodar alguma coisa é executar a cena atual. Projetos, entretanto, podem ter muitas cenas, então uma delas deve ser definida como sendo a principal. Esta é a cena que será carregada sempre o projeto for executado.

Essas configurações ficam todas armazenadas no arquivo project.godot, que é um arquivo de texto simples no formato win.ini para fácil edição. Existem dúzias de configurações que você pode alterar neste arquivo para mudar como o projeto executa. Para simplificar esse processo, o Godot fornece um diálogo de configurações de projeto, que age como um editor do arquivo project.godot.

Para acessar esse diálogo, selecione Projeto -> Configurações do Projeto. Experimente isso agora.

Assim que a janela abrir, vamos selecionar uma cena principal. Localize a propriedade Application/Run/Main Scene (Aplicação/Execução/Cena Principal) e clique nela para selecionar “ola.tscn”.

../../_images/main_scene.png

Agora, com esta mudança, ao pressionar o tradicional botão Play (ou F5), esta cena será executada, não importa qual seja a cena que você esteja editando.

O diálogo de configurações do projeto fornece um monte de opções que podem ser salvas em um arquivo project.godot e mostra seus valores padrões. Se você alterar um valor, uma marca aparece à esquerda do nome. Isso significa que a propriedade será gravada no arquivo project.godot e lembrada.

Além disso, também é possível adicionar opções de configuração personalizadas e lê-las em tempo de execução do jogo usando o singleton ProjectSettings.

Continua…

Este tutorial foi um guia sobre “cenas e nós”, mas até agora só tivemos uma cena e um nó! Não se preocupe, o próximo tutorial vai ampliar seu conhecimento sobre isso…