A Love2D-like NotITG game development template that'll make you feel like you're not ever dealing with Stepmania jank at all.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Jill 5388b2cafe
don't reset actors each frame by default; make the behavior toggleable
2 months ago
.vscode slight tweaks 5 months ago
docs init commit, i think 5 months ago
src don't reset actors each frame by default; make the behavior toggleable 2 months ago
template@0a1805e6fa don't reset actors each frame by default; make the behavior toggleable 2 months ago
.gitconfig split uranium-core into its own repository 5 months ago
.gitignore init commit, i think 5 months ago
.gitmodules split uranium-core into its own repository 5 months ago
MANUAL.md don't reset actors each frame by default; make the behavior toggleable 2 months ago
README.md typo moment 5 months ago
Song.sm change default code to add an outline 5 months ago
distribute-file.sh add scripts for stuff 4 months ago
distribute-template.sh release info setup 4 months ago
silence.ogg init commit, i think 5 months ago
update-release.sh release info setup 4 months ago

README.md

Uranium Template

This place is not a place of honor... no highly esteemed deed is commemorated here... nothing valued is here.

Please see MANUAL.md for the manual, and uranium-core for the template code itself!


Uranium Template is a Love2D-inspired NotITG game development template, focusing on keeping things as Lua-pure as possible with enough abstractions to make you feel like you're not dealing with Stepmania jank at all.

Uranium Template originally formed during the creation of a currently unreleased project, and since then I've went ahead and refined and polished it up to be usable on its own. Most of the design decisions came from experience using prototype versions of it!

Uranium Template lets you define actors with a single simple function indicating their type:

local quad = Quad()
quad:xy(scx, scy)
quad:zoom(60)

Then define callbacks with a simple function definition:

local timer = 0
function uranium.update(dt)
  timer = timer + dt
end

And then define the draw order of your actors with simple method calls, similar to DrawFunctions:

function uranium.update()
  quad:rotationz(t * 50)
  quad:Draw()
end

It comes with an extensive standard library, including common game-development needs like:

  • An input library for detecting every input supported by the game
  • A simple, to-the-point 2D vector library that handles anything you can throw at it, including operators
  • A color library that handles most formats you'll think of
  • An efficient, compact non-centralized save data library that uses profiles for users' savefiles
  • A built-in profiler for callbacks
  • A utility library filled to the brim (but not bloated!) with common Lua gamedev snippets, like detecting if a table has an element, clamping, lerping and more

It supports most of what NotITG modding has to offer:

And it has many features you've come to expect from your favorite templates:

  • Lua module loading through a require very similar to one present in vanilla Lua
  • Completely sandboxed globals
  • Clear error reporting at every possible opportunity, hopefully not letting you see a single error arise from an XML file

Oh, and did I mention there's an uwuification library?

And if you're still not convinced, here's a couple of testimonials from our dear users:

  • "this template really adds some spice to your modfiles. think industrial glitter in your next chilli!" - Mayflower
  • "a good template that i have definitely used! jill can i go now. jill please i just want to see my family" - Aura

To get started, consult the manual, which comes free with your template. It has everything you need to start writing code, including extensive examples and documentation for just about every function and value in the template.