thorium 0.3.0

Lokathor does stuff, ium
docs.rs failed to build thorium-0.3.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Visit the last successful build: thorium-0.4.0

License:0BSD travis.ci AppVeyor crates.io docs.rs

thorium

Lokathor does stuff, ium.

This repo isn't about any particular thing right now. It's just about doing some exploratory coding to try out new stuff.

Requirements

  • By default the library portion of the code attempts to be no_std and use sdl2's allocator as the global allocator. Naturally, this requires Nightly.
  • That's all feature gated, so you can turn it off if you want to build with just Stable.
  • Either way you also need SDL2 v2.0.9 or later.

Stuff So Far

  • An sdl2_sys based binary that opens a window, dynamically loads the game code, processes all the input, calls the code, and then blits whatever the game put into the bitmap. The platform will automatically reload the game code if it detects a new compilation on disk.
  • The "game code" can draw Game Boy style 4-color graphics.

Check out the the dev log if you want more detail about where we've been so far.

Cargo Features

Nested bullet points indicate that the inner features depend on the outer features.

  • dynamic_link will make the game library get loaded dynamically by the binary. Probably a dev feature only.
    • hotloading will make the game library be reloaded as soon as a new version is detected. This definitely a dev feature and it assumes that you're running the program from the project root.
  • sdl2_alloc will set up the SDL2 allocator as the global allocator (requires Nightly).
    • avoid_std activates no_std and the necessary boilerplate to make it work. BIG NOTE: On Win32 this quietly links with std anyway, otherwise there's linker errors (because the CRT is expected to be there). This is mostly intended for if we need to target some weird target without std (which is generally something unix-ish)

The Future

If you wanna see where we're going you should check the issue tracker, which is where I've written down notes about things I might wanna do. I'm easily distracted, so we might do something else at any time.

Crate Versioning

I don't currently follow semver at all. You're not yet meant to use this as a library. Feel free to look around if you want to use different code bits, but you can't just add it to a project and expect it to work usefully.

The version scheme is something like

0 . major_features_i_want_to_count . pushes_since_the_last_major_feature

Contribution

This crate is released under the Zero-Clause BSD license, and any contributions of yours must be under the same license. It's similar to the MIT license but with even fewer restrictions.

This crate uses SDL2 (zlib license) to interface with the local OS. Windows/MSVC builds of the SDL2 library are kept in the repository for easy building. See the SDL2 download page for other versions of SDL2 if needed.