4 ms·
I've used both extensively. Here's my take: * Impact is a lot more low-level. If your game is complicated, you will have to get into the weeds of the canvas AP
by clessg 11y ago
I've used both extensively. Here's my take:
* Impact is a lot more low-level. If your game is complicated, you will have to get into the weeds of the canvas API.
* Phaser supports canvas and WebGL. Impact supports canvas exclusively.
* Impact costs $99. Phaser is open source.
* Impact rarely ever receives updates. Apparently the creator is working on 2.0, but nobody knows if or when that will be released. Phaser is updated very frequently.
* Phaser has the edge in terms of popularity. You will find a lot more articles and books for it.
* Phaser has batteries included. Impact is more bare-bones.
* It can be a pain to keep your local changes synced with upstream changes in Impact unless you go through a bit of hassle. (You will -probably- need to modify Impact's core if your game is complicated.)
* Impact has a level builder and some other tools out of the box. I personally don't use it. Tiled is better, and Phaser has good support for Tiled. Actually, I've had better luck using Tiled in Impact, but it required writing a lot of custom code. Most people will probably have more luck using Tiled with Phaser.
* Impact is a lot faster in my experience, even with WebGL enabled in Phaser. YMMV.
* Impact has far superior support for high DPI screens last time I checked. (Disclaimer: was a year ago.) Getting stuff to look good on retina screens in Phaser was hellish and things would randomly break.
* The learning curve of Impact is extremely low. However, you will feel constrained for bigger projects, which may require lots of custom visual and audio handling.
* Impact uses its own module system. Using browserify or webpack with it isn't really feasible.
- seivan 11y agoThank you for the list, I appreciate it! Regarding Impact (canvas) being faster than WebGL in Phaser. It's not the first time I hear canvas being faster. two.js had the same problem, and from what I gathered it had to do with not caching something. Maybe you know more about it than I do. Again, thank you!