Skip to content

NoamZeise/nze-game-sdl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A library for making 2D games with rust, uses SDL2.

This library is made out of three crates:

  • nze_game_sdl - for hiding the implementation details of sdl2 in rust. Load resources (texture, font, audio), rendering, 2D camera, audio playback, drawing tilemaps User Input, Windowing
  • nze_tiled - (in lib dir) for loading Tiled maps
  • nze_geometry - (in lib dir) for 2D geometry types and functions

Documentation

Check out the examples folder for how you might use the library

Features

  • window creation and keyboard/mouse/controller input
  • loading and drawing textures and fonts to the screen
  • loading and drawing Tiled maps
  • 2D camera for scaling and moving drawn textures and fonts
  • loading and playing music and sound effect

Setup

  1. Clone this repository
  2. Install Rust if you haven't already
  3. Install SDL2, SDL2_image, SDL2_mixer, SDL2_ttf (see sections below for details)
  4. go to the root directory of this project and run
$ cargo run --example main

to make sure everything is working.

Installing SDL2 on debian-based systems

Run the following command

$ sudo apt install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev

Installing SDL2 on other systems

Follow the instructions for your system given in the repo for rust-sdl2, but remember you also need to get sdl2_mixer, sdl2_ttf and sdl2_image libraries.

Dependancies

  • rust-sdl2 for windowing, rendering, input, resource loading (also need the SDL2 C libraries installed on the system, see Setup for details)
  • quick_xml for loading tiled maps

Projects using this framework

TODO

  • Better resolution controls
  • Fade effects for audio
  • Add point/line render options
  • make (tiled, font, audio) dependancies optional

About

A Library for making 2D games using Rust, built upon SDL

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages