A monorepo collection of a sample game and libraries for HTML5 game development.
This is just a snapshot of my working monorepo, where I develop games and maintain these libraries.
Further development of these libraries will be done by me on a different repository. Although I'm not against turning these libraries into npm packages that can be shared and further developed by the community, this is not in my immediate plan.
At this point, the libraries aren't totally battle tested, and have many opportunities for improvements in terms of features and code/architecture quality.
You'll probably find commented code and abandoned features (e.g.: tooltip) for things I thought I was going to need but stopped working on for the time.
You can play this game here: https://andre-lima.itch.io/a-very-tiny-game
A simple game developed as a way to guide the development of the libraries below. It was intended to be a vertical slice of most features required for the development of a full RPG game.
Although, Inventory and Battle systems (2 important features for these types of games) were not included in the list of libraries I developed in the end.
Here's a list of libraries and components I created to support the development of the games. They're all singletons that can be imported and used on all games and libraries.
Manages playing SFX and music.
Emits and listens to events passing through all of the games and libraries.
Components, math helpers, config helpers, GUI helpers, etc.
Creates game menus with React/JSX.
CSS helpers and variables
Keeps state for games.
Creates HTML overlays on the games. Useful for custom menus and UI heavy games.
Handles input events and states for keyboard and gamepads.
Some useful types common to all projects.
Creates game dialogs for use in game. Dialogs are created in the Ink language.
You can reuse any of the code in this repository for personal or commercial projects.
The art and sound assets can't be used for commercial projects or resold, as they were purchased for this project and have their own closed license attached to them.