[Abandonné]Open Space : Idée d'un metaverse 100% Pure Basic

Généralités sur la programmation 3D
GG
Messages : 239
Inscription : jeu. 09/déc./2004 12:23

Re: Open Space : Idée d'un metaverse 100% Pure Basic

Message par GG »

Dobro a écrit :
G-Rom a écrit :Concernant le "lag" si on peu appeler cela ainsi,je pensais que même avec une connexion de 512k , on peu envoyer (pas recevoir) en théorie
512*1024*8 bits soit 4194304 bits par secondes.
oui ce qui correspond a 4 kilo par secondes !!
512 Kbits / seconde équivaut à 64 Ko/s.
512 Kbits=512*1024 bits=524288 bits, soit 524288/8=65536 octets, soit 64 Ko/s.
PureBasic 6.03 - Windows 11 22H2 (64 bits)
Avatar de l’utilisateur
GallyHC
Messages : 1703
Inscription : lun. 17/déc./2007 12:44

Re: Open Space : Idée d'un metaverse 100% Pure Basic

Message par GallyHC »

Bonjour,

Me suis connecter et PERSONNE sniff lolll ce sera pour la prochaine fois...

Cordialement,
GallyHC

PS: ce n'est pas le plus rapide (des jeux internet) mais je ne peux pas dire non plus que sa rame chez moi. pour infos je suis chez free a 1Km de dslam.
Configuration : Tower: Windows 10 (Processeur: i7 "x64") (Mémoire: 16Go) (GeForce GTX 760 - 2Go) - PureBasic 5.72 (x86 et x64)
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Open Space : Idée d'un metaverse 100% Pure Basic

Message par falsam »

GallyHC a écrit :ce n'est pas le plus rapide (des jeux internet) mais je ne peux pas dire non plus que sa rame chez moi.
Bonjour GallyHc. Tu ne rames pas mais ce n'est pas le plus rapide non plus.

La mise à jour de la position des autres joueurs n'est effectivement pas rapide étant donné que la position de ces joueurs est mise à jour chaque seconde. Je dois travailler sur une interpolation entres la position précédente du joueur et sa nouvelle position.

La mise à jour des objets se fait aussi toute les secondes. Ces objets étant statics ce n'est pas un problème.

Reste la fluidité du cube représentant ton avatar. C'est son déplacement qui est trop lent ?
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Open Space : Idée d'un metaverse 100% Pure Basic

Message par Backup »

GG a écrit : 512 Kbits / seconde équivaut à 64 Ko/s.
512 Kbits=512*1024 bits=524288 bits, soit 524288/8=65536 octets, soit 64 Ko/s.
oui , peut etre bien en fait :oops:

quoiqu'il en soit , en download , je ne depassais jamais 63 k/s :roll: la rame !
et jamais plus de 3 préchargements simultanés ! ... bref la lose :lol:


ps: reflexion faite , les 4k/s c'etait a l'epoque du 28800 bauds ...
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Re: Open Space : Idée d'un metaverse 100% Pure Basic

Message par cederavic »

Je viens de tester un peut, sympathique! Mais injouable... J'ai au minimum 5 freezes par seconde et ça vient certainement pas de ma config ni de ma connexion... En revanche la zip fonctionne bien 8)
A quand des perso dans ce style? : http://www.youtube.com/watch?v=ucFne7i2ILY Je posterais le code a l'occaz si ça peut aider :)
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Open Space : Idée d'un metaverse 100% Pure Basic

Message par falsam »

cederavic a écrit :injouable... J'ai au minimum 5 freezes par seconde et ça vient certainement pas de ma config ni de ma connexion
Quel certitude !!!! Je ne freeze absolument pas et j'ai testé sur des pc différents bien plus puissant que le mien (qui date de 6 ans). Mon code fait des accès mysql environ 1 fois par seconde. Si freeze il y a, ça ne peut être qu'à ce moment là. J'ai testé Open Space avec une connexion internet moins rapide que le mienne et je ne peux pas dire que mon cube freeze quand j'essaye de le déplacer.

On n'est pas dans un jeu ou l'ensemble des éléments du jeu se trouve sur les pc de chacun. Ici tout le monde participe à la construction d'open space inworld. Le décors peut changer à tout instant.

Chaque joueur peut importer des éléments comme un mesh, une texture, un son. Si un ou plusieurs de ces éléments est posé sur le grid, il sera aussi visible ou entendu par les autres joueurs, ce qui implique un transfert de données important à destination de chacun des joueurs.

Je n'utilise pas la bibliothèque Network pour le transfert de ces données : Je passe par des transactions MySql.

Actuellement j'ai mis en place 4 timers réglés entre 500 ms et 1500 ms. Chacun de ces 4 timers envoie des données sous forme de requêtes à un serveur MysQL : Un timer pour le tchat, un timer qui envoie la position du joueur (le vôtre), un timer qui permet de savoir ou se trouve les autres joueurs et enfin un timer qui permet de mettre à jour l'affichage des objets posés par vous même ou les autres joueurs.

Forcement ça fait beaucoup d’accès mais il n'y a pas besoin d'un ordinateur puissant. Mon test s'effectue sur un ordinateur équipé d'un Intel Core 2 Duo associé à une carte vidéo (une vrai bien sur) avec 512 Mo embarqué. Par contre il est important d'avoir une bonne ligne adsl/dsl (6000 Kbits/s).
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Re: Open Space : Idée d'un metaverse 100% Pure Basic

Message par cederavic »

Oui je suis certain! :P
Je fais tourner aisement FFIV et je peux regarder des streaming en 1080p sans préchargement de 15min..
J'étais tout seul sur le server et je ne faisais que me balader, le shoutcast bouffai plus de bande passante que le jeu lui même.
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: Open Space : Idée d'un metaverse 100% Pure Basic

Message par G-Rom »

non ced, ton pc est pourri comme le miens ^^
Quel certitude !!!! Je ne freeze absolument pas
je te retourne ta certitude, tu postes ton jeu, c'est pour avoir des retours, depuis le début tu remet en question nos pc & nos connexions, je te concède que la mienne est pourrie mais elle ne m'empêche pas de regardé du streaming ou de jouer à Battlefield 3 & 4 à 64 joueurs...
donc , en tant que programmeur , je dis que c'est ton programme qui à un problème, pas nos pc.
De plus comme je te l'ai déjà dit, un jeu en réseau qui à un "serveur" de jeu uniquement basé sur sql ça n'existe pas, mis à part ton programme, le fait d'envoyer la position tout les 1500ms c'est comme si tu jouais à bf3 avec un ping de 1500... c'est injouable. autant faire une communication via des boites mail , le résultat sera le même.

un reseau pour le jeu , dois être sous cette forme :
Image
C'est une topologie étoilée.
Seul le serveur simule le jeu, c'est lui qui prend toute les décisions concernant le jeu, qui fixe les règles, qui dit qui est mort, qui vit, etc...
le serveur envois "des images" à un temps fixe ( tout les 15ms environ ), dans l'image & dans ton cas, il pourrais y avoir une direction ( la vitesse est fixe on ne l'envois pas ) , une position, l'état du joueur ( si il avance , si il tourne , une sorte de keymapping quoi )
le message pourrais donc prendre cette forme : [IDENTIFIANT] [TEMPS SERVEUR] [NUMERO DE PAQUET] [ID JOUEUR][DIRECTION] [POSITION] [KEYMAP]

- [IDENTIFIANT], c'est le byte que le serveur met en début de message, cela sert au client à identifier le type de paquet & ainsi connaitre la suite des données à extraire
- [TEMPS SERVEUR] , sert à synchronisé les client au serveur
- [NUMERO DE PAQUET] , sert surtout à l'interpolation entre les différents paquets & à voir si il y a des pertes de connexion , si le serveur recois le paquet 8 et qu'ensuite il recois le paquet 20, ca ne sert à rien de faire une interpolation entre le 8 le 20, on cale directement le client sur le 20 , on attend le 21 & on interpole
- [ID JOUEUR], le joueur concerné
- [DIRECTION] , la direction est un vecteur 3D ( x , y , z ) , la vitesse étant fixe elle n'est pas envoyé aux clients, la nouvelle position est défini par maPosition = maDirection X vitesse
- [POSITION], idem que la direction , un vecteur 3D
- [KEYMAP] , peu être un type à 8 bits, chaque bit peu stocker un état , une touche enfoncé , avance, tourne à droite, gauche , recule, avec le "bitshifting" on extrait facilement les informations voulue.
un message comme cela fait environ 38 octets
pour 16 joueurs 608 octets
par seconde avec un tick de 20ms par exemple : 30400 octets par secondes, ca c'est la partie serveur qui envois.
le client envois son état local uniquement, encore plus léger.
Quand tu auras mis tout cela en place, tu pourras t'occuper de la prédiction de mouvement & de l'interpolation & tu pourras critiquer nos pc & nos connexions aussi pourrie soient elles, mais pas avant. il faut savoir accepter quand on se trompe. ;)
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Open Space : Idée d'un metaverse 100% Pure Basic

Message par falsam »

je vais tacher de faire court.

G-Rom tu as du voir ma signature je pense. Je suis un noob et je reconnais quand je me trompe ou que je quand je ne suis pas à la hauteur.

Contrairement à d'autres, je n'ai pas de certitude quelconque sur ce projet:

■ Je ne remet pas en cause vos pc d'autant plus que mon pc de test est beaucoup moins puissant que les vôtres.

■ Je ne remet pas non plus en cause vos connections pour jouer à certains jeux. Par contre à mon avis, pour accéder à certains metavers (Rappel : Ce n'est pas un jeu que je code.) je pense que vos connexions internet sont moisis.

■ Jeux et metavers ne sont pas du tout la même chose. Google c'est planté avec son metavers Lively et Linden Lab est en survi avec son metavers Second Live. Donc autant te dire que je n'ai aucune certitude. Je n'ai pas les moyens financiers et humains pour développer un tel projet.

Si j'ai posté ce sujet c'est effectivement pour avoir un feedback me permetant d'ajuster le code sur la base d'éléments factuels.

Jusqu'à présent je crois encore à ce code. La seule certitude que j'ai et que bien que mon serveur de test soit un peu léger, que je sois en adsl ou dsl je ne lag pas.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Re: Open Space : Idée d'un metaverse 100% Pure Basic

Message par cederavic »

On juge pas un niveau de competence ou quoi que ce soit... Il y a juste un couac quelque part qui empeche ton app de fonctionner correctement chez nous. Je le repete mais je doute fortement que ça vienne entierement de nos config / connexion (ça joue surement un peut mais négligeable). Très peut de personne ont du 20 mbps reel chez eux!
J'ai remarquer des pique d'utilisation reseau et j'ai l'impression que c'est ça qui freeze le jeu, a creuser de ce coter (thread?)

Image


Comme tu peux le voir sur la capture, j'ai 50 fps (prise pile poil pendant un freeze) enfait ça varie entre 50 et 60fps. Mon processeur n'est qu'a 45% de sa puissance maxi, c'est pas lui qui bride. Le shoutcast utilise 20 fois plus de BP que le jeu et il fonctionne niquel. On le vois pas sur le screen (j'ai oublier de scroll) mais j'ai 55ms de ping sur ton serveur, le probleme ne vient pas de là non plus.

Avoir choisi un serveur SQL peut etre une bonne idée mais pour le stockage des données uniquement, pas pour de l'echange de donnée en temp reel (et encore moins via le NET). Je pense que tu devrait séparer les deux choses : la data (bdd sql) et la logique (serveur udp)

N'ayant pas le code, on ne poura pas te donner plus d'élément factuels :wink:

Dans tout les cas il y a du bon boulot derriere ça, continue c'est interressant :)
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Open Space : Idée d'un metaverse 100% Pure Basic

Message par Backup »

ce qui est dommage, c'est que dans ta capture, on ne vois pas la colonne "Latence"
c'est justement elle le "Lag" en principe ...

moi, je vous retourne la question
pourquoi sur mon Ordi+connection et celle de GallyHC nous ne "laggon " pas ??

l'autre jour, nous etions a 3 a etre sur le Space , a ecrire, et bouger sans problems ???


j'ai lu l'autre jour 'je sais plus ou' que le Lag pouvait provenir de la Distance au DSLAM ..

mais bon , bizarre , puisque Perso , je suis a 6 kilometres de mon DSLAM ... 8O

je ne sais pas si la méthode Mysql , qu'il emploi est la bonne , mais
si ça venait de lui , pourquoi certaines config , marche nickel ?
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Re: Open Space : Idée d'un metaverse 100% Pure Basic

Message par cederavic »

Dobro a écrit :ce qui est dommage, c'est que dans ta capture, on ne vois pas la colonne "Latence"
c'est justement elle le "Lag" en principe ...
cederavic a écrit :On le vois pas sur le screen (j'ai oublier de scroll) mais j'ai 55ms de ping sur ton serveur, le probleme ne vient pas de là non plus.
Dobro a écrit :moi, je vous retourne la question
pourquoi sur mon Ordi+connection et celle de GallyHC nous ne "laggon " pas ??
Je vais répondre par une question... Pourquoi je peux jouer a des MMO comme FFIV / GW2 tout en regardant du streaming sur youtube ET AVEC la TV d'orange allumée (bon j'avous que si le téléphone sonne c'est mort)?
Comme je disais on voit tres bien les piques reseau sur ma capture et je serait pas étonné qu'il y ai un lien avec les freeze...
G-Rom
Messages : 3627
Inscription : dim. 10/janv./2010 5:29

Re: Open Space : Idée d'un metaverse 100% Pure Basic

Message par G-Rom »

moi, je vous retourne la question
pourquoi sur mon Ordi+connection et celle de GallyHC nous ne "laggon " pas ??
Tu vas me faire croire qu'en envoyant les positions tout les 1000ms tu ne lag pas ?, il le dit lui même en plus...
tu ne sait pas se que c'est que le lag alors... je ne parle pas de ton cube à toi, mais ceux des autres joueurs...

Jeux et metavers ne sont pas du tout la même chose.
Le principe de communication reste le même.
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Open Space : Idée d'un metaverse 100% Pure Basic

Message par falsam »

G-Rom a écrit :... je ne parle pas de ton cube à toi, mais ceux des autres joueurs...
G-Rom des que j'arriverais à faire cette fameuse interpolation linéaire entres deux points 3D, la mise à jour des joueurs autres que le cube de ton propre joueur sera fluide. L'important est que ton propre joueur reste fluide.

Dans des jeux comme FFIV, WOW, ou autres mmorpg est ce que tu peux loader tes propres mesh ou textures ou encore des sons que d'autres joueurs pourront voir ou entendre ?

Est ce que tu peux imposer des actions à ces meshs que tu importes comme OnCreate(), OnTouch(), OnProximity(), OnCollision() etc ?

A propos du lag, J'ai regardé les stats du serveur pour essayer de comprendre mais étant seul à ce moment là ce n'est pas significatif d'autant plus qu'il n'avait qu'à afficher une trentaine de meshs.
CPU AuthenticAMD, Quad-Core AMD Opteron(tm) Processor 2352
Version Parallels Plesk Panel v11.5.30_build115130819.13 os_CentOS 6

Utilisation du CPU
Dernière minute 0.05
5 dernières minutes 0.03

Utilisation mémoire
Montant total 2.00 Go
Utilisé 347.19 Mo
En cache 234.81 Mo
Utilisation 5.49%
Ne lagant pas je ne peux pas repérer si il y a un goulot d'étranglement quelques part.
Configuration : Windows 11 Famille 64-bit - PB 6.03 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Fred
Site Admin
Messages : 2652
Inscription : mer. 21/janv./2004 11:03

Re: Open Space : Idée d'un metaverse 100% Pure Basic

Message par Fred »

Pour l'interpolation, tu as essayé NodeAnimation ou la lib Spline ?
Répondre