LibGDX
La bibliothèque de jeux en Java passe à la version 1.3 et intègre un système de particules 3D et son éditeur

Le , par LittleWhite, Responsable 2D/3D/Jeux

La bibliothèque Java multi-plateforme, Open Source, pour les jeux vidéo passe à la version 1.3. Avec celle-ci, vous pouvez développer des jeux iOS, HTML5 et PC. Voici les changements :

  • ajout dans la bibliothèque : Input.isKeyJustPressed ;
  • ajout dans la bibliothèque : les destinataires multiples sont maintenant supportés par le MessageDispatcher, voir https://github.com/libgdx/libgdx/wik...ple-recipients ;
  • changement dans la bibliothèque : L'état #onMessage prend maintenant le destinateur du message comme argument ;
  • ajout dans la bibliothèque : StackStateMachine pour l'extension gdx-ai ;
  • changement dans la bibliothèque : ShapeRenderer : les méthodes rect accepte un "scale" (une mise à l'échelle) et plus de méthodes peuvent travailler avec les types de remplissage et de lignes et le changement automatique de type de forme ;
  • changement dans la bibliothèque : fonctionnalité de débogage intégrées dans ShapeRenderer pour Stage, voir https://github.com/libgdx/libgdx/pull/2011 ;
  • les fichiers #getLocalStoragePath retournent maintenant le chemin actuel au lieu de l'équivalence d'une chaine vide sur PC (LWJGL et JGLFW) ;
  • correction et amélioration de l'implémentation du PRNG xorshift128+ ;
  • ajout du support pour les tuiles animées et la durée variable pour les animations ;
  • correction d'un bogue sur la granularité du temps dans MessageDispatcher ;
  • mis à jour vers Android API niveau 19 et les outils de compilation 19.1.0 nécessitant Eclipse ADT 23.02
  • mis à jour vers RoboVM 0.0.14 et le plugin RoboVM Gradle passe en version 0.0.10 ;
  • ajout dans la bibliothèque : ajout de FreeTypeFontLoader pour charger directement des BitmapFont générés avec gdx-freetype via le AssetManager, voir FreeTypeFontLoaderTest.java ;
  • les méthodes de Preferences retourne “this” pour enchainer les appels ;
  • correction bogue 2048 où le MessageDispatcher distribuait des messages retardés immédiatement ;
  • ajout dans la bibliothèque : systèmes de particules 3D et éditeur spécifique, contribution de lordjone, voir pull request 2005 ;
  • ajout dans la bibliothèque : classes de formes étendues comme Circle, Ellipse etc. avec les méthodes d'aide hashcode/equals et autres, voir pull request #2018 ;
  • changement mineur dans la bibliothèque : correction du bogue de gestion de atlasPrefixes, voir pull request 2023 ;
  • Bullet : les getter/setter de btManifoldPoint passent de btVector3 à Vector3, de plus, il n'y a plus de tampon, à la place les instances statiques sont utilisés pour les callback ;
  • ajout Intersector#intersectRayRay pour détecter si deux rayons 2D se croisent, voir pull request 2132 ;
  • Bullet : ClosestRayResultCallback, AllHitsRayResultCallback, LocalConvexResult, ClosestConvexResultCallback et les sous classes utilisent maintenant les getter/setter prenant un Vector3 à la place de btVector3, voir pull request #2175 ;
  • le système de particules 2D supporte l'alpha pre-multiplié ;
  • Bullet : btIDebugDrawer/DebugDrawer utilisent maintenant les instances Vector3 en tampon à la place des btVector3, voir pull request #2174.


Vous pouvez télécharger la bibliothèque sur le site officiel ou encore, accéder à la documentation.

Votre opinion

Avez-vous testé la bibliothèque ? Qu'en pensez-vous ? Montrez-nous vos projets !
Connaissez-vous des alternatives ? Quelles solutions utilisez-vous pour vos jeux vidéo ?

Source

Site officiel


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de 36942 36942 - Membre du Club http://www.developpez.com
le 13/08/2014 à 1:37
Oui, je l'ai testée!

TL;DR:
On peut trouver une démo HTML 5 à l'adresse suivante :
http://94.23.196.132:36942/webapp
Les boutons ne marchent qu'après avoir déclenché un combat en se déplacant sur la coccinelle.
Le premier bouton est une attaque, le second ne correspond à rien pour l'instant, le troisième met fin au tour.
Lancez deux fois la page côte à côte si vous êtes le seul joueur.
Le "monde extérieur" ne fait que 500 cases pour l'instant. Oui, c'est un prototype.


Développeur principalement logiciel, j'ai voulu expérimenter le développement de jeux-vidéos et ai test JMonkeyEngine avant LibGDX. M'est revenue alors ma nostalgie pour les jeux de stratégie en perspective isométrique et je me suis dit qu'un jeu comme ça sur smartphone ça serait vraiment sympa. Du coup LibGDX était plus adapté à mes envies et besoins : plus de plateformes compatibles et JME est plus axé 3D. Au moment ou j'ai commencé, LibGDX offrait alors majoritairement des outils plus bas-niveau que JME, ce qui m'a permis avec un peu d'expérimentation de mieux comprendre les logiques du jeu-vidéo. Le livre de Mario Zechner, auteur de LibGDX, m'a d'ailleurs été utile pour commencer.

Par contre j'ai du mal à me voir endosser toutes les casquettes que ça implique : le graphisme et le game design par exemple ne sont pas trop ma tasse de thé. Mon projet a un style graphique un peu "patchwork" à cause des ressources libres que j'ai pu trouver. J'ai un projet de jeu de stratégie en tour par tour en ligne et en perspective isométrique, mais totalement vide d'histoire et de thème graphique. On peut actuellement se balader sur un monde avec d'autres joueurs en temps réel et libérer une fille aux cheveux roses d'une machiavélique coccinelle en déclenchant un combat au tour par tour, c'est tout pour l'instant. Je le teste régulièrement en Java Desktop sous Windows, sur Android 4.4 et en HTML5 avec Firefox.

Voilà ce qui a été réalisé :

Du côté du client j'ai choisi une architecture MVPC dont je suis assez content, les logiques sont bien cloisonnées même si j'ai encore des choses à revoir comme la gestion des ressources et la HUD qui est encore très simple. Les fonctionnalités bas-niveau de LibGDX me permettent de maitriser de manière fine le rendering. Je compte me servir des outils plus haut niveau pour constituer la HUD mais j'aimerais constituer une équipe avant de la concevoir et j'ai bien des choses à faire avant.

J'ai choisi de faire le côté serveur en Java pour profiter de mon expérience avec ce langage et son écosystème. L'application serveur est hébergée sur un serveur JEE à qui je délègue la gestion des threads, du scheduling, des websockets et de la distribution du contenu statique*. Le côté serveur est conçu pour être performant et scalable à terme mais ça nécessitera d'abord de définir les ambitions et les moyens du projet. A l'heure actuelle il n'y a même pas de persistance ni de transactions.

En ce moment je travaille sur plusieurs fronts : je mets en place des outils de tests automatisés, j'approfondis mes connaissances sur les composants de HUD de LibGDX et réfléchis à un chargement dynamique de la map et à la scalabilité du bus d'évènements sur le contexte de navigation avec des clients nombreux.

J'essaie aussi de mettre en place un environnement de travail de qualité professionnelle : j'ai un serveur de développement qui s'occupe du versionnage et de l'intégration continue, j'en met en place un autre pour les tests et les démos. D'ailleurs, j'étais pas trop prêt pour une démo, mais bon...

Si vous voulez plus de précisions, si vous avez des questions, n'hésitez pas à m'envoyer un MP.
Si vous connaissez des gens sérieux, une équipe avec un oeuvre, un monde, des talents de graphistes et/ou une communauté qui pourrait être interessé pour faire murir ce projet n'hésitez pas à m'envoyer un MP!

* temporaire pour le contenu statique.
Avatar de LittleWhite LittleWhite - Responsable 2D/3D/Jeux http://www.developpez.com
le 07/05/2015 à 15:31
LibGDX, la bibliothèque de jeux en Java passe à la version 1.6


La bibliothèque Java multiplateforme, Open Source, pour les jeux vidéo passe à la version 1.6. Avec celle-ci, vous pouvez développer des jeux iOS, HTML5 et PC. Voici les changements :

  • GlyphLayout xAdvances possède une nouvelle entrée au démarrage ;
  • Label#getTextBounds a été granché en getGlyphLayout. Celle-ci permet d'obtenir toutes les mesures et non pas que la largeur et la hauteur ;
  • dans l'éditeur de particules 2D, tous les points d'un graphique peuvent être déplacés en maintenant la touche Ctrl. Ctrl+Maj permet une modification en gardant l'échelle ;
  • ajout d'un bouton dans l'éditeur de particules 2D pour la fusion de l'effet courant avec un effet à charger ;
  • ajout de la possibilité de récupérer les annotations des méthodes à partir de l'API de réflexion ;
  • ajout d'une méthode PixmapPacker.updateTextureRegions() ;
  • ajout de l’empaquetage des pixmaps "anonymes" dans un PixmapPacker qui apparaîtront dans la texture générée, mais pas dans le TextureAtlas ;
  • ajout des méthodes PixmapPacker.packDirectToTexture() ;
  • PixmapPacker.generateTextureAtlas(...) retourne un atlas qui peut être mis à jour avec PixmapPacker.updateTextureAtlas(...) ;
  • FreeTypeFontGenerator.generateFont(...) fonctionne avec les PixmapPacker personnalisés ;
  • Ajout de DirectionalLightsAttribute, PointLightsAttribute et SpotLightsAttribute, suppresion de Environment#directionalLights/pointLights/spotLights, ajout de Environment#remove. Les lumières sont considérées comme tout autre attribut. Voir https://github.com/libgdx/libgdx/wik...ronment#lights ;
  • les métriques de BitmapFont respectent le padding ;
  • mis à jour du wrapper de Buller à la version 2.83 ;
  • ajout de la méthode AnimatedTiledMapTile.getFrameTiles().

Avec cette version, vous devez mettre à jour votre module Eclipse RobotVM à la version 1.2.0. De plus, un public pour Intellij IDEA a été réalisé.

Vous pouvez télécharger la bibliothèque sur le site officiel ou encore, accéder à la documentation.

Votre opinion

Avez-vous testé la bibliothèque ? Qu'en pensez-vous ? Montrez-nous vos projets !
Connaissez-vous des alternatives ? Quelles solutions utilisez-vous pour vos jeux vidéo ?

Source

Site officiel
Avatar de IPreferCSharp IPreferCSharp - Membre habitué http://www.developpez.com
le 11/05/2015 à 9:20
J'utilise LibGdx en se moment pour la création d'un jeu vidéo 2D pour PC (Linux/Mac/Windows), j'en suis très satisfait.
Je ne compte pas la porter sur mobile ni web, mais le système de portage est vraiment bien pensé et simple.
Le wiki est très bien fait, et le framework est Open Source ce qui permet de palier au manque d'exemple à jour, étant donné que le framework évolue très vite. Les projets sont générés et gérés avec Gradle.
Le wiki propose des exemples et la communauté est active sur le forum.
Je n'utilise pas Box2D pour la gestion de mes acteurs mais ça à l'air simple d'utilisation et efficace.
Le framework possède toute une panoplie d'utilitaire génial pour tout un tas de chose. Aussi beaucoup de librairies externes, je pense a OverLap2D , TiledMapEditor ... sont supportées.

Je ne connais pas du tous les autres frameworks de jeu video java Android ou Desktop, mais personnellement j'ai fait mon choix. Aussi il me semble que google l'utilise pour son jeu mobile (il doit pas être si mal).
Avatar de LittleWhite LittleWhite - Responsable 2D/3D/Jeux http://www.developpez.com
le 26/09/2015 à 14:11
LibGDX, la bibliothèque de jeux en Java passe à la version 1.7

LibGDX est une bibliothèque Java open source populaire permettant de créer des jeux PC, Android, HTML 5 et iOS.


Voici les changements apportés :

  • la fonction Gdx.input.setCursorImage a été remplacée par Gdx.graphics.setCursor et Gdx.graphics.newCursor (voir https://github.com/libgdx/libgdx/pull/2841/) ;
  • correction d'un problème avec le décodage UTF8 de InputStreamReader ;
  • mise à jour de RoboVM à la version 1.8 pour le support de iOS 9 et Xcode 7.


Cette version est certes légère en modification, mais elle vous permettra surtout de publier un jeu pour iOS 9.

Votre opinion

Avez-vous testé la bibliothèque ? Qu'en pensez-vous ? Montrez-nous vos projets !
Connaissez-vous des alternatives ? Quelles solutions utilisez-vous pour vos jeux vidéo ?

Projet d'un membre utilisant libGDX

Cookie Tap

Source

Annonce officielle
Avatar de LittleWhite LittleWhite - Responsable 2D/3D/Jeux http://www.developpez.com
le 11/01/2016 à 17:49
LibGDX, la bibliothèque de jeux en Java passe à la version 1.8

LibGDX est une bibliothèque Java open source populaire permettant de créer des jeux PC, Android, HTML 5 et iOS.


La version 1.8 apporte l'utilisation de LWJGL3. Cette bibliothèque JAVA est utilisée lorsque vous distribuez des jeux pour PC avec LibGDX. Ce changement permet énormément sachant que la version 2 de LWJGL était accompagnée de contraintes, notamment celle de ne pas gérer les configurations à plusieurs écrans et l'ouverture de plusieurs fenêtres.

Il est donc maintenant possible d'obtenir une liste des écrans avec :
Code JAVA : Sélectionner tout
Monitor[] monitors = Gdx.graphics.getMonitors();

Ainsi que de récupérer l'écran primaire (celui sur lequel il y a la barre des tâches) :
Code JAVA : Sélectionner tout
Monitor primaryMonitor = Gdx.graphics.getPrimaryMonitor();

Finalement, il est possible de savoir sur quel écran la fenêtre se trouve :
Code JAVA : Sélectionner tout
Monitor monitor = Gdx.graphics.getMonitor();

Les fonctions Graphics.getPpiX(), Graphics.getPpiY(), Graphics.getPpcX(), Graphics.getPpcY() et Graphics.getDensity() retournent les valeurs de l'écran sur lequel se trouve la fenêtre.

LibGDX 1.8 apporte aussi des changements pour la configuration du mode fenêtré et plein écran. En effet, l'énumération des modes d'affichage prend en compte la gestion des machines ayant plusieurs écrans :
Code JAVA : Sélectionner tout
DisplayMode[] modes = Gdx.graphics.getDisplayModes(monitor);
De plus, vous pouvez obtenir tous les modes de l'écran où se trouve la fenêtre avec :
Code JAVA : Sélectionner tout
DisplayMode[] modes = Gdx.graphics.getDisplayModes();

Par contre, la fonction Graphics.getDesktopDisplayMode() s'appelle maintenant Graphics.getDisplayMode() et retourne le mode d'affichage de l'écran où se trouve la fenêtre.

Maintenant pour avoir le mode plein écran, vous devez récupérer le mode d'affichage où se trouve votre fenêtre, puis activer le plein écran :
Code JAVA : Sélectionner tout
1
2
3
DisplayMode mode = Gdx.graphics.getDisplayMode(); 
// set the window to fullscreen mode 
Gdx.graphics.setFullscreenMode(mode);

Pour quitter le mode plein écran, il suffit d'appeler :
Code JAVA : Sélectionner tout
Gdx.graphics.setWindowedMode(640, 480);
La fenêtre sera centrée sur l'écran.

Si vous utilisez toujours LWJGL2, ces fonctions ne feront qu'agir sur l'écran principal.

Les fonctions liées au curseur ont aussi reçu de nombreux changements sachant que la précédente version ne permettait pas d'utiliser les curseurs système et possédait même des fuites de mémoire mineures. Pour créer un nouveau curseur personnalisé, utilisez :
Code JAVA : Sélectionner tout
Cursor cursor = Gdx.graphics.newCursor(myPixmap, 0, 0);
Le format du Pixmap doit être RGBA8888.
Ensuite, vous pouvez définir le curseur ainsi :
Code JAVA : Sélectionner tout
Gdx.graphics.setCursor(cursor);
Et pour un curseur système :
Code JAVA : Sélectionner tout
Gdx.graphics.setSystemCursor(SystemCursor.Arrow);


Pour les fonctions audio, la fonction setPriority() a été retirée. Elle n'était disponible que pour Android et ne fonctionnait pas pour autant sur le système.

Le support de LWJGL3 est encore très jeune et connaît quelques bogues.
Pour plus d'indications, veuillez vous référer à l'annonce officielle.

Votre opinion

Avez-vous testé la bibliothèque ? Qu'en pensez-vous ? Montrez-nous vos projets !
Connaissez-vous d'autres solutions ? Quelles solutions utilisez-vous pour vos jeux vidéo ?

Projet d'un membre utilisant libGDX

Cookie Tap

Source

Annonce officielle
Offres d'emploi IT
Architecte de données (H/F)
Société Générale - Ile de France - Ile de France
Chef de projet SI confirmé (H/F)
Société Générale - Ile de France - Val-de-Fontenay
Data scientist H/F
Safran - Ile de France - Magny-les-Hameaux (78114)

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique 2D - 3D - Jeux : LittleWhite -