Generate First Person Shooter game in single HTML file. Use three.js or p5.js. Player should have Assault Rifle, Pistol, Knife, Grenade. Rifle and Pistol must can be aim down the sight and should have own shooting sound. Knife can't be aim down but still you can push knife into enemy. Grenade is throwable weapon, 5 seconds later it will exlplode. Player must be can walk, run, jump around the field. Field must be contains skybox, building, complex terrain. In the field, there's enemy player and they automatically walk around field and if enemy find player they going to be shoot to player, or else enemy is shooting to other enemy like deathmatch rule. Field contains various buildings and obstacles, ammo item(if you step on this, you can refill ammo for specific amount) , HP item (if you step on HP item, you can heal HP for specific amount) ,armor item (refill armor fully) and they block bullets when you shoot against them. Player and each enemy should have own Hit Point (decreases when they hit by bullet or fall from too high places, regenerates HP slowly over time) and Stamina (decreases when they run and if you stop running it automatically regenerates quickly), Armor (If the player or enemy have picked armor item up, and if shooted by someone, start decreasing first than HP.). And Each player and enemy should have own amount of ammo. I mean, Enemy can be run out of ammo and can start fighting with knife.