All Activity

This stream auto-updates     

  1. Today
  2. Not so long ago games needed to fit on a floppy disk 3MB is a luxury imo To keep things small consider these easy wins. Javascript minification and dead-code removal. Lower bitrates for audio (combined with shorter duration and more imaginative looping). Pngquanting (8bit) bitmaps whenever possible. Keep every asset pristine, making every byte count. And 3MB is by no means a hard requirement, it's a recommendation based on FB's observations of their audience. If you can achieve it then the game may get more exposure and higher retention, but heavier games can still be viable too. What's most important is virality and social connection.
  3. Hi Jon, is it a remote or onsite position? Many thanks Pippo
  4. I created a theme based on my two html5 games, and it was deleted. What could be the reason?
  5. vornay

    Google GameSnacks "Bite-sized HTML5 games, accessible to everyone." "Google has announced a new HTML5 platform called GameSnacks that's designed to help devs bring quick, casual games to any device."
  6. The track editor is finally done! It took a lot of coding, so hopefully not too many bugs. 🤓 And there's a new single race mode where you race other peoples tracks. Looking forward to seeing what tracks people make! 😃
  7. 3mb seems to be too low. How do you keep the final game size below 3mb. Do you guys include sounds??
  8. I want the bullets to fire in the direction the ship is facing such as in this example: I have followed the same code structure but my bullets don't fire in the direction I'm facing. Code: // Initialize the Phaser Game object and set default game window size const game = new Phaser.Game(325, 600, Phaser.CANVAS, '', { preload: preload, create: create, update: update }) function preload () { //player assets game.load.spritesheet('player', 'assets/player_spaceship/tempShipSpsritesheet.png',80,60,2); game.load.image("bullet", 'assets/bullet.png'); } //bullet variables var bullets; var bulletTime = 0; var ebulletTime = 0; function create () { //Player Variables ---------------------------------- MAX_VELOCITY = 200; // pixels/second DRAG = 100; // pixels/second game.physics.startSystem(Phaser.Physics.ARCADE); playerbullets =; playerbullets.enableBody = true; playerbullets.physicsBodyType = Phaser.Physics.ARCADE; playerbullets.createMultiple(10000, 'bullet'); playerbullets.setAll('anchor.x', 0.5); playerbullets.setAll('anchor.y', 0.5); playerbullets.setAll('outOfBoundsKill', true); playerbullets.setAll('checkWorldBounds', true); player = game.add.sprite(game.width/2,game.height,'player',0); game.physics.enable(player, Phaser.Physics.ARCADE); player.body.maxVelocity.set(MAX_VELOCITY) player.body.drag.set(DRAG) player.anchor.set(0.5); player.body.collideWorldBounds = true; //Environment -------------------------------- game.stage.backgroundColor = "#4488AA" //Controls ----------------------------------- cursors = game.input.keyboard.createCursorKeys(); game.input.keyboard.addKeyCapture([ Phaser.Keyboard.SPACEBAR ]); } function update () { //Centers screen game.scale.pageAlignHorizontally = true; game.scale.pageAlignVertically = true; game.scale.refresh(); if (cursors.up.isDown){ game.physics.arcade.accelerationFromRotation(player.rotation, 200, player.body.acceleration); //'thrusters', 30, true); } else{ player.body.acceleration.set(0); } if(cursors.left.isDown){ player.body.angularVelocity = -300; } else if(cursors.right.isDown){ player.body.angularVelocity = 300; } else{ player.body.angularVelocity = 0; } if(game.input.keyboard.isDown(Phaser.Keyboard.SPACEBAR)){ PlayerBulletFired() } } function PlayerBulletFired () { if ( > bulletTime)//adds a delay to the bullet time { bullet = playerbullets.getFirstExists(false); if (bullet) { bullet.scale.setTo(0.2,0.2); bullet.reset(player.body.x, player.body.y); bullet.rotation = player.rotation; game.physics.arcade.velocityFromRotation(player.rotation, 400, bullet.body.velocity); bullet.body.velocity.y = -400; bulletTime = + 50; } } }
  9. Yesterday
  10. We have a JS developer job opening that would benefit from someone with WebGL skills. Are you a talented programmer with a passion for open source? We'd love to hear from you. The job is developing an open-source scientific library, for the precise/rapid presentation of stimuli to participants in reaction time experiments and similar, which is why skills in dynamic high-performance graphics programming would be of benefit. This is part of a larger project mostly in Python,, which is a pretty popular package within behavioral sciences (psychology, neuroscience, linguistics etc). So if you're a good coder and fancy working in open source and/or science programming then we'd love to hear from you. kind regards, Jon
  11. My game is browser based and has a ton of image files and I would like to move them to another server and access them through a CDN to keep room on my server as well as minimize load times for players. I'm having trouble finding anything about CDN for game use; is this even what I would want to do? Any suggestions for a CDN? It doesn't seem like Cloudfare's CDN can be used for this. Thanks for any help!
  12. Regarding your case - yes, 5k sprites is too much, only something like ParticleContainer can handle that, and even then - you'll have like 100k javascript objects in memory total, because each sprite is lightweight but not that lightweight You can put tiles into graphics with beginTextureFill - it'll have like 20k objects and it wont re-upload vertex buffer every frame. pixi-tilemap wont spawn any objects, it can just upload buffer once when after you refill your tiles list, and all next calls are cheap, only asking for GPU to render that particular tilemap. RenderTexture caching can convert your map to 1 or 2 sprites, but eats gpu memory, 4 bytes per pixel. Choose your destiny.
  13. Welcome to the forums! Another tilemap thread. Please use search for this particular subforum on "tilemap" word. You can also search at My latest explanation: Tilemap is an advanced (not basic) , advanced algorithm that requires developer to write its own code and not just CTRL+C stuff from examples. PixiJS gives only low-level components that can be used with high-level algos people produce. When you write it, you actually feel like engine creator and not just like a person who uses one of existing solutions. I posted the same answer with different details like 30 times already. I hope you can forgive me that I cant give you compilation of all those threads Of course I would like someone to actually go through all that and compile article for PixiJS wiki ( ). We are waiting when that hero arrives.
  14. Hi all, I'm currently working on a new game which uses large tilesets and renders 9 Containers as map layers. Each map contains 24*24 tiles and each tile is 32px*32px. Currently I'm adding each tile from the tileset as a sprite individually (only if the tileIndex for that tile is > 0). So if I were to have a fully loaded map it would contain a total of 5,184 Sprites. I'm guessing that this is inefficient and I feel that I could combine the bottom two layers into a texture, as these are Ground Layers on the map. The player will walk over these anyway and they are unlikely to ever change until the player switches map and thus reducing the Sprite usage by 1,152 (2 layers worth). I've looked at the docs and online examples to see if there's anything that could be helpful here but have been unsuccessful in getting it to work as I'd expect it to. Please help.
  15. VR or Virtual Reality is an interactive platform which when used can deliver a 3D experience with respect to any products or services across the globe. In other words, it helps in creating an artificial environment within which users can interact with any elements- be it a gaming character, a car, receiving training or education and lots more. For more details, click here:
  16. Magnum


    Hi all, I would say that following the various problems encountered with my host, the site changes address. Find BZHGames on Good game !
  17. Very late reply, but I was looking for a solution to the same issue. I don't think nemoDreamer's anser would work, it seems to just look for an image, not texture atlas frame. I'd also avoid using underscore as in the first reply, but you can do something with Phaser only methods like this: function hasFrameName ( { atlasName, frameName } ) { return this.state.cache.getFrameData( atlasName ).checkFrameName( frameName ) }
  18. Yeah, Panda hasn't been updated almost 1 years guess enpu will never update least, Notify in official website 'News' and 'BUY NOW' page that the editor is closed off and stop support as a temporary. I decided to use Construct 3.... Phaser 3 is not my choose because I worry phaser 3 code is not work on phaser 4....phaser 5 at the future
  19. Last week
  20. I've added a pr to make updateText public!
  21. Oh, im so stupid, @eXponeta already answered you The demo is awesome, it'll be a pleasure to dig into the problem
  22. Thanks for your replies. I opened a GitHub issue with info and demo: See the demo at:
  23. Actually, it can also be a browser bug. Please post a demo.
  24. Oh, I've got it I didnt see that you use TS, my fault. The function is private. You can complain about it in pixijs issues or even make PR to unprivate it. Just mention that there are threads where people recommend to use this function from outside. For now just use "as any" Before you ask "why didnt pixijs team think about that", look in other places - many functions of ThreeJS are scope-locked, no way to get to them!
  25. I am making a 2d shooter game and i am trying to add a collider between the bullets and the enemy so that the bullet doesn't go straight through the enemy but i am getting an error I am new to phaser btw here is the code for my projectile class. The class is instantiated whenever the player clicks class Projectile { constructor(scene, x, y) { this.scene = scene; = this.x = x; this.y = y; this.projectile_sprite = scene.physics.add.sprite(x, y, 'bullet') this.projectile_sprite.setScale(0.02); let yCur =; let xCur =; let rad = Phaser.Math.Angle.Between(this.x,this.y,xCur,yCur); this.scene.physics.moveTo(this.projectile_sprite,xCur,yCur,1000) function bulletCollide(projectile){ projectile.destroy(); } this.physics.add.collider(player.player_sprite,this.projectile_sprite,bulletCollide(this.projectile_sprite)); } }
  1. Load more activity