Newsletter
Published on 7th October 2016
Welcome to Issue 50 of Phaser World
Wow, issue 50! That feels like quite a milestone. To have published so many issues of this newsletter is a great feeling, especially as it now reaches over 6300 subscribers a week. Somewhat frighteningly it also means we're close to the end of the year. Yikes.
It seems fitting that for our 50th issue the featured game is so stunning. It's the sublime puzzle adventure game Nearwood. Casual to the core, but gosh-darn, it's so beautiful! and it captivated me for far too long while I was supposed to be working.
Until the next issue, keep on coding. Drop me a line if you've got any news you'd like featured (you can just reply to this email) or grab me on the Phaser Slack channel.
Games made with Phaser
Game of the Week
Can you change the fate of a magical kingdom? In this beautiful adventure puzzle game.
Staff Pick
Collect all the Num Noms by matching 3, creating flavor fusions.
A nice implementation of the classic card game TriPeaks Solitaire.
A top-down shooter with neon graphics and ship upgrade options.
Wild Terra is coming to Steam, and here is what will be included.
Phaser News & Tutorials
A tutorial on creating a Mario-style platformer with Phaser Editor.
Create a o:anquan game prototype in part one of this tutorial.
Create a o:anquan game prototype in the second part of this tutorial.
Learn how to create Rabbit Defender in the fourth video of the tutorial series.
Learn how to create Rabbit Defender in the last video of the tutorial series.
Patreon Updates
Thank you so much to the following new Phaser Patreons who joined us this week: Alexander Shendi and spipnl. Also thank you to Samuel Moise for his donation.
Patreon is a way for you to donate money towards the Phaser project, on a monthly basis. Donations start at $1 and receive discounts, forum badges, private technical support from me, and my eternal gratitude, in return :)
Development Progress
This week has been another intense one to say the least. The Phaser dev branch has been getting a real hammering, as I methodically work through the current set of tasks. It's probably not immediately obvious what is happening from the commits, so I'll try and summarise it here (see also the previous couple of newsletter issues for more details)
The overall aim is the complete removal of the Pixi namespace. Please don't think we're doing this out of vanity, as it's something Pixi themselves did for their own v3 release. The reasoning is two-fold: First we want to try and move away from using any globals at all, which will get us to the point where we can convert over to being a fully module based library with minimal impact. And when you've got literally hundreds of 'PIXI.This and PIXI.That' all throughout your code, that's a hard jump to make. So by carefully removing, replacing, and renaming, we're arriving at a much more consistent place.
The second reason is that I've been able to remove a huge amount of duplicate, or just redundant, code in the process. The inheritance chains have become a lot more simplified. There are no longer duplicate methods in classes causing confusion (i.e. Group doesn't have 'addChild' and 'add' any more). And I've been able to really tidy-up the Pixi classes as well. The coding style is has been bought in-line with our new ESLint configuration. The naming of methods and classes makes more sense, and things have been broken down into smaller, more logical, pieces. This will make our documentation better, and get rid of confusion about what the heck happens, and where. Plus it will make the core renderer a whole lot more hackable, which is something I've wanted for a while now, but had been locked out to all but the most ardent source explorer.
An axe through the renderers
One of my favourite new features though is that I've literally prized apart the Canvas and WebGL renderers. Game Objects no longer carry the baggage of both renderers inside them, so it's perfectly possible to build a 100% Canvas only version of Phaser, that doesn't include a single bit of WebGL anywhere. It's also possible to now remove say the Graphics entity, and it'll literally remove all associated rendering code as well. It's one of those 'quite dull on the surface' things, yet internally it makes life a whole lot better. And it puts us in a good position for the future too.
Stay on Target
I'll be honest with you; when I played Nearwood (see the Games this issue) I nearly cried, because of the fact that something so utterly beautiful had been created with Phaser. You see, whenever I dive into the Phaser source, which is pretty much every day, all I see are things that need improving. I have piles of notebooks filled with my thoughts about what Phaser could do, and I keep one next to my bed, and in my bag, at all times. My inbox constantly pings with new GitHub Issues opening, Disqus comments asking why X doesn't work, or Stackoverflow posts I've been tagged in. When faced with a small yet constant barrage, it's easy to be consumed by it, and to forget the bigger picture: which is that, in the right hands, people can, and are, making really incredible things with it. That has to give me hope that all these hours invested are worthwhile.
So please, stand by me as we go through this transition within the code. I'm genuinely excited about the shape that v3 is taking. I'll keep coding, and writing about it here, and as soon as we're ready I'd love for your input and help testing.
Geeky Links
Google have released a new family of fonts called Noto. What's special about them is that they cover virtually every language in the world. Quite some feat, and great if you're after a multi-language font for your next game!
jpeg.io will convert any major graphics format into a JPEG. "So what?" I hear you cry. Well it uses the advanced image processing services of kraken to do it, and the result is a shockingly small, yet imperceptibly identical end result.
What do you think you could achieve in just 1002 bytes of JavaScript code? How about a canvas with 2 octaves vectorfield using smoothstep, and web audio? Mathieu 'p01' Henri managed it, and it's pretty incredible.
Phaser Releases
The current version of Phaser is 2.6.2 released on August 26th 2016.
Phaser 3.0.0 is in development in the GitHub dev branch.
Please help support Phaser development
Have some news you'd like published? Email support@phaser.io or tweet us.
Missed an issue? Check out the Back Issues page.