9 ms·
Phaser 3.0: HTML5 game framework
- james-skemp 9y agoHaving been watching this, it's still rough around the edges, but I have no doubt that Phaser 3 will get to feature complete and beyond at a nice pace. What's holding me back from starting to really experiment with it is lack of TypeScript definitions. Phaser 2 was what got me started using TypeScript, and as a C# guy I'm still holding out hope that I can get my work using TypeScript for some project or other. If you've been wanting to play with TypeScript, I highly recommend taking a look at creating a simple game with TypeScript. There's a lot of templates out there, and I've done some popular tutorials in TypeScript instead of the JavaScript they were written in. https://github.com/JamesSkemp/PhaserTutorials https://github.com/JamesSkemp/PhaserTutorials
- baldfat 9y agoI LOVE Phaser though I have moved on to Godot wanting to see if it is a better fit for me. Congrats to the team for making a great toolkit.
- T3RMINATED 9y agoGODOT Pwns Phaser a JavaScript not HTML5 Framework
- ggregoire 9y agoWhat are the main differences with Pixi? I'm new to game dev, I picked Pixi 1 week ago because it's the one generally recommended on HN. Both frameworks have 17,500 stars on github.
- tlarkworthy 9y agoPixi is rendering. Phaser is full game engine (physics, sound etc.). Phaser uses an old customized version of pixi for the visuals.
- Ycros 9y agoI'd expect the "What's New" section to tell me at a high level what's actually new in this release.
- james-skemp 9y agoIt's a complete rewrite, so effectively everything. Although not as feature complete as version 2 yet.
- myth_drannon 9y agoHopefully Thomas Palef will update his "Discover Phaser" book for Phaser 3.
- freehunter 9y agoA year or so ago I did a lot with Phaser. I learned I'm not cut out for indie game dev and since moved on, but man is Phaser easy to learn and easy to get more advanced in. Even though I don't use it anymore, I am a big fan of their work. Congratulations on shipping 3.0. I hope it inspires a lot of great talent to discover themselves.
- dgritsko 9y agoYeah, I've done some hobbyist stuff with it and it was a joy to work with. Felt like I spent most of my time actually making my games rather than learning arcane trivia about a framework, which made for a very pleasant experience.
- SaturateDK 9y agoYeah, we used it for a Game Jam lasting 48 hours, and still got something done. Most of us never tried doing games, so that's a big thing, just being able to jump in like that!
- casselc 9y agoMy son did a game dev camp last summer at DigiPen where they were using a custom IDE that exposes Phaser with Blockly. The quality and variety of games produced by a bunch of ~9 to 12-year-olds in 2 weeks was impressive.
- mephitix 9y ago"Games can be compiled to iOS, Android and native apps via 3rd party tools" Gonna need some explanation here... does it spit out native code? Where are the tools? And since it's HTML5 why can't I just run the thing in a native web view? Are there perf issues?
- wishinghand 9y agoI'm not part of the Phaser development team, but I imagine the 3rd party tool they're referencing is Cordova. If you're using the CLI generator for Cordova, you'd put your finished project in the `www` folder and plug in your test device to see how it runs. This creates a webview app that runs on Android and iOS devices. I'm not an Android or Swift dev, but I imagine you can just stick it in a native webview, which is what I believe Cordova does. As for performance I can't imagine it's super-performant, but I do know the lead dev does his best to aim for 60fps rendering even under heavy duress.
- josephg 9y agoIt could also be using something like Ejecta[1], which wraps a javascript engine with a simple native reimplementation of the canvas API. Ejecta is great because its lightweight - you don't pull in all of Webkit like cordova. (And thus you don't have to deal with any of its opaque, ever-changing quirks.) [1] http://impactjs.com/ejecta http://impactjs.com/ejecta
- Kiro 9y agoI would love to know this as well. Ideally it should just map the WebGL calls to native OpenGL. If this is not the case, why not?
- LoSboccacc 9y agoI had many issues with iOS since their web view component didn’t enjoy full webgl accelleration. This made opening my game slow in chrome and slow when wrapped in a cordova app without using crosswalk, eventually just reduced graphic demands precalculating composed sprites, placing caps on concurrent bullets, reducing the game area etc. In the end was running well enough from the browser too making wrapping moot. It’s published at http://increstellar.com http://increstellar.com and the code is not obfuscated but beware: it’s very amateurish
- dgritsko 9y agoHow does this compare to the "Community Edition" of the Phaser framework?
- nycdotnet 9y agoCommunity Edition is the latest 2.x after the main dev started focusing on v3.
- james-skemp 9y agoCommunity edition is also more feature complete. 3 will get there, but isn't there yet.
- uptown 9y agoHadn't heard of Phaser but I'll definitely give it a look. Are there any frameworks that are specifically geared towards turn-based games with a "gameboard" similar to Scrabble / Words With Friends? I've been working on a game that follows this model, but have rolled-my-own implementation till now.
- chickenfries 9y agoSaw this previously on hn https://github.com/google/boardgame.io/blob/master/README.md https://github.com/google/boardgame.io/blob/master/README.md
- keithnz 9y agoAt one stage this was built on pixi for 2d rendering ( http://www.pixijs.com/ http://www.pixijs.com/ ) but I think 3.0 it took out pixi? Anyone know what the rendering is like now?
- madethemcry 9y agoIt's finally custom build, Richard payed a guy called Felipe to work full-time for quite some time to help developing it. See the devlog [1] for more details. I loved reading it over the months. There is also a wrap-up post by Richard to summarize all of this [2] [1] http://phaser.io/phaser3/devlog http://phaser.io/phaser3/devlog [2] http://phaser.io/news/2016/12/phaser-in-2016-and-beyond http://phaser.io/news/2016/12/phaser-in-2016-and-beyond
- aroman 9y agoI've spent the past 6 months building a game[1] using Phaser and TypeScript. On the whole, it's been a great experience. 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. Some tips for others based on my experience with Phaser: - 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. - 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]. - 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. - Phaser's scaling system[4] is awesome. Use it. Don't try to reinvent the wheel yourself! Richard and crew, if you're reading this, THANK YOU! You've built an incredible project. Thank you for sharing it with the world. [1] http://www.toomanycaptains.com/ http://www.toomanycaptains.com/ [2] http://phaser.io/phaser3 http://phaser.io/phaser3 [3] https://github.com/TooManyCaptains/TooManyCaptains/tree/master/game https://github.com/TooManyCaptains/TooManyCaptains/tree/mast... [4] https://photonstorm.github.io/phaser-ce/Phaser.ScaleManager.html https://photonstorm.github.io/phaser-ce/Phaser.ScaleManager....
- LoSboccacc 9y agoIf we’re doing tips, here’s another: don’t use bazillion timers to control your actors lifetime! Timers array gets resorted at every addition and that can really add noticeable lag on slow devices. If you need to, rewrite the add timer method to use an insertio sort instead of adding last then sorting the whole array (I was using timer instead of collision for bullets since I had the hit/miss outcome coming from a percentage base rile as opposed as game phisycs and expired bullets just at the right time to make them appear misses - maybe not the greatest idea mind you but eh got it working and was cool enough)
- jjjensen90 9y agoAw man, looks like they moved away from naming releases after places in The Wheel of Time by Robert Jordan. I remember finding that when I stumbled across Phaser a couple years ago and being delighted. I made a toy "game" with some FSM actors and was impressed even in the much older version. One thing I would recommend for someone trying it out, especially coming from C/C++ game development like I did, is to use Typescript and the tooling that comes with it.
- cyberferret 9y agoMy son and I built a small game together a couple of years back with Phaser 2. It was a really pleasant experience. I don't do game dev any more, but will probably take a look at Phaser 3 in the next few months and probably build another tiny game out of it just for fun. Glad to see such an excellent project still kicking along.
- madethemcry 9y agoThere is also a huge community around Phaser (as well as Pixi, the huge 3D gaming framework Babylon.js and many more) hosted by Richard who is developing Phaser. http://www.html5gamedevs.com http://www.html5gamedevs.com It's a wonderful place to stroll stroll around even if you don't have a concrete question in mind.
- vanderZwan 9y agoOoh, thanks for that! I knew of all of these frameworks yet had missed this. I bet it's a great place to learn tricks for squeezing better performance out of the web too (even if limited to specific niche tasks).
- birracerveza 9y agoI love Phaser! I've been in love with this framework ever since it came out because it's based on Flixel, which was per se an amazing framework built on AS3 by the same guy. Only Love2D comes close to it. I had completely forgot about it until now, and now that they added Typescript support I might just pick it up again for a spin. Is the renderer still bolted in? Last time I tried it I wanted to use it as backend for a multiplayer game, but couldn't because Pixi.js was a necessity.
- deleted 9y ago[deleted]
- Donzo 9y agoI’ve been using ImpactJS since around 2012 or so to make HTML5 / JS browser games. I really like it, but development on the project has been stagnant, and I’m considering a move. Can anyone whose used both speak to what Phaser does better/worse than ImpactJS?
- james-skemp 9y agoI haven't used both, but when I was investigating frameworks the lack of work on ImpactJS, and very active work on Phaser, is why I chose the latter.
- Fifer82 9y agoGreat job guys on this long journey. I used to make Web Games, but then I realized the race to the bottom and bailed all together. I found after 10 years as a GameDeveloper (where every project is practically unique) has made being a React developer almost like using a baby's soft toy. My job is beneath me, I sleep like a baby, and I get paid 4 times more than being a game developer for a job that demands 1% of the effort on a daily basis. I don't miss my times with gaming at all and I would never go back. Each to their own!
- brazzledazzle 9y agoWhat would you say your most transferable skills from gaming to web development were?
- deleted 9y ago[deleted]
- T3RMINATED 9y agoIt says HTML5... but all i see is JavaScript... so its a JavaScript framework.
- disease 9y agoAnyone know the story regarding TypeScript definitions and this project? I'm surprised to see that they don't seem to be available yet considering this project used to be written in TypeScript.
- james-skemp 9y agoAs someone waiting for TS to really dig into it ... One of the recent posts mentioned that TS defs would be part of launch, but it's been quiet on that front now. There's a closed issue in GitHub where someone is creating defs themself. If I remember correctly TS community support was why he didn't stick with it. Community voted and straight JS but with TS defs were going to be the target.
- drumttocs8 9y agoHow does this compare to standards such as Unity?
- konsnos 9y agoThey are for a different job and can't really be compared. Phaser is a solely Canvas or WebGL browser games framework and does a really good job at that. If you just want to make browser games pick Phaser. If on the other hand you want the option to build for desktop or mobile and other platforms try Unity. Why not pick Unity from the start? It supports building in WebGL but you can't really delve in that automatically generated javascript code to fix something in there and even if you tried to do it you would have to do it every time you build your game. You just have to trust that Unity will keep up to date its framework and its build system will optimise it as best as it can. Also with Unity you trust your art and music to its packaging system. You can change some of the import options, but in the end you depend on its optimisations.