Je cherche à créer un moteur de jeu de style RPG 2D open source multiplateforme pour ChaiScript .
Je veux pouvoir faire tous les graphiques avec SVG et avoir besoin d'une entrée par joystick. J'ai également besoin que les bibliothèques que j'utilise soient open source et compatibles avec la licence BSD.
Je connais allegro , ClanLib et SDL . Pour autant que je sache, aucune de ces bibliothèques n'a intégré ou une intégration évidente pour SVG. De plus, je suis au courant des conversations précédentes sur ce site concernant Qt pour le développement de jeux SVG.
J'espère éviter Qt en raison de la taille et de la complexité d'en faire une exigence. De plus, Qt ne semble pas avoir de prise en charge du joystick, ce qui nécessiterait l'utilisation de SDL ou d'une autre bibliothèque.
Donc, ma question peut se résumer comme suit:
- Quelle est la meilleure façon d'obtenir le support SVG et joystick dans une bibliothèque 2D C ++ tout en minimisant autant que possible les dépendances (en évitant de préférence Qt)?
Réponses:
Je ne vois aucune raison pour laquelle vous ne pourriez pas utiliser SDL ou une autre bibliothèque d'entrée avec une bibliothèque graphique 2D comme libcairo .
Quant à ChaiScript, avez-vous entendu parler de Lua ?
la source
Vous est-il déjà venu à l'esprit de demander ... pourquoi?
Bien sûr, SVG est une spécification compliquée à implémenter au niveau de base "obtenir le XML en mémoire et le valider". Mais je ne pense pas que vous appréciez pleinement le simple fait que le rendu SVG n'est pas rapide .
Les navigateurs Web sont rapides s'ils affichent une page Web en moins de 500 ms environ. Le rendu des images SVG peut prendre 20 ms +, et c'est pour les petites et simples. Quelque chose que vous pourriez trouver dans un jeu, un jeu non trivial graphiquement, va prendre beaucoup, beaucoup plus de temps. Le rendu d'image SVG n'est pas destiné à une animation rapide.
Même quelque chose de niveau inférieur comme libCairo n'est pas exactement un moteur de rendu hautes performances. Bien sûr, il est assez rapide pour un navigateur, mais il n'est pas exactement flamboyant dans ses performances de rendu logiciel.
En bref, je laisserais tomber SVG entièrement et verrais si libCairo peut répondre à vos besoins. C'est juste à des fins d'évaluation, pour voir si cela fonctionne assez rapidement dans des circonstances qui correspondent à l'objectif que vous avez prévu pour elles. Une fois cela déterminé, vous pouvez décider quoi faire ensuite en termes de technologie (Qt, SDL, peu importe).
la source
En ce qui concerne ce SVG n'est pas le meilleur pour générer du contenu à la volée et pour le rendu en temps réel, même en 2D, cependant ....
Si vous deviez utiliser les fichiers SVG pour créer votre contenu original, vous pourriez alors avoir une phase de génération de pré-niveau / zone avec un écran de chargement / une scène de coupe approprié où vous utiliseriez le contenu SVG pour rendre des images standard de la résolution dont vous avez besoin, cela vous permettrait de coder simplement avec des images normales, tout en conservant la flexibilité du SVG pour le ciblage multi-résolution. Ce n'est pas une idée, mais de cette façon, vous pouvez tirer parti du matériel pour jouer avec les images pré-rendues de la façon dont il a été conçu, plutôt que d'essayer de générer du contenu à la volée à partir de fichiers SVG. Comme l'ordinateur n'afficherait que l'écran de chargement / la scène de coupe, vous pourriez consacrer une énorme proportion des ressources disponibles à la génération des images standard à partir de SVG et donc le faire de manière rapide et efficace.
la source
Irrlicht a un support SVG et joystick
la source