All Activity

This stream auto-updates     

  1. Past hour
  2. Today
  3. I observed all of the first paragraph happening on the example (from a surface pro 5th gen/m3 on chrome back in May). My guess is that it breaks down on cases where line 93's `delta.copy(player.body.velocity).scale(1 /` doesn't match the actual update frequency; unfortunately, the device I'm on right now is much beefier than that computer was, and so I think it's actually able to keep up with the very low demands the experiment put on it. IT might also be a bug in physics? Or something else? I definitely haven't been able to repro moving the flectrum, though I did see it from the previous device. Even on my current beefier device, I'm able to forcefully reproduce the stop-distance-changes-thing by placing the cube adjacent to the flectrum and VERY RAPIDLY alternating left and right movement. Eventually it gets wedged one predictive step away; leaving and coming back towards the flectrum retains the offset. (normal behavior. I'm holding left, I can't move any further left) Flurry of left/rights! I can't get any closer to the flectrum, even if I go away and come back. (PS: I know I'm very late. Sorry! )
  4. You can try Panda2 mix three.js plugin, but it is not free, you can get a discount on their twitter page
  5. Hi. First of all sorry for the late reply. But I have now upgraded my device and I can say that the example runs smoothly and is almost perfect.
  6. Just to add to the above, calling reset and destroy methods on loader seems to also work. I looked up sprites in chrome's memory profiler and ones stored there are correct renderTextures
  7. @ivan.popelyshev Alright, I tried to do that after it's been uploaded to GPU i.e following my example above renderer.plugins.prepare.upload(sprite, () => { resources[key]?.texture.destroy(true); }); But this throws various errors related to sprite scale / width etc being undefined. It feels like old texture is still being referenced somewhere. Can this be the case with my previous example above?
  8. you have to destroy each original texture. "texture.destroy(true)"
  9. @ivan.popelyshev Gotcha, so just to confirm that I am cleaning everything up correctly here is a snippet that works for me and resizes everything correctly, am I correct assuming that the only cleanup I need to do here is destroy a loader with original textures? loader.load((_, resources) => { const sprites = {}; Object.keys(resources).forEach(key => { const sprite = new Sprite(resources[key]?.texture); const { width, height } = sprite; // maxWidth is pre-determined beforehand if (width > maxWidth) { const ratio = height / width; const maxHeight = maxWidth * ratio; const renderTexture = RenderTexture.create({ width: maxWidth, height: maxHeight }); sprite.width = maxWidth; sprite.height = maxHeight; renderer.render(sprite, renderTexture); sprites[key] = new Sprite(renderTexture); } else { sprites[key] = sprite; } }); // sprites object is then sent to prepare plugin loader.destroy(); });
  10. Hi friends, I started working with these two companies at the same time, same games, same sdk. Both are very different and here I will tell you about my experience, I hope it will be useful to you as yours has served me. I uploaded to both platforms 2 games with more than 50 million players for a week, in Gamemonetize I am going to work a long time, in Gamedistribution today I closed the account and deleted my games. Contact: * In Gamemonetize is Katie, sweet, kind, decisive, quick to respond, my experience is unbeatable. * In Gamedistribution is Marco, it takes a long time to respond and the first few times I had to speak to his boss to make him do it, he is kind but tries to defend how indefensible his company's lousy service is. Distribution: * Gamemonetize spread my games through many small portals that cannot buy licenses nor have the platform for income distribution, it is exactly the public that needed to reach. * Gamedistribution did not spread my games anywhere, only their own games stand out. Profits: I cannot give the exact numbers for legal reasons but I will try to be very clear. * Gamemonetize: The two games in one week live generated around $ 10 a day, I want to clarify that the first day live gave a great boost exceeding $ 20, around $ 80 in total / week. * Gamedistribution: In approximately the same time the games generated $ 0.03 in total, between 0.00 and 0.01 a day between the two games. Games approval: * Gamemonetize: Almost immediately, a couple of hours. * Gamedistribution: Several days and I had to put a lot of pressure on the bosses, it is not enough just to send the game to the team that is in charge of it. I hope this works for you, any private question that you have is welcome
  11. > I upload my sprites not textures prepare recursively looks everywhere and searches for textures. Sprite resize wont affect anything, you have to create a renderTexture of appropriate size, render your sprite there, and then use this new texture, and destroy old one. Alternatively: do it manually on canvas2d, and give this canvas to pixi. You can also set width=height=1 for canvas after its uploaded to save the regular memory, but turn off pixi gc so it wont release the texture from videomemory. Both images are in this case are RGBA, 4 bytes per pixel. You can use compressed textures to get 1 byte per pixel but that's special kind of compression, it has downsides that you have to be aware of.
  12. Could you give me a link where can I download the source code of this example?
  13. Best way is to make the textures in multiple sizes beforehand and then load only the ones that are your wanted size. In theory you could do resizing and dynamic texture generation in client also, but you would suffer qualitywise when compared to doing the resolution changes with software with better scaling algorithms. Anyways if you want to do without uploading large textures to gpu and while still using original sized textures then here's a short way how you could do that: - Create a temp canvas that is you target resolution size. - Get 2d context from it. - Draw your image to that canvas with scaling to correct size. - Create a basetexture that has that canvas as element. - Create your sprite using that basetexture. - Destroy your original image, basetexture and remove it from loader. I do not recommend using this method, but rather look into how you can have separate asset resolutions and load only the correct one.
  14. I am working on a game that has few background graphics, these are stored in app bundle at big resolutions like 2000x2000 pixels to support bigger devices like iPad pro. Obviously something this big is an overkill for mobile and I wanted to ask if following optimisation assumption is correct: 1. I preload these assets with pixi loader 2. I create sprite for each texture 3. I then resize this sprite to fit device dimensions better i.e. 1000x1000 px for iphone When I inspect my sprites textures I still see them at 2000x2000 pixels even though sprite itself is 1000x1000. I am concerned that I am not optimising this correctly, especially because I use prepare plugin for some of these assets, I upload my sprites not textures, but I still feel like I might be uploading those big 2000x2000 assets alongside which is a problem, as these occupy a lot of GPU memory. Hence this thread to clarify if my approach to this problem is correct. I don't want to create separate asset resolutions i.e. 2x / 3x etc if possible to avoid increasing final app bundle size.
  15. Any progress on this Bootfit? I am interested in publishing a FIG, and would want to register a business as a Sole Trader (i'm in the UK).
  16. opd

    Sprite compression

    I use Cloudflare's webp conversion service. It comes with the Pro package, so it's $20 a month. Depending on you needs, it can be really worthwhile. For me, it's appealing as you just turn it on and then you don't think about it anymore.
  17. Yesterday
  18. I already requested the cancellation of my games and my account there, I do not want to waste my time, I recommend everyone to do the same, it is the worst company in every way: They don't answer the messages They don't pay well They don't pay on time They don't distribute the games anywhere The platform is awkward, difficult, games cannot be removed immediately, etc. In 8 years working on this, it is the worst experience I have had with a company.
  19. I already requested the cancellation of my games and my account there, I do not want to waste my time, I recommend everyone to do the same, it is the worst company in every way: They don't answer the messages They don't pay well They don't pay on time They don't distribute the games anywhere The platform is awkward, difficult, games cannot be removed immediately, etc. In 8 years working on this, it is the worst experience I have had with a company.
  20. It's lousy, the same thing happens to me, I'm going to delete all my games from Gamedistribution
  21. Hello friends, I work with Poki, Crazygames, Gamepix, Gamemonetize, etc. And all these companies generate good income, I tried Gamedistribution and it does not generate a single penny, I tried several games, even one that has millions of players in the world and still nothing. i wait 2 more days and unsubscribe there, I advise you to go to Gamemonetize, Crazygames, Gamearter, Poki but don't waste time with Gamedistribution because they only distribute their own games (Spilgames)
  22. Added spinners pull request to examples. You can check that from pr or wait until it gets accepted to see it at examples.
  23. Hi @Martin99 I could possible help, however, did you double-check the console for any errors and did you call the function to get the game started? I believe the function is "GameMaker_Init"
  24. Guys, Does anyone have any suggestions for a VAST plugin along with a video player which can be used to embed and play video ads in Phaser games?
  25. A game on Lord Krishna. Celebrate the beautiful Indian festival "Janmashtami" with our cool game "Krishna Jump". Let's knock down the Dahi handi. Check the demo of Krishna Jump here - Contact for publishing games with Freak X Apps.
  26. Here's the code in question: bunny .on('pointerdown', onDragStart) .on('pointermove', onDragMove); function onDragStart(event) { // store a reference to the data // the reason for this is because of multitouch // we want to track the movement of this particular touch =; } // this is the example onDragMove function onDragMove() { if (this.dragging) { const newPosition =; this.x = newPosition.x; this.y = newPosition.y; } } // why doesn't this work? function onDragMoveModified(event) { if (this.dragging) { const newPosition =; this.x = newPosition.x; this.y = newPosition.y; } } As per the docs for the InteractionEvent, the `` presumably has the data for the current drag event. Can someone explain to me why we have to store the start `` in the current object? I don't understand why using the latest event (as in onDragMoveModified) doesn't work? To clarify, when you try that code, the result is jumpiness on multi touch
  1. Load more activity