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

1

06.08.2006, 07:17

Wie 3D Spiele auch für Linux konzipieren?

Guten Morgen :)


*wink*
ich bin sowohl neu hier als auch in der Entwickler-Welt. Habe das Buch von Heiko Kalista diese Woche zur Hälfte durchgearbeitet und erste Freude am Programmieren gefunden. Nächste Woche ist die Windows API dran und das Buch von David Scherfgen liegt auch schon hier :)

Ich habe mir vorgenommen, einiges Handwerkszeug für die Erschaffung von 3D Spielen erst einmal aus diesen Büchern zu lernen. Jedoch ist Linux mein favorisiertes Betriebssystem, ich arbeite sowohl lieber darunter als auch sympatisiere ich mit der Community, so dass ich, wenn, dann auch gerne einmal Spiele entwickeln würde, die sowohl unter Windows als auch unter Linux lauffähig sind.

Von euch würde ich gerne wissen, mit welchen Mitteln man so etwas am besten anstellen kann. Es gibt ja prominente Beispiele wie Doom³, die auf manchen Systemen unter Linux sogar schneller laufen als in der Windows Welt. Nun installiert Doom³ unter Windows DirectX. Was passiert mit den Aufgaben , die unter Windows DirectX bewältigt, wenn man Doom³ auf Linux spielt? Ich kenne ein paar 3D Spiele, die SDL+OpenGL nutzen, aber ist das nicht zu langsam? (von SDL habe ich in einem der beiden Bücher gelesen, es sei langsam^^) Also hier mein Fragenkatalog:

Was sind die DirectX Äquivalente für Linux? Wieviel Anteil Code muss für so eine Portierung neu geschrieben werden? Was sollte ich mir an APIs unbedingt ansehen (wie OpenGL) und kennt ihr gute Bücher zu denen?


Grüße,
Harvest

[edit: ich seh grad, der thread hätte besser in den 2D-/3D-Grafik und Spieleprogrammierung gepasst, sorry!]

2

06.08.2006, 08:52

also openGL ist nicht langsamer als directX.
bei Doom3 ist , trotz das directX installiert wird, selbst unter windowss OpenGL immer noch für das zeichnen verantwortlich. Ich glaube, directX nehmen die da für die eingabe oder so was, weiß ich nich genau

Zitat

Was sind die DirectX Äquivalente für Linux?

openGL!

Quellcode

1
Wieviel Anteil Code muss für so eine Portierung neu geschrieben werden?

nich viel, da der renderer üblicherweiße so ausgelagert wird, dass alles weitere auf der implementation des renderers und nicht auf der darunterliegenden grafikschnittstelle basiert

Quellcode

1
Was sollte ich mir an APIs unbedingt ansehen (wie OpenGL) und kennt ihr gute Bücher zu denen? 

nehe.gamedev.net
da brauch man auch kein buch, im internet ist genug material zu finden

Anonymous

unregistriert

3

06.08.2006, 10:30

Willste unter Linux und Windws entwickeln (Geht wieder das leidige Thema Protabilität los - ich liebe es :x) benötigst Du für all Deine Kernmodule Interfaces. Haste kein Interface-Design kommt am Ende sowas wie SDL raus, also nichts sehr schönes.

Für DirectX gibt es kein Äquivalent zu Linux. Punkt. Da es bis heute keine Instanz es geschaft hat dort eine API zu Standardisieren die speziell für GameDev entwickelt wurde, im Gegensatz zu Windows und MacOS. DirectX ist mehr als nur bissel Grafikausgabe, es ist eine Umfassende Lib, wovon man unter Linux nur träumen kann.

Dort gibt es nur paar Moduläquivalente, also Direct3D --> OpenGL, DirectSound --> FMOD, DirectPlay --> Gar nix, usw.

Aber das ist dann auch alles. Hat bis heute jedoch (zum Glück - hier sieht man endlich mal Überlegenheit einer Instanz!) noch kein Unternehmen geschafft, da sonst der Flohzirkuseffekt in dieser Scene wieder auftaucht - welcher Bekanntermaßen die Firma Loki in den Ruin getrieben hatte, als die so eine API entwickeln wollten, gut gab noch andere Gründe, dieser gehörte aber dazu.

Dazu finde ich ist Linux noch immer ein Serversystem und keine Multimediaplattform - denn dafür wurde es von Anfang an konzipiert. So wie Du ursprünglich als Mann konzipiert wurdest, kannst Du nicht auf einmal Frau werden.

Das währe so als würde man unter Windows 2003 Server NFS Most Wanted spielen - eine grauenvolle Vorstellung. Dazu ist der Linuxmarkt aufgrund der fehlenden Instanz und dem Flohzirkuseffekt für viele Unternehmen unattraktiv und sogar nicht mal ansatzweise Denkbar - höchstens für Serverprogramme der Spiele.

Denk mal drüber nach. Ist zwar schön, das Du diesen Laden puschen willst, aber ob es Dir etwas bringt (vorallem im Punkto Kohle und Ansehen) wage ich ernsthaft zu bezweifeln.

Dazu kann man DirectX nicht mit OpenGL vergleichen, das ist wie das Vergleichen eines USB-Hub mit einem Laserpointer.

Auch Linux kann man nicht mit Windows gleichsetzen, das eine ist und bleibt ein konzipiertes Serversystem (Und kein Multimediasystem zu dem es gerne "missbraucht" wird) und das andere ein konzipiertes Multimediasystem. Sind 2 Welten.

Wie schon gesagt, such Dir eine Plattform aus aber der Linux-Game-Markt bleibt weiterhin ein Flopp. Schöne Sache, aber absolut nicht rentabel. Daher empfehlung: Denk drüber nach, ob man wirklich für ein Serversystem eine Multimediaanwendung schreiben willst oder Dich auf ein System speziallisierst, von allem die etwas können und um Endeffekt nichts richtiges können gibt es schon zuviele. (Lass Dir mal die konfuse Seite auf der Zunge zergehn.)

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

4

06.08.2006, 13:43

Wenn du Programme unter Windows und Linux kompilierbar halten willst musst du idR auf eine Menge Libs zurückgreifen. OpenGL ist cross Plattform, also wunderbar. Dann brauchst du noch was für Sound und was für Eingabe, schau dich mal ein wenig um ;)

Und abgesehen davon:
Progg doch einfach so das Wine bzw Cedega das ganze unter Linux am Laufen halten? Nicht die 100% saubere Methode, finde ich aber legitim =)

5

06.08.2006, 14:55

Danke schonmal für eure Antworten und gutgemeinten Ratschläge :)

@Gurke, Muuh:
Ihr ratet also dazu, OpenGL für die Grafik zu nehmen, jedoch kein SDL. Ich müsste also alleine für die Grafik dann eine Engine finden (oder erfinden *g*), die auf OpenGL basiert. Bleiben Sound, Input etc., weiß jemand, womit sich das unter Linux am besten realisieren ließe?

Bücher sind mir btw. nicht wegen der Informationsmasse (die ist im Internet natürlich unschlagbar) lieber, sondern weil ich es einfach immer noch vorziehe, gerade längere theoretische Kapitel gemütlich auf der Couch zu lesen :)


@nix da:
Ich stimme dir zu, dass DirectX als umfassende Lib da im gewissen Sinne überlegen ist und ja, von sowas für Linux träumen sicher viele.
Den Mann-Frau Vergleich führt allerdings nur zu Geschlechtsoperationen, denn durchaus ist es schon möglich gewesen, moderne 3D Spiele unter Linux ohne Qualitätsabspriche spielen zu können, siehe eben das Beispiel Doom³. Das hängt natürlich auch mit den kommerziellen Interessen, dem Markt dahinter zusammen, an dieser Stelle stimme ich dir ebenfalls zu:
Linux-Spiele rentieren sich finanziell nicht.
Die Sache ist bloß, daß es mir darum überhaupt nicht geht. Wir scheinen da einfach aus verschiedenen Ecken zu kommen; ich fang gerade an, das Ganze als Hobby zu entdecken. Ob ich in diesem Bereich je professionell tätig sein werde, wird sich erst in Jahren herausstellen. "Ansehen" fand ich btw. witzig - ganz erstgemeinte Frage: Sowas gibt's in dem Bereich? Die meisten Leute, die an Spieleentwicklung beteiligt waren und die ich toll finde, sind Komponisten^^ Ich bin ja noch völlig neu in der Entwickler-"Szene"..


Auch wenn ich das vielleicht selbst gerade ein wenig getan habe, wäre es imho besser, Themen wie "Windows vs. Linux" nur soweit anzuschneiden, wie es für das Thema wichtig ist. Ich mein, wir kennen das doch alle aus anderen Foren, wenn irgendwer erstmal damit anfängt, ne Grundsatzdiskussion darüber anzuzetteln, dauert es keine Stunde und der Thread ist hinüber^^

6

06.08.2006, 15:09

für sound würde ich openAL empfehlen, da es sehr an openGL angelehnt ist, und für ogl-nutzer damit sehr einfach zu benutzten.

DarioFrodo

Treue Seele

Beiträge: 349

Wohnort: Kerkau, 100km nördlich von Magdeburg

Beruf: Selbstständig

  • Private Nachricht senden

7

07.08.2006, 07:24

Linux

Es gibt eschon eine Grafik-Engine für Linux (und Windows):
Ogre3D

Für Grafik würde ich OpenGL nehmen (ist unter Linux die mir bekannte einzigste möglichkeit), für Sound OpenAL, für Multitasking und Zeit kannst du SDL verwenden und für Direct Input, ich glaub da gab es auch eine Plattformübergrefende Lösung bei Ogre.

Viele Hobby Entwickler entwickeln für Linux und Windows.

Die Irrlich-Engine basiert auch sowohl auf DirectX als auch auf OpenGL, wie fern man diese Spiele-Engine unter Linux verwenden kann wei ich nicht.
Erst wenn der letzte Fluss vergiftet,
der letzte Baum gefällt,
der letzte Fisch gefangen,
dann werdet ihr merken, dass man Geld nicht essen kann

Man verkauft die Erde nicht, auf der die Menschen wandeln.

- Indianerweisheiten

Ich bin auch ein einhornimmond ;)

8

07.08.2006, 07:43

Re: Linux

für multitasking kannste auch OpenMP nehmen :)

directInput ist bei Ogre nicht drinn (ok, is drinn, aber war eigentlich nicht geplant und ist auch nur ungenügend umgesetzt)

Anonymous

unregistriert

9

07.08.2006, 09:52

Ich frag mich ja immer was so viele Leute dazu bewegt sich mit sovielen Libs auseinander zu setzen, sich so viele Lizenzen auf den Puckel zu packen für im Endeffekt gar nix - Die Leute müssen langeweile haben.

10

07.08.2006, 10:01

Zitat von »"nix da"«

Die Leute müssen langeweile haben.

das trifft es so ungefähr :)
nebenbei erhält man da ne große flexibilität. ok, deiner meinung nach reicht directX, aber n blick über den tellerrand kann doch nicht schaden...

Zitat

Lizenzen

naja, was mich betrifft, is mir das als hobbyentwickler ziemlich egal...

Werbeanzeige