97 lines
4.1 KiB
Markdown
97 lines
4.1 KiB
Markdown
This is the Poppy game
|
|
(Singleplayer only for now)
|
|
|
|
The performance is currently not so great on older computers,
|
|
I have not investigated this much yet. Safe to say it is not intended to run so badly :)
|
|
|
|
|
|
# Implementation status
|
|
|
|
## Implemented
|
|
* Loading textures
|
|
* drawing on canvas
|
|
* drawing on background canvas
|
|
* physics calculation for collison
|
|
* drawing physics collisions (on the physics layer)
|
|
|
|
## Not implemented (rough goals anyhow)
|
|
* Saving the game
|
|
* Loading the game/map
|
|
* confirmation before clearing canvas (that's quite destructive :D)
|
|
* Make a way to add dialogs and stuff
|
|
* Drawing
|
|
* Draw with colors custom stencils
|
|
* Define stencils based on drawn stuff on the canvas
|
|
* Re-do base textures as gray scale to color in arbitrarily
|
|
* Allow the textures to be scaled up before placing
|
|
* Have a preview of where textures will be placed
|
|
* Have a way to move the grid by pixel increments
|
|
* Advanced physics
|
|
* Each pixel gets a physics vector associated, each hit pixel gets the vector added
|
|
to a "positon" vector, which can be added as a diff to the player
|
|
This can replace the gravity code directly, and allow stuff to push players around
|
|
in addition to simply blocking them like the current physics does.
|
|
* Programming layer
|
|
* Basically: Have a set of colors/programms, each of those has a single code run
|
|
Associated with it, the programms/colors can then be drawn on a dedicated canvas
|
|
each area that is connected is treated as one instance of the programm.
|
|
The programm instances can alter the world within their bounds, but not outside it
|
|
The programm instances can send messages between to other instances that are immidiently
|
|
adjecent, and react to messages accordingly.
|
|
Each instance can send messages to a specifc color/programm type, but not differenciate
|
|
between instances, if area RED has two GREEN instances adjacent and sends a message to GREEN
|
|
it will be delivered to both GREEn instances.
|
|
* Figure out how to render this differently for color blindness
|
|
* Designing DSL for programming layer
|
|
* Group connected areas for programm instance
|
|
* Define colors for use in programming layer
|
|
* Build a map of all instances and their allowed communication partners.
|
|
* Networking support
|
|
* (Only clientID is implemented)
|
|
* Figure out why and how physics is tied to framerate, why does jump height differ?
|
|
* Implement receiving/sending physics state (movement basically)
|
|
* Implement tracking and rendering of other players
|
|
* Implement receiving/sending drawing commands
|
|
|
|
|
|
# Running the game as a development version
|
|
|
|
## Windows
|
|
1. Download the game engine from https://love2d.org/
|
|
* Pick the installer if you want to install it, or the zip to run it directly
|
|
2. Clone the game via git
|
|
3. Run love2d pointed to the checkout (love.exe path\to\checkout)
|
|
|
|
## Haiku
|
|
1. Install the engine
|
|
* On 32bit: pkgman install cmd:love_x86
|
|
* On 64bit: pkgman install cmd:love
|
|
2. Clone the game via git
|
|
3. Run ```love(_x86) path/to/checkout```
|
|
|
|
|
|
# Packaging the game (On haiku)
|
|
1. Copy any font you want to bundle to fonts/font.ttf (This cannot be bundled as a symlink)
|
|
2. Zip the files
|
|
* If you bundle a font:
|
|
```zip -r Poppy main.lua conf.lua lua/ textures/ fonts/```
|
|
* If you don't bundle a font:
|
|
```zip -r Poppy main.lua conf.lua lua/ textures/```
|
|
3. ``mv Poppy.zip Poppy``` (I don't know why zip wants to be smart here...)
|
|
4. If you did not change the icon Run ```resattr -O -o Poppy ressources/Poppy.rsrc```
|
|
|
|
If you changed the Icon:
|
|
1. Export the Icon from Poppy.iom to Poppy.rdef as HVIF RDEF
|
|
2. Change resource(<your resource id here>) to resource(1, "BEOS:ICON")
|
|
3. Add "resource(2, "BEOS:TYPE") #'MIMS' "application/x-love-game";" to the file
|
|
4. Run ```rc -o Poppy.rsrc Poppy.rdef``` (This will compile the ressource file)
|
|
5. Run ```resattr -O -o Poppy ressources/Poppy.rsrc```
|
|
|
|
Now the game can be run with "love(_x86) path/to/archive"
|
|
(I have a WIP patch to make this work easily with "open path/to/archive"
|
|
or double clicking in Tracker, but it is not finished yet, or merged)
|
|
|
|
TODO: how to create a .hpkg
|
|
(notes: how to add .Packageinfo? add this to the repo? syntax for package command
|
|
explain how to create the DeskBar entry to the archive)
|