Jump to content

The Phaser 3 Wishlist Thread :)


rich
 Share

Recommended Posts

Not sure if discussed previously - if so, sorry.

Will you support the use case of running lazer server side?

The modular design philosophy describe in recent blog post and the choice to use ES6 (modules) goes a long way toward this. Just wanted to know if this is a use case you are developing for.

(I am aware that rendering, sound etc is not available server side. I'm referring to platform agnostic features like signals, AI, physics, possible network abstractions etc).

Thanks.

Link to comment
Share on other sites

Talking about use lazer on the server. It will be great even if we can set a constant, but not real, FPS.

I explain. I like to make video animations with Phaser. To do this I record the screen but the perfect solution is to render the video directly, exporting the frames at a fixed rate. To do this all physics, tweens, timings, etc.. should be independent of the requestAnimationFrame (I guess), or replace that function and related for something non real-time.

Link to comment
Share on other sites

Yeah. Deterministic, FPS independent, physics simulations would be really nice. Not only for the above mentioned use case, but for playbacks in general, networking etc.

There is a npm pacakge, mainloop.js, that decouples logic from rendering based on the famous GafferOnGames "fix your timestep" series, which could be used as a starting point.

Link to comment
Share on other sites

In Phaser we got various methods to make tiles collidable (like "setCollision") that are all based on the index (gid) of the tiles. It would be great if Lazer supported that this is configured from Tiled instead by setting tile properties.

Example:

detectCollisions(collidesByDefault=false) - A method that loops through the tileset properties, checks for "collides", "collidesUp", "collidesRight" [...] and update the collision properties for all tiles. "Collides" would set collision to true in all directions. It wouldn't be necessary to have a value, just the presence of the property key would indicate it should be set to true. If collidesByDefault is set to true, all tiles will be set to collide by default, and the tile properties will instead indicate "false". An alternative could be detectCollisions("propertyName") that will set collision to true for all tiles that have this property value (alternative: combination with a value).

Using the gid in the code is confusing and if the tilesheet changes, you need to identify the tiles by hand again.

Actually, I think this could be added to Phaser before it goes LTS.

(I don't know it it's been suggested but I hope for being able to move, scale and rotate the tilemaps without breaking collision etcetera, not only on initialization but during game play.)

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 weeks later...
  • 2 weeks later...

I'm newbie, I come from Flash (AS2). With AS3 Flash was dead for me and I hired my work with Flash. Until then, I was a fan. I knew with AS3 (and Adobe) will not go well. The end was in sight. I say this not because I'm so smart, as an expert, but that was instinctive.

I am currently satisfied with Phaser. SVG support would be desirable.

 

Otherwise, I have no concrete desires. But a general wish I had: Phaser should it not go as Flash. That everyone avoids because sometime a certain complexity brings thousand vulnerabilities.

Dumb and happy............., that I can tinker little funny games.

Yours faithfully

Pinkman

Link to comment
Share on other sites

  • 2 weeks later...

I'd like to see more performance optimizations out of the box. I forked the project for my own need but I had to fix so many issues to make my game somewhat playable on mobile.

I would also like to be able to compute physics on the server side without having to extract everything from the code. Maybe phaser should be more modulable.

Link to comment
Share on other sites

18 minutes ago, Kevanov said:

I'd like to see more performance optimizations out of the box. I forked the project for my own need but I had to fix so many issues to make my game somewhat playable on mobile.

I would also like to be able to compute physics on the server side without having to extract everything from the code. Maybe phaser should be more modulable.

Being modular is the core design decision behind Lazer, so that's a given.

Even so, I'm curious exactly what "fix so many issues" actually equates to. I'd suspect it's a little exaggeration mixed with "fixed for my needs" (unless tilemaps were involved), even so it's open source for a reason, so if they were genuine issues it would be worth sharing the fixes, no?

Link to comment
Share on other sites

21 hours ago, rich said:

Being modular is the core design decision behind Lazer, so that's a given.

Even so, I'm curious exactly what "fix so many issues" actually equates to. I'd suspect it's a little exaggeration mixed with "fixed for my needs" (unless tilemaps were involved), even so it's open source for a reason, so if they were genuine issues it would be worth sharing the fixes, no?

Sorry for my bad english, yeah most of the issues are related to tilemaps and camera performances. There is a plugin to increase performance for large tilemaps, it currently only work with "p2", Im currently adding support for arcade. The Phaser source code is really well documented and self-explanatory, If Lazer keep the same standard, I will definitely contribute in the future !

Link to comment
Share on other sites

To load the Lazer modules by demand.

I mean, in the same way we can load scripts (game.load.script) we should load the lazer modules.

For example, for a loading screen with a sprite we don't need the physics, input, audio and other modules, so in this screen we show the loading progress bar and add the rest of the lazer modules to the loading queue.

This can apply for other parts of the game too. Maybe the menu screen does not need physics so this module can be loaded in parallel.

Probably to do this the only thing we need is to be able to easy split the lazer runtime in bundles (js files) containing the modules. This requires a formalization of the modules dependencies etc.

Link to comment
Share on other sites

  • 1 month later...

Many Phaser users like Phaser because of its simplicity, I can throw up a concept of a game within days. It pretty much allows anyone to create games. I think this should stay relatively the same in Lazer, I still want to be able to stay high level while also having a powerful framework. All I'm saying is that I don't want Lazer to be at totally another level as Phaser, they both should be as easy to learn. That's just my 2 cents anyway :)

Link to comment
Share on other sites

  • 2 weeks later...

Hi, I wish for Lazer's input events to propagate down the display list. i.e. One click event could potentially fire on multiple sprites that are listening for it. This kind of functionality has become increasingly useful on mobile where pressing down could potentially be the first action of a vertical swipe, horizontal swipe or a click. Take the iphone icon screen for example, there are 5+ actions available on that screen depending on what happens after you click down. Of course there would also be an option to stop propagation if needs be.

Cheers!

Link to comment
Share on other sites

  • 1 month later...
  • 2 months later...

Biggest problem i have with phaser move around scalling it seams like it design flaw for example why world coordinates of sprite change when i scale camera and then arcade physique stops working debug layer shows everything all right but sprites start fall thru tiles.

Link to comment
Share on other sites

  • 3 weeks later...

Hello, 

Based on a recent (but quite surprising) miss discovery in PIXI.js, I would like to emphasize 2 important features:

  • First, something like this:
transform.setMatrix(a,b,c,d,tx,ty)

Which allow precise transform, and should be faster than setting position, scale, rotation, skew since those values end up computed into a matrix. 

  • And the idea that skew property should be unaffected by a non-homogeneous scale. In PIXI.js setting both skew and scale lead to a wrong behavioir (more detailed information can be found here: https://github.com/pixijs/pixi.js/issues/3163 ). Apparently it's a classical mistake (they also did it in Cocos2d-js). Having a "correct" skew+scale order of matrix operation should normally make it easier for third part tools (like Flump, flash, ..) to export skew data to Lazer, and for developpers who want to performs a deformation in a precise and controlled way (ex: fit to a triangle) if the above transform.setMatrix(..) is not available.

As a side "feature request", another great feature would be a Flump parser (or a Animate CC exporter?). Most animation software (like Spine or Creature) have a strong bias towards bone-constructed characters including awesome mesh deformation. Ok, that's quite impressive but was about the runtime performances on mobile if you need to display many characters?

Spriter2d and Flash are more "modest" but have a broader and more "lateral thinking" approach in my opinion (bones are possibles but not mandadory, your timeline can add / remove objects)... and would probably lead to very efficicient runtime wich seems appropriate for a game engine focusing on web mobile.

BTW, look forward Lazer :)

Link to comment
Share on other sites

is it possible for you guys to add a feature which would enable us to reverse an animation back to specific frame?

Let's say I have a spritesheet of  15 frames, 7 frames for turning left, 1 default frame and remaining 7 frames for turning right.

turn_left = [8,9,10,11,12,13,14]

turn_right = [7,6,5,4,3,2,1]

idle_frame /default_frame = 8

Now when I pres left arrow key, the "turn_left" sequence starts playing and when I release the key I would like the animation to reverse back to the idle_frame.

I know, there is a possibility to jump to the idle_frame using the stop(frame) method. But the visual effect is not satisfactory ( at least for me) :) 

Link to comment
Share on other sites

  • rich unpinned this topic
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...