Games - Rust Language + WebAssembly

Trabalho final - Computação Gráfica

Cecília Carneiro e Silva

Outline

  • WebAssembly
  • Linguagem Rust
  • DDD (Data Driven Design)

WebAssembly

Wasm - formato binário, portável, leve e eficiente.

Performance

Compilado, otimizações up-front, velocidade nativa

enquanto JS ainda precisa ser interpretado.

 

Seguro

Memory-safe sandbox. Também possui garantias

de origem.

Aplicações

Onde alta performance é essencial: jogos, reconhecimento de imagens, aplicações CAD...

Links e referências:

[1] M. Reiser e L. Bläser, “Accelerate JavaScript applications by cross-compiling to WebAssembly”, in Proceedings of the 9th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages  - VMIL 2017, Vancouver, BC, Canada, 2017, p. 10–17.

[2] A. Haas et al., “Bringing the Web up to Speed with WebAssembly”, p. 16.

[3] S. Letz, Y. Orlarey, e D. Fober, “FAUST Domain Specific Audio DSP Language Compiled to WebAssembly”, in Companion of the The Web Conference 2018 on The Web Conference 2018  - WWW ’18, Lyon, France, 2018, p. 701–709.

[4] A. Jangda, B. Powers, A. Guha, e E. Berger, “Mind the Gap: Analyzing the Performance of WebAssembly vs. Native Code”, arXiv:1901.09056 [cs], jan. 2019.

Rust Language

Empowering everyone to build
reliable and efficient software.

Segurança

System language. Memory Safety. Strong typed Language.

Eficiência

LLVM-backend. Ownership + borrowing = binário mais eficiente.

Produtividade

Abstrações de alto nível. Gerenciador de pacotes e build.

Rust Embedded

Tema da minha dissertação. Aplicar os conceitos em sistemas de baixo nível. Cabe o paralelo aqui!

Links

Referências Mestrado.

Game Engine

DDD - Actor System, Entity–component–system (ECS)

What?

Ainda não sei se será um revisão bibliográfica, ou um mini-jogo. Talvez uma mistura.

Alguns projetos e ideias interessantes. Tema novo e pouco estudado, caberia algumas contribuíções (não é a ideia inicial).

Formalismo + segurança estática do Rust para o desenvolvimento de jogos.

Made with Slides.com