• Content Count

  • Joined

  • Last visited

1 Follower

About HappinessSam

  • Rank
    Advanced Member

Contact Methods

  • Twitter

Recent Profile Visitors

1056 profile views
  1. It's still there, though nowhere near as bad - depending on the number of spine it's maybe half a second at most and usually just a quick stop stutter.
  2. I hope it's ok me piggybacking this thread for another, probably unrelated spine performance issue rather than starting another thread. The project I'm working on has a lot of spine animation and also can have a very large canvas. I'm finding that if I have the game running then switch to another tab and wait more than 4-5 seconds, when I switch back to the project it freezes for a few seconds with the permorance analyser showing it being s. I have every spine with autoUpdate set to false and I have found that if I cap the delta time that can be passed into update it helps, but if with that there is still a noticable stutter. To clarify, my update function looks something like this: this.lastTime = this.lastTime || Date.now(); var timeDelta = (Date.now() - this.lastTime) * 0.001; this.lastTime = Date.now(); if(timeDelta>0.1){ timeDelta = 0.01; } spine.update(timeDelta); Is this something anyone else has seen and is there anything that can be done to help?
  3. This has worked fine and touch wood is working perfectly now. I was also getting an occasional flickering issue which has cleared up after setting the spine's autoupdate to false and updating manually - maybe this apporach would fix https://github.com/pixijs/pixi.js/issues/4117 too.
  4. Thanks! That's great info. I think I will look into manually call update, as that looks safer.
  5. I'm trying to use some spine animations in a large Pixi application at work. It's mostly working but I'm getting intermittent runtime errors coming from the Spine objects. This error is:Uncaught TypeError: Cannot read property 'transform' of null at Spine.e.updateTransform (pixi.min.js:formatted:4401) at Spine.autoUpdateTransform (Spine.ts:479) at e.updateTransform (pixi.min.js:formatted:4405) at e.updateTransform (pixi.min.js:formatted:4405) at GameScene.e.updateTransform (pixi.min.js:formatted:4405) at e.render (pixi.min.js:formatted:8605) at Function.ScenesManager.loop (ScenesManager.ts:273) at t.emit (pixi.min.js:formatted:13126) at t.update (pixi.min.js:formatted:13068) at _tick (pixi.min.js:formatted:12988) The error is coming from PIXI.Container, line 323 because this.parent is null. This is a bit bonkers because this is only being called because the spine object is in the children list of the scene being rendered. this.transform.updateTransform(this.parent.transform); I dug in a tried to isolate the problem and found that somewhere in the Spine update function the parent was being set to null. In Chrome debugger I put in some conditional breakpoints for dt>0 && this.parent==null and found that the culprit was line 184 this.state.apply(this.skeleton); Before this line the breakpoint doesn't trigger, after it it does, with this.parent being null. I had a read through AnimationState.apply and I can't for the life of me see anything that would be setting the Spine parent state. So my question is can anybody else see anything in there that might be creating this effect? I should say that the application does a bunch of complicated pooling of symbols, so the Spine object might be getting removed and sent back to the pool then re-added frequently. But my understanding was that since JS is mostly single threaded if this.parent exists on line183 but not 185 something between there must be setting it to null. I'm not extending or doing anything else to the Spine object. Unfortunately I can't give out any coded to show the context. I'd be really grateful if anybody has any suggestions or input.
  6. Quick update that there is now a playable web version on Armor games http://armorgames.com/dungeon-slog-game/18110
  7. Really nice game and I'm impressed that you managed to make it in 1.5 months. All my 5s are yours. I agree that the tutorial is a bit rough around the edges but it's simple enough to work it out that I think you can get away with it.
  8. I love the visuals. I have to confess that I only payed one game but I like the core gameplay. Are there waves or do you just play until you die? If there are waves and I just didn't reach the end of one then I'd say it could use some indication of how much you have to go. If you don't have waves I would think about putting them in. By waves, I mean that there are a certain amount of enemies you have to kill or survive, then you get some kind of reward and a breather, then it starts again at a higher difficulty. I think it's something it would really benefit from.
  9. I've just release my new game one the play store! The game is Dungeon Slog. It's an action/arcade rpg with roguelike elements. In it you need to fight your way through a randomly generated dungeon of monsters, levelling up, buying items and choosing which member of your party is best suited to the current challenge. It was programmed in vanilla javascript using Phaser as the game engine. I used l10n for the localisation (even though I have yet to actually localise it into another language) and Apache Cordova to package it as an app. I used the Oryx tileset with additional icons bought from Gamedev market. The music is by Eric Taylors, sound effects by Kenney Feedback, questions, bugs or suggestions more than welcome. Gameplay trailer: Screenshots:
  10. I have a Phaser game that I'm packaging with Cordova. I've been using this admob plugin for insterstials but I decided I wanted to add some reward videos since I've heard they#re really good. In theory that plugin should be able to serve them but I can't get them to work. I thought the problem might be with my mediation so I tried a couple of other plugins that serve the videos directly (admob doesn't serve reward videos itself), like this vungle one and this UntyAds one. I can't get any of them to work, even if I build them in a clean, empty project. I suspect that I have something wrong with my ads setup but I just wanted to ask if there is anyone here who has managed to get them to work and if there are any gotchas I need to look out for.
  11. It looks beautiful. I found that on desktop the controls are a bit wonky for me - they just don't feel responsive enough for my taste. You accelerate slowly then suddenly shoot off. In terms of performance it was mostly OK but I noticed some slowdown when the lightning flashed. On mobile I think I actually preferred the gameplay. I think it's because I'm more used to and tolerant of controls being difficult in mobile games. I noticed it was missing the bottom part of the screen - try adding this.scale.windowConstraints.bottom = 'visual'; before you set the scaleMode when it's mobile and see if it fixes it.
  12. Try changing it to bmd.setPixel(location.x, location.y, 255, 0, 0, false); in the main loop then at the end call the correct value for the last pixel. The false is the flag for whether to update the image context immediately and it defaults to true. This mean it's calling this.context.putImageData thousands of times, hence very slow. If you only call it at the end it should be much faster. I checked the Bitmapdata source and I couldn't see a proper function to call this.context.putImageData, hence calling setPixel with immediate true so it updates the image. There is probably a better, correct way to do this, but it's a bit late and I need to head to bed.
  13. Just to check, when you were trying to use bitmapData did you try just using setPixel? That would seem the most straightforward method if each square is represented by a single pixel. How big would the image need to be, because even a massive image, say 2048x2048 setting every pixel individually with rect shouldn't be taking 20 minutes.
  14. I've been trying to get my Phaser game to work on my old Galaxy tab 2 but it's been throwing errors from the pixi renderer in Phaser. At first I thought it might be that the phaser version of pixi is outdated (I found this issue on the pixi github) but I'm getting the same errors when testing bunnymarks on the pixi site. Does anyone else have any experience of this and/or advice on workarounds? It works if I force it to canvas rendering but this really impacts the performance - I don't want to have to cripple it for everyone because of an issue on a few tablets. The error says 'WebGL: INVALID_VALUE: disableVertexAttribArray: index out of range' and '[.CommandBufferContext]RENDER WARNING: there is no texture bound to the unit 0'. My tablet is on android 4.2.2 with chrome 50.0.2661.89