danwguy Posted July 10, 2016 Share Posted July 10, 2016 I am working on a little game, just for my own personal use and learning and I came up with an interesting question that I can't seem to find the answer to. I will have a player and a bunch of enemies, now the enemies will be of 5 different types (different sprites, but the same basic rules as far as health and interaction logic), so I started thinking, would it be better to have an enemies group where each enemy gets added to the group, then in the update I would do something like... update() { this.game.physics.arcade.overlap(this.player, this.enemies, this.hitPlayer, null, this); // the rest of the logic for moving the player and shooting and whatnot } since each enemy will have the same logic in terms of how much damage it does and whether or not it killed the player, or died. or should I have each enemy be their own entity and check for overlapping on each one like this... update() { this.game.physics.arcade.overlap(this.player, this.spikeEnemy, this.hitPlayer, null, this); this.game.physics.arcade.overlap(this.player, this.creeperEnemy, this.hitPlayer, null, this); this.game.physics.arcade.overlap(this.player, this.hoppingEnemy, this.hitPlayer, null, this); //rest of the logic here } Essentially I am trying to find out if the engine would prefer to have all enemies in a single group, then check for overlap, or if it is easier on the engine to have them as individual entities, then check for overlap. I realize that making more calls is generally less productive, but does anyone know the trade-off point? At what point is it easier and less intensive for the engine to check on a group vs several single entities? This is only about the memory consumption and what the engine prefers, not necessarily coding standards or pattern standards. I am really hoping that someone has some good insight on this, I am sure I am not the only person to ever try to determine which is the best route to take. Thank you all for your time and I appreciate any help or insight anyone might have. Link to comment Share on other sites More sharing options...
symof Posted July 11, 2016 Share Posted July 11, 2016 I would use groups. That's why they exist in the first place so that code become more legible. Besides the point that you raised consider the following: can the enemies hit each other? If YES then you will have to do permutations between each of the entities which will make for very long code. I would just use 3 main groups : - for the player - for the non-player entities (npe) - for the non-player objects (npo) Then add groups for other "stuff" like bullets, weather (rain, snow), hazards( fire, ice, water) , fog of war. VitaZheltyakov 1 Link to comment Share on other sites More sharing options...
Recommended Posts