Gamestudio Links
Zorro Links
Newest Posts
Executing Trades on Next Bar Open
by Zheka. 06/20/24 14:26
Lapsa's very own thread
by rki. 06/19/24 11:27
A simple game ...
by VoroneTZ. 06/18/24 10:50
Face player all the time ...
by bbn1982. 06/18/24 10:25
Zorro Beta 2.61: PyTorch
by jcl. 06/10/24 14:42
New FXCM FIX Plugin
by flink. 06/04/24 07:30
AUM Magazine
Latest Screens
The Bible Game
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Who's Online Now
2 registered members (RealSerious3D, rvl), 1,187 guests, and 7 spiders.
Key: Admin, Global Mod, Mod
Newest Members
squik, AemStones, LucasJoshua, Baklazhan, Hanky27
19060 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Ellipsoid Kollision Slowdown #112619
02/18/07 18:04
02/18/07 18:04
Joined: Aug 2005
Posts: 343
Germany
HPW Offline OP
Senior Member
HPW  Offline OP
Senior Member

Joined: Aug 2005
Posts: 343
Germany
Ich habe mein Spiel von der Programmierung her fast fertig und werde demnächst nur noch weitere Levels und Models erstellen müssen. Aber vorerst müsste ich noch ein paar Probleme beheben. Ein Problem ist die Geschwindigkeit beim Ellipsoid Kollisionssystem.
Ich habe momentan ein simples BSP Testlevel und darin sind 3 Entities mit folgenden Einstellungen:

my.polygon = off;
my.passable = off;
my.untouchable = on;

my.enable_impact = on;
my.enable_entity = on;
my.enable_shoot = on;
my.enable_scan = on;
my.enable_detect = on;
my.enable_trigger = off;
my.enable_push = off;
my.enable_touch = off;
my.enable_release = off;

wait(1);
c_setminmax(me);

Die Entities benutzen c_move und c_rotate funktionen (jeweils nur eine) und haben alle ca. 3000 Polygone. Die Variable enable_polycollision steht auf 2. Soweit ist auch noch alles in Ordnung. Sobald jetzt das Level startet stehen die Entities alle weit voneinander entfernt und die Millisekunden bei fnc (functions) stehen im Debug Panel auf ca. 5. Kommen jetzt die Entities zusammen ca. 5 virtuelle Meter Entfernung gehen die Millisekunden auf 13 hoch (was einen heftigen slowdown zur folge hat; von > 130 auf 45 FPS). Wenn die Entities immer näher kommen (<5 Meter) werden die Millisekunden immer höher bis ca. 33 (15-20 FPS) bei Kollision der Bounding Boxen. Sobald ich die Variable enable_polycollision auf 0 oder bei den Models my.passable auf on setze bleiben die Millisekunden immer auf etwa 3, selbst bei Kollisionen.

Jetzt meine Fragen dazu:

1. Ist das normal? (Im Manual steht ja bereits das es langsamer ist)
2. Was könnte ich dagegen machen, das es dennoch schneller läuft? (Funktionen sind wirklich nicht das Problem, alles wurde optimal programmiert. Bin alles ca. 10 mal durchgegangen und habe keine Möglichkeiten mehr wait Anweisungen einzubringen oder c_... Anweisungen wegzulassen.)
3. Braucht man Ellipsoide Kollisionen für das kommende concave Levelsystem oder reicht AABB?
4. Ändert sich vorraussichtlich bei A7 oder bei der nächsten A6 Version irgendetwas an am Kollisionssystem?

Last edited by HPW; 02/18/07 18:08.

Evil Blood (v. 0.52) RPG
Commport.de (Social Network Community)
Re: Ellipsoid Kollision Slowdown [Re: HPW] #112620
02/18/07 18:59
02/18/07 18:59
Joined: Jan 2007
Posts: 2,247
Deutsch Niedersachsen
Puppeteer Offline
Expert
Puppeteer  Offline
Expert

Joined: Jan 2007
Posts: 2,247
Deutsch Niedersachsen
ist vielleicht offtopic, aber was ist die "Ellipsoid Kollision", klingt interressant

Last edited by derOmega; 02/18/07 19:00.

Formally known as Omega
Avatar randomness by Quadraxas & Blade
http://omegapuppeteer.mybrute.com
Re: Ellipsoid Kollision Slowdown [Re: Puppeteer] #112621
02/18/07 20:38
02/18/07 20:38
Joined: Aug 2005
Posts: 343
Germany
HPW Offline OP
Senior Member
HPW  Offline OP
Senior Member

Joined: Aug 2005
Posts: 343
Germany
Es ist das aktuelle Kollisionssytem was standardmäßig momentan genutzt wird.
Das hier zu erklären würde wirklich sehr offtopic sein, daher ein Link wo du es nachlesen kannst: http://www.conitec.net/beta/collision.htm
Übrigens ist es nicht verkehrt öfters mal nach Updates ins Manual zu schauen.


Evil Blood (v. 0.52) RPG
Commport.de (Social Network Community)
Re: Ellipsoid Kollision Slowdown [Re: HPW] #112622
02/19/07 12:55
02/19/07 12:55
Joined: Jan 2007
Posts: 2,247
Deutsch Niedersachsen
Puppeteer Offline
Expert
Puppeteer  Offline
Expert

Joined: Jan 2007
Posts: 2,247
Deutsch Niedersachsen
Achso ich dachte dss wäre irgentein special plugin


Formally known as Omega
Avatar randomness by Quadraxas & Blade
http://omegapuppeteer.mybrute.com
Re: Ellipsoid Kollision Slowdown [Re: Puppeteer] #112623
02/19/07 17:17
02/19/07 17:17
Joined: Jul 2000
Posts: 27,987
Frankfurt
jcl Offline

Chief Engineer
jcl  Offline

Chief Engineer

Joined: Jul 2000
Posts: 27,987
Frankfurt
In der Tat ist das neue OBB-System langsamer als das alte AABB-System. Zwar sollte der Unterschied normalerweise im 50%-Bereich liegen, allerdings kann es in manchen Faellen auch mehr sein.

Das Kollisionssystem wird zwar mit neuen Funktionen erweitert, am Prinzip wird sich aber in absehbarer Zeit nichts aendern. Fuer konkave Levels wird das schnellere AABB-System nicht funktionieren.

Wenn Sie wollen, koennen Sie das Projekt an den Support senden - ich sehe mir an, ob das Verhalten normal ist oder nicht. Ein typischer Anfaengerfehler ist das Setzen des POLYGON-Flags bei Actors, aber wie ich sehe, haben Sie das nicht getan.

Re: Ellipsoid Kollision Slowdown [Re: jcl] #112624
02/19/07 19:50
02/19/07 19:50
Joined: Aug 2005
Posts: 343
Germany
HPW Offline OP
Senior Member
HPW  Offline OP
Senior Member

Joined: Aug 2005
Posts: 343
Germany
Da das Spiel in der aktuell vorliegenden Version, ohne ausführliche Einweisung in die Administration, etwas schwer zu bedienen ist, werde ich ein paar Anpassungen am Spiel vornehmen und es dann an den Support senden. Da die Anpassungen noch ein wenig Zeit in anspruch nehmen, könnte es sich aber um ein paar Tage Wartezeit bis zum Eintreffen der Testversion handeln.


Evil Blood (v. 0.52) RPG
Commport.de (Social Network Community)
Re: Ellipsoid Kollision Slowdown [Re: HPW] #112625
02/21/07 20:35
02/21/07 20:35
Joined: Aug 2005
Posts: 343
Germany
HPW Offline OP
Senior Member
HPW  Offline OP
Senior Member

Joined: Aug 2005
Posts: 343
Germany
Oha, wollte grade alles zum mailen fertigstellen und merke grade, das es bereits ca. 140 MB groß. Also mit zusenden per E-Mail ist das denke ich nicht möglich.
Sehe auch dass das Model alleine 20,6 MB inkl. Texturen groß ist. Könnte es vielleicht damit etwas zu tun haben? Sind 7 Texturen (Kopf, Oberkörper, Arme, Unterleib, Arme, Hände und Füsse) und (noch) ca. 5 Animationen.
Finde es recht groß, weil als nicht MDL ist das ganze um einiges kleiner (ca. 8,5 MB im Ganzen).
Würde ein Video zu dem ganzen auch ausreichen um herausfinden zu können woran es liegt, oder was schlagen Sie mir vor um das Problem genauer festlegen zu können?


Evil Blood (v. 0.52) RPG
Commport.de (Social Network Community)
Re: Ellipsoid Kollision Slowdown [Re: HPW] #112626
02/22/07 00:14
02/22/07 00:14
Joined: Aug 2005
Posts: 343
Germany
HPW Offline OP
Senior Member
HPW  Offline OP
Senior Member

Joined: Aug 2005
Posts: 343
Germany
Hab mit einigen Änderungen an meinem Code (c_move nicht dauernd aufrufen, nur bei gehen, springen und fallen) und Verwendung von vec_accelerate statt accelerate usw. die Millisekunden der Funktionen auf durchschnittlich 15 statt wie vorher 30 bekommen. Allerdings ist es immer noch viel langsamer als mit enable_polycollision = 0;
Jetzt können ca. zwischen 10 bis 20 Entities gleichzeitig herumlaufen und ich bekomme eine Framerate von ca. 30-35.

Mein System ist allerdings nicht unbedingt ein Standard PC:
Pentium D 3.2 GHZ
2 GB DDR 2 RAM
GeForce 7900 GS

Übrigens verwundert es mich sehr, dass c_move so langsam ist gegenüber c_rotate und beide aber im Manual mit Speed = Slow gekennzeichnet sind. c_rotate ist nach meinen Tests so gut wie garnicht merkbar in den Millisekunden, c_move dafür sehr stark.
c_rotate habe ich mit folgenden Flags verwendet: ignore_passable | ignore_push

Also momentan reicht mir diese Geschwindigkeit, allerdings ist meine KI noch nicht fertig (Pathfinding oder zumindest Ausweichroutinen fehlen noch). Leider werden auch meine Ideen für das Spiel nicht ganz umsetzbar sein, da ich mit mindestens 60 bis 100 Entities gleichzeitig gerechnet hatte. Für die Rendergeschwindigkeit werde ich LOD verwenden. Also ist nur noch die Geschwindigkeit der Scripte Problematisch. Könnte Lite-C oder eine C++ DLL das Ausführen der Scripte merkbar beschleunigen? Habe irgendwas zwischen 150 und 200 Scripte (Dateien) mit reichlich Funktionen drinnen. Allerdings steht im Debug Panel immer (nur) sowas zwischen 10 bis 25 Funktionen die dauernd laufen.

Last edited by HPW; 02/22/07 00:27.

Evil Blood (v. 0.52) RPG
Commport.de (Social Network Community)

Moderated by  old_bill, Tobias 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1