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

11

30.05.2011, 11:30

Also wenn NachoMan quasi ein SFML-Experte ist, dann würde ich gerne noch mal eine Frage stellen: So wie ich das verstanden habe, arbeitet die SFML hauptsächlich mit OpenGL. Wir wollen aber ja ein 2D-Spiel machen - wird das dadurch für uns komplizierter? Es werden zwar auch Funktionen zum Zeichnen von 2D-Sprites angeboten, aber wie weit reicht das denn? Gibt es qualitative Unterschiede zu Direct2D? Ich hab schon gesehen, dass es einige coole Funktionen zum Beispiel für Sound gibt, aber wo hakt es gegenüber Direct2D? Und was meinst du mit
Bei Direct2D musst du dich noch mit ziemlich vielen Dingen herumschlagen, die bei der SFML schon dabei sind.
?

12

30.05.2011, 13:19

Sagen wir es so: Du kannst ein 2D Spiel mit der SFML entwickeln ohne auch nur mit OpenGL direkt in Berührung zu kommen. Wenn du dann aber dein Spiel doch noch etwas aufpolieren möchtest mit zusätzlichen Effekten oder ähnlichem, dann hast du immerhin die Möglichkeit aus der SFML direkt mit OpenGL zu arbeiten und kannst, soweit ich weiß, z.B. eigene Shader schreiben usw. Du hast also die Möglichkeit, bist aber nicht gezwungen dich mit OpenGL direkt auseinanderzusetzen.

Insbesondere wenn das euer erstes etwas größeres Spieleprojekt ist kann ich euch ebenfalls die SFML empfehlen, weil sie einfach einen guten Satz an Funktionen bietet, die ihr sicherlich brauchen werdet, trotzdem aber nicht zu vielschichtig ist, dass ihr den Überblick verliert. Außerdem ist sie, verglichen mit anderen Bibliotheken und Frameworks, relativ umfangreich dokumentiert und es gibt viele Beispielquellcodes.

Gruß
SaRu_

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

13

30.05.2011, 14:21

Der Vorteil gegenüber OpenGL oder DirectX liegt darin, dass die SFML schon darauf aufbaut. Einiges, was ihr selber schreiben müsstet, liefert euch die SFML einfach schon. Gegen Xna spricht natürlich auch nichts. Aber wie schon gesagt ist es eine C# Bibliothek. Ihr müsstet also auf C# umsteigen. Meiner Meinung nach keine große Sache, da C# einfach zu erlernen ist, und im vergleich zu C++ viele Vereinfachungen mit sich bringt. Man macht sich dabei eher weniger Arbeit als mehr;) Das ist jetzt natürlich alles relativ subjektiv. Da du allerdings sagst, dass ihr eh für Windows programmieren wollt und ihr noch keine Erfahrung in der Spieleentwicklung gesammelt habt, empfehle ich euch zu C# und Xna zu wechseln. Der Vollständigkeit halber verweise ich auch auf die Möglichkeit von Python mit Pygame. Vielleicht hast du bzw dein Kollege ja mit Python Erfahrung.
„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.“

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

14

30.05.2011, 15:16

So wie ich das verstanden habe, arbeitet die SFML hauptsächlich mit OpenGL. Wir wollen aber ja ein 2D-Spiel machen - wird das dadurch für uns komplizierter?

Im gegenteil, es ist einfacher, weil die SFML, die Sachen die beim erstellen eines 2D Spiels mit opengl immer gleich ablaufen, in Klassen und Funktionen packt.
Es werden zwar auch Funktionen zum Zeichnen von 2D-Sprites angeboten, aber wie weit reicht das denn?

Es reicht so weit, dass du damit kaum weniger machen kannst, als direkt mit opengl oder Direct2D.
Gibt es qualitative Unterschiede zu Direct2D?

Soweit ich das einschätzen kann, nicht. Bei 2D Spielen müssen nur Bilder gezeichnet und evtl. rotiert und skaliert werden. Ich weiß nicht ob OpenGL und Direct2d intern verschiedene Algorithmen zum rotieren und skalieren verwenden. Den unterschied wird man aber wahrscheinlich nicht merken. Die Qualität hängt also zum allergrößten teil von den verwendeten Sprites ab. Reines Direct2d ist auch etwas schneller(weil eine Abstraktionsschicht fehlt), dafür aber komplizierter. Heute ist ordentlicher Code aber viel wichtiger als ein paar Calls zu sparen :D Was bringt einem der schnellste Code, wenn man für die kleinste Änderung 4 Stunden manuelles "suchen und ersetzen" spielen muss?

Ich hab schon gesehen, dass es einige coole Funktionen zum Beispiel für Sound gibt, aber wo hakt es gegenüber Direct2D?

Wer behauptet, dass es hakt? Wie meinst du das?

Und was meinst du mit
Bei Direct2D musst du dich noch mit ziemlich vielen Dingen herumschlagen, die bei der SFML schon dabei sind.
?

Hab dazu ein kleines Beispiel. So sieht der Code für ein Fenster mit Hauptschleife in der SFML aus(aus dem SFML Tutorial)

C-/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
25
26
int main()
{
    // Create the main rendering window
    sf::RenderWindow App(sf::VideoMode(800, 600, 32), "SFML Graphics");
    
    // Start game loop
    while (App.IsOpened())
    {
        // Process events
        sf::Event Event;
        while (App.GetEvent(Event))
        {
            // Close window : exit
            if (Event.Type == sf::Event::Closed)
                App.Close();
        }

        // Clear the screen (fill it with black color)
        App.Clear();

        // Display window contents on screen
        App.Display();
    }

    return EXIT_SUCCESS;
}


In etwa das gleiche findest du in diesem Tutorial für Direct2d.

Übrigens steht OpenGL für Open Graphics Library. OpenGL wurde also nicht nur für 3D Spiele und Anwendungen entwickelt.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

15

30.05.2011, 15:45

Also wir haben jetzt beide schon mal mit der SFML ein bisschen rumgespielt, ich hab bloß das Tutorial für die erste Anwendung gemacht, aber mein Freund meinte, Sound klappt bei ihm schon. Also mich habt ihr mir SFML ziemlich überzeugt, besonders der Vergleich von Direct2D und SFML zum ersten Fenster (ich mag diese WindowsAPI irgendwie nicht) :D Mal schaun, wofür mein Freund jetzt so ist, aber der fand das bisher auch alles ganz nett glaub ich. Danke für die Hilfe :thumbsup:

ach ja: @NachoMan: Mit "gegenüber Direct2D haken" meinte ich einfach nur, was von die Nachteile (Haken ;) ) von SFML gegenüber Direct2D sind. Es muss ja auch irgendwas geben, wo Direct2D besser ist..

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

16

30.05.2011, 16:05

ach ja: @NachoMan: Mit "gegenüber Direct2D haken" meinte ich einfach nur, was von die Nachteile (Haken ;) ) von SFML gegenüber Direct2D sind. Es muss ja auch irgendwas geben, wo Direct2D besser ist..

Wieso muss es etwas geben?
Hast du mit der SFML zu wenig "Macht", greifst du einfach direkt auf OpenGL zu. Wenn du Direct2D direkt verwendest ist es, wie schon gesagt, etwas schneller. Ausserdem kannst du es nutzen wenn du sowieso mit DirectX arbeitest. Ich hab noch nie mit Direct2D gearbeitet, kann deshalb nicht viel mehr dazu sagen. Aber ich hab bei der SFML nie etwas vermisst, was ich mit Direct2D hätte.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

17

30.05.2011, 16:35

Also um erst mal etwas klarzustellen, SFML ist ein Framework, dass diverse APIs (OpenGL, OpenAL, etc.) in verschiedene Klassen verpackt und so mit einfacher zu benutzen ist. In der SFML kann man Grafik, Sound und Netzwerk (sehr grobe list ;) ) machen.
Das alles mit Direct2D zu vergleichen ist quatsch, da D2D eine Grafik API(!) ist und Sound, Netzwerk usw. muss man mit anderen APIs machen.
Sound z.B. mit XAudio2 (auch DirectX).
Mit einer reinen API hat man in der Regel mehr "Macht" als mit einem Framework oder einer großen Engine, allerdings sollte man sich fragen ob man sowas braucht. Übrigens benutzt SFML intern auch die WinAPI um ein Fenster unter Windows zu erstellen (das tut eigl. jedes Windows Programm).
Ein wichtiger Punkt ist auch, dass Direct2D nur auf Vista und Win7 klappt und die SFML auch auf XP, sowie Mac und Linux.
Wenn es ums Spielemachen geht und ihr nicht alles von Scratch machen wollt, nehmt die SFML.

Schönen Tag noch :)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

18

30.05.2011, 16:40

Nur zur Info: Ich hab das Gefühl manche hier halten Direct2D für das selbe wie DirectDraw, was aber absolut und ganz und gar nicht und überhaupt der Fall ist ;)
Direct2D ist eine moderne und sehr mächtige immediate mode API für 2D Vektorgrafik die auf Direct3D aufbaut. Mit dem Grafikpart der SFML (retained mode, sehr einfach, Pixelgrafik) oder DirectDraw (Steinzeit, Pixelgrafik, niemand der bei Sinnen ist würde das heutzutage noch verwenden) ist das schon rein prinzipiell absolut nicht vergleichbar. Die einzige Library die mir so einfallen würde die man mit D2D in eine Liga packen könnte wäre Cairo.

Anyway: SFML ist sicherlich nicht der Weisheit letzter Schluss, aber für einfache Dinge und damit für Anfänger ist SFML ideal.

Dieser Beitrag wurde bereits 11 mal editiert, zuletzt von »dot« (30.05.2011, 16:58)


19

30.05.2011, 17:02

Hätte auch zu SFML geraten(zumindets von meinem ersten Eindruck her). Eine komplette 3DEngine wäre da wohl eher wie mit Kanonen auf spatzen schießen.

@Phalax : Hoffe du meinst mit Moderner nicht was darstellbar ist. Unity hat einfach mehr outofthebox dabei. GameStudio hat aber ebenfalls alle nötigen schnittstellen.
Meine Website mit Updates/News zu Aktuellen Projekten:SpareTime-Development

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

20

30.05.2011, 18:31

Nur zur Info: Ich hab das Gefühl manche hier halten Direct2D für das selbe wie DirectDraw, was aber absolut und ganz und gar nicht und überhaupt der Fall ist ;)

Ich bin da wohl etwas durcheinander gekommen. Sorry^^
Ersetzt man in meinen vorherigen Posts Direct2D durch DirectX, das nur dazu verwendet wird 2D Spiele zu entwickeln, bekommt man das, was ich eigentlich meinte.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Werbeanzeige