I've spent the past 6 months building a game[1] using Phaser and TypeScript. On the whole, it's been a great experience.<p>Actually, I was surprised to see this posted here now, since Phaser 3.0 is not yet out. It's mostly feature-complete, but they're still working on docs and preparing for the release (in the few days to a week). I've really enjoyed following the v3 devlog[2]. Richard Davey's dedication to the project and his and the other contributors herculean efforts towards v3.0 have been inspiring to watch. Truly a labor of love.<p>Some tips for others based on my experience with Phaser:<p>- USE TYPESCRIPT! One of the worst parts of Phaser is its documentation. In fact, the docs on the main website have been outdated by about 4 major releases, and the new docs are ugly and hard to use. TypeScript + VSCode massively improves this experience, by auto-completing functions and adding inline JSDoc info.<p>- Webpack is great, but hard to use with Phaser 2 OOTB. This may be a moot point since V3 is almost here, but if anyone wants to see how it can be done, my whole game is open source[3].<p>- Phaser.Group is a weird concept, but very powerful. Not only useful for object pooling, but also for creating custom GUIs using surfaces with coordinates relative to the group size/position. Makes nested dynamic UIs very easy.<p>- Phaser's scaling system[4] is awesome. Use it. Don't try to reinvent the wheel yourself!<p>Richard and crew, if you're reading this, THANK YOU! You've built an incredible project. Thank you for sharing it with the world.<p>[1] <a href="http://www.toomanycaptains.com/" rel="nofollow">http://www.toomanycaptains.com/</a><p>[2] <a href="http://phaser.io/phaser3" rel="nofollow">http://phaser.io/phaser3</a><p>[3] <a href="https://github.com/TooManyCaptains/TooManyCaptains/tree/master/game" rel="nofollow">https://github.com/TooManyCaptains/TooManyCaptains/tree/mast...</a><p>[4] <a href="https://photonstorm.github.io/phaser-ce/Phaser.ScaleManager.html" rel="nofollow">https://photonstorm.github.io/phaser-ce/Phaser.ScaleManager....</a>