strategiespiel Leistung

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

SYSThern

Betreff: strategiespiel Leistung

BeitragMo, Mai 05, 2008 12:32
Antworten mit Zitat
Benutzer-Profile anzeigen
hi

also ich arbeite grad an einem echtzeit-strategiespiel
wo mindestens 100 gegen 100 kämpfen.
bei mir aber gehen höchstens 10 gegen 10.
ich will das man so wie in MedivalII: Total War tausend gegen tausend oder mehr kämpfen lassen kann.

mit mit einem kämpfer ist die fps bei 132(variert zwischen 130 und 132)

mit 10 gegen 10 sinkt sie auf 44 runter.
könnt ihr mir vieleicht helfen? =)
Tools and Programms
--------------------
www.systhern.de

Tankbuster

BeitragMo, Mai 05, 2008 13:00
Antworten mit Zitat
Benutzer-Profile anzeigen
WAS?

Ich denke mal, du benutzt sehr hochaufgelöste Modelle mit sehr vielen Polys (schon bei 10 vs 10 nur 44FPS). Aber wie auch immer. Um so eine große Anzahl von Objekten zu erreichen sollte man ein Single-Surface-System benutzen. Du verbindest alle einzelnen Modelle zu einem Mesh. Das schwere dabei ist nur, dass du die einzelnen Soldaten dann nichtmehr einzeln ansprechen kannst. Ich weiß nicht, ob die Lösung, die ich dir jetzt gleich sage gut ist, aber theoretisch könnte das klappen: ^^

Schleife

. Modelle alle wieder anzeigen
. Mesh löschen
. Modelle bewegen
. Modelle zu einem Mesh zusammenfügen
. Modelle verstecken

Rendern (nur das Mesh wird gerendert)

Ende der Schleife


Dabei zu beachten ist, dass du die maximale Polygonzahl (irgendwas um 65000) eines Meshes nicht überschreitest. Also lieber immer 100 Soldaten zu einem Mesh zusammenfügen als alle 10000 auf einmal. Sonst kommt sowieso ein MAV.

Ich hoffe, ich konnte helfen =)
Twitter
Download Jewel Snake!
Windows|Android

peacemaker

BeitragMo, Mai 05, 2008 13:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Was mich an der B3D-Engine gestört hat, ist das Instancing nicht möglich ist. Ich denke bei diesen Spiele ist das so gemacht, denn auch wenn die Objekte z.B. nur 500 Polys hätten, wäre das im Grossen noch viel mehr. Und diese Spiele die du erwähnt hast, haben ziemlich detailreiche Modelle.

Instancing ist eine Technik, die es ermöglicht, beliebig viele Objekte bzw. Kopien von einer zu machen mit nur sehr geringem Ressource-Verbrauch. Dabei werden hauptsächlich Daten des Ursprungsmeshes übernommen.
~Tehadon~
www.tehadon.de
http://www.blitzforum.de/worklogs/14/

SYSThern

Betreff: jo

BeitragMo, Mai 05, 2008 13:58
Antworten mit Zitat
Benutzer-Profile anzeigen
also mein modell braucht ungefähr 2380kb viel zu viel! Smile

wenn ich alle nicht gebrauchten polys in einem modeller lösche und die texturen verkleinere könnte das vieleicht ja die fps steigern?!

wenn ich in blitz3d das nicht schaffen kann dann mach ich was anderes! Sad
mfg Quay
Tools and Programms
--------------------
www.systhern.de

Tankbuster

BeitragMo, Mai 05, 2008 14:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Also die Modelle sind VIEL zu groß!
mach alle mal auf maximal 100kb, und teste es dann nochmal. Du wirst merken, dass alles viel besser läuft.
Dann mach am besten noch eine wirkliche low-poly Version, die du (zusätlich zum Single Surface) an Stelle des Meshes einsetzt, wenn die Camera weiter weg ist.


Es ist sicherlich möglich, auf irgendeine Weise soviele Einheiten in Echtzeit anzuzeigen aber mach dich auf sehrviel Arbeit gefasst.

Ansonsten solltest du dir eine schöne Engine suchen, die Instancing unterstützt, und C lernen Wink
Twitter
Download Jewel Snake!
Windows|Android

Ray-Tracer

BeitragMo, Mai 05, 2008 16:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum sollte man in Blitz3d keine 200 player-meshes rendern können ?
Hab ich irgendwas verpasst ,seit wann interressiert es wieviel kB ein Model hat ? -die Polygon(Trisses) sind evtl. wichtig
seit wann sollte man animierte meshes zusammenkleben ? -Level-geometrie -ja

habt ihr schonmal hundert animierte meshes aufm Bildschirm gezaubert ?,da wird ziemlich schnell klar ,das man keine High-Poly-Modelle braucht.

Quay - Du musst schon ein paar Informationen geben ,damit man dir auch wirklich helfen kann.
__wunschklang__

Tankbuster

BeitragMo, Mai 05, 2008 16:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Warum sollte man in Blitz3d keine 200 player-meshes rendern können ?

Kann man, aber (kommt auf die Komplexität der Modelle an) dann gehen die FPS in den Keller ^.^

Zitat:
Hab ich irgendwas verpasst ,seit wann interressiert es wieviel kB ein Model hat ? -die Polygon(Trisses) sind evtl. wichtig

Die Dateigröße hat meistens auch was mit den Vertis und Faces zu tun. Natürlich gibt es verschiedene Formate, von denen manche etwas kleiner sind, aber Ich denke nicht, dass da jemand 2000kb ohne Sinn in eine Modell-Datei reinschreibt.

Zitat:
seit wann sollte man animierte meshes zusammenkleben ? -Level-geometrie -ja

habt ihr schonmal hundert animierte meshes aufm Bildschirm gezaubert ?,da wird ziemlich schnell klar ,das man keine High-Poly-Modelle braucht.

Eben darum sollte man irgendwas versuchen, um das möglich zu machen. Wink
Ich hab kein Plan ob meine Idee funktioniert, oder wirklich FPS-schonender ist, aber dürfte klappen. Very Happy
Twitter
Download Jewel Snake!
Windows|Android

Silver_Knee

BeitragMo, Mai 05, 2008 16:59
Antworten mit Zitat
Benutzer-Profile anzeigen
CopyEntity Dann schaffst du evtl 100 vs 100 gleiche gegner falls das schon geschehen ist, kuk wo du sparen kannst...

Mr.Keks

BeitragMo, Mai 05, 2008 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, copyentity betreibt so etwas ähnliches wie das, was du mit instancing meinst, peacemaker!

für so riesige einheitenmassen wie in in der totalwar-reihe ist der trick eigentlich recht simpel: nur die wirklich spielernahen einheiten sind soo detailiert. schon ab einem abstand, wie er in schlachten üblich ist, tuns auch detailärmere modelle. und ab einer gewissen enfernung reichen auch sprites völlig aus.
MrKeks.net

SYSThern

Betreff: jo

BeitragMo, Mai 05, 2008 19:47
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich benutz copyentity und werde nun es nun auch mal low-poly modellen versuchen!

hab nur proplem:

sollte ich für weit entfernte einheiten sprites benutzen, soll ich dann die mesh löschen oder verstecken und das sprite laden oder anzeigen?
Tools and Programms
--------------------
www.systhern.de

ZaP

BeitragMo, Mai 05, 2008 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Verstecken, der Geschwindigkeit halber. Dann bleiben sie zwar im Speicher, aber davon haben die meisten hier ja genug. Versuch doch für entfernte Einheiten eine Art schemenhaften Umriss zu verwenden, das sieht nicht nur realistischer aus, sondern spart auch Arbeit, denn auch Sprites wollen animiert werden.
Starfare: Worklog, Website (download)

SYSThern

Betreff:

BeitragDi, Mai 06, 2008 12:24
Antworten mit Zitat
Benutzer-Profile anzeigen
ok und wie meinst des jetzt mit dem schematischen umriss?
Tools and Programms
--------------------
www.systhern.de

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group