• # Ni l'un ni l'autre

    Posté par . En réponse au journal SDL2 ou SFML2 ou ... ?. Évalué à 4.

    Si tu veux faire de la 2D, oublie les. Elles ne sont pas adaptees ! La plus part des gens qui debutent pour un jeu 2D, se disent qu'il leur faut juste un moyen de pouvoir mettre quelques sprites a l'ecran avec un peu de texte. Rien de bien complique et ca ne devrait pas poser de probleme a n'importe quel PC moderne...

    Puis un jour, c'est du logiciel libre, un fou tente de le porter sur un telephone, un autre sur une console etrange, ... Et rapidement toute la complexite de faire un moteur 2D se revele. Optimiser l'utilisation de tous les CPU disponibles, limiter la consomation de bande passante memoire, avoir une portabilite OpenGL, OpenGL ES et software, s'adapter aux peripheriques d'entree et de sortie... Et voila apres quelques annees, on se retrouve avec une base de code qui ressemble a un toolkit complet, mais en moins bien et developpe plus par effet de bord que par volonte.

    Pendant ce temps la, les toolkits graphiques, un peu comme le noyau Linux, attire des developpeurs avec des objectifs differents qui poussent le toolkit a s'ameliorer dans toutes les directions. Au final, ils sont plus performant que ce que n'importe quel jeu Linux arrivera a atteindre par lui meme. Les gens qui developpent ces toolkits, gagne en competence nettement plus rapidement que un projet unique, car ils sont expose a plus de variation et de contrainte. Il est donc une mauvaise idee de reinventer un moteur 2D, meme pour apprendre. Participer a un projet de toolkit existant de faira apprendre beaucoup plus et beaucoup plus vite que ce que tu decouvriras par toi meme en faisant ton propre moteur.

    En conclusion, je te conseille Qt ou les EFL. Je ne presente pas Qt, ce n'est pas mon domaine :-) Mais pour les EFL, tu as une portabilite Linux, Windows et Mac. Un port Android est en cour. Le rendu et le code de ton application sont le meme quelque soit la plateforme et la methode de rendu graphique (OpenGL, OpenGL ES ou software). Tu as une main loop, le support reseau, le support audio, l'abstraction des peripheriques d'input et tu peux la compiler completement en static avec ton application pour faciliter la distribution avec une version particuliere.