groups

So my plan was for my game to have level pieces like turns and fourways and things like that for all the hallways and so i made each piece into a group then on a new layer put in new group instances and layed them out into a level. But for some reason the game is at 22 fps and each peice is just a simple hollow rectangle eather going strait or turned or like a 4 way hallway no other extra polygons maybe 5 or 7 for each.

I wanted to do this this way so that i could lay out a level then go back to the original group pieces and add the textures and this would automatically apply them for the layed out levels. Also the other problem i thought of is light mapping it wouldn’t work.

EDIT also this is without any shadows or lights in the scene.

do i need to have the group objects in another .blend to make it faster?

Turn on the profiling to see what may cause this problem. How many group instances show up at the same time?

how do you turn the profiling on?

Render Tab (while in game engine render mode) -> Display -> “Framerate and Profile”

oh ya i know that i thought you ment something else, but it doesnt say anything about the groups?

It says what calculations takes long. Logic? Rasterizer? Physics? These informations would be helpful for us to help you.

Group instances do not harm your performance, - basically. How many instanced objects do you have? (you did not answer the question)

oh sorry um about 30 to 40 instanced objects depending on a level. i actually have allready replaced all the instance objects with one big mesh for the level, I did this before i started this thread so I cant tell what the calculations are without redoing it all. But im not sure if it would work anyways because light mapping would not work because each piece of the level needs different lightmaps.

Is there any way of getting around this?

I do not think that this will have any influence on the games’ speed.

The whole thingy sounds a bit strange. Can you provide an demo file (e.g. without textures).

There’s definitely something more to your blend file than just groups slowing down your FPS. I’m designing Soldier Of in a similar method to the one that you’re using, mrn, and I’m getting fine FPS. The maps (ground / walls) are unique, so I have them in their ‘editable’ forms, but objects that are duplicates (like enemy spawners or trees / rocks / other scenery) are groups that I add instances of.

If you’re interested in getting the answer, you should re-create your setup and examine the Profiler (as moedrn pointed out). You should use the profiler all throughout the development process, really - that’s the only way to see holes or other problems in your game when they arise.

@monster ok i will post a blend later today

@solarlune ill do that and then post the blend

actually i guess i dont need the group peices for the levels cause ill need uniqe textures but still for some reason when i only have one big mesh for the level it still ist at 40 to 50 frames for just a simple glsl scene.

Ok here is a blend without the groups for the level parts but it stall has groups for the different objects and things.

and im still getting bad frame rate.

The physics are quite high. Find a better way for making the gates. Why the gates have to be rigid body inside another rigid body cube? A simple keyframe animation for opening would do it. Near, collision and touch sensors are costly you have to much of them activated at the same time. You could use a ray sensor for your character to check buttons/activate buttons in your level. You can use states to turn the physics sensors on/off to save cpu time (maybe triggering just every few frames).

EDIT: the physic calculations on my system take about 3 ms. Logic and rasterizer are quite ok.

oh ok ill change the gate physics, also i would do a simple action for the opening and closing of the gates but i would have make uniqe actions for every gate because each gate is in a different spot. that’s why i used the shape keys and then i just had a simple rigid box surrounding each for the collision.

how do you change the physics on and off? by using the dynamics thing under edit object logic brick?

i tried the ray sensor but i could not get it to work. i have the range set to 5 and i have it look for the player property.

This is on the buttons

EDIT: so i changed all the collision sensors to near sensors and got rid of the rigid body doors and made them no collision but this still only drops the physics down to 15 percent and then when i enter farther down the hallway it goes up to around 22%

ok I am stumped the rasterizer is still at 80 and the physics at 15 i cant figure out what is slowing it down so much.

Uh. Graphics card, processor and/or driver. Any information on that?

I do not discovered much performance gaps while playing. I think I should test on other hardware ;).

Anyway: I completely agree with moerdn’s analysis.

Alternative solutions to detect switches and doors:

  • Have a sensor on the player (rather than the door). This way you have one sensor to detect all switches. Many sensor vs. one sensor = one is faster ;). You can even use a radar sensor.

  • The doors a a bit to much high-poly. I think you can reduce the number of segments at each cylinder without loosing to much details.

  • You might want to split your level into multiple scenes. With that you get much less objects to be processed at the same time. You can switch scenes while waiting in the elevator.

These hints are less performance relevant but will help you maintain your game:

  • I suggest to set up the groups at a separate scene rather then a separate layer. This makes them much better manageable (if you really need the group in your scene, you can link it throughout the scenes)

  • To much objects have meaningless names (to much Cubes in there :wink: ).

is normal , in fullScreen GLSL is hard to use
with blenderplayer you can decrease the resolution in blender you can only make the screen more little
in my pc it run at 40 FPS, but nothing of strange, with some lamp and one big plane is the same

the physics is a bit heavy , i not sure what is that increase so much the calculation

well done anyway (also if the door not work :slight_smile: )

PS: try to change some value of the lamp / point.
i tried to decrease the “distance” of first lamp, and i get already 48 FPS(instead of 40)

Like it’s been said before, you’ve got objects that definitely don’t need to be physics enabled that are physics enabled. For example, the elevator console is set to Rigid Body. It should be static. I believe an enemy’s mesh is Static, but it’s parented to a larger collision box, so it doesn’t really need collisions at all. Set the mesh to No Collision and just set the collision box to be collision-enabled.

I’m not sure why, but I get the similar problem from this blend file that I got from SWAP - sometimes the rasterizer lags, from certain angles, and then immediately lets up. It happens multiple times, and can be seen right from the start. It might be something to do with how you’re spacing out your levels. I have no idea why this happens. Maybe you should start with a simpler blend file and step through it until it gets to the problem.