Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shepardeon/love2d-starter-template
A starting game template for Love2D including utility libs and an opiniated file structure
https://github.com/shepardeon/love2d-starter-template
game game-2d game-development gamedev love love2d love2d-framework lua template template-project
Last synced: 3 days ago
JSON representation
A starting game template for Love2D including utility libs and an opiniated file structure
- Host: GitHub
- URL: https://github.com/shepardeon/love2d-starter-template
- Owner: Shepardeon
- License: mit
- Created: 2025-01-25T10:26:58.000Z (26 days ago)
- Default Branch: main
- Last Pushed: 2025-02-17T10:40:55.000Z (3 days ago)
- Last Synced: 2025-02-17T11:32:53.985Z (3 days ago)
- Topics: game, game-2d, game-development, gamedev, love, love2d, love2d-framework, lua, template, template-project
- Language: Lua
- Homepage:
- Size: 184 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Löve Starter Template
Everybody needs love, this starter project provides plenty!
## Should you use this template?
It depends. If you're just starting out with Lua and or Love2D, you might learn better by toying around without relying on libraries or starter projects like this one. However if you're a more experienced developer, you might enjoy the fact that a lot of boilerplate code has been handled for you. As such, you may want to use this starter project and or reuse some parts of it in order to build your own starter project.
You must keep in mind that this project doesn't have the pretention to be "the best" or "the only way" to create or handle a Love2D project. It's simply the way I like to do things when creating my projects.
## What's included
* [Bump](https://github.com/kikito/bump.lua): A collision-detection library for axis-aligned rectangles.
* [Classic](https://github.com/rxi/classic): A tiny class module for Lua (globally imported as Object when requiring shep).
* [Json](https://github.com/rxi/json.lua): A lightweight JSON library for Lua.
* [Lume](https://github.com/rxi/lume): A collection of functions geared towards game development. Also provides module hotswapping.
* [Hump.timer](https://github.com/vrld/hump/blob/master/timer.lua): A simple interface to schedule the execution of functions.
* [Shep](https://github.com/Shepardeon/love2d-starter-template/tree/main/lib/shep): A starter library which brings an opiniated game structure which can handle input, game states, scene, entities, cameras and more.
* A VSCode configuration based on [Sheepolution's book](https://sheepolution.com/learn/book/bonus/vscode).
* A build task wrapping [makelove](https://github.com/pfirsich/makelove) which needs to be installed separately.
* An opinionated directory structure.## Shep Features
* A Game > Scene > Entity hierarchy
* An event system to register and subscribe to events (observer pattern)
* An input manager system which handles keyboard, mouse, gamepad (button press, release, hold, sequence)
* A delegate state machine which represents states and stateflows using regular functions
* An atlas management system that can use spritebatch
* An animation system which uses the atlas system
* A camera system that can handle multiple layers with parallax
* A shader pipeline that can chain multiple shaders back to back
* A rendering pipeline that combines camera+shaders+resolution handling
* A debug graph which can be used to monitor update time, draw time, memory usage and so on...
* An async loading system which allows to load game resources (images, fonts, sounds and more) without blocking the main thread
* Utility functions to operate on coordinates, vector components and tables
* A localization module that can load multiple languages from json files or from code## Planned features
As of now, the library is about ~75-85% done before I'm contempt with it for a 1.0.0 release. On top of revisiting some existing modules to fix issues or add new features (ie. add memory details and graphics stats to the debug graph) I have the following features planned:
* An audio manager to put sounds in audio "categories" and manage their volume
* A (simple) UI Library which can handle layout, buttons, label and 9Patch
* A loader for [Ldtk](https://ldtk.io/)## License
All included libraries in `lib/` remain under their original license. Except for Shep and all original code which is distributed under the MIT License (see [LICENSE](https://github.com/Shepardeon/love2d-starter-template/blob/main/LICENSE))
Included asset (ranger_f.png) is shared under CC BY 3.0, original author is [Antifarea](https://opengameart.org/content/antifareas-rpg-sprite-set-1-enlarged-w-transparent-background-fixed)