kuviman / Pixel-Pigeon

Game engine for EvanMMO's typescript games

Home Page:http://pp.evanmmo.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Pixel Pigeon

Game engine for EvanMMO's typescript games.

funny-dancing-pigeon-bird-9ykm83a04cil1x1l

Why make this?

Evan wanted something specifically tailored to low spec pixel perfect games.

Getting started

You may use the Template Game as a starting point, or create a repository from scratch using these instructions.

  1. Install Node.js v18.16.0.
  2. Create a package.json file at the root of your game's codebase.
{
  "scripts": {
    "dev": "pigeon dev",
    "lint": "pigeon lint",
    "lint:fix": "pigeon lint:fix",
    "zip": "pigeon zip"
  },
  "dependencies": {
    "pixel-pigeon": "evannorton/pixel-pigeon"
  },
  "engines": {
    "npm": "9.5.1",
    "node": "18.16.0"
  }
}
  1. Create a pp-config.json file at the root of your game's codebase.
{
  "name": "My Cool Game",
  "height": 360,
  "width": 640
}
  1. Create a pp-dev.json file at the root of your game's codebase.
{
  "renderPathing": false
}
  1. Create a pp-env.json file at the root of your game's codebase.
{
  "newgroundsAppID": null,
  "newgroundsEncryptionKey": null
}
  1. Create a project.ldtk file at the root of your game's codebase, using the LDTK level editor.
  2. Create a .gitignore file at the root of your game's codebase.
node_modules
pp-dev.json
game.zip
  1. Create an audio folder at the root of your game's codebase.
  2. Create an images folder at the root of your game's codebase.
  3. Create a src folder at the root of your game's codebase.
  4. Create an index.ts file inside of the src folder.
  5. Run npm install.
  6. Run npm run dev to start a dev server with hot reloading on port 3000.
  7. Explore the documentation: https://pp.evanmmo.com/

Command line interface

pigeon dev

Run your game on a local dev server with hot reloading.

pigeon zip

Export a .zip folder of your game that can be uploaded to sites like itch.io and newgrounds.com.

pigeon lint

Run the linter on your game's source code.

pigeon lint:fix

Run the linter on your game's source code and automatically fix some errors.

Example games

ESLint VS Code extension

Create an .eslintrc with the following contents to use this extension.

{
  "parserOptions": {
    "project": "./node_modules/pixel-pigeon/game-tsconfig.json"
  },
  "extends": [
    "./node_modules/pixel-pigeon/.eslintrc"
  ],
  "rules": {
    "no-restricted-imports": [
      "off"
    ]
  }
}

Running the framework locally

  1. Follow the "getting started" instructions to create a game somewhere on your PC, e.g. D:\Code\My-Awesome-Game.
  2. Clone the framework somewhere on your PC, e.g. D:\Code\Pigeon-Mode-Game-Framework.
  3. Inside of the framework directory, run npm link.
  4. Inside of the game directory, run npm ci.
  5. Inside of the game directory, run npm link pixel-pigeon.
  6. You can now run your game like normal with pigeon dev. You must manually rerun this every time you make a local change to the framework, as hot reloading only listens for changes to your game's code.

About

Game engine for EvanMMO's typescript games

http://pp.evanmmo.com/

License:MIT License


Languages

Language:TypeScript 81.3%Language:JavaScript 14.7%Language:CSS 2.8%Language:Mustache 1.2%