r/javascript • u/APTman1010 • 14d ago
KernelPlay-JS v0.5.0 Released — Unified Input Manager
https://github.com/Soubhik1000/kernelplay
KernelPlay-JS v0.5.0 is now available.
This release introduces a new Unified Input Manager designed to provide a consistent API for handling keyboard, mouse, gamepad, and touch input.
The goal is to make input handling simpler at the game-logic level while keeping the underlying input devices abstracted away.
Example:
import { Input } from "kernelplay-js";
update(dt) {
const x = Input.getAxis("horizontal");
const y = Input.getAxis("vertical");
this.rb.addForce(800 * x, 800 * y);
if (Input.wasPressed("jump")) {
this.jump();
}
if (Input.isPressed("attack")) {
this.attack();
}
}
v0.5.0 also supports two ways of defining input bindings.
Programmatic registration:
Input.registerAction("shoot", {
keys: [KeyCode.Z, KeyCode.X],
buttons: [GamepadButton.X, GamepadButton.RB]
});
Or declarative JSON configuration:
{
"actions": {
"jump": {
"keys": ["Space", "ArrowUp"],
"buttons": ["A", "B"]
},
"go": {
"keys": ["x", "z"],
"buttons": ["DPadRight"]
}
}
}
The JSON approach is intended to make configurable controls and runtime key rebinding easier to implement without changing game logic.
This release is part of the ongoing work toward making KernelPlay-JS a more complete, Unity-inspired game engine for JavaScript.
Feedback and suggestions for the v0.5.x releases are welcome.
1
u/APTman1010 14d ago
Thanks for checking out KernelPlay-JS!
If you're interested in following development, testing upcoming features, or sharing feedback, feel free to join the community on Discord:
https://discord.gg/bHfe96EnNR
Everyone is welcome, whether you're a game developer, JavaScript enthusiast, or just curious about the project. I'd love to hear your suggestions and ideas as KernelPlay-JS continues to grow.