quelques questions simple

Répondre
Partager Rechercher
répondre par oui/non suffit et si vous vous sentez le courage d'expliquer ne vous genez pas

peut on d'un point de transition teleporter un groupe de joueur vers 1 zone au hazard sur 5 ?

Peut on travaillez a plusieur sur un meme module persistant en meme temps en s'envoyant des morceaux par exemples ?

Peut on passer d'un module du serveur X vers un modules du serveur Y et si oui comment est géré la limite de 64 joueurs par serveur ?

peut on ajouter des statistique a un personnage ( genre fame ou point d'heroisme ou popularité) ?

peut on teleporter des joueurs d'une zone X vers une zone Y apres un laps de temps determine sans utilisez de zone de transition ou d'evenement ?


merci deja pour ces quelques reponses
1) un groupe je l'ignore, un perso oui
2) bien sûr, il suffit de se mettre d'accord sur les hak utilisés et d'exporter zone par zone.
3) oui
4) oui ,sans doute en passant pas un objet indroppable (genre une peau)
5) cela se fait pour les sauvegardes de positon à la connexion du personnage, mais j'ignore si cela est réalisable dans d'autres conditions.

(navré mais niveau script et technique...beaucoup sont meilleurs que moi.)
1/ Sans problème

2/ Ca demande de la discipline mais c'est possible

3/ oui, la limite est gérée que si y'a déja 64 joueurs sur un serveur, ben la transition se fait pas (mais la limite de 64 joueurs est quasiment jamais atteinte en pratique)

4/ Oui, sans trop de problème

5/ Oui

De rien
Citation :
Publié par Cristaal
peut on d'un point de transition teleporter un groupe de joueur vers 1 zone au hazard sur 5 ?
Oui, tu peux, pour ça tu a besoin de travailler sur le script du OnEnter de ta zone et d'inclure dans ce script une donnée aléatoire. Par exemple Random(5) pour ton cas.

Citation :
Peut on travaillez a plusieur sur un meme module persistant en meme temps en s'envoyant des morceaux par exemples ?
Ca dépend de ce que tu entend pas "en meme temps". Vous ne pourrez pas sauvegarder chacun de votre côté en esperant avoir les 2 modifocation a l'arrivée, mais si l'un de vous centralise, et que l'autres (ou les autres meme) lui envois des elements a ajouter, c'est tout a fait faisable.

Citation :
Peut on passer d'un module du serveur X vers un modules du serveur Y et si oui comment est géré la limite de 64 joueurs par serveur ?
On peux, il y a une commande spécialement prévue pour ça. Je ne l'ai plus en tete. Pour la limite de joueur, elle est toujours gérée par serveur. Par contre je ne crois pas que les persos pourrons parler d'un serveur à l'autre (sauf astuce technique sans doute) et il faudra aussi que les 2 serveur échangent de temps à autre les fichier de sauvegarde pour que les joueurs puissent se connecter sur l'un ou l'autre indifférassent.

Citation :
peut on ajouter des statistique a un personnage ( genre fame ou point d'heroisme ou popularité) ?
Oui, tu peux le faire simplement en ajoutant sur chaque personnage (afin de les conserver, sur 1 objet détenu par les persos) des LocalInt C'est un chiffre associé à un nom. Du genre SetLocalInt(oItem,"FAME",1) etc.
Cela sera évidements invisible pour le personnage sauf si tu lui donne le moyen via un objet (avec pouvoir unique) de voir ses pts de fame. Toujours à l'aide d'un script évidemment.
Et ensuite le plus gros du travail consistera a rendre cette carac "interactive" dans ton module.

Citation :
peut on teleporter des joueurs d'une zone X vers une zone Y après un laps de temps determine sans utilisez de zone de transition ou d'evenement ?
Sans utiliser de déclencheur (que ce soit en entrant dans une zone, dans une air d'effet, en ouvrant une porte, un coffre, lancant un sort sur un ennemi, attaquant un ennemi, activation d'objet, etc)
tu ne peux pas déclencher de script.
A partir du moment ou tu a les moyens de lancer ton script, tu peux sans aucun problème teleporter un personnage, un groupe, ses familliers, etc. dans un laps de temps determiné.
En l'occurence pour toi le déclencheur sera a trouver au moment où commence ton laps de temps. Ca peux être l'arrivé dans le mod, la fin d'une conversation, l'entrée dans une pièce, enfin, énormément de choses en fait.
Petit complément....
Tu peux toujours utiliser la commande raiseEvent pour lever un évènement quand tu en as envie. Ca peut servir entre autre a lever le fameux "userDefine" que l'on voit sur les objets
merci pour tous en fait la question 1 et 5 concerne un systeme qui fait que l'on monte dans un bateau (static) dans le port A et que l'on soit teleporté avec ces copain au bout de 1 minutes sur le bateau en Haute mer et ensuite au bout de X minutes dans le port B

le bateau en haute mer en fait sera 4 copie de la meme zone , mais avec soi un bateau pirate qui attaque ou un serpent de mer , une petite quete faites en moin de 5 minutes ou la rencontre avec un personnage clef du Background ou bien encore le mal de mer pour seul compagnon

mais y a peut etre plus simple

donc pour le point 5 en y reflechisant bien dans la zone de depart je fait tout le pont comme zone declencheur avec un timer qui teleporte le groupe au bout de 1 minutes , premier arrivé déclenche la chose et dans le on enter de la zone en haute mer rebelotte au bout de 5 minutes vers la zone d'arrivée ?
Citation :
Publié par Cristaal
donc pour le point 5 en y reflechisant bien dans la zone de depart je fait tout le pont comme zone declencheur avec un timer qui téléporte le groupe au bout de 1 minutes , premier arrivé déclenche la chose et dans le on enter de la zone en haute mer rebelotte au bout de 5 minutes vers la zone d'arrivée ?
Tu as l'option du Ohb en mettant un compteur qui fait que toutes les x minutes, si y'a quelqu'un sur le bateau, il est téléporté vers sa destination.

Tu as l'option aussi d'un hrb perso, qui fonctionnerais comme suit :
Si un personnage entre dans la zone "bateau à quai" il enclenche un timer, qui au bout de x secondes(minutes) téléporte tous les PJ présents.

Le timer se lance et se colle un localInt quand le premier PJ entre dessus. Quand ce localInt est > 0 plus aucun PJ ne peux l'enclencher (ca t'évitera de voir le timer remis a zero par chaque PJ entrant).
Ce localInt monte grace a une boucle de +1 toutes les... (a toi de determiner le delay) Quand ce timer arrive a x (ton délai) il cherche grâce à une boucle tous les PJ présent dans une aire d'effet (regade "GetFirstObjectInShape" pour ça et GetNext), et les téléporte. Ensuite il se remet à zero.

Sinon tu as l'option à la place de la boucle pour repérer les PJ de teleporter le groupe, mais l'inconvéniant, c'est que si un PJ est pas groupé il ne sera pas pris.

Tu peux aussi si tu crains de ne pas prendre tous les PJ faire plusieurs aires de repérages, avec comme centre des WP. Carré 1, puis carré 2 par exemple, ce qui te permet de laisser ton bateau au port sans risque de prendre un PJ sur le quai.

Pour la boucle du timer, c'est en fait une fonction simple qui quand elle est en dessous de ton délai total se répète elle même avec un DelayCommand(x.x, ExecuteScript... Et qui quand elle arrive a ton timer enclenche la téléportation, remet son LocalInt à zero ou le supprime, puis s'arrête.

Pour les 4 zones tu as aussi la possibilité je crois (plus complexe je pense) de créer des zones de manière dynamique. En fait tu as créé un modèle de zone que tu utilise pour créer tes différents voyages en mer.

Pour tes rencontres, je ne sais pas comment tu les envisage, si ce sera un autre bateau, une créature dans l'eau, etc. Mais si ces objets sont des placables, et pas des Tiles de terrain, tu peux les faire apparaître plutôt que de faire 4 zones.
Penses également que tu peux ne faire qu'une zone avec 4 bateaux. Tes PJ seront téléportés automatiquement vers l'un des quatres automatiquement.

Deux problèmes se posent alors....
1°) Si 4 pnj partent ensemble en bateau, mais que l'un des quatre viens 8 secondes après, seront ils téléportés dans des bateaux différents?

2°) Si un deuxième groupe de PJ viens alors que le 1er n'a pas fini son voyage, peut il les rejoindre?

Une piste pour éviter cela....

Faire un PNJ "marin". Le PJ va lui parler, celui ci propose la traversée (un truc du genre "le bateau partira dans une minute IRL. Montez vite!". A ce moment la, tous ceux qui ne sont pas monté dans le bateau ne sont pas téléportés.

Lors du dialogue avec le PNJ, la zone est sélectionnée. Le marin doit savoir (par une variable locale placé sur lui) quelles zones sont encore disponibles. Il lie alors le bateau a une zone prise au hazard dans les zones disponibles. Si aucune des autres ne l'est, il répondra "aucun navire n'est en partance, revenez donc plus tard!".
Il faudra également que le marin puisse répondre "il y a deja un bateau en partance" si le timer est activé....

Résumé, pour les scriptes:
-> un PNJ marin.
Il possède un dialoge permettant de passer le bateau "en partance.
A la fin du dialogue, le marin choisit la zone de lien. Il place sa variable de zone correspondante en occupé et lance un timer.

5variables dessus "bEnPartance" (booléen (int) ), "bZone1", "bZone2", "bZone3", "bzone4"

-> une zone de la taille du bateau
Lorsque le dialogue du marin se termine, il lance un timer sur cette zone. Le timer arrivé a son terme, tu lève l'évenement userdefine. Celui ci vérifie la vars locale de la zone et envoie le PJ au bon endroit.

1 variable dessus: sWpDest

-> Une zone avec 4 bateaux. 4 zones dessus, et 4 wp
Les wp te permettront d'envoyer tes PJ dessus, et sur le OnEnter de tes zones tu lancera un timer qui permettra d'envoyer vers la fin du voyage.... tu peux meme t'ammuser a l'envoyer au hazard vers la fin du voyage, ou vers une autre partie du voyage. Pourquoi n'y aurait il pas plusieurs péripéties pour un meme voyage? Pourquoi tous les voyages auraient ils la meme durée.... ca peut donner des trucs rigolos


Voila. La solution n'est sûrement pas optimisée, mais me semble a priori logique...
je vient du monde des serveur Ultima online

la plus grosse source de lag sur UO c'est le nombre d'item et de PNJ au screen , sur NWN c'est les plaçable, pj/pnj et ???? par zone/serveur ?


merci
Huhu! tu changes de sujet en plein cours de la discutions sans meme dire si nos solutions te plaisent ou non

Rouvres donc un autre sujet, et précises ta question ;-)
Citation :
Publié par Heziva
Huhu! tu changes de sujet en plein cours de la discutions sans meme dire si nos solutions te plaisent ou non

Rouvres donc un autre sujet, et précises ta question ;-)
oups , ben y a du bon chez tout le monde et c'est vrai que j'avais pas penser a rendre le bateau innacessible a quai durant le moment ou il navigue , de la vient un autre probleme de cohérence qui ai quand un bateau vogue il est pas a quai .

mais je crois avoir compris clairement comment derouler les enchainement de zone, ce que je ne savais pas c'est si on pouvais rescripter comme on voulais cette transition.

par contre le placement des variables c'est un peu confus , on a l'impression que les placer n'importe ou c'est bon du moment que on se souvient sur quoi pour aller les rechercher sauf dans le cas des PJ .

j'ai du mal aussi avec les 300 tonnes de bout de script un peu partout quand on ouvre l'editeur et on sait pas vraiment a quoi sa sert . Question de temps sa

mais surtout je fait mon projet sur papier pour l'instant et avant de me lancer je doit sa voir si c'est faisable niveau software et financier .

si il faut un bi Xeon avec une 100Mb au fesse pour 64 pj c'est impossible pour moi
Citation :
Publié par Cristaal
si il faut un bi Xeon avec une 100Mb au fesse pour 64 pj c'est impossible pour moi
Cela me parait être un doux rêve que de penser qu'un tout nouveau module puisse atteindre les 64 joueurs réguliers. Même les modules francophones les plus fréquentés actuellement ont du mal à atteindre cette valeur avec régularité.

De plus, il ne faut surtout pas oublier que la communauté NwN semble diminuer au fil des mois. WoW arrive, NwN2 l'an prochain, entre temps d'autres jeux très prometteurs (MEO, DnL, etc...). Il ne me parait donc pas réaliste de baser la construction d'un nouveau module sur une population aussi large.

Bien sûr, rien n'est impossible, mais accueillir déjà une vingtaine de personnes régulièrement, c'est déjà un signe de réussite .

Quoiqu'il en soit, bonne chance et bon courage !
Citation :
Publié par Sherazade
Cela me parait être un doux rêve que de penser qu'un tout nouveau module puisse atteindre les 64 joueurs réguliers. Même les modules francophones les plus fréquentés actuellement ont du mal à atteindre cette valeur avec régularité.

De plus, il ne faut surtout pas oublier que la communauté NwN semble diminuer au fil des mois. WoW arrive, NwN2 l'an prochain, entre temps d'autres jeux très prometteurs (MEO, DnL, etc...). Il ne me parait donc pas réaliste de baser la construction d'un nouveau module sur une population aussi large.

Bien sûr, rien n'est impossible, mais accueillir déjà une vingtaine de personnes régulièrement, c'est déjà un signe de réussite .

Quoiqu'il en soit, bonne chance et bon courage !
Sa ne me dit pas ce qu'il faut pour 64 , mais merci pour les encouragements


P.S: rien que la guilde dont je fait partie depuis 3 ans compte 150 membres constant qui aime se payé des délires que justement il ne peuvent pas se permettre sur des MMORPG commerciaux
Les transitions sont rescriptables à volonté, pas de problème à ce niveau là.

Pour les variables, disons que NWN utilise un concept un peu particulier de variables "locales" que tu peux placer sur n'importe quel objet de ton module (y compris le module lui-même), et qui en pratique se manipulent par exemple par les fonctions GetLocalInt/SetLocalInt si on prend le cas des entiers.

Le lag dans NWN peut venir de beaucoup de choses. D'abord, il est important de noter qu'avec 128k montant (connexion ADSL classique), tu peux héberger au maximum une quinzaine de personnes sur ton module.
Ensuite, un module trop chargé peut rapidement faire lagger tout le monde. Par exemple, il n'est pas très sain de faire un module qui dépasse les 200 zones, et il est carrément suicidaire d'en faire un qui dépasse les 500 (à moins de posséder un bi-Xéon dont tu parles). De même, les zones ne doivent pas être surchargées en script, en pnjs et en plaçables, et ne doivent en théorie pas dépasser 16x16 (et encore, ça fait pas mal).
Enfin, à partir d'une trentaine de personnes il me semble (je n'ai jamais fait l'expérience d'un tel nombre de joueurs), les performances du serveur se dégradent de manière bien plus importante. C'est un "bug" de NWN (disons que ce jeu n'a pas été conçu pour accueillir autant de joueur, et donc Bioware n'y accorde que très peu d'importance), mais certains on plus ou moins réussi à s'en affranchir, cf. FastFrench qui a déja atteint les 64 joueurs sur son module (bouchon lyonnais). Disons que pour la communauté française ceci est rarement un problème, donc on en entend pas trop parler ici. Cela dit, si tu va un peu farfouiller sur les forums Bio, tu verra que c'est une limitation sérieuse pour les pseudos-MMORPGs développés avec NWN.

*regarde l'heure* pfff je me lève un peu tôt moi :P
Citation :
Ensuite, un module trop chargé peut rapidement faire lagger tout le monde. Par exemple, il n'est pas très sain de faire un module qui dépasse les 200 zones, et il est carrément suicidaire d'en faire un qui dépasse les 500 (à moins de posséder un bi-Xéon dont tu parles). De même, les zones ne doivent pas être surchargées en script, en pnjs et en plaçables, et ne doivent en théorie pas dépasser 16x16 (et encore, ça fait pas mal).
Je suis pas du tout d'accord avec ce que tu dis Taern.
Les causes du lag sont assez connus. Un grand nombre de PJ et PNJ sur la même zone, beaucoup d'effet lumineux, aussi...

Quand aux nombres de zones, non. J'ai connu de gros modules avec plus de 600 zones qui ne laggaient pas. J'ai moi même un module de près de 700 zones et ca ne lag pas.

Pareil pour les placables. J'ai des zones avec près de 500 placables et ca ne lag pas.

Par contre des scripts codés avec un gant de fer même sur une zone vide et un PJ dessus vont te faire lagger ton server dans des proportions incroyables.

Quand à la taille des zones c'est vrai que 16x16 c'est énorme. Et en fait ce qui est pénalisant c'est le temps de transfert des informations de la carte du server au client.
Je suis d'accord avec Mickey, une zone peut très bien comporter 10 placeables et lagger à mort, il suffit qu'ils soient mal placés et l'affaire est pliée. Il y a un fil très intéressant de G.Z. sur le forum technique de Bioware expliquant le pourquoi du comment, et cela se résume essentiellement par pathfinding...

Prenez une zone avec 500 placeables placés de manière optimale, donc laissant des points de passage très faciles d'accès aux PC et NPC, il n'y aura aucun problème. Prenez une zone avec 10 placeables, mis n'importe comment et encombrant monumentalement le pathfinding, et bien il suffit que quelques PC / NPC se trouvent dans la zone pour que l'algo. commence à paniquer et ne sache plus déterminer qui doit passer et où.

D'accord aussi pour la taille des zones à transférer, il est possible d'avoir des zones 16*16 plus petites en terme de taille de données que des zones 8*8, il faut regarder les .git, et .are accessoirement.
Exact, j'ai omis le paramètre du nombre de joueurs à l'écran. Enfin bon j'ai pas prétendu tout lister

Sinon, en ce qui concerne le nombre de zones : NWN n'est pas conçu pour faire tourner des modules avec trop de zones (cf. partitionnement de la campagne solo), mais en fait ce n'est pas le réel problème en soi. Le problème c'est que plus de zones = plus d'objets (pnjs, plaçables).
Or, plus de pnjs signifient : plus de scripts qui tournent, plus de pathfinding (le pathfinding est un gros gros morceau de ressources), etc. Plus de plaçables signifient pathfinding plus compliqué, plus de scripts aussi. Et evidemment, tout ça prend de la place en mémoire.

Enfin bref, ce que je recense ici, ce sont quelques paramètres qui sont restés dans ma mémoire, sachant que je n'ai pas fait tourner un serveur NWN depuis très longtemps. Il y a eu quelques sujets ici sur Maskado, qui traitaient de ça beaucoup plus rigoureusement, donc ça peut être intéressant pour une personne qui cherche à monter un gros projet de persistant.

Dernière chose, le coup du : "703242 zones avec 452626 plaçables et 146714 pnjs chez moi ça lag pas", c'est pas très très pertinent Précise au moins ta configuration, pour avoir un ordre d'idée.
Citation :
Dernière chose, le coup du : "703242 zones avec 452626 plaçables et 146714 pnjs chez moi ça lag pas", c'est pas très très pertinent Précise au moins ta configuration, pour avoir un ordre d'idée.
Lol tu a toujours eu l'art de l'exagération. Enfin bref ...
Je coupe court ou pas

Bref, on en apprend tous les jours sur ce fofo... j'apprécie grandement les divers contenus... *intéressant*

Ceci étant dit, pour répondre à la question des 64PJ simultané en ligne... Tu peux toujours demandé à FastFrench pour avoir une légère idée : http://fastfrench.eskysse.com
Ben quoi, si je ne me trompe pas son serveur abrite 64PJ. Mais bon il lag un tout petit peu...

Et si quelqu'un retrouve l'ancien sujet sur "Le comment évité les lags", ce serait vraiment bien.

Je te conseille de redescendre sur terre... 64PJ reste un bon rêve, car y a aussi le problème de connexion. Je pense que tu es comme nous tous en ADSL et non en SDSL donc en upload c'est tout pauvre.
je vais hoster le module sur un serveur dans une salle machine certainement , je doit encore en discuter avec d'ancien collegue , je travaillais chez le FAI national belge et y ai encore pas mal de contact

Merci pour le lien
Citation :
Publié par PinMaster
Je te conseille de redescendre sur terre... 64PJ reste un bon rêve, car y a aussi le problème de connexion. Je pense que tu es comme nous tous en ADSL et non en SDSL donc en upload c'est tout pauvre.
Sauf si t'as la chance d'etre chez Free en degoupe total et que tu as tres peu de perte sur ta ligne
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés