FoundationPack is my attempt to bring together a bunch of useful FOSS libraries in order to create a template from which a game can be built as efficiently as possible. It contains a class and state system (middleclass and Stateful), a savegame system that interfaces directly with classes (Lady), a profiler for both love.update and love.draw (PROBE), a debug interface for console output and live code injection (Love Debug), controller support (Controllers.lua) and more. I fully intend to include as much functionality from libraries from the Love2D forums as I can whilst respecting licences and avoiding overlap.
v0.2 is now live! 0.2 brings the separation of love callbacks from main.lua by moving them to files in the callback folder. With any luck, you should not need to edit main.lua - that's the goal, anyway. All code should be written in the callback files.
v0.2 contains:
- babel by martin-damien - internationalisation tool for supporting multiple languages
- cas: Computer Algebra System by xXxMoNkEyMaNxXx - interprets algebra and performs calculus (not licenced)
- coil by rxi - coroutines implementation for parallelisation
- Controllers by Félix Dumenil - controller support for multiple players
- cron by kikito - call a function after a specific time delay or set looping timers
- flux by rxi - tweening library for moving things around the screen in visually appealing ways
- gamera by kikito - camera/view support
- glove by conroy - compatibility layer for making a game compatible with both love 8.0 and 9.x
- Gspot by trubblegum/SiENcE - graphical user interface library
- inspect by kikito - variable printing in a human-readable manner, especially for tables
- lady by Robin - game save/load library, supports middleclass
- love-loader by kikito - utility library for loading resources in a separate thread to avoid negatively impacting performance
- Love Noise by icrawler - library for generating simplex and fractal noise
- LÖVE Plot by fysx - quick and simple line graph plotting
- lume by rxi - collection of game dev functions
- lurker by rxi - hotswapping so that game files can be updated on the go without reopening the game
- middleclass by kikito - OOP library including inheritance, metamethods (operators), class variables and mixin support
- mlib by davisdude - math functions for geometry, statistics and various misc functions including isPrime and factorial
- PROBE by Chèvre - flexible visual profiler with a versatile hook system
- richtext by Robin - draw rich text more easily with colour and size definable with tags
- sfxr by nucular - sound effect synthesizer with randomisation and mutation capabilities
- Stateful by kikito - state/scene manager
- TEsound by Ensayia & Taehl - sound manager supporting simultaneous playback, volume and pitch control, playlists and a handy tagging system
Here's a demo! I made this framework because I intend to use it so here's what I made yesterday.
Holf F for FPS graph or P for profilers. Press 1, 2 or 3 to hide/show trees.
I'm told this demo doesn't work for all computers, I'm busy trying to find out why. If anybody works it out, drop me a reply please!
If anybody is uncomfortable with me including their work in the pack, just let me know and I'll remove it.