|
Re: Performance Probleme
[Re: Zapan@work]
#269570
06/03/09 14:34
06/03/09 14:34
|
Joined: Jan 2005
Posts: 605 Deutschland, NRW
garv3
OP
User
|
OP
User
Joined: Jan 2005
Posts: 605
Deutschland, NRW
|
So, jetzt habe ich mir mal ein wirklich extrem simples Model gemacht: 8 faces, 9 vertices und eine Skin mit 64*64px Davon erstelle ich 28*23 = 644 Stück (auf jedem Feld eines). Bevor ich diese Entities erstelle, habe ich über 260 fps. Es ist kein Shader und keine Action zugewiesen. Das shadow-flag ist auch nicht gesetzt. Ich komme auf unter 90 fps. Indem ich ein paar Flags setze (PASSABLE | UNTOUCHABLE | UNLIT | CAST) gewinne ich ca. 10 weitere fps. Damit liege ich dann bei knapp 100 fps für ca. 650 unbeleuchtete Entities ohne Schatten oder Shader. Es kann doch nicht sein, dass diese wirklich extrem simplen Entities über 160 fps verbrauchen!? Ich vertseh es einfach nicht... Hier die dazugehörigen Statistiken: Man kann ganz gut erkennen, dass es wirklich die Entities sind, die die meiste Rechenzeit beanspruchen. Ohne die Entities sieht es dann so aus: Also was nun? Ich könnte es natürlich mal publishen und eine Möglichkeit einbauen, die Entities ein-/auszuschalten. Aber dazu muss ich wirklich viel umbauen... Vielleicht hat ja hemand (jcl?) noch ne Idee?
GameStudio Version: A7 Pro v7.86
|
|
|
Re: Performance Probleme
[Re: garv3]
#269938
06/05/09 09:35
06/05/09 09:35
|
Joined: Jan 2005
Posts: 605 Deutschland, NRW
garv3
OP
User
|
OP
User
Joined: Jan 2005
Posts: 605
Deutschland, NRW
|
Auf Anraten von jcl hab ich das Projekt jetzt mal an den Support geschickt. Einziges Feedback bisher: Als Faustformel gilt, dass für eine Framerate über 30fps sollen nicht mehr als 5000 Polygone zu sehen sein sollen.
Dann nehme ich nun mal die simplen Models aus meinem letzten Versuch: 644 x 8 Polys = 5152 Polys Und es kann wirklich nicht sein, dass ich damit schon die Obergrenze erreicht habe. Wirklich nicht! Übrigens, wenn ich jedes dieser Modelle durch ein einfaches Sprite ersetze, gewinne ich auch kaum Performance. Es hat also wohl eher was mit der Anzahl der Entities zu tun. Und weniger mit der Anzahl der Polys...
GameStudio Version: A7 Pro v7.86
|
|
|
Re: Performance Probleme
[Re: CetiLiteC]
#283762
08/09/09 22:17
08/09/09 22:17
|
Joined: Jul 2004
Posts: 4,206 Innsbruck, Austria
sPlKe
Expert
|
Expert
Joined: Jul 2004
Posts: 4,206
Innsbruck, Austria
|
dein problem ist ein simples: die engine erstellt jedes model einzeln, muss jedes model einzeln laden und jedes model einzeln anzeigen. die skins und schatten und shader müssen dann auf jedes einzelne deiner über 600 entities gepflastert werden. das ist der reine wahnsinn.
erstell cluster models. pack sagen wir 16 models in einem 4*4 grid und platziere die statt der kraftwerke. wenn du jetz sagst, ja, aber die sind nicht imemr da sondern der spieler kann die da bauen, kannst du die moprhen. wennd er spieler einen 3*3 grid baut die 9 models in ein einzelnes 3*3 model ändern. baut er noch was dazu änderst du die 8 models (9+4+3 = 4*4 grid) in ein 4*4 model and so on. das ist kompliziert und ne scheiß arbeit, aber das bringts. die engine kann locker 50 000 polys gleichzeitig darstellen aber nur wenn du wenig models mit viel polygonen hast. viel models mit wenig polygonen brauchen mehr speicher. außerdem ist dein nexus zu groß. das braucht nicht viel speicher aber dennoch etwas.
wenn das auch nix bringt, dann sorry, weiß ich auch nicht weiter...
|
|
|
Re: Performance Probleme
[Re: sPlKe]
#286360
08/24/09 22:33
08/24/09 22:33
|
Joined: Jan 2005
Posts: 605 Deutschland, NRW
garv3
OP
User
|
OP
User
Joined: Jan 2005
Posts: 605
Deutschland, NRW
|
Hmm... Das wäre wirklich ein unglaublicher Aufwand. Aber davon ab ist es schlicht unmöglich, da der Spieler nicht einfach ein paar Kraftwerke baut. Es werden ca. 20 verschiedene Grundtypen an Gebäuden sein. Und diese sind dann noch individuell aufwertbar, was immer ein anderes Modell zur Folge hat. Ich denke, dass es also auf ca. 150 verschiedene Modelle herauslaufen wird. Jetzt nehmen wir an, ich will nur 4*4 Felder abdecken. Das sind dann - wenn mein mathematisches Verständnis mich nicht im Stich lässt - 506250000 verschiedene Kombinationsmöglichkeiten allein auf 4 Feldern. So viele Modelle kann man wirklich nicht erstellen!
GameStudio Version: A7 Pro v7.86
|
|
|
Re: Performance Probleme
[Re: Espér]
#286875
08/27/09 22:16
08/27/09 22:16
|
Joined: Jun 2007
Posts: 152 Norway
Darkyyes
Member
|
Member
Joined: Jun 2007
Posts: 152
Norway
|
Not to hijack this thread and german is not my language, but why not put one building model onto the map take a screenshot and cut the building out of the screenshot and save it as a sprite? and make each building be a sprite with the shadows casted? unless your camera is ingame adjustable, it should'nt be too big a problem?
New to lite-c and gamestudio in general, thank you for reading. Com, A7 v7.7
|
|
|
Re: Performance Probleme
[Re: Darkyyes]
#287282
08/31/09 07:48
08/31/09 07:48
|
Joined: Nov 2004
Posts: 7,121 Potsdam, Brandenburg, Germany
Machinery_Frank
Senior Expert
|
Senior Expert
Joined: Nov 2004
Posts: 7,121
Potsdam, Brandenburg, Germany
|
Such a sprite solution will not help. It is not a matter of polygons, vertices or texture size. The problem is Gamestudios's internal management of these entities. And this runs on CPU. So you can put a better graphic card into your PC and it will not improve the performance, if you have lots of entities on screen in Gamestudio.
Only an internal debug can help to find the reason for that (maybe there is a slow access to the entity database, missing instancing or something similar). It is hard to find a workaround here to help Garv in a better way. Only reducing the amount of objects in a level might help.
If Conitec really works on this MMO project soon, then they will come to this point also and will have to find a solution.
Models, Textures and Games from Dexsoft
|
|
|
Re: Performance Probleme
[Re: Machinery_Frank]
#287287
08/31/09 08:36
08/31/09 08:36
|
Joined: Aug 2000
Posts: 1,140 Baunatal, Germany
Tobias
Moderator
|
Moderator
Joined: Aug 2000
Posts: 1,140
Baunatal, Germany
|
Dein Game ist eigentlich 2D, also ist der Vorschlag von Darkyes mit den Sprites am besten. Experimentiere mit dem Endlessterrain Demo von der aktuellen Version, dann siehst du wieviele Entities deine Hardware schafft. Ich komme hier bei 30 fps auf ca. 8500 * 9 = 76000 Entities. Von denen sind ca. 2000 sichtbar, der Rest wird von der Engine weggeclippt. Nur die sichtbaren Entities tragen etwas zur Framerate bei. Du kannst die Zahl der Sprites mit den #defines am Anfang einstellen.
Bei dir sind alle Entities sichtbar, aber du hast weit weniger als 2000. Benutze Sprites für die Felder und für die Objekte darauf. Dann kannst du den Schatten mit Alphatransparenz machen und brauchst dafür kein extra Decal. Damit müsstest du auf deutlich weniger als 1000 Entities kommen, das entspricht 60 fps.
Noch etwas, Frameraten wie 280 fps sind zum Messen ungeeignet, weil du damit nicht dein Game misst sondern eher deine Monitorfrequenz oder die Background Tasks auf deinem PC. Pack das Spielfeld so voll dass du nur etwa 30 fps bekommst, dann kannst du testen was sich wirklich auf die Geschwindigkeit auswirkt.
|
|
|
|