Salut tout le monde
Une nouvelle librairie viens de sortir, elle possède beaucoup de point fort et reste aussi simple que SDL ; avantage elle est à jour ;)
Voici un copier coller de la présentation à partir du site :
Qu´est-ce que SFML ? Pourquoi devrais-je l´utiliser ?
SFML est une API portable et facile à utiliser, écrite en C++. Vous pouvez la voir comme une alternative orientée objet à la SDL.
SFML est composée de nombreux modules pour coller parfaitement à vos besoins. Vous pouvez utiliser la SFML en tant que système de fenêtrage minimal pour s´interfacer avec OpenGL, ou en tant que bibliothèque multimédia riche en fonctionnalités pour construire des jeux vidéo ou des programmes interactifs.
Fonctionnalités principales
* Portable
SFML compile sur les plateformes standards comme Windows et les systèmes Unix (Linux, Mac OS). Au fur et à mesure de l´évolution de la bibliothèque, d´autres systèmes d´exploitation seront supportés.
* Orienté objet
SFML est écrite en C++ et fournit une architecture efficace et orientée objet. Elle utilise intensivement les motifs de conception et idiomes standards, pour fournir un framework simple et robuste.
* Facile à utiliser
SFML a pour but d´être facile à manipuler. Un effort particulier est mis sur le code interne, afin de fournir la plus simple des interfaces publiques.
* Flexible
Plutôt que d´être une grosse API, SFML contient plusieurs petits modules, qui peuvent être choisis et combinés selon l´utilisation que vous souhaitez en faire. Vous pouvez utiliser uniquement le module de base pour avoir un système de fenêtrage / évènements, ou bien le module graphique complet contenant sprites et post-fx par exemple.
* Facilement integrable
SFML peut être utilisée dans une ou plusieurs fenêtres, et/ou être intégrée à des composants d´interface existant. L´intégration avec des bibliothèques d´interface graphiques (GUI) est facile, ainsi vous pouvez ajouter des vues SFML à des interfaces complexes construites avec Qt, wxWidgets, MFC et autres.
Module système
* Mesure du temps portable et précise
* Threads et mutexs simples et orientés objet
Module de fenêtrage
* Peut être utilisé comme module minimal et portable pour remplacer la SDL ou GLUT pour le fenêtrage et les évènements avec OpenGL
* Peut créer plusieurs fenêtre de rendu
* Peut être intégré dans des composants d´interfaces Qt / MFC / wxWidgets / Win32 / ... existantes
* Fournit une interface basée sur les messages et une interface temps réel pour les entrées (clavier, souris, joysticks)
* Peut gérer un ou deux joysticks
Module graphique
* S´interface très facilement avec OpenGL (voir les exemples OpenGL)
* Effets modernes disponibles et accélérés par le matériel : alpha-blending, rotations, shaders, ...
* Gère la mémoire de manière efficace, ainsi vous n´avez pas à vous préoccuper de la durée de vie ou du stockage des ressources ; vous pouvez même charger vos ressources graphiques avant qu´une fenêtre de rendu soit créée.
* Peut charger et sauvegarder les formats d´image standards : bmp, dds, jpg, pcx, png, pnm, raw, sgi, tga, tif
* Peut utiliser des vues à la manière des scènes 3D, pour zoomer / déplacer / tourner l´ensemble de la scène
* Utilise un langage de shader simplifié pour ajouter des post-effects en temps réel
* Manipulation aisée du texte via les polices graphiques ; supporte les formats de polices standards (ttf, cff, pcf, bdf, ...)
Module audio
* Utilise l´accélération matérielle si disponible
* Peut charger et sauvegarder les formats audio standards : ogg, wav, aiff, au, raw, et beaucoup d´autres
* Spatialisation du son en 3D
* Interface simple pour réaliser des captures audio
* Gère la mémoire de manière efficace, ainsi vous n´avez pas à vous préoccuper de la durée de vie ou du stockage des ressources
* Supporte la lecture en flux (streaming) pour les sons volumineux ; vous pouvez même écrire votre propre classe de flux pour gérer tout type de source (réseau, ...)
* Supporte les formats multi-canaux (mono, stéréo, 4.0, 5.1, 6.1, 7.1)
Module réseau
* Fournit une couche portable pour les sockets TCP et UDP
* Transferts de données faciles via un système de paquets extensibles basé sur les flux
Module video
* A venir...
Et pour finir voici le lien du site :
http://sfml.sourceforge.net/index-fr.php
Cette librairie a l´air fort interressante. Un module réseau (
), des sons (beaucoup plus de formats disponibles), mais je reste quandmême attaché à SDL ![]()
Comme beaucoup d´entre nous.
Ah, cette *** de conservatisme... Faudrait juste qu´elle soit traduite en d´autres langages aussi. C´est ça le point fort d´une librairie pas mise à jour : pas de nouvelles versions à refaire en d´autres langages.
![]()
Vous pouvez aussi suivre une discussion avec l´auteur de la lib sur le forum du GCN :
http://forum.games-creators.org/showthread.php?p=50350#post50350
Au cas où, je l´ai aussi renvoyé ici pour qu´il puisse noter les diverses réactions sur ce post.
Apparemment ca a l´air pas mal du tout je crois je vais allé faire un ´tit tour sur la doc ^^.
Voici quelques comparatifs entre SFML et la SDL sur différentes configurations.
http://sfml.sourceforge.ne.net/forum/viewtopic.php?t=43
http://sfml.sourceforge.net/forum-fr/viewtopic.php?t=45
nice ! ![]()
Ça à l´air très très intéressant. Ça ressemble beaucoup à ce que je voulais obtenir il y a quelques années avec ma lib vsgl sans avoir jamais réussi à terminer ça correctement.
Je le testerais dès que j´aurais le temps.
J´ai fait quelques test de la bibliothèque, entre autre, j´ai porté une ancienne appli que j´avais écrit avec advio2 vers SFML, et c´est vraiment super.
Cette bibliothèque est vraiment très très simple à utiliser, et même si elle n´a pas encore énormément de fonctionnalités, ça peut déjà très bien remplacer la SDL pour tout ceux qui veulent rentrer dans le 21ème siècle plutôt que de rester avec une technologie obsolète.
La documentation est assez complète avec des petits tuto sympa pour débuter, il y a des forums d´aide en français et en anglais pas encore très vivant mais déjà actif, etc. Bref, rien que des bonnes raisons pour utiliser cette bibliothèque, que ce soit pour programmer votre premier tetris, votre cinquième shoot them up spatial, ou le rendu graphique de votre application de simulation de désintégration atomique.
J´avais arrêté de programmer en C++ par manque d´un outils simple et portable de gestion de l´interface, je crois que je vais m´y remettre maintenant.
En résumé, un seul conseil : essayer cette bibliothèque, vous allez l´adorez.
Ouha tout ça m´a l´air fort interessant dès que je serais motivé je m´y mettrais ^^
J´ai voulu essayer le bench sur ma config qui pour info est au moins 4 fois moins puissante que ce qu´il qualifie de "bas de gamme" dans son sujet, résultat des courses ça n´a pas l´air d´aimer une de mes dlls.
http://img521.imageshack.k.us/img521/8476/erreurwi3.png
Ca c´est sous windows, sous linux avec wine ça tourne dans le vide.
Que ce serait lié à ma version de windows vieillissante que ça ne m´étonnerait pas, sauf que là j´ai la flemme de tenter de corriger ça, je me pencherais plus sur le problème quand un port python de sfml sera dispo.
Un poil en retard : SFML est passée en version 1.1.
http://sfml.sourceforge.net/index-fr.php
Au menu des améliorations :
- Les namespaces largement demandés par la communauté qui s´est formée autour de cette bibliothèque ont été intégrés
- un portage OSX et un binding ruby sont désormais disponibles.
- diverses améliorations et corrections ont été apportées :
http://sfml.sourceforge.net/forum-fr/viewtopic.php?t=131
il y a même 4 lignes de code de moi dans cette version, alors il faut l´essayer, elle est vraiment très bien !
Binding RUBY !! ! Là, je suis vraiment motivé à l´essayer ! ![]()
Un poil en avance cette fois, SFML devrait bientôt passer en version 1.2!
Pour ceux qui attendaient le binding python (hé, psst, Xaar, tu pythonnes toujours?), celui-ci est déjà disponible sur le svn.
Houlà, va falloir apprendre ce qu´est un svn
tu pythonnes toujours?<<<
Tout à fait, meme si je ne sors pas des masses de trucs terminés ces temps çi, vu que je vise plus gros qu´avant. Et puis ces derniers temps je suis aussi ralenti car je passe une bonne moitié de mon temps de programmation à regarder ce que donne le freebasic, ça me change un peu.
"Houlà, va falloir apprendre ce qu´est un svn
"
http://sourceforge.net/svn/?group_id=188964
Au menu : installation de subversion sur ton système, téléchargement des sources de sfml, compilation, téléchargement des headers qui manquent, compilation, téléchargement des headers qui manquent, compilation, téléchargement des headers qui manquent (vive apt XD), compilation (vive make
), installation de la bibliothèque compilée puis installation du binding python! Ouf, c´est fait... et c´est pas si compliqué que ça en a l´air.
C´est assez déstabilisant venant de Pygame, il y a beaucoup de setters et getters importés directement de la lib C++ d´origine, pas de blit, des Rect tout faiblards, une grosse utilisation des Sprites (notion centrale de l´API)... Mais ça se laisse prendre en main assez rapidement quand même si on essaye de comprendre la logique. Aussi je suis en train d´essayer de convaincre le mainteneur que "import pysfml \ pysfml.machin()" c´est mieux que "from PySFML import * \ sf.machin()"...
Enfin bref, voilà.
Ah, et par curiosité... tu vises plus gros? Racontes!
Au menu : blablabla<<<
J´imagine déjà d´ici les compilations qui vont planter avec des erreurs incompréhensibles comme elles le font la moitié du temps... Y a pas plutot un paquet tout pret ? Non ? Ah bah zut alors
Ah, et par curiosité... tu vises plus gros? Racontes!<<<
Je me suis remis au moteur d´action-rpg que je voulais faire au tout début quand je me suis mis à pygame sauf que ça stagnait comme c´est pas possible parce que j´étais pas assez fort pour ça. Là je le sens mieux mais c´est pas non plus demain que je vais sortir une démo jouable.
Je pense qu´il y aura des paquets pour la release. Question compil ça passe bien avec les headers qu´il faut, c´est vraiment du beau boulot.
Kewl!