-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
10 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,22 @@ | ||
# Runner | ||
My first attempt at building a game with animation! Main modules: | ||
The web version of the game is live at https://jayrave.github.io/runner/ | ||
|
||
This is my first attempt at building a game with animation! I decided to try my hand at using the [Entity Component System](https://en.wikipedia.org/wiki/Entity_component_system) architecture for this. These are the main modules: | ||
- core: has the core game mechanics (everything except windowing & rendering) | ||
- sdl2: uses [sdl2](https://github.com/Rust-SDL2/rust-sdl2) & core module for desktop builds | ||
- quicksilver: uses [quicksilver](https://github.com/ryanisaacg/quicksilver) & core module for wasm builds | ||
|
||
Quicksilver can also do desktop builds, but I initially started the game with sdl2 & wanted to see if I could abstract it enough where I could have multiple front-ends. Turned out to be pretty exciting. Between those 2, I can target the majority of the platforms => Windows, Linux, MacOS, Android, iOS & Web. | ||
|
||
## Play now | ||
The web version of the game is now live at https://jayrave.github.io/runner/ | ||
## Build instructions | ||
- sdl2: `cargo run` | ||
- quicksilver: | ||
- desktop: `cargo run --features desktop` | ||
- web: `cargo web start --features web` | ||
|
||
## Assets | ||
You can probably see that we our sprite sheets carry quite a bit of extra sprites. It could be optimized by building a sheet with only the sprites we care about. I tried doing it but found it to be pretty manual & boring. Presumably, there are tools which can automate this (sprite builders, RON files etc.), but I haven't invested enough time in those yet. This way of just including the whole sprite sheet itself makes it pretty easy while developing. | ||
You can probably see that our sprite sheets carry quite a bit of extra sprites. It could be optimized by building a sheet with only the sprites we care about. I tried doing it but found it to be pretty manual & boring. Presumably, there are tools which can automate this (sprite builders, RON files etc.), but I haven't invested enough time in those yet. This way of just including the whole sprite sheet itself makes it pretty easy while developing. | ||
|
||
## Credits | ||
- [Kenney](https://twitter.com/KenneyNL) for all his wonderful [assets](https://kenney.nl/assets) | ||
- [Sunjay](https://twitter.com/Sunjay03) for his [tutorial](https://sunjay.dev/learn-game-dev/intro.html) that helped me get the basics | ||
- [Sunjay](https://twitter.com/Sunjay03) for his [tutorial](https://sunjay.dev/learn-game-dev/intro.html) that helped me get started |