Newsletter
Published on 29th March 2024
Welcome to issue 173 of Phaser World.
Want your game or article featured here? We'd love to share it! Just reply to this email and tell us all about it. Until the next issue, keep on coding!
Game of the Week
If there's something strange in your neighbourhood, build a tower and zap it good!
Immerse yourself in the excitement of the classic Keno gameplay, complete with a sleek and user-friendly interface.
Swipe right if you think the statement is true.
Create Discord Games with Phaser
A new tutorial and project template for creating games on Discord with Phaser.
Enter a Phaser game in Gamedev.js Jam 2024 for a share of $1000 worth of prize money.
Official Phaser 3 and Next.js Template
Create a game combining Phaser 3 and Next.js in this Project Template.
Implement Planck.js physics in Phaser 3, now with TypeScript.
Dojo Announcing the Engine Tracks for Game Jam #4
Our next set of tracks invite hackers to build a game or mod using a Dojo SDK, including Phaser.
Final Fantasy VIII & TypeScript
Demoing an HTML5 remake of Final Fantasy 8's Triple Triad.
Build a HTML5 game like “Magick” iPad game using Phaser and ARCADE physics – adding multiple levels
I created four levels with Tiled, in four different layers.
NSHex Counter goes Open Source
Our web app for counting tiles when playing Neuroshima Hex board game that was originally released in 2019, NSHex Counter, is now open sourced on GitHub.
Here is what the team has been up to this week:
Arian: Greetings! This week we got our hands on the source code of the online editor. We developed a new plugin to access local files. This way you can use the editor from our Phaser.io website while editing projects that you have on your system. This will allow you to use other local tools such as web bundlers and Git. This is possible thanks to Google Chrome's File System Access API.
We are also working on some editor issues that you have reported in the editor repository. In addition to GitHub, you can contact us through the #phaser-editor channel on the Phaser Discord. Happy weekend!
Robert: ¡Felices Pascuas!
Time has been flying and its almost April, with so many amazing things on the Phaser roadmap! The current ES6 process has been particularly tedious, verifying comments and functionality while trying to strip out as little as possible. This pruning is aimed at enhancing the code’s efficiency and maintainability without compromising functionality. To make things work exporting was not named, functioning like how it did, and I am looking at how many internal functions could be exposed. None the less the holiday ahead is a welcomed break, enjoy!
Francisco: Happy Easter.
This week we have released a template with Next.js, which is a long-awaited template that will bring joy to those using Next.js with Phaser.
We have also continued working on the Phaser Template Installer, which is a command-line-based tool that allows the installation of the multiple templates we have been developing. I'm happy to announce that we now have the first version of this tool ready for release soon, and I'm attaching a screenshot:
Can: Happy Easter, everyone!
This week was all about working on Discord template and the tutorial. We are really proud to have this kickstarter project for those attending to Discord App Pitches and after!
Hope you all find it useful. If you have any feedback, requests, questions that we can do better, shoot it away!
Can't wait too see what you all are coming up with!
Rich: Hey everyone. As you can imagine, since we formed Phaser Studio, my weeks are much less about coding and more about planning and meetings. This week, I've been interviewing for a CEO for Phaser Studio, which is pretty exciting - and honestly, is as much about him interviewing me as me interviewing him! Someone asked me the other day why I'm not the CEO. The reason is that's a very specific role. Part of it is product development - which I will always be deeply involved in. But the other side is helping manage the team, finding opportunities, talking to customers, investors and partners, and generally looking after things on a day-to-day basis. You know, the kind of stuff a proper grown-up company should be doing. And that's not what I enjoy. I'm a coder at heart, and I love nothing more than sitting down and writing code or helping others. So, CTO is the perfect role for me. I get to do what I love, and someone else gets to do what they love. And who knows, maybe I'll get more time to code again? :)
We're currently hiring a front-end developer. This is a short-term contract ideally suited to a freelancer. The role will help us clear some of our backlog and get new parts of our site over the finish line. If you're interested in the role, please get in touch. For the right person, it could lead to a longer-term position, too.
We've released some great things this week! The Phaser + Next.js Project Template, the Phaser Discord Game Template, and we've also finished a brilliant new 'create game' CLI tool, which will be out early next week. This is a really exciting tool that will help you scaffold out new Phaser projects in seconds.
I think the ability to run Phaser games on Discord could be huge. It's such a popular platform, and the ability to embed games directly into it is a game-changer, opening up a whole new platform for developers. It's still very much tied into their Voice Channel-based activities, but I hope it expands to the main chat channels soon. It would be really handy for us to add a bot to our Phaser Discord that can launch a code editor, pre-populated with code, right there in the Discord app when someone needs help with code - even better if you could both pair-program on it in real-time! That would be amazing, and genuinely useful, but it needs to happen without being tied to Voice activities to properly fit into the flow.
I've also managed to get some coding in this week :) I can't quite say what it's for just yet, but suffice it to say it's an exciting new area for Phaser. When we're ready, I'll open it up for a limited beta test and announce it here. It's going to be a lot of fun.
I hope you all have a great weekend and a great Easter if you celebrate it. Things will be a little quieter next week as it's a short week for us, but I'll still be around. Take care, and happy coding!
Ben: Tales from the Pixel Mines - 2024.03.28
Last week, you got an unfiltered stream of consciousness. This week we've dialled it back a bit, but I'm still hard at work on the new rendering system.
I started by developing a new data class, which puts all the constant information about shader attributes and uniforms in one place. This allows us to compute every value for a shader's inputs, and set uniforms and attributes quickly and accurately. A sample entry might be:
So when we get an attribute or uniform that says it's an INT_VEC2, we know how many terms are in it, how many bytes each term uses, how to set it as a uniform, what type an attribute binding should be, etc. This greatly simplifies and centralises the logic around setting uniforms and attributes. (Or not setting them; this work is all about figuring out how to avoid unnecessary steps.)
After that, I've knuckled down and designed a new way of processing rendering. It sounds like a huge overhaul, but in reality it's just standardising what we're already doing. A core principle here is: Make it impossible to represent invalid state in the system. So I've been designing functions for rendering, with parameters that coincidentally require us to define everything in such a way that we can't mess up the WebGL state.
The core of this is three abstractions, which make it easy to think about the rendering process:
▪ Render Steps, which assemble all the data necessary to draw, including running other render steps.
▪ Contexts, which are like a whole easel ready to paint on. Not just a framebuffer, but viewport, stencil, etc.
▪ Draw, a renderer function which takes a context, shader program, and data, and does all the WebGL work at once. No chance to mess up external state!
And when that's implemented, we'll be able to add mask FX, as we've intended all along.
Phaser Releases
Phaser 3.80.1 released 27th February 2024.
Phaser Editor 2D 3.67 released 22nd February 2024.
Phaser CE 2.20.0 released 13th December 2022.
Have some news you'd like published? Email support@phaser.io or tweet us.
Missed an issue? Check out the Back Issues page.
©2024 Phaser Studio Inc | 548 Market St PMB 90114, San Francisco CA 94104