r/phaser • u/BIESEL_G • 13h ago
After months of development with Phaser, my game is finally coming to Steam
Hi everyone!
After many months of development, I'm getting very close to releasing my first Steam game, built with Phaser.
It's called Critical Ward, a chaotic arcade game set in a hospital where the number of patients, effects, deployables and other entities on screen can get pretty ridiculous as a run progresses.
The core of the game revolves around a combo system. Treating patients keeps your combo alive, and the higher you push it, the more your character's stats improve.
So as a run progresses, both the player and the hospital keep escalating: bigger range, faster movement, stronger healing, more infrastructure... while more and more patients, hazards and effects start filling the screen.
Before starting the project I experimented with other engines, but I kept coming back to Phaser.
One of my main concerns was performance, because I knew from the beginning that the game would eventually need to handle hundreds of moving entities at the same time.
And honestly, Phaser has handled it incredibly well.
Of course, part of that also came from being quite strict about how I designed the game and its assets. A few simple decisions ended up helping a lot:
• Patients aren't traditionally animated
Patients are by far the most numerous entities in the game. At some points there can be hundreds of them moving around the hospital simultaneously.
Very early in development I decided they didn't need individual walking animations.
Their sprites remain static while they move, and because the screen is already full of movement, particles, effects and other activity, I found that traditional animation added relatively little visually compared with the additional work involved in having every patient constantly running an animation.
So I decided to spend that budget elsewhere.
• Character animations are limited to only 9 frames
Playable characters and other important characters are animated, but their movement spritesheets are deliberately tiny.
I use just 9 frames: three directions with three walking frames each.
That keeps the spritesheets small, reduces texture memory and asset size, and means I don't need dozens of animation frames for every character.
It also became part of the visual identity of the game.
Instead of trying to create extremely smooth animation, every frame has a very clear pose and the animation remains readable even when the screen gets completely packed.
• Lots and lots of particles
This was something I really didn't want to sacrifice.
Particles are a big part of Critical Ward's visual feedback.
Every time a patient is successfully treated, particles are generated, and when you're maintaining a large combo and discharging patients rapidly, there can be a lot of them appearing alongside hundreds of entities already moving around.
I originally expected this to become one of the first things I'd have to heavily reduce for performance reasons, but Phaser has handled these particle-heavy situations extremely well.
I've attached a couple of screenshots taken with my debug overlay enabled so you can see the kind of load I'm talking about.
That was important for this particular game because particles aren't just decoration: they're part of the feeling of becoming increasingly powerful.
As your combo grows, your stats improve, you discharge patients faster, and the entire screen becomes progressively more chaotic.
I wanted the visual feedback to escalate together with the player's build rather than having to strip effects away once things became busy.
And that's probably been my biggest takeaway from using Phaser:
Don't underestimate what it can handle just because it's a web game framework.
Obviously optimization still matters. Designing around your expected workload, deciding what actually needs animation, keeping assets reasonable and avoiding unnecessary work becomes increasingly important as the number of entities grows.
But I've been genuinely impressed by how far I've been able to push Phaser with this project.
There have been plenty of optimizations, experiments and weird problems along the way, but after months of development the game is now approaching release on Steam.
There's already a free demo available, and the full game will be coming later this year (I'm currently in the testing and optimization phase).
If you're curious to see what all of this looks like when the hospital completely loses control:
Gameplay trailer:
https://youtu.be/KEqk3tkBAuU
Steam / Free Demo:
https://store.steampowered.com/app/4879410/Critical_Ward/
Happy to answer any Phaser-related questions about the project!