Mochi Soft Logo

Mochi Blog

Review de Engines

Engine ou (motor gráfico) é o ambiente gráfico que o seu jogo irá rodar. Elas fornecem acesso descomplicado a diversos recursos muito úteis, que vão desde renderização 2D e 3D até mesmo funcionalidades de geração de efeitos especiais, manipulação de áudio e muito mais!

Sem elas você precisaria codificar tudo isso do zero, oque pode ser bem problemático quando se quer montar algo mais simples ou de maneira mais rápida.

Principais Engines

Atualmente no mercado temos diversas engines, cada uma com seus pontos fracos e fortes, hoje iremos analisar três delas:

Engines Unity / Godot / Unreal

Unity

Unity UI

Unity é uma das engines mais populares do mercado, especialmente para desenvolvimento indie e mobile. Ela utiliza C# como linguagem principal e oferece uma interface visual intuitiva.

Pontos Fortes:

Pontos Fracos:

Exemplo de código (C#)

using UnityEngine;

public class PlayerMovement : MonoBehaviour 
{
    public float speed = 5f;
    
    void Update() 
    {
        float horizontal = Input.GetAxis("Horizontal");
        float vertical = Input.GetAxis("Vertical");
        
        Vector3 movement = new Vector3(horizontal, 0, vertical);
        transform.Translate(movement * speed * Time.deltaTime);
    }
}

Unreal Engine

Unity UI

Desenvolvida pela Epic Games, a Unreal Engine é conhecida por seus gráficos de alta qualidade e é amplamente utilizada em jogos AAA.

Pontos Fortes:

Pontos Fracos:

Exemplo de código (C++)

No Unreal, você pode usar Blueprints (programação visual) ou C++. Aqui está um exemplo simples:

// PlayerPawn.h
UCLASS()
class MYGAME_API APlayerPawn : public APawn
{
    GENERATED_BODY()

public:
    APlayerPawn();

protected:
    UPROPERTY(EditAnywhere)
    float MovementSpeed = 600.0f;
    
    virtual void SetupPlayerInputComponent(class UInputComponent* InputComponent) override;
    
    void MoveForward(float Value);
    void MoveRight(float Value);
};

// PlayerPawn.cpp
void APlayerPawn::MoveForward(float Value)
{
    if (Value != 0.0f)
    {
        AddMovementInput(GetActorForwardVector(), Value);
    }
}

void APlayerPawn::MoveRight(float Value)
{
    if (Value != 0.0f)
    {
        AddMovementInput(GetActorRightVector(), Value);
    }
}

Godot

Unity UI

Godot é uma engine open-source que vem ganhando popularidade rapidamente, especialmente entre desenvolvedores independentes.

Pontos Fortes:

Pontos Fracos:

Exemplo de código

Godot (GDScript)

extends CharacterBody2D

@export var speed = 300.0

func _physics_process(delta):
    var direction = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
    
    if direction != Vector2.ZERO:
        velocity = direction * speed
    else:
        velocity = velocity.move_toward(Vector2.ZERO, speed)
    
    move_and_slide()

Qual Escolher?

A escolha da engine depende muito do seu projeto e experiência:

Como você pode ver, cada engine tem sua própria abordagem com relação a programação:

Conclusão

Não existe uma engine “perfeita” - cada uma tem suas vantagens dependendo do contexto. O importante é experimentar e encontrar aquela que melhor se adequa ao seu estilo de desenvolvimento e aos requisitos do seu projeto.

Qual engine você já experimentou? Nos deixe saber aqui nos comentários!

Aqui vai uma curiosidade: O nosso novo jogo usa a engine Unity!

Lok

Lok - Desenvolvedor

Fundador & Desenvolvedor

Desenvolvedor independente e criador da Mochi Soft. Apaixonado por criar experiências únicas em jogos indie.


Comentários