Giter Club home page Giter Club logo

Panel Attack Development

Development Setup

Install the 32-bit version of love (http://love2d.org/)

Clone a copy of the repository

git clone https://github.com/panel-attack/panel-attack.git

We recommend using GitHub Desktop as it manages login for you and makes working with git easier.

We recommend developing and running the game using Visual Studio Code.
You can setup VSCode with a debugger and more following this tutorial.

Alternatively, you can edit with your own favorite text editor and run love from the command line

cd Panel-Attack
love ./

or via drag and drop with the repository folder (not recommended).

Repository

The beta branch is where we do all main development.

All pull requests require a review by a maintainer (or 1 review and written by a maintainer).
Feature and bug commits are done by maintainers using squash merges.
Merges are done by the maintainers as merge commits.

Please check the contribution guidelines for further information.

Release schedule

Main releases

Beginning of the month:
beta feature development followed by a release

Mid month:
Stop landing new features and only add bug fixes

After last tournament of the month:
Merge beta into stable and release Hot fix stable as needed

Release notes are posted in #panel-attack-updates on the discord when updates go out.

Canary releases

Canary releases are temporarily available via https://github.com/Endaris/panel-attack/releases, automatically generated with each push to the sceneRefactor development branch.
We may adopt this for future releases on the main repository.

Useful Lua Programming Tips

Big comment

--[[
--]]

Comment parameter names inline

  return self:pop_all_ready_garbage(frame, true--[[just_peeking]])

Lua Manual
https://www.lua.org/pil/contents.html

Love2d Tutorial
https://sheepolution.com/learn/book/contents

For Maintainers

Releasing

To make a release we create a love file and put it on the server. Change the name of the love file to the output of a command like this:
Stable:
echo "panel-$(date -u "+%Y-%m-%d_%H-%M-%S").love"
Beta:
echo "panel-beta-$(date -u "+%Y-%m-%d_%H-%M-%S").love"

Secure copy the file to the server in correct folder on the server.
Stable:
scp -i privatekey.pem panel-2022-06-25_03-50-14.love [email protected]:updates
Beta:
scp -i privatekey.pem panel-2022-06-25_03-50-14.love [email protected]:beta-updates

Test that the game updates properly.

Post release notes in #panel-attack-updates on the discord.

Releasing a new full release with auto updating

First make a love file, then copy that all into the auto updater folder and make that a love file.
Then copy the windows files in to your release folder.
Tack the autoupdater love file on the end of the exe.
Release a zip of the whole release directory.

More details and scripts to follow.

panel-attack's Projects

panel-attack icon panel-attack

Panel Attack is a free modern puzzle game inspired by popular games such as Tetris Attack and Pokemon Puzzle League while still maintaining authentic mechanics. Arrange colored panels in rows and columns of three or more to match matches that clear. Panels then fall from gravity and can make chains that give bonuses or attack the other player.

panel-attack-resources icon panel-attack-resources

Public resources used to help create content for the game or manage it, not directly related to the code.

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.