Phaser World Issue 171
Here is what the team has been up to this week:
Arian: Hello! This week... it flew by! I managed to finish our tests to compile, on a large scale, games made in Phaser into a native Windows executable. Additionally, we were working on updating Phaser Explorer (former uPhaserHelpCenter). Working on Phaser Explorer was a great pleasure, especially since you can now access it from the Phaser website.
We also added a welcome page to Explorer, which makes me want to see it all the time. Next week will be even more exciting, as we have already started working on what will be an online editor for Phaser. A super editor on Phaser's own site. And speaking of editors, have you visited our #phaser-editor channel on the Phaser Discord server yet? Stop by and say hello!
Robert: This week has been a blur of code, reviews and tests. Like the rest of the team, I agree this week flew by too quickly!
My main goal this week was to finish up the codemods, which admittedly has taken longer than expected but comes with insight into what to do next. This granular examination has not only allowed me to refine the approach but to identify the more unique intricacies of Phaser. Understanding the rationale behind certain decisions and spotting previously overlooked opportunities for optimization were significant outcomes of this process.
The restructuring efforts have substantially reduced the amount of guesswork moving forward. The path ahead is clearer then ever, the new Phaser Studio logos are awesome and the tooling is improving! ¡Viva Phaser!
Francisco: Greetings from Spain (and also Nicaragua from my heart).
This week has been a week of research to achieve the creation of a template installer through the terminal and npm. One of the challenges I faced was the ability to download templates from GitHub, which was easily resolved by using the URLs provided by GitHub for this purpose. However, there was another related problem: the templates are downloaded in .zip format.
After doing some research, I found a rather interesting package that allowed me to unzip the downloaded files. The rest of the tests involved creating local folders with fse, deleting them, placing the unzipped files, cleaning the templates, and creating a data structure that would help me to add more templates in the future. Here's an unfinished sample of the new phaser creator CLI tool as an animated gif:
Ben: Tales from the Pixel Mines - 2024.03.16
It was a dark and stormy night as I concluded my latest experiment. At last, my creation was complete. It was alive!
This creation is a WebGL state management system. In a game engine like Phaser, we could do just about any graphics operation at any time. And WebGL has dozens of parameters to keep track of. Beyond a certain point, it's very easy for operations to accidentally step on each others' toes.
That is a particular problem for the FX system, in which I'm adding new mask FX. So I'm creating a state management system which can tell us exactly what the WebGL parameter state is doing - and tell it exactly what we need at any moment.
Tonight, I moved blend mode management into the new system. I was just checking to make sure it worked properly. But I was elated to discover that it automatically started optimising WebGL commands! By managing state explicitly, it could tell which commands had already been given, and skip calling them again. A test scene went from 22 commands per frame to 16, just by knowing what it could safely skip.
The counterpart to this is the ability to give more verbose commands, and only pay for those commands which are actually necessary. That's going to be very useful for complicated situations where we want to be very precise.
I hope for this new system to greatly improve the efficiency, stability, and extensibility of Phaser's rendering system in the near future.
Rich: After writing loads last week, I'm going to keep my section brief! First of all, I'd like to show you all our lovely new Phaser Studio logo:
Myself and the team are super-happy with this! Those of you who know our mascot character will recognise the 'onion head' shape immediately. It's playful and stylish at the same time. It also looks like it's crying out to be on the label of a Phaser plushie or vinyl toy :) My thanks to the crazy talents of Ilija Melentijevic for this logo.
This week we've released our official Phaser + SolidJS Project Template, which does all the usual template goodness for SolidJS peeps. We've just got our Angular Template left to release, and then we're all templated out for the time being. The next product will be the 'create phaser' CLI-based tool that Francisco talked about above. Plus, of course, we're striding towards getting Phaser Editor available via the main website. And v3.90. And Phaser ES6. And our new Ads Plugin. And plenty more. I can't quite believe it's March already - I guess the saying is true: time flies when you're having fun!
Here is what the team has been up to this week:
Arian: Hello! This week... it flew by! I managed to finish our tests to compile, on a large scale, games made in Phaser into a native Windows executable. Additionally, we were working on updating Phaser Explorer (former uPhaserHelpCenter). Working on Phaser Explorer was a great pleasure, especially since you can now access it from the Phaser website.
We also added a welcome page to Explorer, which makes me want to see it all the time. Next week will be even more exciting, as we have already started working on what will be an online editor for Phaser. A super editor on Phaser's own site. And speaking of editors, have you visited our #phaser-editor channel on the Phaser Discord server yet? Stop by and say hello!
Robert: This week has been a blur of code, reviews and tests. Like the rest of the team, I agree this week flew by too quickly!
My main goal this week was to finish up the codemods, which admittedly has taken longer than expected but comes with insight into what to do next. This granular examination has not only allowed me to refine the approach but to identify the more unique intricacies of Phaser. Understanding the rationale behind certain decisions and spotting previously overlooked opportunities for optimization were significant outcomes of this process.
The restructuring efforts have substantially reduced the amount of guesswork moving forward. The path ahead is clearer then ever, the new Phaser Studio logos are awesome and the tooling is improving! ¡Viva Phaser!
Francisco: Greetings from Spain (and also Nicaragua from my heart).
This week has been a week of research to achieve the creation of a template installer through the terminal and npm. One of the challenges I faced was the ability to download templates from GitHub, which was easily resolved by using the URLs provided by GitHub for this purpose. However, there was another related problem: the templates are downloaded in .zip format.
After doing some research, I found a rather interesting package that allowed me to unzip the downloaded files. The rest of the tests involved creating local folders with fse, deleting them, placing the unzipped files, cleaning the templates, and creating a data structure that would help me to add more templates in the future. Here's an unfinished sample of the new phaser creator CLI tool as an animated gif:
Ben: Tales from the Pixel Mines - 2024.03.16
It was a dark and stormy night as I concluded my latest experiment. At last, my creation was complete. It was alive!
This creation is a WebGL state management system. In a game engine like Phaser, we could do just about any graphics operation at any time. And WebGL has dozens of parameters to keep track of. Beyond a certain point, it's very easy for operations to accidentally step on each others' toes.
That is a particular problem for the FX system, in which I'm adding new mask FX. So I'm creating a state management system which can tell us exactly what the WebGL parameter state is doing - and tell it exactly what we need at any moment.
Tonight, I moved blend mode management into the new system. I was just checking to make sure it worked properly. But I was elated to discover that it automatically started optimising WebGL commands! By managing state explicitly, it could tell which commands had already been given, and skip calling them again. A test scene went from 22 commands per frame to 16, just by knowing what it could safely skip.
The counterpart to this is the ability to give more verbose commands, and only pay for those commands which are actually necessary. That's going to be very useful for complicated situations where we want to be very precise.
I hope for this new system to greatly improve the efficiency, stability, and extensibility of Phaser's rendering system in the near future.
Rich: After writing loads last week, I'm going to keep my section brief! First of all, I'd like to show you all our lovely new Phaser Studio logo:
Myself and the team are super-happy with this! Those of you who know our mascot character will recognise the 'onion head' shape immediately. It's playful and stylish at the same time. It also looks like it's crying out to be on the label of a Phaser plushie or vinyl toy :) My thanks to the crazy talents of Ilija Melentijevic for this logo.
This week we've released our official Phaser + SolidJS Project Template, which does all the usual template goodness for SolidJS peeps. We've just got our Angular Template left to release, and then we're all templated out for the time being. The next product will be the 'create phaser' CLI-based tool that Francisco talked about above. Plus, of course, we're striding towards getting Phaser Editor available via the main website. And v3.90. And Phaser ES6. And our new Ads Plugin. And plenty more. I can't quite believe it's March already - I guess the saying is true: time flies when you're having fun!