#engine #de #em #game-engine #2d #winit #wgpu

rusting2d

A simple 2D game engine based on wgpu and winit

1 unstable release

new 0.0.1 Nov 24, 2024

#10 in #em

MPL-2.0 license

10KB
165 lines

Aqui está um exemplo de um README.md para o projeto Rusting2D, refletindo suas solicitações e incluindo os pontos importantes sobre o uso em produção, aprendizado e evolução:


Rusting2D

Rusting2D é uma engine 2D simples escrita em Rust, criada como um projeto de aprendizado. O objetivo principal é explorar conceitos de desenvolvimento de engines gráficas utilizando ferramentas modernas como wgpu e winit. Este projeto está em constante evolução, e mudanças e quebras de compatibilidade podem ocorrer rapidamente.


⚠️ Aviso de Uso

Rusting2D não é recomendada para produção.
Se você está procurando soluções mais robustas e maduras, considere as seguintes alternativas:

  • Bevy: Um motor ECS (Entity Component System) moderno, baseado em Rust.
  • Good Rust Game Engines: Uma lista de motores de jogos disponíveis no ecossistema Rust.

Rusting2D é experimental e serve como uma plataforma para aprendizado e experimentação.


📚 Funcionalidades

  • Janela e eventos: Gerenciados por winit.
  • Renderização 2D básica: Usando wgpu para gráficos de baixo nível.
  • Sistema de entidades: Suporte básico para criar e gerenciar entidades.
  • Foco no aprendizado: Feito para entender e explorar as tecnologias subjacentes.

🚀 Como Usar

Instalação

Adicione o Rusting2D como dependência ao seu projeto no Cargo.toml (se você publicou no Crates.io):

[dependencies]
rusting2d = "0.0.1"

Ou clone o repositório diretamente para explorar e modificar o código.

Exemplo Básico

use rusting2d::{Engine, Entity};

#[tokio::main]
async fn main() {
    // Criação da engine com uma janela.
    let mut engine = Engine::new("Minha Engine 2D", 800, 600).await;

    // Adicionando uma entidade básica.
    engine.add_entity(Entity {
        id: 0,
        name: "Player".to_string(),
    });

    // Executando a engine.
    engine.run();
}

Testes

Para rodar os testes:

cargo test

📖 Documentação

Gere a documentação localmente com:

cargo doc --open

🌱 Contribuindo

Este projeto é um espaço para aprendizado. Se você encontrar bugs ou tiver ideias para melhorias, sinta-se à vontade para abrir um Pull Request ou relatar um problema.


📜 Licença

Rusting2D está disponível sob as licenças MPL-2.0 license.


📝 Nota

Como o projeto está em evolução constante, mudanças significativas podem ser introduzidas sem aviso. Para projetos em produção, é recomendado usar alternativas maduras como as mencionadas acima.


Dependencies

~4–36MB
~562K SLoC