2.0.0 • Published 7 months ago

ponczek v2.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

ponczek

Deep-fried game framework with sweet filling.

🔋 Quickstart

npm create ponczek-game

🤔 Why?

I wanted something that would make it easier for me to create 2D games during game jams. This framework's design and future development reflects the type of games I like to make.

I've made this for myself, but anyone is welcome to use it. Expect breaking changes though.

👩‍💻 What it is?

  • Very opinionated
  • Software rendering
  • Easy to use with fantasy console-like API
  • Prioritizes performance over memory usage and bundle size
  • Tries really hard to avoid GC in game loop
  • Provides API that makes it easy to avoid GC in game loop
  • (almost) zero dependencies *
  • Easy to understand and extend code base

* Only uses minimal amount of high quality runtime dependencies that are in and of themselves no dependency libraries.

🙅‍♀️ What it is not?

  • Not made for high fidelity games
  • Not a fully featured game engine
  • Does not support mobile

🍩 Features

For example usage of these feature check out the demo page and its source.

  • 2D software rendering
    • Primitive shape rendering (lines, rectangles, circles)
    • Drawing textures
    • Drawing nine slices
    • Drawing monospaced sprite fonts
    • Color utilities
    • Fragment shader-like effect system
      • Custom effects support
      • Built-in RGB filtering effect
      • Built-in color replacement effect
    • Camera
    • Spritesheets
    • Clipping
    • Allows dropping to browser's Canvas API for unsupported features
  • Simple sound effects player
  • Keyboard and mouse input system
    • Supports binding
  • Math module
    • Data structures and algorithms (Vector2, Rectangle)
    • Random number generator
    • Simplex noise generator
    • A* pathfinding
  • GUI
    • Grid component with keyboard navigation
  • Data structures
    • Tilemap
    • Priority queue (via heapify package)
  • Asset loader
  • Scene manager
    • Stack based
    • Scene transition animation system
  • Data storage for save data (uses localStorage)
  • Timers
  • ImGui integration

Uses fantastic font Monogram by datagoblin as a default font.

Works in every major browser.

🏗️ Made using ponczek

🚧 Development

Install dependencies using yarn.

You can start examples project in watch mode using:

npm run examples:dev

For type checking in watch mode during development use:

npm run test:type-check:watch

🪵 Changelog

You can read the project changelog here.

📝 License

This project is licensed under the MIT license.

2.0.0

7 months ago

1.1.1

7 months ago

1.1.0

7 months ago

1.1.2

7 months ago

1.0.0

1 year ago