Freeglut vs SDL vs GLFW


26

devo trasferire il mio progetto di gioco da Android (scritto in C, OpenGL ES 2.0, grazie a NDK) su piattaforme Windows e Linux. Ovviamente dovrò riscrivere un po 'di codice dipendente dalla piattaforma, ma ora mi sono bloccato con la domanda quale libreria per la creazione di OpenGL e l'utilizzo dell'handle di input.

Solo una rapida ricerca su Google mi fa ottenere 3 candidati:

1) Freeglut - buon vecchio GLUT riscritto e gratuito.
2) SDL - molto conosciuto un lib, usato in molti giochi.
3) GLFW - una sorta di nuovo, ma semplice e funzionale.

Ho appena sviluppato un nuovo sviluppo del PC e non vedo differenze significative tra loro. Potete aiutarmi quale scegliere? Ho chiaramente bisogno solo dell'input del mouse / della tastiera e della creazione del contesto OpenGL, inoltre userò GLEW per accedere al moderno OpenGL con facilità.


2
La risposta sarà molto ponderata e non è proprio una buona domanda per il formato SE. Detto questo, la mia risposta molto supponente - avendo usato tutti e tre per progetti reali, e alcuni altri come SFML, GLUT, Qt e una soluzione a rotazione manuale - è che SDL offre un buon mix di funzionalità, stabilità e facilità d'uso. Consiglio in particolare le versioni pre-release 2.0 (disponibili solo controllando il repository Mercurial e costruendo te stesso, ma è abbastanza facile). Secondo, SFML è abbastanza buono. Ho trovato troppi bug in GLFW, GLUT è dannoso per i giochi e il lancio a mano è un sacco di lavori.
Sean Middleditch,

Personalmente consiglierei SDL perché gestisce tutte le parti di un gioco dall'input alla grafica all'audio e all'input. Tuttavia, può essere limitante, ma poiché provieni da un gioco già sviluppato per una piattaforma più limitata, penso che sarebbe una buona scelta.
CobaltHex,

Sì, è un sondaggio. Il mio voto è GLFW, semplice, facile, non ho mai avuto problemi che non sono stati risolti. È super leggero e facile da compilare.
Deceleratedcaviar

Risposte:


29

GLFW è moderno e ha un ambito molto ben definito . È anche in fase di sviluppo molto attivo.

L'SDL dall'altro lato è solido come una roccia e ha molte caratteristiche in diversi ambiti ma in qualche modo manca di tutti (ad esempio: SDL può fare audio, ma potresti preferire usare OpenAL perché è di gran lunga superiore in quella materia). È possibile notare che SDL è stato portato su molte piattaforme diverse, a differenza di GLFW che è solo per piattaforme desktop (win / linux / mac).

GLUT , beh, dovrebbe essere evitato . Semplicemente non c'è proprio nulla in ciò che lo rende buono.


Secondo me il perfezionista GLFW è la scelta migliore. Perché fa esattamente quello che uno vuole, niente di meno niente di più. Lo sviluppo molto attivo è anche un buon segno per i progetti a lungo termine perché di solito significa che i bug verranno corretti, che verranno aggiunte nuove funzionalità, si manterrà al passo con gli standard più recenti e che non verrà abbandonato in qualsiasi momento vicino. Questo non è importante per una porta veloce o un gioco di 6 mesi, ma per un motore o una libreria che desideri riutilizzare, lo terrei presente.


7
Ma l'OP chiede a Freeglut non GLUT !!!

@ user3473 "FreeGLUT è un'alternativa open source alla libreria OpenGL Utility Toolkit (GLUT)."
YoYoYonnY

@YoYoYonnY Lo sono anche GLFW e SDL, quindi questa domanda.
Dan

@Dan ... no. GLFW e in particolare SDL non sono assolutamente alternative a GLUT, perché puoi fare cose con loro che non puoi con GLUT e viceversa.
YoYoYonnY,

@YoYoYonnY Puoi fare cose con FreeGLUT che non puoi fare con GLUT. Il mio punto è ancora valido.
Dan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.