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

Création d'un "mini mmorpg solo" en JAVA

Goku24653
Goku24653
Niveau 1
31 mars 2020 à 21:49:05

Salut tout le monde ,
Alors je compte réalisé une sorte de "mini mmorpg" afin de m'améliorer dans le langage JAVA ,pour cela j'aurais besoin d'aide car je suis à mes débuts en JAVA(ne me dites pas "si t'es à tes débuts ne fait pas de mmorpg" ).
Le jeu est simple on a un PJ et on se répartis 18 points d'attributs entre 3 catégories force ,résistance et adresse je ne vais pas exposer tout le projet se serait bête mais je veut juste qu'on m'aiguille au niveau des classes à crées comment relier par exemple la map au joueur ,faire que le joueur puisse se déplacer , créer la map sachant que ce n'est pas une map avec une interface mais seulement avec des tableaux.Pour l'instant je vais juste faire un gros programme et non plusieurs programme avec un serveur et des clients.

Merci d'avoir pris soin de lire mon problème merci

boucif
boucif
Niveau 24
31 mars 2020 à 23:01:24

Perso j’ai attaqué un mmorpg en c# même si j’ai pas trop bossé dessus, c’est du temps réel ou tout par tour ?
Déjà côté serveur regarde comment mettre en place des sockets, t’as sûrement des librairies qui te simplifient ça, après a toi de voir quel techno serveur et quel base de données tu veux utiliser.

KoukouLaTeley
KoukouLaTeley
Niveau 9
01 avril 2020 à 16:24:36

"mmorpg solo" un rpg quoi ? Hors-ligne ?

En essayant de pas être hautain pour changer des habitudes :
En 2D j'utiliserais les librairies mini2Dx et libGDX, ou Slick2D
En 3D j'utiliserais jMonkeyEngine

Goku24653
Goku24653
Niveau 1
02 avril 2020 à 00:30:15

Le 31 mars 2020 à 23:01:24 boucif a écrit :
Perso j’ai attaqué un mmorpg en c# même si j’ai pas trop bossé dessus, c’est du temps réel ou tout par tour ?

Enfête j'essaye d'être entre le tour par tour et le temps réel avec un système de PA donc chaque joueur peut jouer sans avoir de tour mais sans pouvoir jouer quand il le veut quoi.

Déjà côté serveur regarde comment mettre en place des sockets, t’as sûrement des librairies qui te simplifient ça, après a toi de voir quel techno serveur et quel base de données tu veux utiliser.

Dacc merci :)

Goku24653
Goku24653
Niveau 1
02 avril 2020 à 00:32:36

Le 01 avril 2020 à 16:24:36 KoukouLaTeley a écrit :
"mmorpg solo" un rpg quoi ? Hors-ligne ?

En essayant de pas être hautain pour changer des habitudes :
En 2D j'utiliserais les librairies mini2Dx et libGDX, ou Slick2D
En 3D j'utiliserais jMonkeyEngine

Bah enfête là j'essaye de faire cce mini jeu pas pour pouvoir y jouer particulièrement mais plus pour pouvoir mieux maîtriser certains point en Java donc un jeu par exemple avec 2 joueurs mais qui se contrôlent sur le même pc en instanciant 2 joueurs.

Marethyun
Marethyun
Niveau 1
03 avril 2020 à 10:52:52

Salut !

Pour lier la map au joueur ce que tu peux faire c'est assigner une location au joueur, par exemple avec une classe Location que tu instancierais. La location dans chaque joueur correspondrait aux coordonnées du joueur dans le tableau de la map (puisque ça a l'air d'être un tableau à deux dimensions).
Grâce à ça, lorsque tu veux afficher ta map dans une boucle (ou après le tour de chaque joueur si c'est tour par tour), tu aurais juste à lire la location de chaque joueur pour l'afficher au bon endroit avec une superposition ou juste en remplaçant la case correspondante du tableau.
Si tu arrives à écrire ça, il te suffira de modifier l'objet location contenu dans chaque joueur pour que sa position s'affiche correctement lorsque tu décide d'afficher la map.

Pour faire en sorte qu'il y ait un ou plusieurs joueurs en tour par tour c'est simple: tu as juste à demander l'action du joueur concerné à son tour dans le même terminal.
Si tu veux que plusieurs joueurs puissent se déplacer en parallèle et en temps réel, c'est intéressant d'utiliser des fonctionnalités réseau mais ça peut être un peu complexe comparé à ce que tu cherches à travailler, d'autant plus que ça va t'obliger à écrire deux programmes: un pour les clients et un pour le serveur. Si tu es vraiment intéressé par cette solution à l'avenir, il te faudra vraiment une formation sur le parallélisme et l'utilisation de sockets. Pour écrire des logiciels en réseau en Java je te conseille le framework Netty (JVC m'empêche de mettre des liens mais une simple recherche google du nom te permettra de trouver ce dont tu as besoin). Si Netty est un peu lourd et long à maîtriser, c'est un outil idéal pour faire du multijoueur par exemple.

Une autre solution un peu moins complexe mais toujours difficile à mettre en place, c'est d'utiliser un WatchService sur deux fichiers: ton programme va constamment attendre que deux fichiers de ton choix soient écrits (joueur1 et joueur2) et lorsque l'un deux est écrit avec l'action du joueur le fichier est vidé et il recommence à écouter. Ça nécessite tout de même quelques notions en parallélisme (threads) et ce sera peu ergonomique pour les joueurs.

Encore une autre solution mais qui nécessite de paralléliser tes actions (ou écrire deux programmes, un pour les joueurs et un pour le jeu) est d'utiliser les tubes anonymes. Ce sont comme des fichiers qui te permettent de communiquer entre processus ou threads (ce sont des flux).

Goku24653
Goku24653
Niveau 1
03 avril 2020 à 15:29:32

Le 03 avril 2020 à 10:52:52 Marethyun a écrit :
Salut !

Pour lier la map au joueur ce que tu peux faire c'est assigner une location au joueur, par exemple avec une classe Location que tu instancierais. La location dans chaque joueur correspondrait aux coordonnées du joueur dans le tableau de la map (puisque ça a l'air d'être un tableau à deux dimensions).
Grâce à ça, lorsque tu veux afficher ta map dans une boucle (ou après le tour de chaque joueur si c'est tour par tour), tu aurais juste à lire la location de chaque joueur pour l'afficher au bon endroit avec une superposition ou juste en remplaçant la case correspondante du tableau.
Si tu arrives à écrire ça, il te suffira de modifier l'objet location contenu dans chaque joueur pour que sa position s'affiche correctement lorsque tu décide d'afficher la map.

Pour faire en sorte qu'il y ait un ou plusieurs joueurs en tour par tour c'est simple: tu as juste à demander l'action du joueur concerné à son tour dans le même terminal.
Si tu veux que plusieurs joueurs puissent se déplacer en parallèle et en temps réel, c'est intéressant d'utiliser des fonctionnalités réseau mais ça peut être un peu complexe comparé à ce que tu cherches à travailler, d'autant plus que ça va t'obliger à écrire deux programmes: un pour les clients et un pour le serveur. Si tu es vraiment intéressé par cette solution à l'avenir, il te faudra vraiment une formation sur le parallélisme et l'utilisation de sockets. Pour écrire des logiciels en réseau en Java je te conseille le framework Netty (JVC m'empêche de mettre des liens mais une simple recherche google du nom te permettra de trouver ce dont tu as besoin). Si Netty est un peu lourd et long à maîtriser, c'est un outil idéal pour faire du multijoueur par exemple.

Une autre solution un peu moins complexe mais toujours difficile à mettre en place, c'est d'utiliser un WatchService sur deux fichiers: ton programme va constamment attendre que deux fichiers de ton choix soient écrits (joueur1 et joueur2) et lorsque l'un deux est écrit avec l'action du joueur le fichier est vidé et il recommence à écouter. Ça nécessite tout de même quelques notions en parallélisme (threads) et ce sera peu ergonomique pour les joueurs.

Encore une autre solution mais qui nécessite de paralléliser tes actions (ou écrire deux programmes, un pour les joueurs et un pour le jeu) est d'utiliser les tubes anonymes. Ce sont comme des fichiers qui te permettent de communiquer entre processus ou threads (ce sont des flux).

Merci d'avoir pris de ton temps pour me répondre ,c'est sympa de ta part ;-)

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