QT für Spiele

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 577
Registriert: 05.07.2003, 11:17

QT für Spiele

Beitrag von Lord Delvin »

Hat jemand Erfahrung mit QT? Hab mir überlegt das statt sfml zu benutzen, da mein Rendercode an sich eigentlich nicht komplex ist. Ist 2D und nur ein paar Sprites sind zu sehen. Und ich hab keine Lust mich wieder mit GUI rumzuschlagen. Das hat mich bei boreas schon so abartig demotiviert.

Oder hat jemand vielleicht n anderen Vorschlag für ne IngameGUI? Hatte mal CEGUI angesehen, die is mir aber zu verbuggt und scheint auch nicht weiterentwickelt worden zu sein. Was benutzt ihr dafür?

Gruß
XML/JSON/EMF in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Benutzeravatar
jgl
Establishment
Beiträge: 109
Registriert: 08.04.2009, 08:58

Re: QT für Spiele

Beitrag von jgl »

Hatte mal CEGUI angesehen, die is mir aber zu verbuggt und scheint auch nicht weiterentwickelt worden zu sein. Was benutzt ihr dafür?
Also ich benutze ebenfalls CEGUI und bin eigentlich ganz zufrieden damit! Ist gewohnheitsbedürftig, aber es geht schon. Weiterentwickelt wird das auch, soweit ich weiß.
Also meiner Meinung nach, geht Qt da auch. Müsstest Dir da für jedes In-Game-Gui-Element ein QT-Widget ableiten.
Benutzeravatar
Schrompf
Moderator
Beiträge: 4858
Registriert: 25.02.2009, 23:44
Benutzertext: Lernt nur selten dazu
Echter Name: Thomas Ziegenhagen
Wohnort: Dresden
Kontaktdaten:

Re: QT für Spiele

Beitrag von Schrompf »

Ach iwo. Man kann Qt benutzen... solange Du ohne 3D-Beschleunigung auskommst, geht das prima. Drei Möglichkeiten:

a) ein Custom Widget. Das benutzt Du als Zeichenfläche, um darin einfach mit den QPainter-Funktionen drin rum zu malen. Unterstützt Text, Linien, Polygone, Bilder, Transformationen, Antialiasing... eigentlich alles. Ist aber komplett software-gezeichnet. Dann am Ende von YourCustomWidget::paintEvent() einfach wieder update() aufrufen und Du hast eine klassische "Mal mich so schnell wie möglich"-Update Loop, wie man sie von Spielen gewohnt ist.

b) QGraphicsView. Unterstützt gigantische Massen von 2D-Objekten mit Layern, Transformationen, Texten, Grafikelementen und Grafiken, ist allerdings eher für die Anzeige von statischen Funktionen gedacht. Wenn Du vollständig dynamische Szenen hast, dürftest Du damit wohl nicht über ein paar hundert Objekte hinauskommen. Die ganzen Optimierungen von QGraphicsView funktionieren nur mit statischen Elementen wirklich gut.

c) ein Custom Widget mit eigener paintEngine. Also die paintEngine() schlichtweg mit NULL überladen und dann ganz banal einen DirectX- oder OpenGL-Kontext erstellen, mit dem Du in das Widget reinrenderst. Damit ist der Splitterwelten-Editor geschrieben, oder auch mein Schatten-Prototyp von vor ein paar Wochen.

Ist alles kein Ersatz für die SFML, wirklich fette dynamische Szenen wie meinetwegen Diablo oder sowas kriegst Du damit nicht hin. Aber am Ende hindert Dich auch nix daran, einfach mit der SFML in ein Custom Widget zu rendern. Oder halt DirectX zu nehmen und die GPU zu benutzen.
Früher mal Dreamworlds. Früher mal Open Asset Import Library. Heutzutage nur noch so rumwursteln.
Benutzeravatar
Lord Delvin
Establishment
Beiträge: 577
Registriert: 05.07.2003, 11:17

Re: QT für Spiele

Beitrag von Lord Delvin »

Danke, war hilfreich:)
XML/JSON/EMF in schnell: OGSS
Keine Lust mehr auf C++? Versuche Tyr: Get & Get started
Antworten