Navigation

Phaser in 2024: Seeking Top WebGL Developers to Shape the Future of Game Development

Published on 18th December 2023

Welcome to a very special Phaser Dev Report. This is the last one of 2023 and probably one of the most exciting I've ever been able to write. If you follow Phaser on socials or Discord, you will likely have already heard the news about Phaser Studio Inc. If not, then please scan this press release for the details. I will spend the rest of this report discussing what this means for Phaser and what you can expect to see in 2024.

I'm very pleased to have partnered with Open Core Ventures to form Phaser Studio Inc. This new company is dedicated to developing Phaser and creating products and services around it. I will lead the company as CTO, and my initial focus will be hiring a team of engineers to work on Phaser full-time. Once the hiring process is complete, it will allow us to accelerate the development of Phaser 4 and the wider Phaser ecosystem.

Brave New World

A lot has changed on the web in the past couple of years. Most notable, from a game development perspective, is the wider availability of WebGPU and WebGL2. Previously, as WebGL2 wasn't available on iOS, it felt like a redundant step even to adopt it. But after years of sitting on the sidelines, Apple finally added support for it in iOS 15 at the end of 2021. Over the last year, this has had a chance to evolve through iOS 16 and 17, gaining adoption and finally making it a viable target for Phaser 4, where it never was before.

WebGPU is far more fractured. Support for it is still dire from a coverage perspective. However, it's working its way through the desktop browser space, with Chrome, Edge, and Opera all supporting it, and Firefox, albeit behind a flag that no one but devs will enable. The issue is that there is no support on Safari or any mobile browser. Mobile is more of a concern than Safari, but it's still a big concern. This is a great article on the history of WebGPU that is worth reading.

Of course, this divisiveness is nothing new to the web. We've been dealing with it since the first browser slithered out of the primordial binary ooze. And if history has taught us anything, it is that the web will eventually unify around WebGPU. It's just a matter of time. This makes it important to plan for when designing Phaser 4. We need to be able to support Canvas, WebGL2, and WebGPU, and we need to be able to do it in a way that doesn't require a complete re-write of the renderer each time.

Why support Canvas? Well, it's still the most widely supported renderer on the web. It's also a tiny and compact API that can be used in places where WebGL2 and WebGPU can't, and payload size is of utmost importance. Plus, for many games, it's simply enough. Advancements in mobile and desktop GPUs have, in many cases, made Canvas a viable option for games that would have previously been WebGL only. So, it's important to support it.

Insert Hot New Framework Here

Aside from graphics APIs, there are other areas of the web that have evolved in leaps and bounds in the past few years. The sheer variety of frameworks, both client and server side, is staggering, and these are changing rapidly. From Astro 4.0 to Svelte 5.0, there's a lot to keep up with. And that's before you even consider the new breed of serverless functions, like Cloudflare Workers, that are changing how we think about hosting and deployment. Right now, if you wanted to try out something like Svelte Runes for universal reactivity, it would be a lot of work to get it working with Phaser 3.

To me, support for these frameworks is of paramount importance. Phaser is web-first. It always has been, and it always will be. Yes, it's a game framework, but its primary target audience is web developers and digital agencies. And web developers are using these frameworks. So, it's important that Phaser 4 can support them. And not just support them but integrate with them. I want to be able to write a Phaser game that uses Svelte Runes for the UI and then deploy parts of it to Cloudflare Workers or another Edge-based network. I want to be able to use Phaser with Astro, Next.js, or any other framework that comes along. And I want to be able to do it with the minimum of fuss.

Does this mean we're going to be ignoring game developers? No, of course not. But it does mean that we will focus on the web first. And that means supporting the latest and greatest web technologies, web frameworks, and web deployment options. It means doing all of this in a way that is easy to use, understand, and integrate with.

TypeScript and Modular to the Core

Those of you who followed my Dev Logs as I worked through the R&D process for Phaser 4 already know there are some key changes with it. First, it's all written in TypeScript. This will not change. You can code your game in whatever you like, but we'll use TypeScript internally for Phaser 4 and all associated tools.

Second, it's massively modular. If you want to create a Sprite, you have to import it first. If you want to use a geometry function, such as an intersection test, you import that one specific function. Every last piece of Phaser 4 is an ES Module, and we will build it all in this way. This will allow us to release new features without changing the bundle size or core API and support tree-shaking and other features that modern bundlers provide.

Finally, my main priority is going to be file size. It's vital to me that we get the payload down to be as tiny as possible. Because I see the web moving into new and interesting places all the time, all of them championing the 'instant' nature of web gaming. And to be instant, you have to load immediately, which means being small. None of this is new information of course, as we've been planning this approach for several years, it's just that now we have the opportunity to make it a reality.

Wait ... is this just for Playable Ads?

A few of you were alarmed at reading in the press release about making Phaser 4 target 'playable ads' first. I can understand that, but realizing how this will manifest is important. If you do not wish to create playable ads with Phaser 4, that is absolutely fine! You don't have to. We are prioritizing all of the features above specifically because we think it will make for a tighter, more efficient, more flexible framework. And that will benefit everyone, not just those making playable ads, where 'instant on' and payload sizes are real daily concerns.

This is why I'm so excited about Phaser Studio Inc. It's going to allow me to focus on these things. I want to build a team of engineers who can help me make Phaser 4 the best it can be while also building the products and services that will make it a viable business. The Phaser ecosystem has to thrive as a whole, which means the framework and the community around it. Giving you the tools to make your games, learn how to make them better, and share and sell them. There are so many things I want to do with the Phaser website that I'm now in a position to do, and honestly, I cannot wait!

Farewell Patreon

I'd also like to mention the Phaser Patreon and all of the wonderful backers who have supported me over the years. Because of the investment from OCV, it felt disingenuous to keep the Patreon running. So, I have disabled the billing in Patreon, meaning that no one will be charged again. I am not going to close Patreon down right now because until the first iteration of the new website goes live, this is still my primary means of communicating with you all.

Plus, I need to archive a lot of legacy content here. But once that is complete, I'll shut it off for good. I have taken a CSV dump of all members at this point in time, and you will all be rewarded on the new website with a special status.

This change also means I will no longer accept technical support bookings in 2024.

I really appreciate the support you have shown me over the years, and I hope you'll continue to support the team and me as we move into 2024 and beyond.

Would you like to work for Phaser Studio?

I've mentioned expanding the Phaser team several times now. I'm looking for a mix of engineers to round out the team. Right now, if you feel like you fulfill either of the two following roles, then please get in touch:

Senior WebGL Developer - You will be highly experienced with WebGL and help craft the internals and renderer for Phaser 4, eventually moving on to the WebGPU renderer. Demonstrable WebGL / GLSL experience is essential, and TypeScript experience is desirable.

Laravel Developer - I need someone to help build the new Phaser website. You will work on the site's front and back end, helping build out all of the services and features the site needs to thrive. Strong Laravel and HTML / CSS experience and working with our design team are necessary.

Full job postings will be placed in due course, but if you'd like to jump the queue and either of the roles sounds appealing to you, then please email your CV/resume to rich@phaser.io and tell me a little about yourself, what gets you fired up and how you'd like to help shape Phaser in 2024.

Both positions are fully remote and full-time employed or contract, based on your country of residence.

I'm going to be taking a week off over the holidays - although, honestly, my brain will still be bursting with all things Phaser! I'll be back in January with regular updates and sharing a technical roadmap with you all. In the meantime, you're free to reach out to me on Discord or email me. I'm always happy to chat about Phaser and gaming on the web in general.

Have a great Holidays and New Year, everyone!