plusieurs scènes multijoueurs

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Avatar de l’utilisateur
sazer
Messages : 41
Inscription : 14 Sep 2013 17:25
Localisation : chalons

plusieurs scènes multijoueurs

Message par sazer » 16 Août 2014 13:16

Bonjour,
J'ai créé un jeu solo qui fonctionne très bien, j'ai donc commencer la partie multi, sa fonctionne plutôt bien mais j'ai tout de même un problème :
Ce que je veut faire, c'est des secteurs pour pas entasser une centaine de joueurs sur une map de 10 mètre carré (bon j'exagère un peu ...).
Mais dans mon jeu, le joueur peut jeté des objets a terre qui n'attendent que d'être ramassé pas d'autre joueurs.
ainsi, si je fait un seveur "normal" est ce qu'il peut synchroniser TOUTES les scènes du jeu (puisqu'une scène représente un secteur).
Ou faut il que je mettent tous mes secteurs dans la même scene ? Mais dans ce cas, le serveur ramera a mort puisqu'il faut qu'il synchronise toutes les info joueur + les objets mobile + les objet ramassable et l'inventaire de ceux ci, si c'est des caisses ou autres ...

Que faire ... Je suis perdu, toi là dit moi ou se trouve la tour effeil stp ... XD sérieusement aidez moi svp ...
Merci de vos réponses futures. (au moin j'aurais pas a le retaper a chaque fois ...) :p
Image

Avatar de l’utilisateur
Lira
Messages : 52
Inscription : 19 Mai 2012 18:03

Re: plusieurs scènes multijoueurs

Message par Lira » 16 Août 2014 23:48

Je suis pas sur d'avoir bien compris, mais si tu veux que les joueurs qui rejoignent la scene/server vois les objets qui ont été lâché par terre avant qu'ils rentrent, utilise des RPC Buffered RPCMode.OthersBuffered/RPCMode.AllBuffered
comme ça, le serveur renverra une copie du RPC déjà envoyé auparavant seulement pour le joueur qui viens de rentrer dans le server

http://docs.unity3d.com/ScriptReference ... fered.html

Avatar de l’utilisateur
sazer
Messages : 41
Inscription : 14 Sep 2013 17:25
Localisation : chalons

Re: plusieurs scènes multijoueurs

Message par sazer » 16 Août 2014 23:56

Merci de ta réponse, qui m'a l'air intéressante, je connaissait pas cette fonction, donc merci.
Mais ce n'est pas sa que je cherche, c'est pas trop du code, en faite je sais pas du tous, je vais essayer de réexpliqué étape par étape :

- J'ai un jeux solo,
- je le met en multi sur UNE scène, sa fonctionne.
- dans mon jeu solo, j'ai plusieurs secteur, et chaque secteur est une scène, quand le joueur change de secteur, il change de scène.
- je veut garder ce système de secteur (donc multiscène) dans mon jeu multi.
Déja me vien la question "Comment faire sa".
Donc mon problème est :
Comment depuis un serveur général, que TOUTES les scène présente sur le jeu, soit synchronisé par celui ci.
Par exemple un joueur se connecte a la scène principal, il peut bougé et tous, et là il veut changer de secteur (donc de scène), est-ce qu'il pourra et comment ?

Ai-je été clair cette fois ci ?
Merci de vos réponses futures. (au moin j'aurais pas a le retaper a chaque fois ...) :p
Image

isador34
Messages : 37
Inscription : 07 Juil 2014 14:30

Re: plusieurs scènes multijoueurs

Message par isador34 » 27 Août 2014 15:56

je pense que c'est la même facon que pour le solo, avec le Application.loadLevel

Avatar de l’utilisateur
NDrew
Messages : 581
Inscription : 25 Oct 2013 15:14
Localisation : Clermont-Ferrand

Re: plusieurs scènes multijoueurs

Message par NDrew » 01 Sep 2014 07:27

Quelques question pour bien comprendre la question.

Quel assets ou techno utilises tu pour ton réseau? natif Unity? Photon? Smartfox? autre chose?
Est-ce que tu as un serveur dédié ou est-ce qu'un des joueur est le serveur?
Est-ce que ton "univers" doit être sauvé quelque part ou est-ce qu'une fois la partie terminé c'est bon on lance un nouvelle partie et les objets par terre ont disparu?
Plus précisément, pendant une partie, si personne n'est dans une de tes zones, est-ce qu'l faut garder les informations sur les objets par terre dans cette zone quand même?

Avatar de l’utilisateur
sazer
Messages : 41
Inscription : 14 Sep 2013 17:25
Localisation : chalons

Re: plusieurs scènes multijoueurs

Message par sazer » 01 Sep 2014 20:03

NDrew a écrit :Quelques question pour bien comprendre la question.

Quel assets ou techno utilises tu pour ton réseau? natif Unity? Photon? Smartfox? autre chose?
Justement, je prendrait le plus optimisé pour ce que je veut faire, j'ai déja utilisé le natif d'unity, et je le connais "parfaitement" sur environ 60% de ses possibilité (enfin je croit ...)

NDrew a écrit :Est-ce que tu as un serveur dédié ou est-ce qu'un des joueur est le serveur?
Oui, enfin pour l'instant j'ai qu'un vieux PC qui sert de serveur de test, mais par la suite, je vais me prendre un des serveur dedié (http://www.ovh.com/fr/vps/vps-cloud.xml).
NDrew a écrit :Est-ce que ton "univers" doit être sauvé quelque part ou est-ce qu'une fois la partie terminé c'est bon on lance un nouvelle partie et les objets par terre ont disparu?
J'avait pensé a utilisé un script pour une communication avec une base de données SQL (je pense que sa sera un MySQL). Après, si il y a un moyen d'optimisé ceci, je peut changer mes idée puisque j'ai a peine commencé mon projet (qui doit être validé en novembre par mon école d'ingénieur qui m'aidera au sein du projet et un suivie du projet comme un client le ferai).
NDrew a écrit :Plus précisément, pendant une partie, si personne n'est dans une de tes zones, est-ce qu'l faut garder les informations sur les objets par terre dans cette zone quand même?
Le mieux, sa serai que oui, mais après si on peut pas faire autrement, "ba tant pi ..." mais sa serai préférable que toutes les actions du jeu (donc même un cargo laissé par terre) soit sauvegarder.

Merci de vos réponses, et excusez moi, j'était pas mal occupé avec un autre projet (rémunéré ;p) qui en ce moment me vampirise tous mon temps ...
Merci de vos réponses futures. (au moin j'aurais pas a le retaper a chaque fois ...) :p
Image

Avatar de l’utilisateur
NDrew
Messages : 581
Inscription : 25 Oct 2013 15:14
Localisation : Clermont-Ferrand

Re: plusieurs scènes multijoueurs

Message par NDrew » 02 Sep 2014 11:07

Oki donc je vois un peu plus ce que tu veux faire. Donc encore quelques questions qui pourrait t'aider a bien voir ce qu'il te faut.

Est-ce que ton serveur a besoin d'etre unity. Est-ce que c'est lui qui gere la physique, sur quels sujet est il "autoritaire"

Pour avoir une persistence des objet, il faut qu'ils soient stocké dans une BD. Apres, tu as plusieurs facon de faire tes zones....

-Tu pourrais faire sans serveur dedié en te disant que chaque fois qu'un joueur entre dans une scene, s'il est le 1er il est le serveur et va aller chercher l'etat des objets sur la BD avec un appel WWW genre. les clients suivant se "synchronisent" sur lui. Il faut gérer le fait qu'il peut partir de la zone a un moment et donc un autre devient maitre et il faut que si tout le monde quite la zone, le dernier update la BD sur l'état actuel de la zone. Faut voir aussi que le mec qui va etre choisi comme serveur malgré lui, son pc va peut etre en chier pas mal si la zone est chargé, c'est un gros risque....

-tu porurais aussi faire une archi avec server dédié ou ce serveur lance des unity au besoin pour etre le serveur d'une zone. Quand la zone se vide, il ferme la zone. Ce serveur peut etre autoritaire et informer les clients des positions pour éviter des hack. Faut prévoir ou les gens vont aller pour ne pas trop lancer de "unity" inutile, ca doit etre assez lourd. J'ai aucune idée de la complexité du truc par contre....

-Tu pourrais faire une archi avec un serveur dédié. Si tu fais assez confiance a tes players, tu peux laisser toutes la physique et le jeu être géré par le coté client, le serveur ne fait que gérer les inventaire par exemple. Donc quand un joueur ramasse un objet par terre, il le dit au serveur qui le met dans son inventaire et qui dit a tout le monde que l'objet n'est plus par terre. Cette archi comporte des risque de hacking mais bon faut voir :)

Donc en fonction de ce que tu veux faire, tu vas pouvoir choisir la techno qui te permet de le faire par la suite.

Perso je fais du jeu tour par tour, donc la validation est simple et j'ai pas besoin d'avoir unity coté serveur. C'est pour ca que smartfoxserver est parfait pour moi. Si jamais tu veux parler de sa mise en place hésite pas a passer sur le chat.

Bonne journée

Emma123
Messages : 1
Inscription : 03 Sep 2014 13:24

Re: plusieurs scènes multijoueurs

Message par Emma123 » 03 Sep 2014 13:30

réponse. J'ai essayer le script C mais quand je l'exécute sous unity j'ai un message d'erreur. J'ai essayer aussi avec le code caméra.aspect, mais ce code lui comprime l'image dans sa largeur sans avoir un rendu letterbox........ :)

Avatar de l’utilisateur
TheDreamer
Messages : 64
Inscription : 02 Sep 2014 21:14
Localisation : Suisse

Re: plusieurs scènes multijoueurs

Message par TheDreamer » 03 Sep 2014 17:28

Salut, :)

Je ne connais pas les autres plugins.

Mais je sais que la méthode standard d'Unity avec les networkviews n'est pas très optimisée pour décider qui partage quelles données avec qui.

Si tu veux l'utiliser, je vois trois possibilités

- Soit tu utilises un serveur persistant, qui partage les données avec tout le monde, chaque joueur indiquant dans quelle pièce il est, si il n'est pas dans la même pièce que toi, tu désactive son networkview(sauf pour le serveur). C'est le plus simple, mais tu générera par contre du traffic réseau inutile.

- Soit tu utilises toujours un serveur persistant, mais tu désactive le state synchronisation de tous les networkviews et tu ne communique qu en utilisant la fonction: void NetworkView.RPC(string name, NetworkPlayer target, params object[] args);
Comme ça tu pourras choisir toi même quel player communique avec quel player.

- Soit tu fais en sorte d'avoir un serveur par room, avec des connections/reconnexions (et créations, si tu crées le serveur chez un client).

Un des soucis du réseau d'Unity, c'est que les données semblent toujours communiquées à tous les clients par le serveur, donc si on veut faire des "groupes" de clients qui ne communiquent entre eux, ça semble impossible à optimiser... :(

Avatar de l’utilisateur
sazer
Messages : 41
Inscription : 14 Sep 2013 17:25
Localisation : chalons

Re: plusieurs scènes multijoueurs

Message par sazer » 03 Sep 2014 20:13

Merci a tous de vos réponse, et je croit que je vait faire comm vous supposez tous les deux : unity natif avec plusieurs serveur dédié (1 serveur par zone), sur un serveur dédier, une dizaine de serveur, sa peut tenir combien de joueurs et pour quelle config (au debut du jeu, seul 5 secteurs seront présent, voir moin, et petit a petit, j'augmenterais le nombre de secteur en fonction du nombre de joueur, en suivant mon histoire-background).

J'avais pensé a faire un serveur par zone, mais j'avait trouvé que le temps de chargement rebuterais les joueurs et que le serveur dédié allait souffrir avec tous ces serveurs ...
Pour faire plusieurs serveur sur un même PC, il faut changer les ports, mais il n'y a pas un autre moyen ?

De toute façon, j'ai le temps, j'ai jusqu’à la fin de mes études pour faire le projet (il me reste donc 4 ans).

Encore merci a tous.
Merci de vos réponses futures. (au moin j'aurais pas a le retaper a chaque fois ...) :p
Image

Répondre

Revenir vers « Scripting »