Jump to content

The Phaser 3 Wishlist Thread :)


rich
 Share

Recommended Posts

  • Documentation layout change

For me the documentation is hard to read. Take for example the documentation on Phaser.Game.

 

The table listing the constructor parameters is very easy to read with the alternating background. However for the members and methods below there is no alternating background. Making it hard to scan through the page.

 

Another problem for me is the navigate list on the right. When the list is scrolled all the way down the last few elements cannot be seen. 

Link to comment
Share on other sites

I started a thread some days ago but without an answer, so probably it's not implemented now, but would be a nice feature:

 

Support for multiple tilesets per tilelayer and a possibility to easy select in code which tileset is currently in use.

Link to comment
Share on other sites

Collecting together the feature requests from Github here, so everything is in one place:

 

Static Signals https://github.com/photonstorm/phaser/issues/645

Generic Pool Class https://github.com/photonstorm/phaser/issues/747

Allow animation frames to be specified as flips https://github.com/photonstorm/phaser/issues/762

Animation Frame pooling https://github.com/photonstorm/phaser/issues/823

Default anchor points https://github.com/photonstorm/phaser/issues/914

Create sprite by cropping from a big sprite sheet https://github.com/photonstorm/phaser/issues/1140

Support for rotated tilemaps https://github.com/photonstorm/phaser/issues/1149

addTileSetImage should support BitmapDatas https://github.com/photonstorm/phaser/issues/1200

Removed from World signal https://github.com/photonstorm/phaser/issues/1227

Gyro support https://github.com/photonstorm/phaser/issues/1229

Animation loop quantity https://github.com/photonstorm/phaser/issues/1329

Collection of Images Tiled feature support https://github.com/photonstorm/phaser/issues/1339

p2 reset feature https://github.com/photonstorm/phaser/issues/1362

Module support https://github.com/photonstorm/phaser/issues/1475

Minimal Phaser.Device https://github.com/photonstorm/phaser/issues/1186

Anchor on BitmapText https://github.com/photonstorm/phaser/issues/1499

Unit Tests https://github.com/photonstorm/phaser/issues/1434

Input update regardless of move event https://github.com/photonstorm/phaser/issues/1508

Link to comment
Share on other sites

Better separation of concerns. As an example, Sprite is a drawing object; it should not have properties called "health", "lifespan", "damage()",  or "kill()".

 

This one is big enough that I'm actually using a modified version of Phaser that has this stuff ripped out.

Link to comment
Share on other sites

  • 2 weeks later...

Hi,

 

I read a few pages but not all of them so I don't know if someone already asked about that. It would be great if Phaser 3 could bring some built-in UI components like scrollable panel, list, check boxes etc. I know it's possible to do that outside the canvas in HTLM/JS/CSS but interaction between the canvas and HTML UI are not always easy and/or smooth, like drag & drop from HTML to Phaser. As an action 3 developper too I really like Feather UI as UI framework, it brings a lot of components but also a lot of powerful features in order to deal with dynamic layouts and contents.

 

-seb

Link to comment
Share on other sites

Small change to states. I'd like a more robust state manager.

 

First:

game.state.start(string stateName, bool killCurrent = true);

(plus all the usual params we have now). This starts a new game state. If killCurrent is true, then it acts like it does now. HOWEVER, if killCurrent is false then the current state is saved on the stack. Why? Because of...

game.state.kill();

This kills the current state, returning us back to whatever state is on the top of the stack. If there is no stack, then this call is either ignored or is illegal.

 

All good game engines have a state stack in their state manager. Phaser should too!

 

How is this useful? Simple example:

game.state.start("PlayingTheGame", true, bunch of other params);// blah blah blah...// user hits "HELP" buttongame.state.start("ShowHelp", false);  // do not kill the game state// user closes help at some pointgame.state.kill();// we're back in the game, right where we left off!
Link to comment
Share on other sites

I don't think that promises are intended for events, I think they should be used for callbacks only(Mainly because promises make error handling in callbacks easier). I think that we should use something like .on("addedToGroup", function, scope)because this is the more widely used of handling events in JavaScript.

 

Only ES6 things with a polyfill (or supported by Chrome, Firefox and/or 80% of users' browers) should be used. Otherwise we should continue to use standard JavaScript.

Link to comment
Share on other sites

 

Small change to states. I'd like a more robust state manager.

 

 

I tend to think in "gamestates" (Walking around on the Map? Inventory? GameOver? Combat-Mini-Game? Pause? GameStates! All of them :) ), so I would love this.

 

Could be a bit more "Stack"-like (push and pop instead of start and kill), but I guess that's semantics. Would also be nice to give input variables (IIRC that's already possible) and to give back results, say:

game.state.start("PlayingTheGame", true, bunch of other params);...game.state.push("lockPickerMiniGame", ... , kindOfLock);...game.state.pop(PickLockResult);
Link to comment
Share on other sites

Just so we're clear, it won't be stack-like. You can treat it like a stack if you wish, but it'll allow for proper state concurrency (a stack implies only one active state at any one point with easy traversal of the stack, but I need something more flexible)

Link to comment
Share on other sites

My game engine in Flash had the ability to execute essentially every state on the stack during an update, I just found that I never used that ability. Still cool to have it though!

 

I guess we'd need it, say if I had a pop-up window showing but still wanted the game to update behind it.

Link to comment
Share on other sites

Also can we avoid having getter/setter functions and use define property to define better properties. Alternatively every setter will start with set .

e.g.:

//Current  //Get  console.log(sprite.health);  //Set  sprite.damage(5);//Proposed  //Definition  Object.defineProperty(sprite, 'key', {    enumerable: true,    configurable: true,    writable: true,    get: function () {      return sprite._health;    }    set: function (value) {      if (value === 0) sprite.kill()      sprite._health    }  });  //Get  console.log(sprite.health);  //Set  sprite.health -= 5;//Alternative proposal  //Get  console.log(sprite.health);   //Set  sprite.setHealth(sprite.health - 5);  //Alternative (I don't like it because it has no auto complete)  sprite.set("health", sprite.health - 5);  
Link to comment
Share on other sites

  • 1 month later...

Full support for pixel perfect scaling without anti-aliasing so that my games can have a retro look to them and scale up based on different resolutions (especially as mobile devices get crazier resolutions with smaller pixels).

 

On August 1, 2014, the Photon Storm blog entry "Pixel Perfect scaling a Phaser game" gave ways to do this, but it mentioned some drawbacks toward the end. In the second drawback in this article, it was said "There are ways to get around the input issue, but Phaser won’t handle it natively (although it’s something we have added to the roadmap for a release later this year)." My biggest hope is that this is something that would be supported in Phaser 3 natively.

 

Thank you for your consideration! I apologize if this was already suggested.

Link to comment
Share on other sites

built-in 9-image support would be great. It would save lot of time. I created it yesterday for current Phaser version (2.3.0) and posted it here on forum as well as on my blog. It is like tilemap without tilemap data and with variable tile sizes. It is almost base for any menu system in game.

Link to comment
Share on other sites

EDIT -- Never mind. I had already used just what I needed before - the ArraySet!

 

Okay, just a minor thing that I understand I could make myself, but I would like to have part of the Phaser 'toolkit', if you will.

 

A second collection type of display objects with an API similar to groups. This collection type is not linked to the display list, but only for storing references of objects that one wants to collide with other things.

 

The reasoning for this - whenever I'm making a game with depth sorting, I still may want to collide the players against enemies, bullets, what have you. But all of the display objects have to be on the same layer for the depth sorting to work, and I need to manage the collision groups elsewhere. This could be useful for other games that need to do some advanced sorting.

 

Perhaps I haven't dug too deep into the docs and code - maybe the collection type exists already..

Link to comment
Share on other sites

  • 3 weeks later...

  1. My last post was talking about removing the legacy ones; sorry for not being clear.

Please, add the ability to set co-ords, without having to use sprite.reset.

For p2 physics: set collision handlers for only certain sprites, not having a single contact event for everything. For example we can set sprite.beginContact or sprite.beginContactWith .

Link to comment
Share on other sites

  • rich unpinned this topic
 Share

  • Recently Browsing   0 members

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