I would like to point out that it is incredibly rare to find a game with that many enemies on screen at the same time with that poly count. Especially in a game engine that is
32 bit. The only way to really achieve great performance with a large amount of enemies, is by using the standard wave respawning techniques. When a certain amount of zombies have died you respawn the amount that was killed. Dynasty Warrior is the first time I really saw a true example of a large spawn horde of enemies and it was very well optimized. The techniques behind this feat are often overlooked by players.
When you kill a wave of enemies they respawn as another horde to create the sense of unlimited enemies. You can encounter 40 enemies on screen at once that when dead, can respawn to create 750 total enemies in a single stage and 5000 enemies in total upon the completion of the game. All games use the repawn method when dealing with hordes of enemies on the screen.
The following games use an average
less than 40 enemies on screen per wave, some even as low as 15 and you wouldn't even notice:
Dynasty Warriors
Left 4 Dead
Call of Duty - Zombies
7 Days to Die
Dead Island
Dead Rising
H1Z1
DayZ
Most of these games use "rounds" which contain a total amount of enemies that exceed how many can be spawned on screen at once. So each round is split up by waves. Whenever you kill all the enemies on screen a new wave is spawned.
First Wave Method: Constant Hordes
The spawning is handled in different ways depending on the type of game play you are trying to convey. In most cases,
old enemy bodies fade away so they are hidden and reposition them at their start location or new location with health restored. If you do this for every enemy that dies as soon as they die you will have an endless stream of enemies. This often creates a more challenging and overwhelming experience. Which is great for zombie games with "endless" hordes.
Second Wave Method: Group Attacks
All enemies must die before fading them away and repositioning them with new health to be respawned. For example if you have 20 enemies on screen, all 20 must die before respawning the 20 enemies for a new wave of attack.
What this does, is the more you kill the enemies, they start to reduce in numbers, which allows the player to better coupe with the horde and become more tactical and prepared for when the new wave spawns. You can even put a wait time between the waves to allow for the player to take a rest or navigate the map a bit, before loading in the next group of enemies. I personally prefer this method.
Waves allow for your game to preform well while creating the illusion of having killed 100's to 1000's of enemies. I highly recommend against using more than 15 enemies on screen at once in Game Guru. If you want the game to have the feel of 60 zombies, use spawn method number 1 and when you've reached wave 3 stop the respawning process your for your level. This will appear from the players' perspective of 60 zombies constantly attacking, when really there is only 20 on screen at any given time.
Keep in mind that "waves" are different from "rounds" and both are different from "stages".
Static Placement:
If you want your enemies to be specifically placed in locations in your map like average games that do not use waves, than you really have to focus on optimization methods for those types of games. You will have to hide them until the player is near them. This is how games like Fallout 3 and Skyrim handle enemies. Their AI is turned off till the player is within range. Then they fade in to view. There generally is no more than 10 enemies on screen at once. This is because those two games use a lot of resources to store the distant visuals. Even games like Super Mario for Nintendo use this method of hiding enemies till in view and halting their AI functions till the player is near. When creating a video game its important to think about optimization first. Most games on the XBOX 360 and Playstation 3 generation consoles that have enemies placed in specific locations on the map in advance, use this method and really cut down on how many enemies are visual and active on screen at any given time. So they have to really spend a lot of time planning the positioning of enemies further away from each other or just out of view around corners.
Static Placement is something that Left 4 Dead avoids. Here is a short statement from Valve on the matter: "Goal: Promote Replayability - Static placement of enemies and loot hinders replayability"
Game Guru is a game engine not a level editor. It isn't built to just handle everything you throw at it. No engine really is. Level editors are a different story. So a lot of the optimization techniques to reduce FPS consumption at this point are on you as the developer, using the tool. While the engine may continue to make new methods in the back-end to help with performance , it still is ultimately up to you ,how you design your levels to ensure it plays smoothly for all of your players.
Quote: " A.I is going to be BETTER"
Lee is
not going to write you all the spawning scripts for you. That is not his job. He has enough work on his plate. Game Guru uses LUA specifically so that you can code your own game. We have a whole forum section for scripting. Trust me its worth learning. I have learned how to use it in the span of only 4 months. I should also note that if your video card is not good, than you will not get the desirable results. Regardless of "updates". some community members have created their own scripts for similar effect:
For more information on this topic , please refer to the Valves Software -
Left 4 Dead PDF and go to page 60:
http://www.valvesoftware.com/publications/2009/ai_systems_of_l4d_mike_booth.pdf