Landwirtschaftsspiel mit BlitzMax

Übersicht Sonstiges Smalltalk

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen

DAK

BeitragMi, Aug 20, 2014 10:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Rennt bei mir leider nicht.

Mein System:
i7-3632QM mit 4x 2.2 GHz
Geforce 635M mit 144 Shader Units
8 GB RAM
Windows 7 64Bit

Zuerst hat er sich über fehlendes OpenAL beschwert, hab ich dann per DLL aus dem Internet nachgerüstet. Bin mir aber nicht sicher, ob ich die richtige DLL gefunden habe. Jetzt wird der Bildschirm beim Starten kurz schwarz, flackert ein paar Mal und das wars dann. Das Programm stürzt mit einem "Reagiert nicht mehr" ab.

Das Log-File ist leer, auch über die Konsole kommt nichts an Output.

Liefere doch bitte (sofern lizenztechnisch möglich) die passende OpenAL-DLL mit, oder gib uns einen Link, wo man sie her bekommen könnte.

Freut mich aber sehr, dass du das Spiel zum Download her gibst!

Ich habe übrigens die Game.ini angepasst für meinen Bildschirm:

1366
768
60
0

Aber auch mit den Standard-Werten läuft's nicht.
Gewinner der 6. und der 68. BlitzCodeCompo

Rasterbar

BeitragMi, Aug 20, 2014 12:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Das mit der fehlenden OpenAL war mein Fehler, sorry.

Sieht fast so aus als wenn die Engine nicht initialisiert werden kann.
Ich werde mich mal gleich dran setzen und eine neu exe compiliern wo nur die Engine inizialisert wird. Ich pack die fehlende OpenAL damit rein.
Die neue exe braucht nur in das Spieleverzeichnis kopiert werden, ich verpass der einen anderen Namen.

Es müsste zumindest in der Log was stehen, mit Maxgui läuft die Engine auch nicht, aber in der Log steht dann das die Hardware veraltet ist und mindestens OpenGL 1.2 benötigt wird. Das liegt an dem Framework der Engine.

Meine log sieht so aus:
Leadwerks Engine 2.5
Initializing Renderer...
OpenGL Version: 4.4.0
GLSL Version: 4.40 NVIDIA via Cg compiler
Render device: GeForce GTX 560 Ti/PCIe/SSE2
Vendor: NVIDIA Corporation
DrawBuffers2 supported: 1
32 texture units supported.
GPU instancing supported: 1
Max batch size: 64
Shader model 4.0 supported: 1
Conditional render supported: 0

Ich melde mich dann wieder.

DAK

BeitragMi, Aug 20, 2014 12:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm, meine Karte kann aber OpenGL 4.4, 1.2 sollte somit ohne Weiteres drin sein.

Könnte es vllt. an einer falschen Version von OpenAL liegen, weswegen das Programm gar nicht starten kann, da OpenAL nicht initialisiert werden kann?
Gewinner der 6. und der 68. BlitzCodeCompo

Rasterbar

BeitragMi, Aug 20, 2014 14:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe jetzt mal einpaar Test gemacht um das minimum zum Starten der Engine zufinden.
Nachdem entpacken gibt es ein Verzeichnis, da ist die OpenAL exe mit drin zum installieren.
Mehr als das was in dem Verzeichnis ist braucht man nicht, einfach die Projekt exe in dem Verzeichnis mal starten.

Ich mal 2 Logs von mir im Verzeichnis gelassen und Engine wird jetzt im Fenstermodus gestartet.

Project3dFarm_init (ca.1.6mb)

BladeRunner

Moderator

BeitragMi, Aug 20, 2014 14:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Startet bei mir aus der unentpackten Zip einwandfrei.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

DAK

BeitragMi, Aug 20, 2014 16:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Jup, hat scheinbar an der falschen OpenAL gelegen. Nach der Installation hat auch das originale Programm funktioniert. FPS liegen bei mir (wenn alles aktiviert ist) bei rund 20, wenn nichts aktiviert ist gegen 50.

Es schaut alles wirklich schön aus (zumindest wenn Vegetation und Gemüse aktiviert sind).

Verwendest du eigentlich irgendeine Art von LOD oder Culling? Wenn nicht, dann könntest du wohl besonders bei der Vegetation und dem Gemüse stark noch was an Leistung rausholen. So sind weiter entfernte Feldpflanzen kaum größer als ein oder zwei Pixel, weswegen man sie z.B. ausdünnen und dafür gegen größere Objekte austauschen kann. Also dass du nicht mehr ein Objekt für eine Pflanze hast, sondern mehrere Pflanzen in einem Objekt zusammenfasst. Das würde optisch keinen Unterschied machen (wenn du es gut machst), aber doch deutlich was an Leistung rausholen.

Schreibst du deine Shader selbst oder verwendest du vorgefertigte Shader? Dort lässt sich üblicherweise auch noch viel drehen.
Gewinner der 6. und der 68. BlitzCodeCompo

count-doku

BeitragMi, Aug 20, 2014 17:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Jup läuft. Sehr gut mit konstanten 80FPS ob mit oder ohne Vegetation bleibt sich gleich. Wobei die 80FPS mein Treiberfix sein müssten Smile

Wenn du da jetzt noch irgendein Ziel oder so rein kriegst wäre es schon echt geil, mach aufjedenfall daran weiter

lg,
count-doku
 

D²O

BeitragMi, Aug 20, 2014 19:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Läuft auch bei mir.
Habe mal ein kleines Screenvideo gemacht.
http://www.deuteriumoxid.com/bb/rasterbar.mp4
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;

Rasterbar

BeitragMi, Aug 20, 2014 22:25
Antworten mit Zitat
Benutzer-Profile anzeigen
@All: Danke erstmal fürs Testen!
Ging ja besser als ich dachte.

Danke fürs Video, war sehr Interessant für mich mit den FPS.

Dann werde ich jetzt erstmal an der Performance schrauben. Schatten, Wasserreflektion, Sichtweiten der Vegetation und Getreide. Da ist einieges an Leistung rauszuholen. Ich werde das zum Einstellen machen.

DAK hat Folgendes geschrieben:
FPS liegen bei mir (wenn alles aktiviert ist) bei rund 20, wenn nichts aktiviert ist gegen 50.

Die Standard Einstellungen sind auf mein System ausgelegt, Gemüse oder besser Getreide Objekte können durch verringern der Dichte mit Taste 5 reduziert werden. Mit den Bäumen geht das auch, Taste 9, je größer die Zahl desto weniger Bäume.

DAK hat Folgendes geschrieben:
Verwendest du eigentlich irgendeine Art von LOD oder Culling?

Ja, das Getreide hat eine Lodstufe wo die Polys halbiert werden, die Anzahl der Objekte kann nicht zusammengefasst werden. Die Bäume haben 2 Lodstufen, wobei die letzte Billboards sind.

DAK hat Folgendes geschrieben:
Schreibst du deine Shader selbst oder verwendest du vorgefertigte Shader?

Shader die mir fehlen schreib ich selber oder ändere vorhandene ab.

Rasterbar

BeitragDo, Aug 21, 2014 15:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Update für die Performance Einstellungen sind soweit fertig zum Testen.
Project3dFarm_update (ca. 1mb)

Die Dateien müssen in das Spieleverzeichnis kopiert werden, ggf. ersetzen. Die Abstufung der Wasserspiegelung und das ausschalten der Vegetationsschatten dürfte wohl am meisten an FPS bringen. Ich habe die Schattenauflösung und die Sichtweite der Schatten halbiert, dürfte auch einieges gebracht haben. Die Qualität leidet natürlich deutlich in den Voreinstellungen, kann soweit aber angepasst werden.
Bei der Sichtweite erhöt sich auch die Entfernung der Lodstufen, also Steigt der Polycount an je größer die Sichtweite wird.

DAK

BeitragDo, Aug 21, 2014 19:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habs noch nicht testen können, da ich noch nicht zu hause bin, aber es gibt noch einige Verbesserungen, die du machen kannst, ohne dass das Aussehen irgendwie darunter leidet.

Diese Verbesserungen sind jetzt hauptsächlich für die Feldpflanzen, also Fruits, nicht für Bäume und so.

Über die Auflösung und das FOV kannst du berechnen, ab welcher Distanz eine Pflanze nur mehr 1 Pixel groß ist. Ab dieser Distanz sind Schatten sowie Alpha und Texturen generell völlig sinnlos. Gerade Alpha kann hier der Performance schaden, da der Depth-Buffer nicht verwendet wird, und so jedes Pixel eventuell mehrfach gerendert werden muss (ein mal für jede Pflanze, die an dem Pixel sichtbar wäre).
Alle Pflanzen ab dieser Entfernung können als ein untexturiertes undurchsichtiges Objekt mit einer zufälligen Farbe, die der Textur ähnelt (z.B. zufälliger Grünton) dargestellt werden. Schaut eventuell sogar besser aus.

Alle Pflanzen, die nur ein paar Pixel groß wären, können zumindest Schatten und Alpha einsparen. Beides sollte einen schönen Performanceboost bringen, ohne dass die Grafik darunter leidet.

LOD, dass über mehrere Pflanzen hinweg geht, sollte dir auch viel helfen können, da du somit die Vertex- und Surface-Zahlen senken kannst. Das heißt, weniger Aufrufe des Vertex-Shaders und der Grafikpipeline.
Außerdem sparst du dir mit weniger Objekten einiges an Matrixmultiplikationen.
Da die Feldpflanzen soweit ich sehe eh nur Billboards sind, solltest du auch sonst ohne weiteres mehrere Pflanzen, die sich in einer Reihe befinden, zu einem Objekt zusammenfassen können.

Einzelne Billboards haben ja einen ziemlichen Verwaltungsoverhead im Vergleich zu größeren Objekten, da für jedes einzelne Billboard die ganze Grafik-Pipeline separat aufgerufen werden muss, und je nach Engine die Texturen jedes Mal separat in die Texture Unit geladen werden muss.
Deswegen sind ja auch z.B. in Blitz die Single Surface Partikelsysteme so viel schneller als einfache Billboards, da der Overhead nur ein einziges Mal für die ganze Partikelengine anfällt, und nicht für jedes Billboard.
Schaffst du dann auch mehrere Billboards zu einem größeren Billboard zusammenzufassen (z.B. mehrere Pflanzen in einer Reihe), dann senkst du dabei noch den Vertexcount, aber das wird eventuell schwieriger.
Gewinner der 6. und der 68. BlitzCodeCompo
 

D²O

BeitragDo, Aug 21, 2014 22:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Rasterbar, hab mal das Update mit den Verschiedenen einstellungen so lange getestet bis
die Framerate um die 34 lag.
Ich finde das lauft recht sauber wo auch noch das Screenvideo mit gelaufen ist.
Hier wieder ein Video wo die einstellungen mit anzeigt.
Diesmal etwas länger, so um die 9 min.
Damit die Datei nicht allzu gross ist aber dennoch anschaubar bleibt ist es auf 640 x 360 runter gerechnet.
www.deuteriumoxid.com/bb/Update_Rasterbar_1.mp4
Blitz+; Blitz3d; BlitzMax; GLBasic; Purebasic;
GameMaker Studio 1.4xx; AGK;

Rasterbar

BeitragFr, Aug 22, 2014 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
D²O hat Folgendes geschrieben:
Ich finde das lauft recht sauber wo auch noch das Screenvideo mit gelaufen ist.

Die FPS sind wirklich gut, die 34FPS kommen daher weil der ViewRange Parameter auf 7 stand.
Ein Wert von 1 ist der Normale Wert, da werden die Bäume zb. bis 600m (Billboards) gerendert. Die Map hat aber "nur" 512m Seitenlänge. Bei dem ViewRange von 7 werden auch keine LODs mehr gerendert weil die 1. Lodstufe bei einem ViewRange von 7, erst bei 525m kommt (75m*7).

Mit Taste 0 (NULL), wird die Vegetation (Bäume, Gras) neugeneriert, geht so oft wie man Lust hat. Die Wachstumsstufen der Feldfrüchte kann man mit Taste 1 durchschalten.

DAK hat Folgendes geschrieben:
FPS liegen bei mir (wenn alles aktiviert ist) bei rund 20, wenn nichts aktiviert ist gegen 50.

Ich vermute es liegt am Terrain, weil ohne Vegetation sind 50FPS viel zuwenig. Schaumal in die Log was unter texture units steht.
Soweit ich gesehen habe hat die GeForce635M 8 Textureinheiten, der Terrain-Shader arbeitet mit 16 Texturen. Der Shader wird Engine intern verwaltet, den kann ich nicht mal Preloaden um an die uniforms ranzukommen.

Das Update dürfte dann wohl nichts bringen, gebracht haben, weil die Hardware da limitiert.

DAK

BeitragSa, Aug 23, 2014 11:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Mein Log sagt Folgendes:

Code: [AUSKLAPPEN]
Leadwerks Engine 2.5
Initializing Renderer...
OpenGL Version: 4.4.0
GLSL Version: 4.40 NVIDIA via Cg compiler
Render device: GeForce GT 635M/PCIe/SSE2
Vendor: NVIDIA Corporation
DrawBuffers2 supported: 1
32 texture units supported.
GPU instancing supported: 1
Max batch size: 64
Shader model 4.0 supported: 1
Conditional render supported: 0


Sollte also noch mehr als genug Texture Units frei haben.

Mit den Standardeinstellungen mit dem neuen Patch habe ich ~55 FPS ohne irgendwas, mit Vegetation aber ohne Fruits habe ich es nicht unter 45 FPS gebracht. Mit Fruits und Vegetation bin ich auf 35 FPS gekommen. Besonders schlimm war es, wenn ich mitten in den Fruits gestanden bin, was das Alpha-Problem bestätigen könnte, da hier aufgrund von viel Durchsichtigem die Fragment Shader für jedes Pixel mehrfach aufgerufen werden müssen. Versuch mal als LOD weiter weg entfernte Fruits undurchsichtig zu machen.

Wegen dem Terrain:
Hat Leadworks dynamisches LOD bei den Terrains (so wie es B3D hat)? Wenn nicht, dann kann man sich zumindest statisches LOD sehr einfach für Terrains basteln (gesetzt, es ist ein Heightmap-Terrain).
Alles was du tun musst ist beim Laden das Terrain-Bild in mehrere kleine Bilder zerlegen (vielleicht in 16 Stücke zerlegen oder so). Eine stärkere Zerteilung kostet dich Overhead für viele Objekte, eine zu schwache Zerteilung kostet dich unnötige Aufrufe des Vertex-Shaders. Musst also herumspielen, wie es passt.

Allein durch die Zerlegung machst du schon was besser, da Terrain-Teile, die sich nicht im Sichtfeld befinden, geculled werden können, und somit gar nicht zum Vertex-Shader kommen.

Für Teile, die sich im Sichtfeld befinden, aber weit weg sind, kannst du statisches LOD machen. Dabei machst du im Grunde eine MipMap für jedes Terrain-Teil. Zwei oder drei Stufen reichen dafür. Für jede dieser Stufen lädst du das Terrain und skalierst sie alle so, dass die Terrain-Teile alle gleich groß sind. Wenn die Kamera sich nahe an dem Teil befindet, dann zeigst du die detaillierteste Stufe an und hidest alles andere. Wenn das Teil weiter weg ist, dann zeigst du hald eine weniger detaillierte Stufe.

Machst du das richtig mit den Entfernungen, dann hast du ein gleich schönes Terrain, belastest den Vertex-Shader aber weniger als die Hälfte.
Gewinner der 6. und der 68. BlitzCodeCompo
 

Tritium

BeitragSa, Aug 23, 2014 12:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin, hab das mal auf meinem Rechner laufen lassen, vielleicht hilfts Dir ja Smile

Rechner: Thinkpad T500, 8GB RAM, Core 2 Duo 2.4GHz, ATI Mobility Radeon HD 3650, Win7 Pro SP1 64bit
(Die Rechner sind bekannt für schlechte/unvollständige OpenGL-Unterstützung)

Log:
Code: [AUSKLAPPEN]
Leadwerks Engine 2.5
Initializing Renderer...
OpenGL Version: 3.3.10318 Compatibility Profile Context
GLSL Version: 3.30
Render device: ATI Mobility Radeon HD 3650
Vendor: ATI Technologies Inc.
DrawBuffers2 supported: 1
16 texture units supported.
GPU instancing supported: 1
Max batch size: 32
Shader model 4.0 supported: 1
Conditional render supported: 0

Mit dem ersten Download (50MB) krieg ich so 4-7FPS bei 1680x1050 und voller Vegetation & Fruits. Hab allerdings keinen Sound, muss das so?

Wenn ich das Performance-Update reinkopiere startet die exe nichtmehr, bekomm aber keinerlei Fehlermeldung. Der Log ist dann ziemlich kurz:
Code: [AUSKLAPPEN]
Leadwerks Engine 2.5
Initializing Renderer...
OpenGL Version: 3.3.10318 Compatibility Profile Context
GLSL Version: 3.30
Render device: ATI Mobility Radeon HD 3650
Vendor: ATI Technologies Inc.
DrawBuffers2 supported: 1
16 texture units supported.
GPU instancing supported: 1
Max batch size: 32
Shader model 4.0 supported: 1
Conditional render supported: 0
Loading shader "zip::c:/users/x/downloads/project3dfarm/project3dfarm/shaders.pak//shaders/query.vert", ""...
Invoking script "C:/Users/x/Downloads/Project3dFarm/Project3dFarm/Scripts/start/collisions.lua"...
Loading texture "zip::c:/users/x/downloads/project3dfarm/project3dfarm/materials.pak//materials/test1brush.dds"...
Loading shader "zip::c:/users/x/downloads/project3dfarm/project3dfarm/shaders.pak//shaders/editor/generic.vert", "zip::c:/users/x/downloads/project3dfarm/project3dfarm/shaders.pak//shaders/editor/sobel.frag"...
Loading heightmap...
Loading shader "zip::c:/users/x/downloads/project3dfarm/project3dfarm/shaders.pak//shaders/terrain/terrain_flat.vert", "zip::c:/users/x/downloads/project3dfarm/project3dfarm/update.pak//update/terrain.frag"...

Rasterbar

BeitragSa, Aug 23, 2014 20:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Performance Update, der Anisotropische Filter stand auf 8, der hat bei mir ~100FPS gekostet.

- der Anisotropischen Filter (AFilter) kann jetzt durchgeschaltet werden von 0..8. Taste M
- es wird jetzt der Polycount und der Polycount der Schatten angezeigt.
- die Terrain Lodstufen können durchgeschaltet werden (High, LOD1 bis LOD4) Taste L

Das Update2 wird nicht benötigt, ist für DAK drin wegen dem Alphakanal der Fruittexturen.

Project3dFarm_update2/3 (ca.2.5mb)

DAK hat Folgendes geschrieben:
Besonders schlimm war es, wenn ich mitten in den Fruits gestanden bin, was das Alpha-Problem bestätigen könnte, da hier aufgrund von viel Durchsichtigem die Fragment Shader für jedes Pixel mehrfach aufgerufen werden müssen. Versuch mal als LOD weiter weg entfernte Fruits undurchsichtig zu machen.

Im Update2 sind alle Fruittexturen jetzt ohne Alphakanal, habe ich dir mal fertig gemacht.

DAK hat Folgendes geschrieben:
Hat Leadworks dynamisches LOD bei den Terrains (so wie es B3D hat)? Wenn nicht, dann kann man sich zumindest statisches LOD sehr einfach für Terrains basteln (gesetzt, es ist ein Heightmap-Terrain).

Ja, es hat ein dynamisches LOD, leider ist das Terrain-System sehr "zugeknöpft", da kann man fast nichts rumschrauben. Das Vegetations-System ist auch davon abhängig, da kann man am Terrain nichts aufteilen usw.

Tritium hat Folgendes geschrieben:
Hab allerdings keinen Sound, muss das so?

Ja, es sind keine Sounds vorhanden.

Tritium hat Folgendes geschrieben:
Wenn ich das Performance-Update reinkopiere startet die exe nichtmehr, bekomm aber keinerlei Fehlermeldung.

Ich habe die Änderungen am Terrain-Shader Rückgängig gemacht, ist das Update3, das dürfte das Problem beheben mit dem starten.

Gehe zu Seite Zurück  1, 2

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group