To develop on the game, run lime test html5
- Pre-configured libraries
- FMOD Studio project with menu sound effects and a random song I wrote
- Ready to use Bitlytics tie-ins
-
- Grafana metrics visualization
-
- Newgrounds API boiler plate
- Various utility libraries
- Basic state templates
- Main menu with buttons to load the credits or start the game
- Controller, keyboard, or mouse support for menu navigation
- Credits state with built-in scrolling
- Main menu with buttons to load the credits or start the game
- Pre-configured .gitignore
- Aseprite art pipeline
- Github build actions
- Dev builds on push to master
- Production builds on releases
- Set the proper Github secrets:
BUTLER_API_KEY
: The Butler API key from itch.io- API keys can be generated from
itch.io
->Settings
->API Keys
->Generate new API key
- If using this template for non Bit Decay games, the workflow files to use the correct
itchUserName
- API keys can be generated from
ANALYTICS_TOKEN
: The InfluxDB access token from influxdata.com- API token can be generated from
influxdata.com
->Load Data
->API Tokens
->Generate API Token
- API token can be generated from
- Run the
./bin/setup_repo.sh
script to update github workflow files and project configuration json
./bin/setup_hooks.sh
- Run to copy git hooks over./bin/init_deps.sh
- Run to get dependencies at the proper versions. See haxelib.deps for more info.
- Some basic analytics are already configured to be reported after the proper project configuration has been done.
- To view game metrics, run
./bin/view_metrics.sh
and a grafana instance will be created locally that connects to the cloud metrics. Graphs will be available athttp://localhost:3000
if the browser doesn't automatically open.- This script will prompt for a read token the first time it is run for access to the data. Consult whoever controls your cloud data for a token.
- Holding
D
and pressingM
at the main menu will allow playing the release game without sending metrics. This is indicated by a sound effect and a log message once pressed.
haxelib.deps
- Contains all dependencies needed by the project other than haxe itself- It supports two dep styles
- standard haxelib dependencies
- Formatted as:
<libName> <libVersion>
- Formatted as:
- git dependencies
- Formatted as:
<libName> git <gitRepoLocation> <OPTIONAL: gitBranchOrTag>
- Formatted as:
- standard haxelib dependencies
- It supports two dep styles
./bin/init_deps.sh
- Script that readshaxelib.deps
file and configureshaxelib
- This script will need to be run any time the dependencies change
- This script is run by the github actions as part of the build so local and github builds are equivalent
All Aseprite files within the art/
directory are automatically exported as Atlases as part of a pre-commit hook. The details of this process can be found in the pre-commit
hook file, as well as the AsepritePacker
tool code.
There is an accompanying set of code in the source/loaders/
directory to aid with loading these files into game objects that allow frames and durations to be driven entirely via the Aseprite files.
- This projects uses the haxe-formatter package for formatting using default settings
./bin/format.sh
is a convenience script will perform the formatting