Console Mode (aka Editor) Remake

Update: Im Datei-Menue gibt es nun auch den Eintrag “Neu…”, mit dem man direkt ein leeres Szenario erstellen und in den Editor laden kann. Die wichtigsten Einstellungen kann man dann direkt im Dialog vornehmen (siehe Screenshot).

Was macht denn "Game mode"?

>CastleConstructionKit.ocd


:birthday:

Siehe Scenario.txt Game Mode

Ich finde das andere ja irgendwie viel interessanter:

>S2TowerOfHope.ocd

Ach, ok! Endlich kein MELE=1 mehr? :slight_smile:

Ich denke, das Problem ist, dass QOpenGLWidget seinen eigenen OpenGL-Kontext erzeugt, und der nicht mit dem von uns in CStdGLCtxQt erzeugten Kontext shared. D.h. all die Texturen, Buffer u.s.w. die wir erzeugt haben sind in paintGL nicht vorhanden. Bei mir führt das auch zu einem Absturz in C4TexRef::Lock, weil die Texturgröße nicht mit der Textur übereinstimmt, die in dem anderen OpenGL-Kontext die gleiche Nummer hat.

Hm, dann funktioniert wohl die ShareOpenGLContexts-Option nicht richtig. Wird vielleicht der Kontext in CStdGLCtxQt erzeugt, bevor die Option gesetzt wird?

Diesen Absturz hatte ich bisher noch nicht, aber das wäre eine mögliche Erklärung, warum der NVIDIA-Treiber einen Segfault produziert.

Ich habe eine Lösung gefunden mit der der CStdGLCtxQt-Kontext mit dem QOpenGLWidget context shared (siehe PR auf github). Vielleicht funktioniert "ShareOpenGLContexts" nur zwischen QOpenGLWidgets aber nicht zwischen QOpenGLWidgets und QOpenGLContexts?

Jetzt habe ich immerhin keinen Crash mehr, aber das Rendering funktioniert trotzdem noch nicht. Ich denke das liegt daran, dass VAOs nicht zwischen Kontexten geshared werden, und wir für den QOpenGLWidget-Context keine VAOs erzeugen. Ich schaue mal weiter…

>Vielleicht funktioniert "ShareOpenGLContexts" nur zwischen QOpenGLWidgets aber nicht zwischen QOpenGLWidgets und QOpenGLContexts?


Jetzt wo ich die Dokumentation nochmal lese, scheint das wohl tatsächlich der Fall zu sein. Wobei die von "classes like QOpenGLWidget" redet und dabei nicht ganz klar ist, dass QOpenGLContext da nicht mit eingeschlossen ist.

Damit ist tatsächlich auch der Crash im NVIDIA-Treiber gelöst, ich bekomme aber ebenfalls kein Bild.

Wenn ich unter "Window->New Viewport" einen neuen globalen Viewport erstelle bekomme ich ein Standbild. Wir müssen wahrscheinlich noch bei jedem Spiel-Frame ein redraw des OpenGL-Widgets auslösen.

Nur ein neuer Spieler-Viewport bleibt grau. Vielleicht ist es etwas mit dem FoW.

Edit: Jap, FoW war's. Fixed!

Update:

Der Editor ist nun einfacher zu erreichen! Ein neuer Knopf im Hauptmenue startet direkt im Konsolenmodus ohne geladenes Szenario (openclonk.exe --editor):



Wenn man den Editor so startet, landet man nun auf dem neuen Willkommensbildschirm, auf dem man die wichtigen Operationen (Neu, Oeffnen, Benutzerpfad) und die zuletzt geoeffneten Szenarien direkt sieht:

Toll!

Wenn jetzt noch irgendwie/-wo für einen Neuling erklärt wird, dass der Benutzerpfad Daten wie Screenshots und Spieler enthält - wär die Newbiefreundlichkeit-Sache auch abgehakt :slight_smile:

Könnte man vielleicht einfach dahinter oder drunter schreiben?

Man könnte  auch nach dem selben Prinzip einen Button "Screenshots" ins Hauptmenü tun, dass dann direkt den Screenshot-Ordner im Explorer öffnet. Nachteil ist natürlich, dass das von dem Vollbild-Menü aus vielleicht etwas verwirrend ist.

Vielleicht sollte der Knopf irgendwie getrennt sein von den anderen. Wenn ein Neuling die Knöpfe im Hauptmenü ausprobiert, sollte einer nicht einfach so das Spiel schließen.

Oder auf der Willkommensseite des Editors ein weiterer Link, der zurück in den Vollbildmodus führt.

Ja, man sollte aus dem Editor irgendwie wieder zurueck ins Spiel kommen. Vielleicht im Dateimenue und auf der Willkommensseite.

Okay, funktioniert auch unter Windows mit -opengl dynamic und den DLLs in platforms/! Allerdings wird wohl nicht oft genug gerendert; der Viewport lagt ziemlich.

Und die Scrollbalken vom Viewport sind weg.

Ich hatte bei mir den Eindruck, dass nur die Maus etwas lahmt und die anderen Animationen flüssig gerendert werden. Schau ich mir aber nochmal an.

Scrollbalken stehen ebenso auf der Todoliste, aber das dürfte mit Qt ja kein Problem sein.

> Allerdings wird wohl nicht oft genug gerendert; der Viewport lagt ziemlich.


Isilkor hatte irgendwann mal eingebaut, dass bei nicht fokussiertem Fenster nur 5fps laufen. Vielleicht liegt es daran?

Ich denke beides ist sinnvoll.