Newsletter
Published on 28th October 2016
Welcome to Issue 53 of Phaser World
This is the final issue of October, and although it's not quite yet Halloween, we've still got a suitably spooky headliner game for you :) and it's even better if you're a Doctor Who fan like me.
The pixel-art fu is also strong this week, as all the other games feature the art style heavily, including the cute Happy Maggie. In my Dev Log you'll see what I've been up to with Phaser 3. I'm also pleased to say that Ludei, the awesome creators of Cocoon.io, have donated the Phaser project a full-stack package, so I'm able to make sure that all the changes taking place in the renderer work properly when compiled to mobile. It's so great to be able to test this from the command-line too!
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 your webcam save you from the Weeping Angels? Whatever you do - don't blink.
Staff Pick
Help your canine friend out, by leaping over the junk food that litters the office.
Grab a shotgun and see how long you can survive the codeine trip for in this GBJam 5 entry.
A pixel-art endless runner. Jump to collect the gems and avoid the bats and spikes.
A fast-paced open source invaders clone created for a 48hr hackathon.
Phaser News & Tutorials
A great video showcasing some of the Phaser games made by Zenva students.
The first wave of playtest results are in, and make for interesting reading.
In the third part of this series you create a Trainer and different species of Pokemon.
The final SameGame Engine, to download, with 'no more moves' check added.
A variation of the Phaser tank example that can be played with phones as controllers.
The Dads in Dev hosts interview Michael Calkins about how he got into Phaser game development.
Patreon Updates
Thank you so much to the following new Phaser Patreons who joined us this week: Andi, Jesús Roldán and James Tease. Also thank you to Andrzej Mazur for the generous donations.
Patreon is a way to donate money towards the Phaser project on a monthly basis (you can also make one-off donations). Donations start at $1 and receive discounts, forum badges, private technical support from me, and my eternal gratitude, in return :)
Development Progress
This week I did something I don't often do: I gave a talk about Phaser. It took place at BristolJS, which is a local JavaScript meet-up. The event organiser approached me towards the start of the year, and it took until October before things fell into place.
Public speaking doesn't come naturally to me. Even though I know the subject matter inside-out, it doesn't mean I can always articulate my thoughts about it in the best way possible. But I planned, prepared slides, and gave it my best shot. And although I don't plan on increasing the amount of talks I do, it was really good fun at the same time. My talk was recorded, and if a video becomes available I'll let you all know.
Back in the land of code this week has seen me mostly focusing on the new WebGL Batch Manager and WebGL Renderer. I've refined, and fine-tuned the Batch Manager code countless times this week. Redundant properties are gone, un-necessary bindings removed, and I've streamlined it as best I can. Blend Mode support, multiple texture support, and custom shader support have all been added back in too. Yet one of the most important things, is that this no longer happens:
If you get your magnifying glass on the screen shot above, you'll see that the WebGLSpriteBatch render method has been deopt'd by Chrome. Given that this method is the beating heart of the batch process, to be deopted is quite possibly the single worst thing that can happen to it. The screen grab is from Phaser 2.6.2 running a pretty simple example test. And it's something I've been working solidly to ensure doesn't happen in v3. My latest profiles show an exact same example under v3 uses 3MB less memory, with far smaller GC drops, significantly less webgl operations, and less draw calls. And every time I make a new change, I re-test to make sure none of this has altered.
As well as the Batch Manager I've also been working on several new Game Objects. One of these is a PixelField, which allows you to blast thousands of pixels around the screen at insane speeds. Each pixel is literally just a coordinate and a color value, stored in an internal list, rather than being an object in its own right. So you can zip through the list really quickly and shove the data into the batch. It uses a custom (and tiny) shader for drawing.
I've also started planning out an FX Pipeline. I really want for you to be able to attach special effects to Game Objects, and have them impact the way they are rendered. For example a ghost trail that lags behind the movement of a Sprite, or a color inversion, flash or greyscale, that doesn't require the renderer to swap to a new shader (which takes time, and can be expensive when done a lot). I still need to finalise the approach I want to take, but as always, keep an eye on the GitHub repo to see what's going on.
Thanks to good levels of Phaser shop sales, and ever increasing Patreon backers, I'm able to spend a large percentage of my time on Phaser 3 development right now, and it's really starting to show. I don't think I've ever been more excited about a version, ever :) It finally feels like I'm not having to make any compromises. And that's a powerful feeling to have.
Geeky Links
I've been a fan of the demoscene since my early teens, and one category that has always amazed me are the demos produced in ridiculously tiny file sizes. Rhodium by Virgill / Alcatraz is one such stunning example. The whole demo is a microscopic 4KB in size, and it's worth watching for the awesome lava shader effect alone, which has since been released on ShaderToy.
Game Icons contains nearly 2500 free vector icons and a really quite nice web based editor. You can scale them, flip them, rotate them, apply gradient fills, add text, and then export them as app ready icons in a variety of formats.
Finally this week is a brand new book: Video Games You Will Never Play. Created by the super-talented Unseen64 crew, it features nearly 200 games that never made the light of day, for one reason or another: " For example, in this book you’ll find the full story about the mysterious game cancelled by Bungie because of Halo, concept art from the unseen version of Maximo for Nintendo 64, what happened to Jade Empire 2, the truth about Halo DS, the ambitious action RPG in development by Junction Point Studios before they were acquired by Disney to develop Epic Mickey, the story behind the unreleased Virtual Reality console by Hasbro and a few more surprises."
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.