Our great sponsors
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
2d-zombie-survival-io-demo
Demo on how to build an IO game, powered by phaser, nengi and react/redux
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
I use phaser on client side, then matter.js for physics + nengi.js for networking (https://github.com/timetocode/nengi).
I only have experience with 2d, where typically it's a worse experience for the player to implement CSP (client side prediction), as for example a player behind a wall can more clearly see something missed them, yet they still got hit.
The way I do things (and I've seen is common across other "io" games), is "CSP" only for particular actions (such as movement, or swinging a weapon), but otherwise just let the client move in step with the server in terms of any physics entities etc.
Are you playing on a phone or using a high DPI monitor? By default HTMLcanvas (which most game engines use to handle text) does not take into account high DPI scaling (I would guess due to performance).
This isn't inherit to JS game engines, but I will say text quality is not usually something that game devs focus on unless text is important to their particular game.
Here's an example of a workaround to render more crisp text https://github.com/danman113/gfx-utils/blob/main/src/canvas/...
I only have this old demo I open sourced - https://github.com/TomYeoman/2d-zombie-survival-io-demo right now (trying to crunch to finish full version)
It's using phaser on the server in this instance (which I recently ripped out, and moved to just using matter)
It's pretty ugly code, but the foundations are there, maybe it's a starting point or of some use!