ZFX
ZFX Neu
Home
Community
Neueste Posts
Chat
FAQ
IOTW
Tutorials
Bücher
zfxCON
ZFXCE
Mathlib
ASSIMP
NES
Wir über uns
Impressum
Regeln
Suchen
Mitgliederliste
Membername:
Passwort:
Besucher:
4441190
Jetzt (Chat):
14 (0)
Mitglieder:
5239
Themen:
24223
Nachrichten:
234554
Neuestes Mitglied:
-insane-
"Nuclex" von Markus Ewald (Cygon)


Ich arbeite schon seit geraumer Zeit an einer Engine mit dem Titel "Nuclex", auf deren Basis ich demnächst beginnen möchte, Low-Budget-Spiele zu entwickeln. Der Screenshot zeigt das GUI-System dieser Engine.

Wer's mal interaktiv probieren möchte: www.nuclex.org

Die visuelle Gestaltung der GUI wird über Themes kontrolliert, so dass sich ein Anpassen der Oberflächen für ein bestimmtes Spiel sehr einfach gestaltet. Im Demo wird das Theme aus einer XML-Beschreibung namens xp.theme.xml geladen - wer Lust hat kann ja mal ein bisschen damit herumexperimentieren.

Komplexere Anpassungen, wie z.B. spezielle Steuerelemente und Anzeigen für ein Spiel, lassen sich ebenfalls mit geringem Aufwand realisieren. Die GUI kennt nur das Konzept des Widgets, der Basisklasse aller Steuerelemente. Die Implementation eines neuen Steuerelements beschränkt sich also auf ein triviales Ableiten einer neuen Klasse von Widget oder einem anderen Steuerlement, um dieses zu erweitern.

Nuclex selbst ist eine 100% Plugin-basierte Engine, d.h. alle nicht elementaren Komponenten wurden in dynamisch geladene DLLs ausgelagert. Das kann man sehr schön testen, indem man einfach mal eine der xyz.plugin.dlls aus dem Ordner löscht. Die Anwendung kann trotzdem noch starten, verliert aber z.B. die Fähigkeit, .zip-Archive zu öffnen oder .png-Bilder zu lesen.

Dem Beispiel liegt ferner auch die DoxyGen-Dokumentation jener Engine bei, welche auch alle öffentlichen Header der Engine beinhaltet. Falls also die Engine-bastler unter euch neugierig darauf sind, wie andere es gelöst haben, nur zu ;)

-Markus-






Von Tales am 18.05.2004, 05:07:39 Uhr
Die GUI ist gut, sehr klar im Aufbau und irgendwie lässt sie sich schön Benutzen..

Das Video und Audio Device sieht so aus wie eine SelectBox, das könnte man noch implentieren.. Wie baut man die Gui eigentlich auf, sind die Elemente hardcoded oder hast du ne externe Steuerungsmöglichkeit für den Aufbau der Dialoge?

Von Cygon am 18.05.2004, 07:32:17 Uhr
Die Dialoge werden wie bei .NET im Code angelegt (liest sich so: MyWindow.addWidget(new ButtonWidget(...))), weil ich sonst dynamic_cast<>en müsste, um z.B. an die Daten eines Controls zu kommen. Davon abgesehen ist es aber auch möglich die Dialoge z.B. aus einer XML-Beschreibung wie das Theme zu laden.

Dort oben sollten tatsächlich ComboBoxen stehen, die sind aber nicht mehr rechtzeitig fertig geworden, genauso wie das Clipping generell (schreib mal nen sehr langen string in die TextBox links unten *g*).

Von Richard Schubert am 18.05.2004, 08:28:01 Uhr
groovy, ich hoffe, dass unser GUI auch so gut wird.

Von Eiswuxe am 18.05.2004, 10:11:11 Uhr
und ich hoffe, dass die Spiele auch so gut werden :D

Sieht ja schonmal sehr schick aus.

Von iNzAnE am 18.05.2004, 11:17:31 Uhr
respekt!
vielmehr braucht man wohl nicht zu sagen. Ich bin auch grad was ähnliches am machen, bin zwar planungsmäsig schon so gut wie fertig, aber anschauen werd ichs mir mal.
Aber ... ist die Engine nicht fast etwas zu gut für low-Budget Spiele (ich sag das jetzt einfach mal so, weil die GUI schon sehr ausgereift aussieht und ich mal denke das es beim rest auch nicht anders aussehen wird)?

Von Richard Schubert am 18.05.2004, 11:35:15 Uhr
hehe, die Textbox ist echt witzig.
schonmalprobiert was bei Multisampling so passiert? klappt dann alles noch so gut?

Von odenter am 18.05.2004, 11:57:06 Uhr
Sieht ja nett aus, aber funzt bei mir nich.
Archiv runtergeladen entpackt, *.exe gestartet.
Ergebnis

Error source
Nuclex::Video::Direct3D9VideoDevice::createDevice()

Error description
Unexpected failure in IDirect3D9::CreateDevice() : D3DERR_NOAVAIABLE

Grafikkarte ist ne Matrox Millenium G550 mit nem WinXP und DX9

Von Cygon am 18.05.2004, 12:35:52 Uhr
@Richard: Hatte ja vor ein paar Monaten schonmal einen Thread dazu in deinem Forum. Sieht alles auch mit Multisampling vernünftig aus. Wenn ich bei mir AA via Treiber erzwinge wird allerdings der Cursor etwas fett, denn der wird als Linie gezeichnet ;)

@iNzAnE: Das schmeichelt mir =)
Habe zwar alles reingesetzt, die Engine sauber und robust zu machen, aber ich glaube bei den ganzen Features von erfolgreichen Vollpreis-Spielen käme ich nicht hinterher, da ich nur in meiner Freizeit dran arbeite.

@Odenter: Das dürfte bedeuten, dass deine Grafikkarte keine 3D-Beschleunigung in HW unterstützt oder zumindest keine Treiber installiert sind, die die nötigen D3D9-Features unterstützen.
Fals das bei anderen D3D9-Projekten doch geht würden mich (sofern du dir die Mühe machen willst) mal die Ausgaben der debug runtime interessieren. Bei www.sysinternals.com gibt's ein Tool namens "DebugViewer" mit dem sich das auch ohne IDE anzeigen lässt.

Von Mr.DX am 18.05.2004, 15:40:05 Uhr
Gefällt mir sehr gut.
Die Textbox hat jedoch keine Begrenzung, man kann drüber hinaus schreiben und das sieht nicht so toll aus. Aber sonst wirklich gut.

Von Richard Schubert am 18.05.2004, 19:58:46 Uhr
habs jetzt nochmal getestet, auf meiner FX5200 mit 8 FSAA, sieht echt mistig aus.

http://www.devagents.de/tmp/nuclex01.png

liegt aber mit hoher warscheinlichkeit an dem dummen AA-Verfahren von NV was bei DX-MS nicht auftreten sollte. vielleicht wäre trotzdem vorsichtshalber ein pixel mehr zwischen zwei buchstaben angebracht.

Von Cygon am 19.05.2004, 06:31:55 Uhr
Hui, das sieht wirklich verwaschen aus. Meine GF4 Ti4400 kann leider nur bis 4x4, wo mir halt nur der dickere Cursor auffällt.

Was mich eher schockt sind die 13.x FPS. Ich habe bei 4x4 AA noch über 130.x mit meiner kleineren GeForce.

-Markus-

Von Sergius am 19.05.2004, 07:31:21 Uhr
sieht echt lecker aus, gute leistung!

kleines bug: editbox akzeptiert keine deutsche umlaute

Von Richard Schubert am 19.05.2004, 09:36:02 Uhr

das liegt entweder an meiner CPU (333Mhz) oder an dem kaputten timer. weiß jetz nich welcher, aber eine API-funktion liefert nur schwachsinnige werte, daher zuckelt alles und viele games laufen garnicht erst. muss ich heut abend nochmal testen.

habs gerade nochmal hier auf arbeit getestet und da liefs mit 6XMS von ATI sehr gut, sieht genauso aus wie ohne MS.

Von malignate am 19.05.2004, 10:48:39 Uhr
Sehr schöne Arbeit...
funktioniert sehr gut und bekomme 250 frames auf ner Radeon 9700. Was mich aber stört. Ist die Text-Eingabe beim "Expert settings". Wenn ich mehr text eingebe als in die eingabe-box reingeht schreibt der rüber hinaus

Von Cygon am 19.05.2004, 12:32:45 Uhr
@Mr. DX & malignate: Habe ja in meiner zweiten Nachricht von oben schon darauf hingewiesen, dass ich generell noch kein Clipping drin habe. Weiss noch nicht ob das mit dem Scissor-Test gut geht oder ob ich das Clipping manuell über Anpassung von Vertex-/Texturkoordinaten durchführe.

@Sergius: Ist mir auch schon aufgefallen. Unterstützen tut sie das schon, einschliesslich jedes beliebigen UTF-16 unicode Zeichens, wenn man z.B. einen asiatischen Font nimmt. Irgendwo scheinen sich aber die WM_CHAR-Message und FreeType nicht über das verwendete Encoding einig zu sein =)

Von Helmut am 21.05.2004, 19:01:32 Uhr
Hi

sieht ganz nett aus. Die Elemente sind aber Dummys oder? Ich merk da nämlich keinen Unterschied, wenn man die anpasst.
Kleiner Tipp: Du solltest bei CreateWindow WS_POPUPWINDOW angeben, weil sich das Teil sonst minimiert wenn man oben klickt.

Ciau

Von Cygon am 24.05.2004, 12:03:25 Uhr
Falls du die Elemente in der XML Theme-Definition meinst, die sind zu 100% echt und werden auch alle interpretiert. Wenn du mal ein paar Koordinaten z.B. beim Zustand "normal" des Stils "window" änderst oder ein image-Element auskommentierst sollte das recht schnell auffallen. Habe hier zum Beweis auch noch ein anderes Theme: aqua.theme.zip. Einfach ins Demo-Verzeichnis auspacken, ersetzt xp.theme.png und xp.theme.xml - schon sieht das ganze so ähnlich aus wie MacOS ;)

Danke für den Hinweis mit WS_POPUPWINDOW, hatte bisher immer nur im Fenstermodus getestet und das noch garnicht gemerkt =)

Von ThunderEye am 24.05.2004, 19:51:26 Uhr
Hi,
jepp sieht super aus.
Ich denke Helmut meint eher die Sachen wie Stencil Shadows, Texture resolution, Geometry resolution etc. denn da ändert sich nix am Terrain, wenn man den Regler bewegt.
mfg
ThunderEye

Von Cygon am 25.05.2004, 12:10:33 Uhr
Autsch, logisch. Das sind wirklich nur Dummies und der gesamte Hintergrund, einschliesslich Terrain, wird von einer 70-Zeilen-Klasse übernommen ;)

Von CodeWarrior am 28.05.2004, 22:39:16 Uhr
@Cygon (19.5.04): Dein GUI sieht klasse aus und hat einige schöne Features.
Ich mache gerade was ähnliches (sieht hoffentlich auch blad so gut aus). Vor ca. 3 Wochen habe ich Clipping durch die DX9 ScissorRects implementiert. Ich war erstaunt, wie einfach das geht, abgesehen von ein paar Startschwierigkeiten. Ich fand die Dokumentation dazu aber recht knapp. Falls es dir ähnlich geht und du ein paar Tipps brauchst, können wir ja per ICQ Kontakt aufnehmen.