Code Monkey home page Code Monkey logo

love-deploy's Introduction

love-deploy

What this project does

This repo contains a single Makefile, which tries to provide a few useful targets to build and deploy a LOVE project (to itch.io). This currently works on Windows, used from WSL.

Prerequisites

  • a standard version of Make for your system
  • if you plan on deploying to itch.io, butler - run butler login before you use the Makefile
  • LOVE and at least one LOVE project 😀
  • if you plan on bundling for web, a compatible version of Node.js, since we use love.js.

Setup

First, let's do a little bit of setup:

  • put the Makefile in your root LOVE project folder
# projects folder for love projects
- myLoveProjets
# a LOVE project here
    - helloWorld
    - ...
  • for each project you're working on, create a folder and put the relevant files inside this folder
  • create a Makefile (empty for now) in each one of your "project folders"

Now let's give make actual data: In the "root Makefile", you'll see that there's a variable called love; this is where you tell make where your LOVE install folder is (where the love.exe and the required .dll are).

# just an example
love = /mnt/c/Program\ Files/LOVE

In your "project Makefile" (the one that's empty in your project folder), add the two following variables:

# this is the your project name, it will be used in `name.exe` and `name.love`
name = MY_PROJECT
# this is your username and the name of your project on itch.io
itchio = USERNAME/TEST-GAME
# use this to pass options to love.js. More info here: https://github.com/Davidobot/love.js#options
# this is compatibility mode for example:
web_options = -c

⚠ itch.io tends to convert the name of the project when there's underscores in it, replacing them with hyphens, so make sure you use the one that's shown in the URL and not the actual project name

⚠ also, make sure you created the project on itch.io before you deploy to it, because butler doesn't create it for you

ℹ I'd recommend setting the size of your HTML embed on itch.io to 780x680 to get nice looking margins 😀. Or just set the game to start in fullscreen instead of embedding it on the page!

⚠ If you build a web version and push it to itchio, make sure you either use the compatibility mode (web_options = -c), or activate the experimental SharedArrayBuffer support: https://itch.io/t/2025776/experimental-sharedarraybuffer-support.

Note that you can also provide your own index.html by putting it in your project folder.

How to run

In the root LOVE folder, run

make TARGET project=FOLDER

to run the operation TARGET on the project FOLDER_NAME.

List of useful targets

  • play: runs the project
  • all: builds web and windows
  • web: builds web
  • windows: builds windows
  • deploy: exports and deploys web and windows
  • deploy_windows: exports and deploys windows
  • deploy_web: exports and deploys web
  • clean: removes the exports for both web and windows
  • clean_web: removes the exports for web
  • clean_windows: removes the exports for windows

Or just have a read through the Makefile! 😉

Feel free to modify it however you want, and let me know if you come up with something cool, I'll be happy to integrate it to this project!

Sample run

Given the following folder structure:

ROOT_FOLDER/
 |_ Makefile
 |_ hello/
    |_ index.html (optional)
    |_ main.lua
    |_ Makefile
# hello/Makefile
name = my_project
itchio = tducasse/test-deploy
make deploy project=hello && make clean project=hello

image

love-deploy's People

Contributors

tducasse avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.