Entwickler-Ecke

Kommerzielle Projekte - ZweiDe


Fetze - Mi 23.04.08 15:27
Titel: ZweiDe
ZweiDe [http://zweide.fetzenet.de/] ist ein .Net Framework zur Spieleentwicklung, das auf OpenGL, Tao und irrKlang basiert und sich auf den 2D-Bereich sowie eine möglichst einfache Benutzung spezialisiert hat.
Der Sourcecode ist auch mit dem Kauf nicht verfügbar, jedoch existiert eine für nicht-komerzielle Zwecke kostenlose Demoversion, die einen Überblick über die Basis-Features verschaffen soll und eine Kostprobe darstellt. Mit dem Kauf der Vollversion bzw. einer ZweiDe-Lizenz stehen auch alle kommenden Updates für die Vollversion zur Verfügung.

Das Framework selbst ist bereits fertiggestellt (auch wenn natürlich noch Debugging folgt, sofern notwendig), wird aber aller Vorraussicht nach (Keine Garantie, jedoch derzeitige unverbindliche Eigenprognose) noch im Laufe der Zeit durch Zusatzmodule ergänzt, die nur für die Vollversion verfügbar sein werden. Ich selbst entwickle in C# mit Visual C# 2005 Express - .Net-Typisch sollte es jedoch problemlos möglich sein, die .dll auch in anderen .Net-Sprachen zu verwenden.


Zur Entwicklungsgeschichte:
Was mich zur Entwicklung dieses Frameworks bewogen hat, waren nicht primär finanzielle Interessen sondern vielmehr der Wunsch nach einem ebensolchen als Grundlage für eigene Projekte & Spiele - allerdings eine plattformunabhängige. Da ich nicht fündig geworden bin und außerdem schon eine Idee vom Codingstil sowie die Bedingung der einfachen Benutzung im Kopf hatte, fiel der Beschluss, das ganze selbst in Angriff zu nehmen. Gegen Ende der Entwicklung waren ein paar Features mehr als geplant hinzu gekommen (z.B. FreeType Font Support, formatierbarer Text, Pixmaps, o.Ä.) und mir kam die Idee, es doch mal mit einem Verkauf zu versuchen.
Stellenweise zog sich die Entwicklung ziemlich in die Länge, wenn es zum Beispiel um die Implementierung des FreeType-Loaders ging; beim Auslesen der von FreeType gerasterten Schriftzeichen zum Hinterlegen in einer jeweils eigenen Textur führte eine unerwartete Datenformatierung dazu, dass die gelesenen Buchstaben teilweisee nur noch als Pixelsalat erkennbar waren.
Ein anderes Beispiel ist die Implementierung von Render2Texture-Support via OpenGL Frame Buffer Objekten (kurz FBOs) denen es jeder unwissenden Vernunft zum Trotz nicht egal ist, in welcher Reihenfolge ihre Eigenschaften definiert werden.
Ein völlig eigenes Kapitel wiederum war die Textformatierung, denn wenn in einer Zeile mehrere Schriftarten, Zeichenabstände, Tabzeichen und eingeschobene Texturen einander die Klinke in die Hand geben, gestaltet sich die Berechnung der Zeilen- und Wortlänge in Pixeln als nicht gerade einfach - die allerdings notwendig ist, wenn man versucht, einen WordWrap-Algorithmus zu programmieren. Trotz alledem war ich am Ende froh, mir die Mühe gemacht zu haben, denn das Resultat scheint nun endlich einwandfrei zu funktionieren.

Wie dem auch sei.


Zu den Features zählen:
(Einige davon nur in der Vollversion)

:arrow: Grafik Setup, Initialisierung eines OpenGL-Fensters oder -Vollbildmodus mit nur einem Befehl
:arrow: Abfrage / Kontrolle von Nutzereingaben (Maus, Tastatur)
:arrow: Darstellung grundlegender geometrischer Figuren sowie (manuell) aller OpenGL-Primitives
:arrow: Transformation, (Optional: Vertex-)Coloring, (Optional:) Custom Texturing,..

:arrow: Laden und Speichern der meisten gängigen Texturformate durch den DevIL loader
:arrow: Einfache, auf wunsch pixelgenaue Darstellung von Texturen, auf Wunsch texturierung beliebiger Figuren / OpenGL-Primitives

:arrow: Laden von Bitmap-Fonts sowie FreeType-Schriftarten
:arrow: Darstellung von Text auf Basis geladener Schriftarten
:arrow: Sehr schnelle Textdarstellung durch dynamische Prerendering Technik
:arrow: Optionale Formatierung dargestellten Texts: Farbe, Schriftarten, eingebundene Texturen, Textausrichtung, Zeichenabstand, Mehrere Zeilen, WordWrap, Texteinrückung via "Tab",..

:arrow: Utility-class mit Unterklassen, die man "immer mal brauchen könnte". Neben LogFile und Profiler sind auch allgemeine Funktionen und Hilfsklassen(/Strukturen) wie Vector2D, Point<>, Rect<> oder DynArray2D<> vertreten.

:arrow: Sehr schnelle Render2Texture-Technik via FrameBufferObject
:arrow: Einfacher Zugriff auf Stencil- und Accumulation Buffer
:arrow: Optionales Z-Buffering
:arrow: Software Textur Skalierung (Nearest, Linear, QuadLinear, Hq3x)

:arrow: Soundsupport via irrKlang

:arrow: Öffentliche Felder, Klassen, Methoden und Attribute sind mit einem XML-Kommentar versehen, um die Handhabe des Moduls weiter zu erleichtern



Leider kann ich derzeit noch keine Screenshots zur Verfügung stellen, jedoch sind im Downloadpaket der Demoversion 6 lauffähige Beispielprogramme enthalten, welche die Grundfunktionalität des Moduls ausreichend veranschaulichen sollten. Ferner enthalten ist ein Visual C# 2005 Express Projekttemplate zur schnellen und einfachen Nutzung des Moduls.


Zum Abschluss noch etwas Beispielcode (Ausschnitte aus den Beispielprogrammen):

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
/* First we should initialize the ZweiDe module. Fortunately, there's a nice
 * doing nothing else than that.
 */

ZweiDe.Init
  (
    640,  // Gfx width
    480,  // Gfx height
    32,    // Gfx depth
    true,  // Windowed
    1    // Obeying the monitors swap interval; 0 would mean ignoring it.
  );



C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
ZweiDe.DrawPoint(10.0f10.0f);

ZweiDe.DrawLine(
  60.0f10.0f
  70.0f20.0f);
ZweiDe.DrawLineStrip(
  110.0f10.0f
  120.0f20.0f
  115.0f25.0f);
ZweiDe.DrawLineLoop(
  160.0f10.0f
  170.0f20.0f
  165.0f25.0f);

ZweiDe.DrawRect(10.0f60.0f30.0f30.0f);
ZweiDe.DrawOval(60.0f60.0f30.0f30.0ftrue);
ZweiDe.DrawPolygon(
  ZweiDe.VertexMode.QuadStrip, 
  115.0f60.0f,
  110.0f95.0f,
  140.0f65.0f,
  145.0f100.0f,
  175.0f55.0f,
  170.0f95.0f);



C#-Quelltext
1:
2:
3:
4:
5:
ZweiDe.SetBlend(ZweiDe.BlendMode.Alpha);
ZweiDe.SetColor(25500128);
ZweiDe.SetRotation((float)Math.PI * 0.25f);
ZweiDe.SetScale(0.6f0.4f);
...



Bei Interesse einfach auf der Website [http://zweide.fetzenet.de/] vorbeischauen und das ganze einfach mal ausprobieren (Siehe Sidebar-Unterpunkt "Quickstart"). :)


Der nette Nachbar - Mi 23.04.08 17:17

Bei allem Respect, du glaubst doch nicht wirklich dass, jemand für dein Programm bereit ist Zaster zu lassen? ;-)


Fetze - Mi 23.04.08 18:37

Ich habe sehr viel Arbeit in dieses Modul gesteckt und das Resultat ist nichts, was man "mal eben" in ein paar Tagen zusammengestrickt bekommt.
Da ich nicht glaube, dass jeder, der just4fun mal ein Spiel entwickeln will, bereit ist, dieselbe Arbeit in die absoluten basics - die noch nichts mit seinem Spiel zu tun haben - zu stecken, gehe ich davon aus, dass sich doch der eine oder andere Interessent findet. :)


F34r0fTh3D4rk - Mi 23.04.08 18:52

hi,

liegen denn auch Tools bei ? Sprich Editoren etc.
Weil ich finde, dass die beste Engine nicht viel Wert ist, ohne gute Tools.
Gerade im 2D Bereich kann man selbst in kürzerer Zeit ohne viel Aufwand zu gewünschten Ergebnissen kommen.
Nur hat man halt nicht immer die Lust, sich alle Tools selbst zu schreiben.

mfg


Fetze - Mi 23.04.08 19:20

Editoren liegen nicht bei - es gibt auch nicht viel zu editieren, da es sich hierbei nicht um ein auf ein konkretes Genre ausgerichtetes Framework handelt :)

Machs mal konkret: Welche Editoren hättest du denn gerne? Schließlich ist das ganze noch in (Weiter-)Entwicklung und ich kann für die Vollversion problemlos noch Zusatzpakete nachreichen, wenn entsprechender Bedarf bestünde.


F34r0fTh3D4rk - Mi 23.04.08 20:07

hi,
Naja ich dachte da an generelle Sachen wie einen 2D Level Editor auf Tilebasis. Der muss ja nicht konkrekt auf ein Genre zugeschnitten sein. Ein kleiner Editor für Animationen wäre auch was Feines. Wie gesagt, wenn jemand deine Engine kaufen soll, musst du den Leuten was bieten und je mehr Schnickschnack dabei ist, umso besser.

Kollisionserkennung und eine 2D Physik-Engine wären denke ich auch sinnvolle Features. Ich weiß nicht ob es units für mathematische Berechnungen gibt, aber generelle Sachen wie Vektorrechnung, Matrizen, Rotationen, Lösungen von Gleichungssystem, Schnittbestimmungen etc. wären wichtige Features.

Du könntest außerdem noch Post-Effekte via Shader einbauen. (Convolution Filter auch mit glConvolutionFilter)

mfg


Fetze - Mi 23.04.08 22:15

Kollisionserkennung und 2D Physik Engine werden definitiv nicht in den Support fallen - da ist der Konkurrenzdruck zu stark und ich gehe davon aus, dass die Konkurrenz in diesem Bereich auch - dank Spezialisierung nur auf diesen Bereich - mehr zu bieten hat.

Ein Editor für Tilemaps würde nicht recht ins Konzept passen, Animationen sowie ein Animationseditor wären jedoch denkbar und ein Zusatzmodul für die VOllversion wert. Angeregt dadurch würde ich dann aber wahrscheinlich einem Partikelsystem-Zusatz den Vorzug gewähren. :)

Einige der mathematischen Berechnungen, die du ansprachst finden sich im Utility-Untermodul, das sowohl bei Demo als auch Vollversion dabei ist. Vector2D sowie einige nützliche Punkt-Geraden und Geraden-Geraden-Funktionen sind schonmal vertreten.

Was die Postprocessing-Effekte angeht: Sehr guter Vorschlag. Per AccumBuffer kann man die zwar mit der Vollversion auch selbst erstellen, jedoch gibt es keinen Grund, da nicht einige vorgefertigte Effekte mit anzubieten. Kommt auf die Zusatzmodul-Ideenliste.

Was dort übrigens ebenfalls draufsteht und schon ganz gute Fortschritte gemacht hat ist ein skinfähiges auf dynamischem Prerendering (FBO, Render2Texture) basierendes GUI-Modul, das ZweiDe als Grundlage verwendet. :)


Fetze - Do 19.06.08 14:59

So, ab jetzt gibts auch eine reine Präsentationsdemo für ZweiDe, die "Source Demo: Graphics". Konkret ist das ein ZweiDe Programm, das wie ein Film gescriptet abläuft und dabei die grundlegenden grafischen Funktionen mitsamt dem dafür nötigen Code darstellt. Soll also einen Eindruck vom Modulstil und insbesondere der einfachen Verwendung vermitteln.

http://zweide.fetzenet.de/dl/Graphics%20Source%20Demo.zip

(Wenn ihr Spybot S&D installiert und mit TeaTimer laufen habt, kanns passieren, dass sich die .exe danach bis zum Neustart nicht mehr löschen lässt, weil der TeaTimer die Datei noch über das Ende ihrer Ausführung hinaus zum Scan gesperrt hält - warum-auch-immer. Falls jemand eine Idee hat, woran das liegen könnte, freue ich mich über jeden Hinweis. "Spybot S&D ist halt doof" zählt nicht.)

Achja: Die Kollisionserkennung habe ich nun doch nachgeliefert - als erste ZweiDe Extension* "ZweiDeXT.Collision". Es handelt sich dabei um formbasierte (Kreise, konvexe Polygone) Kollisionserkennung inklusive Rückgabe des MTV bei Kollision sowie den Kollisionspunkten. Physik gibts aber jetzt wirklich nicht ;)

*ZweiDe Extensions sind Module, die ZweiDe als Grundlage verwenden - jedoch laufen diese nur mit der Vollversion von ZweiDe.


Fetze - Di 24.06.08 17:21

Für alle Käufer von ZweiDe gibt es jetzt das Update zu Version 1.0.3 welches auf der ZweiDe Website [http://zweide.fetzenet.de/] heruntergeladen werden kann. Was sich genau verändert hat / was hinzugefügt wurde steht im Changelog [http://www.fetzenet.de/zweide/changelog.html].

Des Weiteren in der Downloadsektion zu finden ist nun auch die zweite Extension namens ZweiDeXT.DataIO. Mit ihr ist es möglich mit einem Minimum an Code eigene "Loader" und "Writer" zu erstellen. Loader können dann beispielsweise entsprechende Dateien einladen und eine daraus erstellte Baumstruktur aus entnommenen Daten zurückliefern - die vom zugehörigen Writer wiederum automatisch abgespeichert werden kann und FUnktionen bereitstellt, bestimmte Daten zu suchen.

Standardmäßig dabei sind die vorgefertigten Loader / Writer "Ini" sowie "IniExt" die für die meisten Zwecke ausreichen sollten.


GTA-Place - Mi 02.07.08 21:33

Die Demo läuft bei mir nicht. Beim Start krieg ich die schöne Meldung "ZweiDe-Feature-Show funktioniert nicht mehr..."

Win Vista
E8200 (2,66 GHz)
nVidia 8800GT

Zitat:
Unbehandelte Ausnahme: System.TypeInitializationException: Der Typeninitialisier
er für Fetze.Module.ZweiDe hat eine Ausnahme verursacht. ---> System.BadImageFor
matException: ist keine zulässige Win32-Anwendung. (Ausnahme von HRESULT: 0x800
700C1)
bei Fetze.Module.ZweiDe..cctor()
--- Ende der internen Ausnahmestapelüberwachung ---
bei Fetze.Module.ZweiDe.set_CompiledKey(ZweiDeVerifier value)
bei ZweiDe_Feature_Show.Program.Main(String[] args)

Unbehandelte Ausnahme: System.BadImageFormatException: ist keine zulässige Win3
2-Anwendung. (Ausnahme von HRESULT: 0x800700C1)
bei Fetze.Module.ZweiDe.SoundEmitter.StopAll()
bei ZweiDe_Feature_Show.Program.Main(String[] args)


Fetze - Mi 02.07.08 22:44

Komisch. Habe gerade die .zip-Datei entpackt, die ich hier auf der Festplatte hab (== der zum herunterladen) und die Demo gestartet. Läuft einwandfrei. Welche .Net-Version hast du? Was steht im Logfile? (Wird überhaupt eines erstellt?)

Ich habe hier leider nur Windows XP zum testen also kann ich eine Fehlerquelle in Zusammenhang mit Vista nicht ganz ausschließen.


Kha - Mi 02.07.08 22:50

Hört sich eher nach einem 64-Bit-Problem an => http://www.c-sharp-forum.de/viewtopic.php?p=494687#494687


GTA-Place - Mi 02.07.08 23:12

Gut möglich, ich hab nämlich 64bit :mrgreen:

(Logfile übrigens leer, .NET 3.5)


Fetze - Do 03.07.08 17:26

Ist das Zielsystem nur für ausführbare Anwendungen relevant oder auch für die .dll-Dateien?


Kha - Do 03.07.08 17:58

Eigentlich reicht es bei der Exe. Ich würde es aber auch bei den Dlls einstellen, damit wenigstens in der Fehlermeldung deine Dll und nicht die unmanaged Dll dahinter auftaucht, wenn jemand die Einstellung für seine Exe vergessen sollte.


Fetze - Do 03.07.08 21:14

Okay, danke für die Hilfe :)

Ich hab jetzt die Graphics Source Demo mal mit der Zusatz-Einstellung wie im verlinkten Thread beschrieben neu kompiliert; sollte also theoretisch jetzt auch auf x64 Systemen laufen :)


Christian S. - Do 03.07.08 21:33

Die Demo hängt sich bei mir total auf.

Sie startet, der Bildschirm wird schwarz. Dann wird er "Warten"-Cursor angezeigt (vor schwarzem Hintergrund), anscheinend mit einer Auflösung von 640x480 (seiner Größe nach zu urteilen).

Dann irgendwann wird der normale Mauszeiger (auch entsprechend groß) angezeigt. Drücke ich eine Taste, kommt kurz der Warten-Cursor wieder, sonst tut sich nichts.

Ich habe den Prozess dann mittels Taskmanager (kam ich nur per Strg+Alt+Entf dran, das Startmenü konnt nicht aufgerufen werden) gekillt.

Ich benutze Windows Vista Business, 32bit.


jakobwenzel - Do 03.07.08 21:38

Bei mir stürzt die Demo nach einem Wechsel auf eine sehr niedrige Auflösung und etwas Wartezeit mit folgender Meldung ab:
Zitat:

---------------------------
GLFW Window: ZweiDe Feature Show.exe - Fehler in Anwendung
---------------------------
Die Anweisung in "0x04117203" verweist auf Speicher in "0x00000008". Der Vorgang

"read" konnte nicht auf dem Speicher durchgeführt werden.


Klicken Sie auf "OK", um das Programm zu beenden.
---------------------------
OK
---------------------------


Logfile ist im Anhang.


Fetze - Fr 04.07.08 12:16

Die Auflösung sollte 800 x 600 sein.

@jakobwenzel
Bei dir liegt der Absturz daran, dass deine Grafikkarte oder deine aktuellen Grafikkartentreiber ein Problem mit den zur FUnktion von ZweiDe nötigen Framebuffer objekten haben. Der Fehlercode ist mir unbekannt aber ich werde auf jeden Fall mal nach dem Rechten sehen und versuchen, den bug zu beheben. FBOs sollten im Allgemeinen schon von deiner Grafikkarte unterstützt werden, da die entsprechende OpenGL-Extension vorhanden ist.

Hier, der entsprechende Auszug aus dem LogFile:

Quelltext
1:
2:
3:
4:
5:
6:
### ERROR: System.ApplicationException: Can't create Framebuffer. Unknown error. Framebuffer-Status: 36055
   at Fetze.Module.ZweiDe.Texture.CreateRenderBuffer(TexFlag flags, Boolean reqZBuffer)
   at Fetze.Module.ZweiDe.TextHelper.SetText(String text)
   at Fetze.Module.ZweiDe.TextHelper..ctor(String text, Single xHandle, Single yHandle)
   at ZweiDe_Feature_Show.Program.PrepareData()
   at ZweiDe_Feature_Show.Program.Main(String[] args)


@Christian S.
Ohne Logfile kann ich leider keine Fehlerdiagnose stellen und auch keine entsprechenden Verbesserungen am Modul vornehmen :/
Bitte um Nachreichung des Logfiles!


Blawen - Fr 04.07.08 12:51

Bei mir kommt kurz ein "schwarzer Bildschirm" und fertig ist, bzw. das Programm "beendet" sich wieder.


jakobwenzel - Fr 04.07.08 12:59

user profile iconFetze hat folgendes geschrieben:
Bei dir liegt der Absturz daran, dass deine Grafikkarte oder deine aktuellen Grafikkartentreiber ein Problem mit den zur FUnktion von ZweiDe nötigen Framebuffer objekten haben. Der Fehlercode ist mir unbekannt aber ich werde auf jeden Fall mal nach dem Rechten sehen und versuchen, den bug zu beheben. FBOs sollten im Allgemeinen schon von deiner Grafikkarte unterstützt werden, da die entsprechende OpenGL-Extension vorhanden ist.

FBOs funktionieren auf der Graka fehlerfrei, das Beispielprogramm zum FBO-Tutorial auf delphigl.com läuft z.B. fehlerfrei.


Christian S. - Fr 04.07.08 14:16

user profile iconFetze hat folgendes geschrieben:
@Christian S.
Ohne Logfile kann ich leider keine Fehlerdiagnose stellen und auch keine entsprechenden Verbesserungen am Modul vornehmen :/
Bitte um Nachreichung des Logfiles!
Oh, das hatte ich vergessen. :oops:

Siehe Anhang :)


Fetze - Fr 04.07.08 15:49

@jakobwenzel
Davon gehe ich aus, die entsprechende Extension ist ja schließlich vorhanden. Ich vermute, dass ich die FBOs so initialisiere, dass eine (meine) NVIDIA-Implementierung von OpenGL keine Probleme hat, eine ATI-Implementierung aber unter Umständen schon!
Ich werde in jedem Fall mal im Internet recherchieren - den Fehlercode habe ich schonmal übersetzt (GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT), jetzt gilt es nurnoch, eine Lösung zu finden.

@Blawen
Bei dir wird der Fehler direkt von einer OpenGL-Methode ausgelöst.. da du eine OpenGL-Version kleiner 2.1 hast, ich jedoch von der 2.1-Referenz ausgegangen bin, könnte ein Treiberupdate Erfolg zeigen. Falls du das ausprobierst, bitte ich um Rückmeldung, ob es danach geht!

@Christian S.
Bei dir ist der Fehlercode / Fehler identisch mit dem von jakobwenzel. Werde mich also so oder so drum kümmern, ich melde mich zurück, sobald ich was gefunden / geändert hab :)





Alles in allem scheint es so, als hätten ATI-Karten / Treiber / OpenGL-Implementationen ein paar Probleme mit FBOs bzw. - Korrektur - handhaben da das eine oder andere ein wenig anders / zimperlicher(?) als NVIDIA Karten. Nach allem, was ich gehört habe, ist die OpenGL-Implementation der Framebuffer Objekte bei ATI auch etwas später dran gewesen als bei NVIDIA, wäre also dann in dem Sinne kein Wunder, wenn es da noch mehr Probleme gibt. In jedem Fall werde ich mein bestes geben, eine OpenGL-Code Variante zu finden, die auch auf ATI-Karten jetziger Generation keine Probleme macht; ich bin mir sehr sicher, dass sich das auf OpenGL-Ebene durch Austausch / Veränderung einiger Kommandos richten lässt.

Melde mich zurück! Und nochmal an alle: Vielen vielen Dank schonmal für das ausgiebige Testen und Rückmelden! :)


GTA-Place - Fr 04.07.08 16:03

Wunderbar, läuft jetzt auch auf X64.

Zur Demo: Schöne Produktpräsentation, wenn ichs brauchen würde, würde ichs wahrscheinlich kaufen ^_^


baka0815 - Fr 04.07.08 16:09

Bin ich eigentlich der Einzige, für den "ZweiDe" hessisch (zweite) klingt? :D


elundril - Fr 04.07.08 16:10

sehr schöner Demo! kann echt viel, is ruckelfrei! Respekt!

lg elundril


Fetze - Fr 04.07.08 17:09

Danke für die Resonanz :)

Hessisch? Nunja. Da "ZweiDe" sich auf "2D" bezieht, an sich eher nicht :lol:

Was den ATI-Bug betrifft, da werde ich vermutlich noch heute Abend nach schauen. Bin vorher noch anderweitig beschäftigt. ^^


Fetze - So 06.07.08 16:35

So, ich hab nochmal eine neue Version hochgeladen. Funktioniert auf meine mRechner nach wie vor, hab aber ein paar OpenGL-Kommandos vertauscht und ein anderes Texturformat für die FBOs verwendet. Sollte ziemlich genau dem Beispielcode von ATI entsprechen, also sollte das ganze auch *theoretisch* funktionieren.

Freiwillige vor! :)


Christian S. - So 06.07.08 16:56

Leider wieder derselbe Fehler.


Fetze - So 06.07.08 17:07

Mist.

Ich glaube, dann hilft alles nichts, ich brauche ein ATI Testsystem. Ich kann schließlich keinen Bug jagen, der bei mir gar nicht existiert. ôo

Ich werde im Internet mal die Augen nach Lösungsmöglichkeiten offen halten und bin hier im Thread für jeden Vorschlag dankbar.. ansonsten muss ich mal schauen, ob ich irgendwo ein ATI-Testsystem herbekomme. Falls jemand eine Lösung hat oder schonmal auf einer ATI-Karte funktionierende FBOs hinbekommen hat, wäre das natürlich ideal.

Oder gibt es auch jemanden, der das Demoprogramm trotz ATI-Karte erfolgreich getestet hat?


Fetze - So 06.07.08 19:07

Sorry für den Doppelpost, möchte nur sichergehen, dass das hier auch alle mitbekommen, die Probleme mit dem Demoprogramm und einer ATI Karte hatten:

Könntet ihr eure ATI-Treiber auf den neuesten Stand bringen und dann nochmal testen? Falls sie das schon sind, wäre ein Post trotzdem hilfreich - ich habe nur kürzlich in einem Forum gelesen, dass ein Treiberupdate diverse Bugs in Verbindung mit FBOs beheben kann und möchte sichergehen, dass ich da nichts jage, was ohnehin schon tot / fixed ist. :)


Fetze - Do 13.11.08 19:45

Lang lang ists her, mit ZweiDe ist mittlerweile viel passiert und es gab einige Updates. Hier nur das letzte und anschaulichste:

Ich habe vor kurzem ein kleines Demoprogramm für die aktuell in Entwicklung befindliche ZweiDe GUI-Erweiterung "Fenster" gebastelt, das mit den Skins "Kleinweich" und "Metal" bestückt ist und viele der aktuell verfügbaren GUIObjects demonstriert. Richtig zum Anfassen und Klicken! ;)

--> Zum Download <-- [http://zweide.fetzenet.de/dl/Fenster%20Demo.zip]

Achja: Wäre ne coole Sache, wenn ihr euren Posts eine durchschnittliche "ms"- sowie "FPS"-Zahl anhängen könntet, während ihr im "GUI only" Modus seid! Wäre dann so eine Art kleine Performance-Umfrage.

Kleiner Screenshot als Appetithappen:
user defined image

Außerdem möchte ich die Gelegenheit nutzen, nochmal auf die --> Graphics Source Demo <-- [http://zweide.fetzenet.de/dl/Graphics%20Source%20Demo.zip] hinzuweisen :)




* Die Skin-Designkonzepte sind nicht von mir, nein - ich habe da recht viel kopiert. Es geht hier aber auch nicht um die SKins an sich, die Skins sind lediglich als Demonstrationsmuster zu sehen.


GTA-Place - Do 13.11.08 19:51

Zitat:
[Window Title]
Microsoft Windows

[Main Instruction]
Testprojekt4 funktioniert nicht mehr

[Content]
Es wird nach einer Lösung für das Problem gesucht...

[Abbrechen]

Event-Log hat folgendes geschrieben:
Fehlerhafte Anwendung Fenster Demo.exe, Version 1.0.0.0, Zeitstempel 0x491b1e89, fehlerhaftes Modul KERNEL32.dll, Version 6.0.6001.18000, Zeitstempel 0x4791ada5, Ausnahmecode 0xe0434f4d, Fehleroffset 0x000000000002649d, Prozess-ID 0x%9, Anwendungsstartzeit %10.


beim Start unter Windows Vista.


Fetze - Do 13.11.08 19:56

Komisch. An sich funktioniert das unter Vista problemlos - welche .Net-Version? Es wird mindestens 2.0 vorrausgesetzt.


GTA-Place - Do 13.11.08 20:01

Immer das neuste. Also .NET 3.0


Fetze - Do 13.11.08 20:08

Okay, das ist komisch - solche Fehlermeldungen bin ich von Systemen gewohnt, die keine aktuelle oder gar keine .Net-Version installiert haben... hat jemand irgendeine Idee? .Net 3.0 sollte doch auch .Net 2.0 Anwendungen problemlos ausführen können, denke ich.


GTA-Place - Do 13.11.08 20:16

Zitat:
Unbehandelte Ausnahme: System.TypeInitializationException: Der Typeninitialisierer für "Testprojekt4.Program" hat eine Ausnahme verursacht. ---> System.BadImage
FormatException: Die Datei oder Assembly "Fetze.Fenster, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" oder eine Abhängigkeit davon wurde nicht gefunden. Es wurde versucht, eine Datei mit einem falschen Format zu laden.

Dateiname: "Fetze.Fenster, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
"
bei Testprojekt4.Program..cctor()

WRN: Protokollierung der Assemblybindung ist AUS.
Sie können die Protokollierung der Assemblybindungsfehler aktivieren, indem Sie den Registrierungswert [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) auf 1
festlegen. Hinweis: Die Protokollierung der Assemblybindungsfehler führt zu einer gewissen Leistungseinbuße.
Sie können dieses Feature deaktivieren, indem Sie den Registrierungswert [HKLM\Software\Microsoft\Fusion!EnableLog] entfernen.

--- Ende der internen Ausnahmestapelüberwachung ---
bei Testprojekt4.Program.Main(String[] args)


Vielleicht hilft das noch. Erscheint beim Absturz in der Konsole.


Fetze - Do 13.11.08 20:44

Okay, das hat mir wenigstens einen Hinweis gegeben. Ich ahb gerade eine aktualisierte Version hochgeladen - testest du nochmal und sagst mir, obs geht?


Kha - Do 13.11.08 21:12

user profile iconFetze hat folgendes geschrieben Zum zitierten Posting springen:
Achja: Wäre ne coole Sache, wenn ihr euren Posts eine durchschnittliche "ms"- sowie "FPS"-Zahl anhängen könntet, während ihr im "GUI only" Modus seid! Wäre dann so eine Art kleine Performance-Umfrage
2200 FPS beim Mac-Theme. 1500, wenn ich wie wild über die Fenster streiche. Genügt das :| ? *g*
1680x1050, GTX 8800

user profile iconFetze hat folgendes geschrieben Zum zitierten Posting springen:
Okay, das hat mir wenigstens einen Hinweis gegeben.
Wieder die Plattform vergessen :zwinker: ? Jetzt scheint es ja zu funktionieren, hab auch x64.

user profile iconGTA-Place hat folgendes geschrieben Zum zitierten Posting springen:
(Logfile übrigens leer, .NET 3.5)
user profile iconGTA-Place hat folgendes geschrieben Zum zitierten Posting springen:
Immer das neuste. Also .NET 3.0
:mrgreen: ? Ganz aktuell ist übrigens 3.5 SP1.


Fetze - Do 13.11.08 21:29

user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconFetze hat folgendes geschrieben Zum zitierten Posting springen:
Achja: Wäre ne coole Sache, wenn ihr euren Posts eine durchschnittliche "ms"- sowie "FPS"-Zahl anhängen könntet, während ihr im "GUI only" Modus seid! Wäre dann so eine Art kleine Performance-Umfrage
2200 FPS beim Mac-Theme. 1500, wenn ich wie wild über die Fenster streiche. Genügt das :| ? *g*
1680x1050, GTX 8800


Jep, danke :)

user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:

user profile iconFetze hat folgendes geschrieben Zum zitierten Posting springen:
Okay, das hat mir wenigstens einen Hinweis gegeben.
Wieder die Plattform vergessen :zwinker: ? Jetzt scheint es ja zu funktionieren, hab auch x64.


Genau das ;) :D


Martok - Do 13.11.08 21:36

user profile iconFetze hat folgendes geschrieben Zum zitierten Posting springen:
Achja: Wäre ne coole Sache, wenn ihr euren Posts eine durchschnittliche "ms"- sowie "FPS"-Zahl anhängen könntet, während ihr im "GUI only" Modus seid! Wäre dann so eine Art kleine Performance-Umfrage.

2500-3000 heftig schwankend, 1280x1024, Geforce 7950GT.
Plattform steht links.

Hat was, das Teil. Einige Sachen die man von Windows gewohnt ist fehlen aber:



Was ist eigentlich dieser 3., leere Skin? Da werden nämlich nur Labels angezeigt ;)


GTA-Place - Do 13.11.08 22:01

user profile iconFetze hat folgendes geschrieben Zum zitierten Posting springen:
Okay, das hat mir wenigstens einen Hinweis gegeben. Ich ahb gerade eine aktualisierte Version hochgeladen - testest du nochmal und sagst mir, obs geht?

Nein, leider nicht:

Zitat:
logfile.txt ### ERROR: System.TypeInitializationException: Der Typeninitialisierer für "Fetze.Module.ZweiDe" hat eine Ausnahme verursacht. ---> System.IO.FileNotFoundException: Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E)
bei Fetze.Module.ZweiDe..cctor()
--- Ende der internen Ausnahmestapelüberwachung ---
bei Fetze.Module.ZweiDe.set_CompiledKey(ZweiDeVerifier value)
bei Testprojekt4.Program.Main(String[] args)


user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconGTA-Place hat folgendes geschrieben Zum zitierten Posting springen:
(Logfile übrigens leer, .NET 3.5)
user profile iconGTA-Place hat folgendes geschrieben Zum zitierten Posting springen:
Immer das neuste. Also .NET 3.0
:mrgreen: ? Ganz aktuell ist übrigens 3.5 SP1.

Ich sag ja, die Neuste. Und ich hab keine Ahnung welche das ist.


Fetze - Fr 14.11.08 07:34

Seltsam, du bist schon der zweite, bei dem ein Modul nicht gefunden wurde.. ganz ehrlich, ich verstehe nicht, as es damit auf sich hat oO
Kann mir da jemand helfen? Wie kommt es zu sowas, wo doch alle Dateien mit im Archiv und an korrekter Stelle sind? ôo

Sehr seltsam ist auch, dass bei der anderen Person eine ganze .dll nicht gefunden wurde, nämlich die glfw.dll, die sogar im selben Verzeichnis liegt..



Was ich noch vergessen hatte:
Es gibt mittlerweile ein kleines OpenSource ZweiDe Demospiel namens --> SpaceFight <-- [http://www.fetzenet.de/zweide/dl/SpaceFight.zip], eine kompilierte .exe ist aber dabei, für alle, die ZweiDe nicht in der Vollversion besitzen ;)


Delete - Fr 14.11.08 11:16

Lustiges Spiel! Ich finde das Handling des Fahrzeugs besonders gut. Allerdings tritt beim beenden ein Fehler auf.


Fetze - Fr 14.11.08 15:04

Wie heißt er denn namentlich? ^^


elundril - Fr 14.11.08 16:19

Der Fehler heißt Walter! Nachnamen hat er mir nicht gesagt. :mrgreen:

Also bei mir kommt kein Fehler.

lg elundril


Delete - Fr 14.11.08 16:22

Ich nehme mal an ,dass da irgendein Objekt am Ende nicht richtig freigegeben wird.

@Elundril: Zu mir hat er was anderes gesagt. Er meinte er wäre Bill. :wink:

Diese Anspielung auf Fehler-Teufel Bill Gates ist voll beabsichtigt und zufällig.


baka0815 - Fr 14.11.08 17:39

Das mit dem 3. "leeren" Skin kann ich bestätigen:

[url=http://img125.imageshack.us/my.php?image=zweidefensterit2.jpg]user defined image[/URL][url=http://g.imageshack.us/thpix.php]user defined image[/URL]

Die Fenster sind solange durchsichtig (siehe das Fenster rechts oben), bis man drauf klickt (siehe unteres Fenster).

FPS so zwischen 280 und 330 auf folgendem System:
* WinXP
* Core2Duo T5700 @ 220GHz (Mobile)
* 2GB RAM
* GeForce Quadro


Fetze - Do 11.12.08 16:55

Danke shconmal für eure Antworten :)

Der "leere" Skin ist kein Fehler - das ist einfach Fenster ohne jeglichen Skin. Ohne SKin weicht Fenster bei der Darstellung auf simpel gefärbte Formen aus. Es ist in diesem Zustand nicht benutzbar, gibt aber für den Fall eines Programmfehlers seitens des Nutzers trotzdem einen Eindruck vom GUI-Aufbau ohne gleich kommentarlos abzustürzen. Ist sozusagen ein Fallback, falls mal jemand vergessen hat, einen Skin zu laden. :)

Habe derweil neben der Arbeit an Progessbar und Tabber (still WiP) ein wenig mit der ZweiDe-Funktionalität herumgespielt. Hier das Ergebnis:
user defined image
user defined image


Fetze - Fr 12.12.08 22:14

Tschaka!

user defined imageuser defined image
user defined image
user defined imageuser defined image

Tabber sind fertig.


Fetze - Mi 24.12.08 18:20

Ich habe gerade ZweiDe Version 1.0.6 [http://www.fetzenet.de/zweide/changelog.html] zusammen mit der Fenster Extension,
einem Fenster Demoprogramm, zwei Skins und einem Website update hochgeladen. Werft einfach mal einen Blick auf die
Website [http://zweide.fetzenet.de/], in die Sektionen "Media", "Extensions" und "Downloads" :)

Viel Spaß damit und fröhliche Weihnachten ;)


Fetze - Mi 02.06.10 07:17

Dieser Thread kann geschlossen werden, ZweiDe ist jetzt Open Source. --> Neuer Thread <-- [http://www.c-sharp-forum.de/viewtopic.php?p=607323#607323]


Delete - Mi 02.06.10 07:29

Genial!Vielen Dank!Was war denn der Anstoß?


Fetze - Mi 02.06.10 07:36

Ich entwickle seit einem Jahr an einem anderen Projekt (Das ZweiDe nutzt) und bastle seitdem nur noch Kleinigkeiten an ZweiDe herum, sozusagen etwas Polishing im Rahmen der Eigennutzung. Außerdem kauft das Ding eh kaum jemand, die Freeware-Konkurrenz ist in dem Bereich einfach zu stark ;)


Regan - Mi 02.06.10 13:24

Es wäre besser gewesen, du hättest diesen Thread zur Verschiebung in die Opensource-Sparte gemeldet und den ersten Beitrag nur entsprechend angepasst. Das macht sich besser, da man dann das ganze Zwischengeplapper mitnimmt. Du kannst das aber noch nachholen ;) Melde den anderen Thread dann einfach als Doppelpost.


Gausi - Mi 02.06.10 13:31

Da das Thema hier erledigt ist, mache ich hier zu. Über die jetzt quelloffene Version kann hier [http://www.c-sharp-forum.de/viewtopic.php?t=99855] weiterdiskutiert werden.

Man hätte das auch in diesem Topic weiterführen können, aber ein neues Topic ist in diese Fall wohl auch in Ordnung.