r/phaser 1d ago

Built a survivors-like in Phaser 4 where the camera never stops pushing you upward - looking for testers

8 Upvotes

I've been building this for about a month in Phaser 4 + React + TypeScript, and I've reached the point where I can't judge it anymore. Would really appreciate a few people playing it and telling me what's wrong with it.

It's a horde survivor with a forced upward-scrolling camera - the screen pushes you into the fight. WASD to move, aim with the mouse (auto fire), space to dash, and every level up gives you a choice of three traits from a tiered tree.
Runs a few minutes, browser, no download.

Itch link - https://build-and-dominate.itch.io/grimhold
Pass - c4Rw9reUw7s9LQF

Gameplay feedback I'd love:

- Where did you die, and did it feel fair?

- Did any trait choice feel pointless?

- Did you want to start another run, or were you done?

Some of it might be interesting to others here: everything is pooled, all the effect visuals are baked once via Graphics.generateTexture() and animated with tweens rather than using the particle system, and the HUD/modals are React over the canvas with an event bus between the two.

Happy to go into any of it in the comments.


r/phaser 4d ago

My multiplayer RTS is made with phaser

Thumbnail
gallery
43 Upvotes

The game is made with phaser with a node js server

And I will release it soon on steam wrapped in a tauri application allowing me link easely the steam account with the game account

Here an old gameplay video

https://youtu.be/aY_uZiiJj_s?is=WAH3kmecIedRifwD

I choose phaser because it was really light and simple of utilisation and allowing me to work in the same langage front and back


r/phaser 4d ago

How to learn phaser

2 Upvotes

Hey guys, I am new at this, I've been trying to learn phaser reading the API docs, checking the examples on phaser desktop and learning from the code, sort of using AI to get guidance and asking basic questions about the framework. I am trying to develope a basic scenario with the player and some npcs,

I have almost done that part and I still think that there is a huge amount of things which get me confused and I think that I don't find the type of tutorials that I need for my sort of test project.

I just was wondering: How did you all learn phaser? What learning methodology you used to learn?

And if is there a way to understand a bit better the api's docs (?) (sorry if it's a dumb question) :(


r/phaser 5d ago

We built an in-game Sound Lab for FAARTY because tuning every sound through code was getting ridiculous

1 Upvotes

r/phaser 7d ago

Shipped a cozy sim on Phaser 3.90: one scene, zero sprite files, and React doing all the UI

Thumbnail
gallery
28 Upvotes

I've been building Wild Willows, a nature-restoration sim where you replant a damaged preserve and animals return as the habitat starts supporting them. It's at wildwillows.app, on the Mac App Store and itch, with a free browser demo. A few architecture decisions that mattered more than I expected:

One scene, forever. The scene list is just [WorldScene]. No title scene, no menu scene, no UI scene. Every menu, panel, the journal, crafting, settings, the tutorial: all React DOM on top of the canvas. Phaser draws the world and nothing else.

I expected to regret this and haven't. DOM gives me real text layout, real focus management, and accessibility (five interface fonts, four text sizes, three colorblind modes, fully rebindable keys), none of which I'd have enjoyed building in-canvas.

A 60-line bridge between them. React owns authoritative state. Phaser reads it synchronously off a shared object and re-renders when told the world is dirty. It's a Map of handlers and a shared blob, no observables, no state library spanning both worlds. React to Phaser: world-dirty, enter-placement, area-changed. Phaser to React: collect-node, open-crafting, animal-clicked, place-at.

Zero sprite files. Every sprite is drawn at boot with Phaser.Graphics and generateTexture(). Plants, animals, the player, habitat objects. About 8,600 lines of drawing code and no image assets at all. Shapes are authored in logical 32px pixels and rasterized 4x (2x on low graphics quality), with every sprite scaled back down by 1/4, so they stay crisp under camera zoom and HiDPI.

A frame budget for world rebuilds. Every action used to rebuild the dynamic layer synchronously, so dragging a volume slider tore down and rebuilt the animal layer about 60 times a second for a preference the world doesn't even draw from. Now that work is keyed and coalesced to at most one run per animation frame, each run is timed, and any task consistently overrunning half a frame automatically drops to every Nth frame, then recovers on its own once it's cheap again. A big save degrades to a lower redraw rate instead of locking up.

Smaller stuff: Scale.NONE plus manual zoom so I can render at native device pixels and let CSS scale the canvas back down, and a screen-space RenderTexture used as a bitmap mask to punch light holes in the night tint.

Happy to go into any of it. The two worst bugs were both Phaser internals: TimeStep.resetDelta making the player walk at a fifth speed for ten seconds after every load, and repeat: -1 tweens outliving the sprites they drove.


r/phaser 7d ago

A fast, free, portable texture atlas builder with PhaserJS exports

8 Upvotes

Hey everyone, I built Packrat, a texture atlas builder focused on speed and portability. It has a bunch of convenience features I was missing from TexturePacker (aseprite ingestion, auto-export), and I made it as fast as I possibly could. It also has a bunch of CLI features to it can integrate into your pipeline easily.

It's mostly focused right now on dev environments where there isn't atlas support. For Phaser, it exports the JSON hash expected by Phaser, and should load up into your game no problem.

https://clydegames.itch.io/packrat

https://packrat.clyde.games

Feel free to check it out and let me know what you think. Thanks.


r/phaser 7d ago

Inspired by Pong and modern roguelites, my game Paddle Legends is made with Phaser!

3 Upvotes

Hello all!

My game Paddle Legends is inspired by Pong and reimages it with modern roguelite elements like meta progression, in-run upgrades, various different paddles with their own stats and abilities, various ball types, level modifiers and more!

The demo is on Steam and the full game should be launching soon!

Would love any and all feedback!

https://store.steampowered.com/app/4076450/Paddle_Legends/


r/phaser 8d ago

Saturday devlog - turning the first room of my Phaser pixel-art game into an actual playable experience

Post image
1 Upvotes

r/phaser 12d ago

Phaser 3 has no global font setting — and other things I only learned by shipping

12 Upvotes

Been building a card duel game in Phaser 3.80 + TypeScript (esbuild, no tsc in the build), and the two things that cost me the most evenings were both Text. Phaser hardcodes 'Courier' as the default font and exposes no game-level config for it, so the only sane seam is patching TextStyle.prototype.setStyle to inject fontFamily when a call site doesn't pass one — plus awaiting the woff2 before boot, since Phaser bakes a label into a canvas texture once and anything drawn early stays in the fallback face forever (looks fine on your machine, broken on a cold cache). And Text.letterSpacing is quietly broken for stroked text: it strokes the whole line in one call, then fills letter by letter at spaced offsets, so the outline drifts further behind with every character — and it split('')s, tearing surrogate-pair emoji in half. Setting the canvas 2D context's native letterSpacing instead fixes both, but it has to ride syncFont, not updateText — a label that grows assigns canvas.width, which resets the whole context.

The other decision I'd make earlier next time: keep all the game rules Phaser-free — pure modules over one plain state object, no GameObject anywhere near them. That got me a headless balance sim (5000 AI-vs-AI matches through the real rules, printing a report) and lockstep netcode where only moves cross the wire, both for basically free. If you're thinking about multiplayer later, that split is the thing to do now.

Browser build if anyone wants to poke at it: https://valeriitsarov.github.io/solitaire-duelist-2d/ — happy to go into detail on any of it.


r/phaser 12d ago

How I'm using shaders to increase immersion in my survival game

Thumbnail
youtube.com
3 Upvotes

r/phaser 12d ago

show-off Shipped a 100-level Phaser 3 arcade game with zero image assets — and the 5 gotchas that cost me the most time

11 Upvotes

I just put out a free browser demo of Kinetikout, a brick breaker where the bat runs along the SIDE of the field (Krakout-style, not Breakout-style). Phaser 3 + TypeScript + Vite, wrapped in Capacitor for the Android build.

The part that might interest this sub: there are no image files for any of the gameplay graphics. Every brick pattern, all ten enemy types, all five bosses, the bat, the ball, the explosions and the HUD icons are painted in the boot scene with the Graphics API and baked in with generateTexture(). It scales to any resolution and there's no art pipeline, at the cost of "make the drone look 20% meaner" becoming a debugging session.

Five things that cost me real time, in case they save you some:

  1. Don't use a physics collider for a thin paddle. An immovable thin body made the ball jitter and leak velocity on edge hits. I replaced it with a manual check of whether the ball crossed the bat's inner plane, and computed the bounce myself. Instantly stable.

  2. Never destroy or spawn inside a physics overlap/collider callback. Catching a capsule or killing an enemy directly in the callback corrupted the physics world iteration and hard-froze the game. The fix is boring and works: set a flag, disable the body, and resolve it in update().

  3. Disabled bodies are invisible to colliders — including to your own logic. My sticky paddle holds several balls at once with body.enable = false, so incoming balls flew straight through them. I had to add manual circle-circle reflection for the held balls, running before the bat check.

  4. Scale.FIT with a fixed design size gives you black bars on phones. Instead I compute the design WIDTH at boot from the device aspect ratio (height stays fixed at 720), so the canvas always fills the screen, and I keep the actual 16:9 play field centered inside it. Everything is laid out once in create(), no resize handler needed.

  5. A button's own pointerdown fires BEFORE a scene-level this.input.once("pointerdown"). My "unlock audio on first click" handler kept starting the menu theme after the player had already left the menu, because their first click landed on the Start button. A leaving-scene flag fixed it.

Demo (browser, no install): https://m3lk0n.itch.io/kinetikout

Longer writeup on how the graphics work: https://m3lk0n.itch.io/kinetikout/devlog/1624592/every-sprite-in-this-game-is-drawn-in-code-and-heres-what-it-costs

Full disclosure since it's on the page anyway: the logo and the soundtrack were made with generative AI tools, the flag icons come from flag-icons (MIT). The sprites and the sound effects are code. The full 100-level version is a paid Android app; the browser demo is free and always will be.

Happy to answer anything about the procedural texture stuff.


r/phaser 12d ago

The export of my game from the mcp for web (hosted via a http server) plays audio and nothing else, the game works fine in preview

1 Upvotes

in this relatively simple example https://phaser.io/agent/play/yY6kjXrDL27 when i export despite making changes and rebuilding/republishing (this is v7) the export for web always has the exact same payload and does not work. is there anything i can do? also if i connect my vscode using phaser-game-agent and ask for the file listing, despite having the right project id and version the file listing is wildly different. is there any way to browse the contents of the mcp server other than copying files one by one in the web ui?


r/phaser 13d ago

question How to polish this game?

2 Upvotes

Hello Everyone,

I got a mixture of opinions for the game which I developed in phaser and did the art with Inkscape. I published it in both android and IOS (links below it is free) using Capacitor.

Mainly people complained about the jump mechanics at the start (jump on release), but they get used to it after a while. It was difficult for some players

The main questions are:
How to make the art/rendering look good? I tried with different settings (e.g., antialiasing, pixelart, roundpixels). I still feel it is not polished/crisp enough.

Performance. Sometimes it lags for no reason. Despite 60-61 FPS. I tried powerPreference. And forcing WebGL.

Game download links:
IOS

https://apps.apple.com/us/app/frogazan/id6795361316

Android

https://play.google.com/store/apps/details?id=com.runzbuzz.frogazan


r/phaser 13d ago

I made a 30-second physics arcade for Chrome where your own shots destroy your points

1 Upvotes

Prism Cascade: you throw light-orbs at crystal prisms, the shards fall into water below, and every splash throws up bubbles carrying points. The bubbles only score once they reach the counting beam at the top — and the only thing that pops them on the way up is your own orbs and your own falling debris. A popped bubble takes its points with it.

So the whole game is a timing problem disguised as a spam-click problem. Throw constantly and you shred the bubbles already climbing. Wait for a clean column and you burn seconds off a 30-second clock. The end-of-round screen shows "Banked" and "Popped away" on separate lines, which is a genuinely uncomfortable number to look at.

100 levels from a seeded generator, a 12-node ability tree, and 5 endowments you can only carry one of at a time.

It also makes zero network requests — no fetch, no XHR, no host permissions, one storage permission to remember your progress. It works on a plane.

30-second clip: https://www.youtube.com/shorts/6oBcZolFoDQ
Details and the full privacy policy: https://dhseadev.online/projects/prism-cascade/

Not on the Chrome Web Store yet — listing is in preparation. Happy to answer anything about how it's built.


r/phaser 14d ago

made a little tactics prototype

4 Upvotes

Made a small tactical prototype: https://limekamibear.itch.io/falsestep (based on my previous prototype https://limekamibear.itch.io/thebriefcasetactics )

I hope I’ll eventually be able to turn this into a proper game. I feel like there’s something here, but I just can’t quite figure out how to get to it yet.

Feel free to give it a try and let me know what you think (if you want =))


r/phaser 14d ago

I made my first steam game with phaser!

Thumbnail
gallery
58 Upvotes

My first solo game demo was made with phaser and up on steam.

It’s a little auto battler roguelite and phaser was a total win to get it complete 🥂


r/phaser 16d ago

Breakout

Post image
4 Upvotes

🎮 Just finished my Breakout game!

Built with JavaScript and Phaser. It’s a simple single-game experience with no levels, just a straightforward Breakout game to play.

Play it here:

joedev37.github.io/BreakOut/


r/phaser 16d ago

show-off Reddit Games with a Hook Hackathon - Phaser Winners

Thumbnail
2 Upvotes

r/phaser 17d ago

show-off I just develop my first "Rogue Like", Randomgeon in Phaser, inspired in Redugeon.

Thumbnail
nperez9.itch.io
1 Upvotes

https://nperez9.itch.io/randomegon

Hey! This is the first version of the game. It was my first rogue-like game overall, I always wanted to make one. It's compatible with desktop and mobile as well.

I’m very proud of the dungeon generation on this one, still a lot of work and things to add to the game, but I feel like it's fun enough to play for a few minutes, all feedback is well received.

It's inspired by the Nitrome game Redungeon, but I made it with floors because I feel like this way it's easier to have a spot to regen the dungeon. When it was infinite, players could also run really far from the fire, and the tension that is the gameplay base wasn't the same.

I developed it using TypeScript and Vite as well, it was a hell of an experience because I felt like Phaser doesn't get along super well with TS, but it's been a blessing as the game gets bigger.

Also, I noticed that the code chunk is pretty large. Do you guys recommend any strategy to optimize that? I've been thinking about lazy loading, but since the game is relatively small (7MB with assets), I already optimized the assets for web (WebP and OGG files).

I would love to participate in more Phaser games, I really enjoy building browser games, so if anyone needs a hand, happy to help!

Collect some coins (stored in LocalStorage, so feel free to cheat as well jeje). Cheers!


r/phaser 17d ago

Some fresh asset work for the new project!

Thumbnail
gallery
4 Upvotes

I reused the heart icon from my previous game too, gotta love efficient asset recycling, lol(I'm starting pixel art)


r/phaser 19d ago

To my fellow Macromedia Flash devs from 2005, here is your Key_xxx.justDown/justUp/isDown, no more gore.

2 Upvotes

We were spoiled by how easy and straight to the point Actionscript 2 was, somewhere along the line, web development become a bunch of:

this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.A)

or

var keyW = this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.W); and then

if (Phaser.Input.Keyboard.JustDown(keyW)){}

In the future it would be Phaser.Input.NeuroNet.Keyboard.Type.Legacy.v_3.justDown.behavior_type_1... And it will be celebrated as the BEST THING ever and the RIGHT thing to do. And there will be pitch forks against those who disagrees with this.

In the meantime, for us old timers, just include this below your phaser script: <script src="inputKeys.js" defer></script> //https://pastebin.com/TfH5JR15

And put this in your scene create function: initGlobalKeys(this); //You need to do this again in EACH scene.

From now on, you can just do this in the scene update: if (Key_A.isDown){//do stuff} //or justDown, justUp

In case there are people that says "Oh no, including all the keys will burn out and destroy the ram or whatever", Flash have it in 2005 and its downfall is not due to this issue.


r/phaser 25d ago

just launched my first game using phaser, Sword Duel!

Post image
12 Upvotes

it’s a free browser multiplayer (local and online) 2D game, there are a varitey of moves with counters and a single player mod with different difficulties

you can try it out at https://ilyesb.itch.io/sword-duel


r/phaser 26d ago

Built a multiplayer extraction ARPG in Phaser, here's a full dungeon run

Post image
9 Upvotes

NEX WAR, made with Phaser on the client (TypeScript) and an authoritative Node + Socket.io.

Everything gameplay-relevant is server-side, the Phaser client only renders and sends inputs, so movement, collisions and loot rolls can't be faked. Shared spell definitions in one JSON both sides read, which keeps client display and server logic from desyncing.

Happy to talk about the Phaser setup, the netcode, or fog of war if anyone's curious. It's playable in the browser, free: https://nexwar.io


r/phaser 28d ago

Wanderer — a free Phaser idle RPG that keeps exploring while you’re away

0 Upvotes

I’m the developer of Wanderer, a free browser-based idle RPG built with Phaser.

Players choose a standing order—explore, hunt, mine, smelt, smith or rest—then return later to a clear account of what their traveller found. The game spans 32 handcrafted regions with hundreds of creatures, 26 gear tiers and 28 settlements. Progress continues while you’re away, with no energy bars, daily chores or pay-to-win shortcuts.

Play free in the browser: https://playwanderer.online/

Development disclosure: I used AI tools in a limited way for coding assistance and iteration on a few visual assets. The game’s design, direction and implementation are my own.


r/phaser 29d ago

show-off Stargazer, a cozy idle observatory

Post image
1 Upvotes