st0n3vn

Members
  • Content count

    17
  • Joined

  • Last visited

About st0n3vn

  • Rank
    Member

Recent Profile Visitors

376 profile views
  1. Slow performance on iOS, Android runs great

    Yes, thanks for that, I followed your advice and quickly reworked the draw logic so that I don't call the loadTexture method at all. Although a minor improvement can be seen, sluggish performance on iOS continues (tested on iPad mini and iPhone 6s) and is still way slower compared to Android. I've been searching for rendering issues with iOS, but haven't found anything related. One other possible issue could be the large number of texts I am creating, drawing on bitmapdatas and after that destroying. I am currently exploring bitmaptexts, although I do need the fill for different colours, and will need to check bitmapfonts for that. I don't know how much of a performance gain that will bring though. Will do some profiling and will report if I find anyhing interesting. Any other ideas would be very appreciated!
  2. Slow performance on iOS, Android runs great

    Hello, no I am not using TileSprite. In fact, I am preloading very few assets into the game, almost everything is drawn within the game onto bitmapdatas and then displayed into sprites via sprite.loadTexture()
  3. Hello, I have encountered a problem with iOS, which I haven't been able to address so far and I was wondering, if someone maybe has an idea of what could be going on. I have a cordova-crosswalk Sudoku puzzle game which runs great on a large variety of Android devices, including Samsung Galaxy S2 and Note 1. Apart from bringing groups to top, there is nothing else in the update as the entire game logic revolves around input signals. To my knowledge, the game is decently optimized, given how well it performs on the aforementioned 6-year old devices. The problem comes with iOS. I have tested the iOS build on two different iPads running iOS 9 and an iPhone 6s. They all share sluggish performance. Load times are great, and so are tweened animations, thus FPS is fine. However, a fairly simple request by the user to redraw all cells on the board takes like half a second, effectively freezing the application for the duration of redrawing. The game's renderer is set to WebGL for iOS and Canvas for Android. I've also tried Canvas for iOS, but some textures are missing and the performance is equally sluggish. I have advancedTiming disabled. I've also tried disabling anti-aliasing and lowering the game's resolution, but to no real effect. A colleague of mine suggested the root of the problem could be the WebView used for the project, but I am using WKWebView, so that shouldn't be the issue. One thing I could think of is maybe the large amount of bitmapdatas being created and destroyed, as well as the many sprite.loadTexture calls. However, if that was the case, wouldn't that impact performance on Androdi as well, or am I missing something. Any help would be appreciated! Thanks in advance! Edit: I just tested the app in web. I opened it simultaneously in Safari and Chrome on the same Mac and I performed the same action in exact the same game conditions. Whereas on Chrome in WebGL the operation takes visibly no time to complete (about 50ms, which is almost unnoticeable by the user), on Safari, again in WebGL, it takes about 200-250ms, which is much more visible.
  4. Tweens running slow an a specific PC on Chrome?

    Update: A colleague of mine accidentally found while testing on a dual-monitor system that the issue was actually experienced only on a 144hz monitor. As he moved the browser to his second 60hz monitor, tweens were running ok. The PC I had the issue on was with AMD's FreeSync enabled and running at 120hz. Once I reduced those to 60hz, tweens were fine as well. I actually never gave it a thought that screen refresh rates can have an impact on tweens.
  5. Keyboard input + Microsoft Edge

    I've just discovered this issue as well. Still no workaround? Edit: I just found out that the onDown event works correctly on Edge and is a viable alternative. Previously I had a check in update where I listened for pressed input such as: // if (this.cursorKeys.left.isDown && this.inputReleased) { // do something} This was bugged for me on Edge as OP described. However, manually assigning an arrow key and triggering an onDown event works okay for me. For example: this.leftKey = this.game.input.keyboard.addKey(Phaser.Keyboard.LEFT); And then the binding: this.leftKey.onDown.add(() => { // do something });
  6. Actually, autoadjustment for daylight saving time will only trigger this once per year since the issue is with rolling back a clock, not forward. However, a player can manually change their PC clock for some reason. Also, I haven't tried yet waiting for an hour because a standard full session in these games will most likely continue not more than 30 minutes before starting over. I will try out what you suggested, thanks a lot!
  7. Hello, I just encountered the following issue. In two different games I am using two ways of updating the game time shown in the UI - a timer and a timed event. I've just discovered that changing the PC's clock by -1 hour (say it's 10:00 AM, I roll it back to 9:00 AM) causes the updating to stop. This issue is not present if I roll the clock forward (from 10:00 AM to 11:00 AM). I found a way around this by using setInterval and clearInterval, but I'd like to know if a Phaser internal fix or workaround exists, or maybe if I need to do something differently. Here is the case when using a timer: private startTimer(): void { this.gameTime = 0; this.timer = this.game.time.create(); this.timer.loop(Phaser.Timer.SECOND, () => { this.updateTime(); }, this); this.timer.start(); }; And here is the case when using a timed event in the second game: this.timeElapsed = 0; this.game.time.events.loop(Phaser.Timer.SECOND, () => { this.updateTimer(); }, this); Both calls are made in the play state's create function. This is on a Windows 10 PC.
  8. Tweens running slow an a specific PC on Chrome?

    Thanks for the reply. Well the thing is, this behavioral issue is the same across all 10 puzzle games, which use various tweens. I don't really know what block of code to post as a showcase since something as simple as tweening the y position of a sprite from its current position to 50 pixels below happens notably slower than intended (for example, I've set a duration of 200 ms and it visibly happens much slower, about two times slower). The PC in question has the latest drivers for its components and the latest Chrome and Firefox versions. I too guess it's something hardware related and don't think I'll spend more time into investigating further for such a rare occurrence. Just wanted to check if anyone has any knowledge on the matter and maybe for other people affected to know such an issue exists.
  9. Tweens running slow an a specific PC on Chrome?

    Thanks for the reply. This, however happens across multiple games and on a single specific PC. Furthermore, in most of the games the core logic is triggered by event listeners, nothing is in the update really.
  10. Tweens running slow an a specific PC on Chrome?

    Further testing revealed that the same issue is experienced on Firefox. I forgot to mention that the PC is running Windows 10, and if it's of any importance, it uses an i5 4570 CPU with an R9 290 gpu.
  11. Hello, I've recently encountered a very strange behavior on a specific PC. I've been testing about 10 Phaser puzzle games, which use various tweens for visualization. I've played the games on quite a few desktop PCs, including a Mac, and more than 10 different mobile devices, Android and iOS. On only 1 of the PCs all games exhibit an aberrant behavior where tweens seem to be running slower than their duration states. I couldn't find anything in the Internet about what could cause this issue. Even a simple alpha tween with a certain duration, no delay and autostart is acting weird. Phaser 2.4.6 is used. The issue is experienced in Chrome, currently the latest version, but I've noticed this behavior in earlier versions in the past months. On Edge everything runs as intended. If anyone has any idea or solution, please share.
  12. Text addFontWeight iOS bug?

    Bump, I am experiencing this as well. Works fine on android but having this issue on an iPhone 6S and Mac mini.
  13. Dynamically Change Renderer?

    Hello all, I was wondering, is there a way to change the used renderer at some point after the game has been created.
  14. Tweening a Tint

    Thanks for the cool method, lewster32, it is awesome. It works perfect on Chrome, Firefox and Edge on Phaser 2.4.4. For those of you using TypeScript, here is the code: private tweenTint(spriteToTween:Phaser.Sprite, startColor:number, endColor:number, duration:number):void { var colorBlend = {step: 0}; this.game.add.tween(colorBlend).to({step: 100}, duration, Phaser.Easing.Default, false) .onUpdateCallback(() => { spriteToTween.tint = Phaser.Color.interpolateColor(startColor, endColor, 100, colorBlend.step, 1); }) .start() }; You can also add an onComplete event at the end to nullify the colorBlend object (I am not sure whether it is fully removed from memory).
  15. Load exported .json tilesets from Tiled?

    Yes, my question is whether you can somehow use a tileset in .json format in Phaser. The reason I would want to do that is because Tiled allows you within the program to create tilesets from images where you import an entire image and then you can use that image as a single element not split into many different tiles. Sadly, Tiled currently allows you to export such tilesets only in .tsx and .json formats.