Développez vos jeux vidéo facilement avec BennuGD

Posté par  (site web personnel) . Édité par Davy Defaud, Nÿco, rootix, baud123 et Nils Ratusznik. Modéré par Nÿco. Licence CC By‑SA.
Étiquettes :
12
25
oct.
2012
Jeu

Bennu Game Development est un environnement de développement de jeux vidéo libre en mode console, qui a été créé en 2008 par un argentin, Juan José Ponteprino, alias SplinterGU. C’est un dérivé de Fenix 0.93 (de Carlos Falo Hervás et José Luis Cebrián), lui‐même fork du langage DIV du logiciel DIV Game Studio de Daniel Navarro Medrano.

Bennu veut dire phénix en égyptien ancien. BennuGD est donc un langage de programmation interprété multi‐plate‐forme, libre et optimisé pour le jeu vidéo. Il convient aux codeurs débutants et aussi expérimentés. SplinterGU y a intégré le concept de modularité permettant d’utiliser des extensions tierces, comme le réseau, les manipulations graphiques avancées, la lecture de MPEG, l’analyse de XML… BennuGD permet de faire des jeux 2D rapides, mais aussi en 3D grâce au moteur Irrlicht ou grâce aux développements d’un groupe colombien.

Bennu Game Development

Considérations techniques

Le noyau est complètement portable, à partir du moment où il y a un compilateur C pour lui. Il comprend le compilateur, l’interpréteur, et le moteur d’exécution.

Les modules de Bennu utilisent SDL pour de nombreuses fonctions de base, ce qui les rend également portables sur de nombreux systèmes, tels que : Windows, GNU/Linux, FreeBSD, BeOS/Haiku, Mac OS X, iOS et des consoles telles que GP2X Wiz, Caanoo, Dreamcast, Wii, OpenPandora, PlayStation 2, Xbox, Dingoo A320.

Le portage sur Android a été réussi plus récemment par le groupe espagnol de développement de jeux libres PIXjuegos avec le jeu PixFrogger (un Frogger multijoueur) grâce au portage du noyau réalisé par Josebita.

Notez qu’il existe des interfaces graphiques de développement intégré (IDE), mais elles ne sont pas officiellement prises en charge.

Licence

Iinitialement GPL v2, elle a été modifiée en Zlib en mai 2011, pour être compatible avec l’AppStore.

Remarques

Il existe un autre dérivé de Fenix sous le nom de Gemix.

Pour la petite histoire, SplinterGU s’était intéressé à Fenix une première fois en 2002. Plus tard, en 2006, il a cherché un moteur de jeu et s’est penché à nouveau sur Fenix. Il a alors trouvé un projet moribond et bogué. Quand il a cherché à faire des modifications, il s’est heurté à l’opposition des développeurs en place ; il a alors décidé de « forker » le projet.

Aller plus loin

  • # Pourquoi un nouveau langage ?

    Posté par  . Évalué à 6.

    En quoi les besoins de développement de jeu vidéo nécessitent-ils un nouveau langage, plutôt qu'une nouvelle bibliothèque pour un langage existant ?

    (Je ne pose pas une question rjétorique par malice, pour suggérer que la réponse est "en rien". C'est une question sérieuse.)

    Je trouve que la dépêche manque d'exemples de code. Avez-vous des exemple de code qui mettent en valeur les fonctionnalités spécifique de Bennu, et donc l'intérêt de définir un nouveau langage ?

    • [^] # Re: Pourquoi un nouveau langage ?

      Posté par  (site web personnel) . Évalué à -1. Dernière modification le 25 octobre 2012 à 14:55.

      Va télécharger des exemple de code sur le site francophone par exemple pour te faire une idée : lien
      ou bien consulter les tutoriels.

      • [^] # Re: Pourquoi un nouveau langage ?

        Posté par  . Évalué à 5.

        Justement j'aimerais bien trouver ces informations dans la dépêche (ou éventuellement ses commentaires). Là tu me suggères de télécharger des codes sources au hasard en espérant trouver dedans la ou les constructions qui répondent à ma question et la comprendre (alors que justement elle est sans doute nouvelle et spécifique), ou alors chercher dans des tutoriels qui sont sans doute destinés aux débutants plutôt qu'aux gens qui se posent cette question. Tu n'as pas une indication plus précise ?

        • [^] # Re: Pourquoi un nouveau langage ?

          Posté par  (site web personnel) . Évalué à 2.

          Tu n'as pas une indication plus précise ?
          Non, pas vraiment et je ne suis pas développeur de jeux video, non plus. C'est peut-être un peu compliqué pour une news de rentrer dans ces détails. Ca concernerait plutôt des messages dans les forum. Ceci dit, de ce que j'en ai vu ça a l'air intéressant en tout cas suffisamment pour que des spécialistes comme PixJuegos l'utilisent ainsi que des groupes qui font faire des jeux à des ados.

    • [^] # Re: Pourquoi un nouveau langage ?

      Posté par  . Évalué à 3.

      Je me souviens avoir utilisé DIV il y a longtemps, alors que je ne connaissais aucun langage de programmation, et il y avait moyen d'arriver facilement à des choses sympathiques. Je ne me souviens plus du tout de la structure du langage, donc je ne suis pas d'une grande aide non plus, mais je peux juste dire qu'étant novice total en programmation j'arrivais déjà à faire deux-trois choses avec DIV (mais vraiment pas grand chose, j'étais assez jeune) alors que faire du C/SDL aurait été totalement inenvisageable pour moi. Le bouquin de documentation fourni avec était extrêmement clair et bien fait.

      De ce que je me souviens on avait par exemple par défaut une fonction de détection de collision. J'imagine que la plupart des problèmes récurrents un peu complexes du monde du jeu vidéo ont des fonctions toutes prêtes.

      Après un petit tour sur le wiki, la boucle principale est gérée par le langage. Chaque entité sur le jeu (balle dans un casse-brique par exemple) est gérée par une fonction (processus dans la doc) indépendant du reste qui fait son boulot jusqu'au mot-clef frame qui indique d'attendre l'image suivante. La boucle principale va parcourir chaque processus, l'exécuter jusqu'au mot-clef frame puis passer à l'image suivante et recommencer.

      Le tutoriel est plus précis : http://wiki.bennugd.org/index.php?title=Beginner%27s_tutorial .

      • [^] # Re: Pourquoi un nouveau langage ?

        Posté par  (site web personnel) . Évalué à 0.

        Merci pour ces infos. Qu'en disent les autres spécialistes de développement de jeux video ?

      • [^] # Re: Pourquoi un nouveau langage ?

        Posté par  . Évalué à 3.

        Je comprends que C/SDL soit un peut compliqué pour un débutant mais un langage comme Python ou Ruby (ou même Java) avec une bonne bibliothèque revient au même il me semble.

        « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

        • [^] # Re: Pourquoi un nouveau langage ?

          Posté par  . Évalué à 2.

          De mes souvenirs, programmer en DIV c'était plus exprimer directement quels sont les différents objets dans le jeu et comment ils évoluent sans se préoccuper de la boucle principale, un peu comme on pense directement quand on fait un jeu, là où j'imagine qu'un langage interprété avec une bibliothèque appropriée permet a priori juste un accès très simple aux fonctions très utilisées dans les jeux (afficher tel truc ici, savoir si on a appuyé sur tel bouton). Mais je dis sans doutes des bêtises, je n'ai pas vraiment utilisé de langage interprété avec bibliothèque appropriée pour faire des jeux.

          Autre avantage : j'imagine que le langage DIV doit mieux se prêter à la parallélisation que le C où il faut explicitement recourir aux threads. Après, si l'on souhaite mettre à jour une entité avant une autre je ne sais pas du tout comment ça se passe.

          J'ai re-regardé un bref instant la documentation de Bennu et il y a quand même une fonction Main() donc c'est plus subtil que ça ; le mieux est de jeter un coup d'oeil sur le tutoriel, mais malheureusement pas d'exemple de jeu, et c'est vraiment dommage.

    • [^] # Re: Pourquoi un nouveau langage ?

      Posté par  . Évalué à 2.

      Je tente une réponse, je me suis un peu penché sur la création de jeux, et mes recherches m'ont amené à la conclusion suivante. Je ne connais pas BennuGD.

      Ce framework proposant une multitude de plateforme , ne peut pas s'adosser à un langage en particulier.

      Windows, GNU/Linux, FreeBSD, BeOS/Haiku, Mac OS X, iOS et des consoles telles que GP2X Wiz, Caanoo, Dreamcast, Wii, OpenPandora, PlayStation 2, Xbox, Dingoo A320.

      Chacune de ces plateformes propose son langage et ses regles.

      Créer un langage de haut niveau permet donc d'avoir une source à partir de laquelle générer dans les differentes cibles. Ce n'est pas le seul framework à faire cela
      - PlayN (5 plateformes)
      - Jeash basé sur Haxe (iOS, Android, Windows Mobile, webOS )

      En gros si tu cibles un seul langage, une seule plateforme tu vas attirer moins de developpeurs. Car pour un même code le developpeur de jeu casual lambda va vouloir être sur Google Play, Apple App Store, sur console et sur PC pour gagner plein de pepette rapidement.

      Vala j'espère avoir donné un élément de réponse pas trop débile.

      • [^] # Re: Pourquoi un nouveau langage ?

        Posté par  (site web personnel) . Évalué à 4.

        Sur le même créneau que BennuGD, tu as pygame et love2d qui ont l'avantage de proposer des langages plus matures, utilisés dans l'industrie et pas seulement pour les jeux et pour lesquels on a le minimum vital (IDE, debugger).

        Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

        • [^] # Re: Pourquoi un nouveau langage ?

          Posté par  (site web personnel) . Évalué à 1.

          BennuGD semble séduisant, en revanche il nécessite de générer des binaires spécifiques à chaque plateforme. C'est sans doute nécessaire pour les consoles, mais pour les OS de bureau, voire les tablettes, un bytecode comme pour pygame (python) ou love2d (lua), unique pour faciliter le multiplateforme, n'est pas un mal. D'ailleurs dans les jeux du concours sur BennuGD, peu sont disponibles pour Linux.

          « I approve of any development that makes it more difficult for governments and criminals to monopolize the use of force. » Eric Raymond

  • # Facilement?

    Posté par  (site web personnel) . Évalué à 3.

    For Bennu there is not yet an official IDE

    Le post ci-dessus est une grosse connerie, ne le lisez pas sérieusement.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.