Skip to content

A Game Engine for my development from scratch written by Rust. This compiles to WebAssembly and binds to a WebGL canvas.

Notifications You must be signed in to change notification settings

zacheson/rust-gengine-master

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Game Engine

A project for me to explore writing a game engine from scratch using an ECS design pattern. My game engine is written in Rust, compiles to WebAssembly and binds to a WebGL canvas. That means [it runs in a browser].

Currently, it supports the following features:

  • 3D meshes built from vertex normals
  • Surface normals calculated for models
  • Phong lighting model (ambient, diffuse, specular)
  • Multiple directional and point lights
  • Orthographic and perspective cameras
  • Multiple cameras, rendered to portions of the view
  • Dynamic generation of GLSL shaders
  • Materials, or colors specified per vertex
  • Scene graph that's optimised for lazy updates
  • Game loop that's frame rate independent
  • Keyboard input event handling

Usage

$ make setup
$ make build
$ make server

If you're not on a Mac, you'll need to install binaryen manually. There are a few more Makefile commands you might find useful (e.g. build-watch). For more examples, check out the wasm-bindgen documentation.

About

A Game Engine for my development from scratch written by Rust. This compiles to WebAssembly and binds to a WebGL canvas.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages