Thanks to visit codestin.com
Credit goes to Github.com

Skip to content
/ tge Public

A lightweight cross-platform 2D game framework written in pure Rust and based on OpenGL 3.3+

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

TakWolf/tge

Repository files navigation

TakWolf's Game Engine (tge)

crates.io Docs.rs License

A lightweight cross-platform 2D game framework written in pure Rust and based on OpenGL 3.3+.

Features

  • 2D only and use pixel unit.
  • Hardware-accelerated rendering base on OpenGL.
  • Automatically process rendering batch.
  • Dynamic font rendering with text layout.
  • Support high-DPI.
  • Keyboard, mouse, touch, touchpad and gamepad input handling.
  • Audio play. (TODO)

Non goals

  • 3D.
  • Visual editor.

The following does not contain, but can easily work with other crates:

  • Entity Component System (ECS).
  • Physics engines and collision detection.
  • Network.

Usage

Add the dependency line to your Cargo.toml file:

[dependencies]
tge = "0.0.4"

To release performance, also add the following configs:

[profile.dev]
opt-level = 3

Then create a basic template. Here is the minimal example that will create a window:

use tge::prelude::*;

struct App {}

impl App {
    fn new(_: &mut Engine) -> GameResult<Self> {
        // load assets
        Ok(Self {})
    }
}

impl Game for App {
    fn update(&mut self, _: &mut Engine) -> GameResult {
        // handle logic
        Ok(())
    }

    fn render(&mut self, engine: &mut Engine) -> GameResult {
        engine.graphics().clear(Color::BLUE);
        // draw sprites
        Ok(())
    }
}

fn main() -> GameResult {
    let mut engine = EngineBuilder::new()
        .window_config(WindowConfig::new()
            .title("My Game")
            .inner_size((1024.0, 600.0)))
        .build()?;
    let mut app = App::new(&mut engine)?;
    engine.run(&mut app)
}

That is!

You can also see the examples/ directory to learn other examples.

Examples

Camera

Cannon

Clock

Bunny Mark

Hare Mark

Frame Animation

Parallax Forest

Parallax Mountain

DVD

Text Layout

Stroke Text

License

MIT License OR Apache License 2.0

About

A lightweight cross-platform 2D game framework written in pure Rust and based on OpenGL 3.3+

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks