CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

LionEngine - Moteur de jeu 2D (Java)

WindowsServer8
WindowsServer8
Niveau 9
29 avril 2012 à 00:30:26

Impressionnant ton Warcraft :oui: :ok:

djthunder
djthunder
Niveau 5
03 septembre 2012 à 00:12:31

Hello,

Après une longue absence, je passe pour donner quelques infos sur l'avancement pour la v6.0.0:

- Moteur [en cours]
- Module plateforme [terminé]
- Module RTS [terminé]
- Présentations (slides) [terminé]
- Tuto (wiki, site, code snippet, exemples progressifs) [terminé]
- Module Shoot'em Up [en cours]
- Module Multijoueur [en cours]

Concernant la partie multijoueur, je suis en train de faire une démo avec Mario, et pour le moment il est facile de gérer le multijoueur entre X joueurs sur une map, et ce, de manière efficace (en envoyant le moins de données possible sans sacrifier le gameplay).
Les connections des nouveaux joueurs sont notifiées pour chacun d'eux (il est donc aisé de créer les entités à la volée lors d'une connexion).

La partie suivante va consister à synchroniser le jeu plus en détail (interactions avec les monstres, objets...).

Pour le moment, l'architecture est à mi-chemin entre du bas et du haut niveau. Afin de laisser le plus de choix possible quant à l'implémentation du système de réseau, j'ai opté pour une solution encodage/décodage en byte combiné à un typage de message.
Cependant, une fois l'implémentation bas niveau (encodage/décodage) terminée, tout le reste est vraiment facile d'utilisation.

En gros, si vous définissez votre type de message: EntityMessage (qui va contenir les infos de déplacement, et les corrections de placement si besoin), vous devrez implémenter vous même le décodage et l'encodage du message (rien de bien compliqué cependant). De fait, vous pourrez contrôler totalement ce que vous enverrez sur le réseau (il est évident que gérer le multi pour 4 joueurs sur un petit jeu de plateforme n'est pas la même chose qu'une partie de RTS avec 8 joueurs et 100 unités chacun).

Je verrai lorsque j'aurai plus de recul sur mon travail si je simplifie encore les choses, au détriment du contrôle... où si je compense avec une bonne doc.

L'avantage pour le moment, c'est qu'il est possible d'ajouter une couche multijoueur directement sur un système solo.
Entre d'autre terme, il suffira de déclarer une entité comme étant "Networkable", d'utiliser le modèle de base en délégation et d'implémenter les méthodes d'application de message (pour mettre à jour les entités des autres joueurs). Ensuite, il faudra ajouter au "World" (lui aussi de type Networked) les entités qui sont sujettes à une mise à jour sur le réseau, et la partie cliente est gérée automatiquement.

En parallèle, j'ai préparé des tutos complets et expliqués, sur une utilisation pas à pas des différents composants.

Cette version a venir ne ressemble plus beaucoup à la version précédente, puisqu'elle est tout simplement plus facile à utiliser. Je ne sais pas du tout quand elle sera prête, sachant que mon stage de fin d'étude se termine, et que la suite s'enchainera rapidement.
Dans tout les cas je privilégierai la finition afin de ne pas avoir trop à y revenir par la suite.

A bientôt !

Blackwood
Blackwood
Niveau 11
04 septembre 2012 à 15:43:14

Salut,

Marrant que tu réapparaisses maintenant, j'ai justement découvert ton travail la semaine dernière.

Je m'intéresse plus à ton architecture qu'à ton moteur en lui-même. Ton site POJ est très bien fait, clair et sans fioritures, c'était très agréable de lire !

Merci.

magicorange
magicorange
Niveau 55
07 octobre 2012 à 13:18:55

Bonjour,

je suis pas mal interessé par ton moteur, j'ai voulu suivre le tutoriel pour la création d'un RTS que tu proposes sur ton site, mais je crois qu'il n'est pas mis à jour par rapport à la version du LionEngine que j'utilise (la 5.0, la dernière il me semble), certaines méthodes semblent avoir disparu d'une version à l'autre (par exemple loader.addSequence(...) est invalide).
Prévois-tu une mise à jour du tutoriel prochainement ??

djthunder
djthunder
Niveau 5
07 octobre 2012 à 15:37:25

@BlackWood:
Merci !

@magicorange:
Oui, tout ce que j'ai fais au sujet du LionEngine sera à jour pour la version 6, d'où le temps nécessaire.
Ça avance, mais ce n'est pas encore pour tout se suite !

J'ajoute également des tuto façon "code snippet", histoire d'avoir un aperçu rapide de cas d'utilisation (déplacement dans une map tile, exemples de collision, pong, interaction avec un objet à la souris...).

djthunder
djthunder
Niveau 5
24 septembre 2013 à 20:56:57

Juste un passage rapide pour vous donner des infos a propos de l'avancement.
L'état actuel est disponible sur GitHub depuis peu, je laisse le lien pour ceux qui désirent avoir les sources actuelles (ce n'est pas encore la version complète !)

https://github.com/DjThunder/lionengine

Après une longue pause, le développement garde maintenant un rythme constant, en espérant aboutir prochainement à une release définitive !

Bonne lecture ;)

caelacanthe
caelacanthe
Niveau 10
25 septembre 2013 à 00:04:30

Ca fait tout de même un an de développement silencieux, tout de même, il y a eu beaucoup d'avancées par rapport à la dernière version? :oui:

djthunder
djthunder
Niveau 5
25 septembre 2013 à 00:32:04

Le temps passe vite, surtout lorsqu'il n'est pas possible de consacrer tout le temps que l'on voudrait :)

Une des dernières grosses évolutions par exemple est la gestion des collisions qui est en fait parfaite et simple à mettre en oeuvre.
La gestion des map tiles a été largement revue pour être plus propre.
La gestion de la caméra est totalement intégrée à l'environnement (une map tile peut s'afficher très simplement en prenant comme paramètre une caméra, possédant un champs de vision défini, et calé sur les mouvements d'une entité)
Ou encore la gestion des projectiles, des effets (explosion...), ou bien la gestion des effets sonores.

Il y a aussi pas mal d'évolutions mineurs, comme l'externalisation de choses plus ou moins standards, sous forme d'interface, afin de limiter la complexité des classes, mais surtout pour permettre une ré-utilisabilité maximale.

L'initialisation même du moteur a été revue (voir exemple en page d’accueil du repository).
La documentation a également été complétée en profondeur, surtout sur les classes bas niveau.

J'avoue que pour le moment je ne peux pas dresser un tableau comparatif des différences avec la version précédente, car ce n'est pas ma priorité.
L'objectif du moment est de mettre au point la démo de Lionheart avec cette nouvelle version (et pas un prototype comme on peut trouver en Applet sur mon site), soit un niveau totalement jouable au plus proche de l'original.

Warcraft est également de la partie (bien que j'ai arrêté pour rester sur Lionheart d'abord). J'ai un ralentissement sur le pathfinding groupé (pour gérer parfaitement le déplacement d'un groupe d'unité, chose qu'il manque dans la v5). L'idée est qu'il soit facile de le mettre en place pour tous.
Tyrian subira également un lifting, afin de le mettre à jour.
Puis je reprendrais la section Multijoueur, en complétant la version multijoueur de Mario.

Voilà, pas mal de choses faites, et encore beaucoup à faire
J'ai pensé au GitHub afin que chacun puisse suivre petit à petit l'avancement, pour rentrer dans le bain plus facilement lors de la release.
De plus, cela peut me permettre d'avoir des retours sur des souhaits ou fix à faire.

Lapintade
Lapintade
Niveau 30
25 septembre 2013 à 05:36:22

Bravo, une ténacité exemplaire!
Sympa d'avoir partagé les sources. Ca fait de la lecture en effet.
J'ai joué il y a peu a lionheart sur Amiga. Évidemment, cela me rappelle ton projet. :ok:

LECROU
LECROU
Niveau 10
25 septembre 2013 à 12:33:39

Ça a l'air vraiment pas mal félicitations, surtout pour la longévité de ton projet.
J'essaierai de m'y plonger et de faire un petit quelque chose avec quand j'aurai le temps. :-)

djidane535
djidane535
Niveau 10
25 septembre 2013 à 16:22:51

Ca me fait penser à mon propre projet que j'ai commencé il y a un 1 an. Faudra que je regarde ça une fois que j'aurais bien avancé histoire de comparer ^^. Félicitations en tout cas :).

djthunder
djthunder
Niveau 5
05 octobre 2013 à 20:50:23

Merci !

Dans le genre "new feature", voici un exemple de contrôle de la taille dynamique et du temps (bullet time):

www.b3dgs.com/v6/projects/lionengine/videos/size_t
emporal.mp4

Bon, les deux sont en même temps, c'est pas super agréable à voir comme ça, c'est juste un exemple brut.

Lapintade
Lapintade
Niveau 30
07 octobre 2013 à 14:14:36

Le bon lien :

http://www.b3dgs.com/v6/projects/lionengine/videos/size_temporal.mp4

Une vidéo youtube serait plus simple (car moi dans firefox, il essaie de me jouer la video mais il n'y arrive pas) J'ai du sauver et jouer avec VLC. La ca fonctionne.

Sympa le bullet time.

Dans LionHeart, il y a combien de type de "pentes" pour le décor. Une seule à 45° ?

djthunder
djthunder
Niveau 5
07 octobre 2013 à 19:04:17

Ah merci pour le lien !
Oui, les prochaines je les mettrai en streaming.

Pour les pentes, y'a les 3 types:
x/y (45°)
2x/y (26°)
x/2y (63°)

djthunder
djthunder
Niveau 5
07 novembre 2013 à 22:42:10

Quelques nouvelles concernant les avancées de la version 6.0.0: support d'Android 2.3.3 en cours !

http://www.youtube.com/watch?v=2tqqtA3CjqI

A bientôt !

djthunder
djthunder
Niveau 5
08 novembre 2013 à 20:45:45

Encore du progrès, avec l'intégration de la 'souris' Android et un essai gameplay:

http://www.youtube.com/watch?v=l7Qio4nZzss

caelacanthe
caelacanthe
Niveau 10
08 novembre 2013 à 20:57:34

Pas de support d'autres versions (ultérieures) d'Android? :pf:

Cela dit, la démo background est assez jolie à regarder, pas de problèmes de performance?

djthunder
djthunder
Niveau 5
09 novembre 2013 à 11:59:17

Pour le moment la version minimale requise est la 2.3.3 pour des raisons techniques (les versions précédentes ne me permettent pas de faire fonctionner totalement le moteur).
Le compromis me semble correcte au vu de ce graphique: http://developer.android.com/about/dashboards/index.html

Un petit retour avec la même démo mais cette fois illustrant l'implémentation du Rasterbar sous le module Android: http://www.youtube.com/watch?v=oCLm0vbZUJk

Cet effet permet d'afficher plus de couleur que la palette initiale (comparez avec la video précédente, où vous verrez la map uniformément verte).

djthunder
djthunder
Niveau 5
10 novembre 2013 à 13:50:18

Et voilà la suite avec cette fois en exemple Warcraft 1: http://www.youtube.com/watch?v=kN-jTAObDX8

Lapintade
Lapintade
Niveau 30
11 novembre 2013 à 16:34:21

Très sympa les version Android.

Et merci pour les réponses sur les pentes au fait :ok:

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment