Skip to content

Packaging

noooway edited this page Jun 28, 2017 · 28 revisions

Before shipping your game to the public, it is necessary to add several game levels, get rid of the bugs, test, and polish everything. I won't describe details of this process but it is actually what constitutes significant part of game development work.

After your game reaches release quality, it is necessary to distribute it somehow. LÖVE provides two possibilities to package a game into a distributable form. The first method is to create a .love file (which is in fact just a zip archive), that can be executed by the LÖVE interpreter. The second method is to bind the LÖVE interpreter together with the game and to distribute a self-contained executable file.

Advantage of the first approach is simplicity for the developer: .love file creation can be easily accomplished. Advantage of the second is simplicity for the user: there is no need to install any additional software to run your game.

For this project, I'll use the first method, but for commercial games the second approach is preferable. I plan to address it in one of the appendices. love-release is a helpful tool to automate creation of .love packages and stand-alone executables for various platforms. Besides, with external tools such as love.js it is relatively easy to create a web-version of your game. Give it a try.

On GNU/Linux, a convenient way to create a *.love archive is by make utility.

There are lots of tutorials describing Makefile syntax. In short, a typical entry - called rule - has the following form:

target: dependency1 dependency2 .....
	command1
	command2
	.....

Typing make target will execute a sequence of commands command1, command2 etc. However, since the dependency list of the rule is not empty, Make will first look for rules with names dependency1, dependency2 and execute them.

For the current project the following Makefile is used:

NAME=love2d_arkanoid_tutorial

all: love

love:
	zip -r ${NAME}.love *.lua \
			fonts img levels sounds \
			credits.txt Makefile \
			../LICENSE ../README.md

clean:
	rm -f *.love

Commands make, make all or make love will create a zip archive with all the necessary files to run the game; make clean will delete this archive.

    Home
    Acknowledgements
    Todo

Chapter 1: Prototype

  1. The Ball, The Brick, The Platform
  2. Game Objects as Lua Tables
  3. Bricks and Walls
  4. Detecting Collisions
  5. Resolving Collisions
  6. Levels

    Appendix A: Storing Levels as Strings
    Appendix B: Optimized Collision Detection (draft)

Chapter 2: General Code Structure

  1. Splitting Code into Several Files
  2. Loading Levels from Files
  3. Straightforward Gamestates
  4. Advanced Gamestates
  5. Basic Tiles
  6. Different Brick Types
  7. Basic Sound
  8. Game Over

    Appendix C: Stricter Modules (draft)
    Appendix D-1: Intro to Classes (draft)
    Appendix D-2: Chapter 2 Using Classes.

Chapter 3 (deprecated): Details

  1. Improved Ball Rebounds
  2. Ball Launch From Platform (Two Objects Moving Together)
  3. Mouse Controls
  4. Spawning Bonuses
  5. Bonus Effects
  6. Glue Bonus
  7. Add New Ball Bonus
  8. Life and Next Level Bonuses
  9. Random Bonuses
  10. Menu Buttons
  11. Wall Tiles
  12. Side Panel
  13. Score
  14. Fonts
  15. More Sounds
  16. Final Screen
  17. Packaging

    Appendix D: GUI Layouts
    Appendix E: Love-release and Love.js

Beyond Programming:

  1. Game Design
  2. Minimal Marketing (draft)
  3. Finding a Team (draft)

Archive

Clone this wiki locally