Minimum

A game development framework that provides basic tooling and a content authoring workflow
Alternatives To Minimum
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Hakchi22,919
7 months ago347gpl-3.0C#
Tool that allows you to add more games to your NES/SNES Classic Mini
Awesome Game Security1,960
a day agomitPython
awesome game security [Welcome to PR]
Floppybird793
3 years ago1mitAssembly
Floppy Bird (OS)
Nomercy143
5 years agogpl-3.0C++
Open source anti cheat
Hid Tmff2127
6 hours ago27gpl-3.0C
Linux kernel module for Thrustmaster T300RS, T248 and (experimental) TX wheels
Fastgame55
11 days ago1gpl-3.0C++
Optimize system performance for games
Minimum43
3 years ago1July 13, 20191otherRust
A game development framework that provides basic tooling and a content authoring workflow
Pcboot27
2 years ago1gpl-3.0C
Bootable PC demo/game kernel
Mattugames24
a month agootherMATLAB
A Matlab Toolbox for Cooperative Game Theory
Platypus Os23
a year agogpl-2.0C
OS for pentesting, programming, and playing video games. Contributions welcome!
Alternatives To Minimum
Select To Compare


Alternative Project Comparisons
Readme

minimum

An experimental game development framework that provides basic tooling and a content authoring workflow. Minimum has easy-to-use extension points for integrating custom and 3rd-party libraries with your game logic.

This library is best suited for use by those who want to start with something thin and bring their own tech to put on top of it.

Build Status

Features

Editing functionality is currently limited, but the core loop is implemented:

  • Entities with components can be loaded from file and saved to file
  • Entities can be selected and their components can be edited (at design-time and run-time)
  • Entities and components can be added or removed
  • Entities can be moved, scaled, and rotated with undo support
  • Can start/stop/reset the simulation

Youtube Video:

IMAGE ALT TEXT

Status

This is probably more experimental than what most people are looking for. Unless you're looking for a totally blank slate with atelier assets and legion integrated, you'll probably be better off looking at something else. I plan to continue using this project to prove out new ideas, but I'm not updating it as regularly as many other projects.

Please see the docs!

Philosophy

Game engines are usually huge - and this poses difficulty for OSS projects. It's very difficult for a large OSS project to have a unified focus and vision. This is especially true in games where potential contributors may want very different things out of the engine that they are trying to collaborate on.

By reducing the eponymous "engine" to a kernel, we can push these decisions further down the chain. This allows us to share both the kernel as well as the upstream integrations - since those are opt-in. There are other benefits too - it eases distributed development by allowing many people to own small pieces. This flexibility also means that contributors can choose the work that fits their interest and skill set.

To achieve interoperability, we will need a common protocol for these integrations to work well together. So we will standardize on a common base set of components, resources, and systems. For example, a common transform component, or a common way to represent input state (it would be up to the downstream user to pick an input/windowing implementation that populates this.)

Alternatives

For more batteries-included solutions in rust, I would look at amethyst, bevy, coffee, or ggez. The main difference is that these libraries all tend to take over your game loop or assume you will use a particular windowing or rendering solution.

minimum currently requires that you bring your own renderer (including support for imgui.) However, this also gives you the flexibility to choose your own solutions. The hope going forward is that the "kernel" can remain decoupled from rendering so that end-users can pick a solution that fits their game best.

Directory Map

/contrib - Holds integrations for upstream libraries (such as nphysics, sdl2, and winit) /docs - Some concept-level documentation /examples

  • example-sdl2 - A working implementation using SDL2 for windowing
  • example-winit - A working implementation using winit for windowing
  • example-shared - Shared code between the examples that isn't useful outside the examples
  • tutorial/examples - Completed code samples from the tutorial in docs /minimum-editor - Editing logic that you do not need to ship in your game /minimum-game - Common protocol for game-level logic that would ship /minimum-kernel - Legion, atelier, and prefab integration /minimum-math - Some wrappers around glam math types to make them friendly with inspection /minimum-transform - Protocol/structure that defines placement of objects

Running the Demo

git clone https://github.com/aclysma/minimum.git
cd minimum
cd examples
cargo run --package example-winit

Or alternatively cargo run --package example-sdl2 if you'd like to run the same demo using SDL2.

Roadmap

This project is not intended to become a full, ready-to-use engine. It is an experimental "kernel" of a game engine that can be integrated in downstream projects to solve some tricky problems with editor workflow and asset management.

License

Licensed under either of

at your option.

The fonts directory contains several fonts under their own licenses:

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

See LICENSE-APACHE and LICENSE-MIT.

Popular Video Game Projects
Popular Kernel Projects
Popular Games Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Video Game
Rust
Kernel
Sdl
Windowing