Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

11

03.05.2012, 14:48

Klar gibts einige neue Features.
Sind aber alle für Spieleprogrammierung eher weniger relevant. ;)
Ich für meinen Teil versuche auch immer die alte Version so lange wie möglich zu unterstützen.

Einige der Funktionen gibts auch erst seit 4.0 und dafür braucht man die 2010er Version welche bei mir wirklich saulam ist. ;)

Beim Threadersteller sind es sicher änliche Gründe.

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

12

03.05.2012, 14:56

Ob man diese Features nun als Spieleprogrammierer braucht ist nun sicherlich sehr Subjektiv;) Aber hier gehts ja jetzt darum was der Threadersteller davon hält, bzw warum er grad diese Version benutzt.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

13

03.05.2012, 20:26

Zitat

Die Frage nach OpenGL stellt sich mir auch.


Warum nicht? Was ist besser an DirectX als an OpenGL? Vermutlich nur die von Microsoft bereits implementierten Funktionen
für Pipelines und Sprites und so weiter, aber das geht mit OpenGL auch alles, ist aber eben nicht von vornherein implementiert.
Ausserdem läuft das Spiel dann auch ohne Emulation auf Mono.


Mir nicht.
Wahrscheinlich haben die(der?) Programmierer halt einfach OpenGL-Erfahrung.
OpenGL mit OpenTK ist auch meine API der Wahl in C#.


Mit DirectX gings auch, jedoch gefällt mir persönlich bei OpenGL die Programmimplementierung besser. Und das man sicher sein kann
wirklich über alles Kontrolle zu haben.

Zitat

Außerdem stellt sich die Frage warum ihr .Net 2.0 benutzt? Warum keine neuere Version?


Weil es aktuell auf den meisten Systemen auch ohne Zusatzinstallation bereits vorhanden ist (auch gerade bei AMD-Nutzern) und somit
auch das minimal unterstützte Framework darstellt. Abgesehen von .NET 1, aber die 2er Version ist da doch etwas ausgereifter.
Im Endeffekt ist das aber belanglos, da die aktuellen Komponenten auf der 2er Erstellt und Optimiert wurden und auf nachfolgenden
Versionen genauso schnell, wenn nicht noch besser laufen.

Generell empfehlen wir sowieso immer die neuesten Treiber und Frameworks (.NET/Mono) zu benutzen, soweit vom System unterstützt.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

14

04.05.2012, 07:00

Warum nicht? Was ist besser an DirectX als an OpenGL? Vermutlich nur die von Microsoft bereits implementierten Funktionen
für Pipelines und Sprites und so weiter, aber das geht mit OpenGL auch alles, ist aber eben nicht von vornherein implementiert.
Genau das ist aber ein Vorteil von DirectX. Es ist ein echtes Framework, wohingegen OpenGL nur eine lose Sammlung von Funktionen ist.
Mal ganz davon abgesehen, dass OpenGL eine alte und hässliche Statemachine ist, die viele der neuen Möglichkeiten zum Beispiel zur Parallelisierung gar nicht ausnutzen kann. Von schlechten Treiber-Implementierungen mal ganz zu schweigen.

Ausserdem läuft das Spiel dann auch ohne Emulation auf Mono.
Wurde das mal getestet? Denn so schön das in der Theorie auch klingt, in der Praxis zweifel ich das an.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

15

04.05.2012, 09:43

Ich würde euch empfehlen, wenn ihr Platformunabhängig und möglichst kompatibel sein wollt, nicht auf .NET aufzusetzen. Ich meine ihr geht viele Einschränkungen ein, damit es halbwegs überall laufen könnte. Ich traue den Mono-Portierungen bis heute nicht so wirklich. Und wenn BlueCobolt mit der Emulation recht hat, dann geht eventuell ordentlich performance flöten. Dann setzt entweder auf Java oder eine Scriptsprache. Zum Beispiel für 2D kann ich Löve empfehlen. Und Lua ist sehr einfach zu lernen!

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

16

04.05.2012, 13:34

Zitat

Mal ganz davon abgesehen, dass OpenGL eine alte und hässliche Statemachine ist, die viele der neuen Möglichkeiten zum Beispiel zur Parallelisierung gar nicht ausnutzen kann. Von schlechten Treiber-Implementierungen mal ganz zu schweigen.

Maßige mal deinen Ausdruck. DirectX ist ebenfals eine Statemachine und es liegt in der Natur der Grafikkarten, dass nunmal ein bisschen Statemachine dabei ist.
Parallelisierung ist in der Tat eher schlecht möglich. Aber wer möchte (bei einem Hobbyprojekt) schon den Rendererparallelisieren? Die Treiber waren in der Vergangenheit manchmal natürlich ein wenig "schlecht". Das sollte aber größten Teils behoben sein.

Es ist schade, dass es immernoch einige gibt, die nicht eingesehen haben, dass OpenGL mehr oder weniger eine gleichwertige API ist.

Zitat

Denn so schön das in der Theorie auch klingt, in der Praxis zweifel ich das an.

Dann hast du dich noch nie mit Mono befasst.
Behalte dein sinnloses BlaBla einfach bei dir.

Mono hat von 2.0 (bis auf winzige Ausnahmen) ALLE FUNKTIONEN implementiert. Bis auf WPF ist selbiges auch bei 4.0 der Fall. Wer das anzweifelt, kann sein Projekt ja mal mit den "Mono Migration Analyzer" analysieren lassen. Externe (nicht .Net) DLL-Aufrufe können natürlich Probleme verurachen.

Wenn man zb. bei Pfadangaben von Anfang an alles richtig macht, kann man das ganze sehr sehr leicht nach Linux protieren.

Zitat

Ich traue den Mono-Portierungen bis heute nicht so wirklich.

Erst anschauen, dann meinung äußern.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Spiele Programmierer« (04.05.2012, 18:36)


TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

17

04.05.2012, 13:37

Zitat
Ich traue den Mono-Portierungen bis heute nicht so wirklich.

Erst abschauen, dann meinung äußern.
Ich habe Mono sowohl Privat als auch Arbeitsmäßig zu verwenden versucht. Privat war es ein "lief gerade so" und Arbeitsmäßig nicht zu verwenden. Sonst hätte ich meine Äußerung nicht kund getan ;) Dabei handelte es sich genau um den Anwendungsfall Platformunabhängigkeit. Ich meine selbst mit C++ und Platformunabhängigen Bibliotheken ist es nicht die einfachste Übung. Kann funktionieren, wird es sicher auch, frage ist, wo die Interessanten Grenzen sind.

Beiträge: 1 223

Wohnort: Deutschland Bayern

Beruf: Schüler

  • Private Nachricht senden

18

04.05.2012, 13:40

Was heißt gerade so bzw. nicht zu verwenden?

Ich kann nur meine Erfahrung damit kund tun:
Bisher hats funktioniert.

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

19

04.05.2012, 13:46

Gerade so: War eine WinForms-Anwendung wo das wesentliche funktionierte. Aber leider gab es einige Abstürze bzgl. Sound. Auf jeden Fall: Ohne großen Aufwand wäre es keine vernünftige 1:1 lauffähige Version gewesen.

Nicht verwendbar: Webservices haben gar nicht funktioniert. Hier war vor allem Code-gleichheit auf allen Plattformen wichtig gewewsen - was nicht möglich war.

Ansonsten hält euch keiner ab, .NET 2.0 mit OpenGL und Mono zu verwenden - it's your Business. Nur jeder der sich täglich intensiv mit .NET beschäftigt kennt die Tücken. Schau dir dafür einfach mal ANX.Framework an. Das ist eine OS-Independent-Portierung des XNA-Frameworks. Dort wird auch mit OpenGL gearbeitet und es ist nicht die einfachte Übung alles zum Laufen zu kriegen.

20

04.05.2012, 14:21

Genau das ist aber ein Vorteil von DirectX. Es ist ein echtes Framework, wohingegen OpenGL nur eine lose Sammlung von Funktionen ist.
Mal ganz davon abgesehen, dass OpenGL eine alte und hässliche Statemachine ist, die viele der neuen Möglichkeiten zum Beispiel zur Parallelisierung gar nicht ausnutzen kann. Von schlechten Treiber-Implementierungen mal ganz zu schweigen.


Warum nicht? Immerhin gibt es sogar kommerzielle Spiele, die mit .NET gearbeitet wurden.
Die Arbeit zugegeben zwar soweit ich weiß mit DiretX, jedoch entwickeln mittlerweile auch die
Grafikhersteller an immer besseren GL Optimierungen und ich bin mir sicher, dass es aus ökonomischen
Gründen wohl eher unproduktiv wäre, wenn die Technologie so schlecht wäre. Wenn man dann noch eine Hardware
hat, die CL unterstützt, kann man noch mehr aus seinem Code herausholen.

Ich denke auch, dass hier sehr viele Vorurteile aus früheren Zeiten zum Tragen kommen, wie es auch bei der Debatte von
C++ gegen C# Entwicklern der Fall ist.

Wurde das mal getestet? Denn so schön das in der Theorie auch klingt, in der Praxis zweifel ich das an.


Ich verweise dazu an die OpenTK Community.

Ich kann nur meine Erfahrung damit kund tun:
Bisher hats funktioniert.


Eben, und das gar nicht so schlecht.
Bisher hat die Software alle performancetests mit für .NET verhältnisse hervoragenden Ergebnissen bestanden. Ich geb hier mal n kleinen Auszug:

Auf meinem 6 Jahre alten Rechner mit ATI Radeon grafik und 2,3 GHz Dual Core

Leeres Standardfenster ohne Multisampling: 100 us etwa 9800 Frames
Leeres Standardfenster mit 8x Multisampling: 140 us etwa 7100 Frames

Scene mit 5 Objekten, Immediate Mode,
7 Strings, Point Light Shading und Picking: 320us etwa 3000 Frames

Hier reichen Frames gleich der Taktfrequent des Monitors, aber maximal 75, ist also noch genug
Luft nach oben

Client-Server Kommunikation UDP: 220us bis Client Antwort vom Server erhält
Client-Server Kommunikation TCP: 280us bis Client Antwort vom Server erhält

Hier hat mir ein Bekannter, der selbst in der Spielebranche arbeitet gesagt, dass alles bis etwa
100 ms für Actionspiele noch vertretbar ist, ist also auch schnell genug.

Auf einem uns zur Verfügung gestellten Testrechner mit NVidia OnBoard Grafik und 2,2 GHz Quad Core
waren die Ergebnisse im Grafikbereich etwa um 60-80% schneller

(* us steht hier für Microsekunden)
Natürlich sind alle Angaben unter Realbedingungen getestet worden und von System und Hardware abhängig

Und mal ganz ehrlich, ich gebe lieber 5-8% Performance gegenüber C++ her und spare dafür 100% Memorylecks




Ich möchte an dieser Stelle an alle Beteiligten appelieren, die Diskussion jetzt hier zu beenden, da es sich
zunehmends zu einer reinen Glaubensfrage entwickelt. Ich finde dass alle ausreichend Stellung zu den von ihrem Standpunkt aus gesehen
besseren Technologien genommen haben und fände es wünschenswert, wenn ab jetzt bitte nurnoch (andere) projektrelevanten Fragen
gestellt und disuktiert würden.

Danke!

Werbeanzeige