AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -20%
(Adhérents Fnac) Enceinte Bluetooth Marshall ...
Voir le deal
199.99 €

 

 Minecraft-like - stocker les données - SQL ou autre

Aller en bas 
+2
Wargamer
Chulien
6 participants
AuteurMessage
Chulien
Utilisateur confirmé: Rang *****
Chulien


Messages : 2232

Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptyMer 27 Avr 2011 - 8:42

Salut, j'ai quelques questions qui me viennent a l'esprit (dans le bus) :

Pour développer un Minecraft multijoueur uniquement, comment est-ce qu'on peut stocker les données (map, stats, inventaires, logins/pass...) de façon a y accéder rapidement tout en ayant une map très grande?
Je sais que l'original a un paquet de petits fichiers dans un paquet de dossiers mais on peut être qu'on peut trouver mieux.

Est-ce qu'une base de données SQL côté serveur serait une solution ?

Est-ce sécurisé malgré Game Maker? On dirait bien, vu que c'est du côté serveur, mais bon...

Minecraft-like - stocker les données - SQL ou autre Cubelands001
Revenir en haut Aller en bas
http://sites.google.com/site/chuliendev
Wargamer
*Excellent utilisateur*
Wargamer


Messages : 6938
Projet Actuel : Bataille de cake au fruits

Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptyMer 27 Avr 2011 - 12:54

Pour la simplification maximale, tu peux créer un fichier texte regroupant les bloques de 200* 200 * 200 d'une endroit puis le groupe à coté.
Un peu comme Minecraft mais en plus rapide.
Si j'ai bien compris, le plus long c'est D'ouvrir les et fermer un fichier(et le trouver) une fois fois fait ca prend presque pas de temps lire dedans.

_________________
Minecraft-like - stocker les données - SQL ou autre Wargamer3
Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
Chulien
Utilisateur confirmé: Rang *****
Chulien


Messages : 2232

Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptyMer 27 Avr 2011 - 13:18

C'est ce que je pensais faire au début, en binaire maintenant que j'y arrive. Sauf que tu les nommes comment tes fichiers ? avec les coordonnées xyz ? par exemple "-2_4_-10.dat" ?

Pourquoi tu dis plus rapide que Minecraft, c'est particulièrement lent ?
Revenir en haut Aller en bas
http://sites.google.com/site/chuliendev
Termite
Utilisateur confirmé: Rang ****
Termite


Messages : 1005
Localisation : Dans ta charpente !
Projet Actuel : RayEngine 5.0

Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptyMer 27 Avr 2011 - 14:11

Chulien a écrit:
C'est ce que je pensais faire au début, en binaire maintenant que j'y arrive. Sauf que tu les nommes comment tes fichiers ? avec les coordonnées xyz ? par exemple "-2_4_-10.dat" ?

Pourquoi tu dis plus rapide que Minecraft, c'est particulièrement lent ?
Pour de la 2D j't'aurais conseillé d'écrire la taille dla map, puis à chaque fois l'ID des block (00 -> pas de bloque) ensuite via une fonction mod tu recompose ta map.
Maintenant, en 3d.. ptet écrire directement comme ça :
ID du block ; x ; y ; z (4 B / blocs donc) et ensuite tu multiplie ton résultat par la taille du block pour recomposer ta map en 3d

_________________
Because these are not the words of God, the same God that burnt the knowing.
Revenir en haut Aller en bas
Chulien
Utilisateur confirmé: Rang *****
Chulien


Messages : 2232

Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptyMer 27 Avr 2011 - 16:50

3D

Mais ca risque de prendre du temps de parcourir les fichiers...
Revenir en haut Aller en bas
http://sites.google.com/site/chuliendev
Wargamer
*Excellent utilisateur*
Wargamer


Messages : 6938
Projet Actuel : Bataille de cake au fruits

Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptyMer 27 Avr 2011 - 17:20

C,est vrai que GM a pas une super gestionnaire de fichier
En théorie, tu fait que mettre x,y et z de chaque bloc un après les autre.
comment retrouvé l'ID du bloc? Tu peux pas.
Tu charge le bloque à la position voulu(exemple tu est à 30,40,24, tu charge le bloque à 30 + 40 * 200 + 24 * 200 * 200, le tout multiplier par la taille des données en octets)

par contre sous gm...

_________________
Minecraft-like - stocker les données - SQL ou autre Wargamer3
Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
Invité
Invité




Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptyMer 27 Avr 2011 - 18:52

ben vu que tes blocs sont aligné sur une grille, les stocker ne sera pas une tache très difficile ni très gourmande en ressource.
tu pourra même en stocker plusieurs sur un seul octet.
Revenir en haut Aller en bas
Termite
Utilisateur confirmé: Rang ****
Termite


Messages : 1005
Localisation : Dans ta charpente !
Projet Actuel : RayEngine 5.0

Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptyMer 27 Avr 2011 - 18:57

Bah le mieux à faire c'est une grosse loop for de tout tes block, ils sont attaché sur une grille donc suffit de faire ça :

file_bin_write_byte(file,instance_number(block) &$FF)
file_bin_write_byte(file,instance_number(block) &$7F)

for(i=0;i<instance_number(block);i+=1)
{
_block = instance_find(block,i)

file_bin_write_byte(file,_block.type)

file_bin_write_byte(file,_block.x/16)
file_bin_write_byte(file,_block.y/16)
file_bin_write_byte(file,_block.z/16)
}

ensuite à la lecture tu lis le nombre de blocks qu'il y a, pis ensuite tu recharge en multipliant les résultats par 16 (type définira le type, genre 0 c'est dla terre, 1 de l'herbe, et,etc)

_________________
Because these are not the words of God, the same God that burnt the knowing.
Revenir en haut Aller en bas
Chulien
Utilisateur confirmé: Rang *****
Chulien


Messages : 2232

Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptyVen 29 Avr 2011 - 9:56

Et en SQL, quelqu'un est au courant ? snowm
Revenir en haut Aller en bas
http://sites.google.com/site/chuliendev
Fogiax
Très bonne participation
Fogiax


Messages : 159

Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptyVen 6 Mai 2011 - 17:39

Si tu arrive à gérer un tableau a 3 dimensions en sql t'est balaise ^^

Si le minecraft originale utilise des fichier plutôt qu'une base sql c'est pour la bonne raison qu'il est plus rapide d'aller chercher dans des petits fichiers que dans une base de données (qui serais j'imagine externe au serveur dans ce cas, entrainant une connexion> lent).
De plus les fichier peuvent être manipuler beaucoup plus facilement (utile pour sauvegarde, compression ect)

Un moyen simple est de nommer les fichier de stockage de la carte par le sommet x y z.
Par exemple 0,100,200.txt représente le bloque qui contient les infos sur 0>100 en x 100>200 en y 200>300 en z.

Pour trouver dans quelle fichier se trouve certaine coordonnée il suffit de prendre le coordonnée voulut et les aligné par tranche que le fichier supporte
Par exemple les coordonnée 150,0,200 :
pour x : 2 > 150/1000 < 1 donc le x est entre le fichier 100 et 200 et comme le fichier commence stock par incrémentation les coordonnées se trouve en 100,y,z.txt
En GML sa peut donnée quelque choses comme :

Code:
// scr_position_to_file(x,y,z)
var _x,_y,_z;
_x=floor(argument0/100)*100
_y=floor(argument0/100)*100
_z=floor(argument0/100)*100
return string(x)+","+string(y)+","+string(z)+".txt"

Pour la gestion de fichier avec game maker,

Tu peut le faire en binaire, mais les fonctions file_bin de game maker sont très lente en comparaison des DLLs :
http://gmc.yoyogames.com/index.php?showtopic=311201
http://gmc.yoyogames.com/index.php?showtopic=393301
http://gmc.yoyogames.com/index.php?showtopic=359853
http://gmc.yoyogames.com/index.php?showtopic=405796

Pour minimiser la taille des fichier tu peut utiliser plusieurs sorte de compression, il y a longtemps j'avais fait un benchmark de toute les dll de compression compatible avec game maker et la plus rapide est Tar DLL de loin (du genre 78ms pour 10mb et le 2ème était a presque 400ms). Je me souvient aussi que l'exemple de cette dll avec un problème facilment corrigeable concernant une fonction (il on peut être corriger depuis)
Il y en a aussi plein d'autre tu peut faire un tour sur http://www.gmtoolbox.com/

Oula j'ai bien écrit moi --'
Bon je m’arrête là, bonne continuation.
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9178
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptyVen 6 Mai 2011 - 17:58

A la place de floor(argument0/100) on peut directement faire argument0 div 100

En tout cas ouai je verrais les choses a peu prés de cette façon aussi, mais pas en gml par contre :p

_________________
Minecraft-like - stocker les données - SQL ou autre Runningpotato1Minecraft-like - stocker les données - SQL ou autre TvF6GED Minecraft-like - stocker les données - SQL ou autre MdetltS
Revenir en haut Aller en bas
Fogiax
Très bonne participation
Fogiax


Messages : 159

Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptyVen 6 Mai 2011 - 18:12

pas faut pour le div 100.
Si tu t'emmerde t'a cas faire la DLL xD
En ce qui me concerne, en application windows je connais que le gml *honte honte* (je sais c'est bon juste pour les noob parceque sa ram trop et que c'est super-megaèhyper assisté mais que voulez vous, j'aime game maker ^^)
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9178
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptyVen 6 Mai 2011 - 18:37

C'est juste que t'as eu la flemme de faire le premier pas. Perso j'avais la flemme de me mettre au C++ mais le jour ou j'ai commencé j'ai pas pu m’arrêter xD
Enfin un conseil, essaye le C++, et si tu aime vraiment le gml je suis en train de faire une librairie gml en C++, t'a qu'a faire un tour du coté de µDev++. D'ailleurs quand ce seras suffisamment avancé je mettrait tout en opensource

_________________
Minecraft-like - stocker les données - SQL ou autre Runningpotato1Minecraft-like - stocker les données - SQL ou autre TvF6GED Minecraft-like - stocker les données - SQL ou autre MdetltS
Revenir en haut Aller en bas
Fogiax
Très bonne participation
Fogiax


Messages : 159

Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptyVen 6 Mai 2011 - 19:03

(J'ai la flemme de faire le premier pas surtout parce que l’an prochain je vais voir sa en cour, 17h d'informatique par semaine xD )
Elle a l'aire sympa ton appli j’irais poster sur le topic mais cette discutions n'a pas trop sa place ici ^^


Quand au problème SQL je me suis planté, c'est facilement réalisable le problème va être le temp pour trouver un bloque ou en editer un vue la taille qu'auras la base, je me pencherais la dessus peut être ce soir ou demain.
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9178
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptyVen 6 Mai 2011 - 19:08

oui.
En tout cas le problème de ce système ce seras pour l'affiche des 'blocs' de cube lointains.
Faudrait générer un modèle 3d quand on quitte un 'bloc' histoire d'optimiser. Par contre la génération du modèle ne seras pas une mince affaire, surtout que logiquement vaux mieux ne garder que ce qui est visible (genre si y a un trou a l’intérieur on s'en fou) et ne pas avoir deux vertex au même endroit quoi. De plus utiliser des quad au lieu de triangle serais plus rapide.

_________________
Minecraft-like - stocker les données - SQL ou autre Runningpotato1Minecraft-like - stocker les données - SQL ou autre TvF6GED Minecraft-like - stocker les données - SQL ou autre MdetltS
Revenir en haut Aller en bas
Fogiax
Très bonne participation
Fogiax


Messages : 159

Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptyVen 6 Mai 2011 - 20:10

http://gfrung4.webs.com/minecraft%20example%20gm7.gmk

Tu prend cette exemple, et comme tu l'a dit il faut enlever les faces objet cacher dans le model, je m'étais amuser a le faire et les fps reste correcte même avec de gros modèle.

En ligne la galère doit être le transfert de la carte.
Revenir en haut Aller en bas
onilink_
Modérateur
onilink_


Messages : 9178
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptyVen 6 Mai 2011 - 20:15

Bah tu la compresse avant le transfert. Ce genre de structure a un bon taux de compression normalement.

_________________
Minecraft-like - stocker les données - SQL ou autre Runningpotato1Minecraft-like - stocker les données - SQL ou autre TvF6GED Minecraft-like - stocker les données - SQL ou autre MdetltS
Revenir en haut Aller en bas
Fogiax
Très bonne participation
Fogiax


Messages : 159

Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptyLun 9 Mai 2011 - 22:08

Sa doit saturer rapidement au niveau du serveur, si chaque joueur doit rafraichair la carte dès qu'il change de position :/
Revenir en haut Aller en bas
Chulien
Utilisateur confirmé: Rang *****
Chulien


Messages : 2232

Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptyVen 13 Mai 2011 - 11:52

Salut,

j'avais pas vu que quelqu'un avait répondu !

Pour la lenteur de la base de données, en fait j'ai entendu dire, ce qui me semble évident, que SQL Server ou autre sont optimisés pour ça. C'est peut-être un veau en apparence, mais faut pas le prendre pour un ***. Après, optimisés jusqu'à quel point?.... je crois qu'il faut que j'essaie c'est tout. (La base serait locale au serveur)

Pour l'histoire des modèles d'objets distants, j'y ai réfléchi (en pensant à GTA et aussi Windwaker, quand on voit les iles au loin avec la lunette, mais bon, c'est une map prédéfinie après tout...). Mais à vrai dire je ne m'en soucie pas pour le moment, même si c'est très intéressant.

Pareil pour la compression des fichiers, j'ai l'impression que ça ralentirait l'exécution, sauf si je crée un dossier temp contenant tous les fichiers décompressés. M'enfin. Les dll qui accélèrent l'écriture en binaire, en revanche, ça m'intéresse.
Revenir en haut Aller en bas
http://sites.google.com/site/chuliendev
onilink_
Modérateur
onilink_


Messages : 9178
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptyVen 13 Mai 2011 - 11:55

Y a certains algo de compression qui ne demandent aucun temps et on un taux assez bon pour ce genre de données.
Faudrait tester le RLE qui est très rapide.

_________________
Minecraft-like - stocker les données - SQL ou autre Runningpotato1Minecraft-like - stocker les données - SQL ou autre TvF6GED Minecraft-like - stocker les données - SQL ou autre MdetltS
Revenir en haut Aller en bas
[TheDarkTiger]
Modérateur
[TheDarkTiger]


Messages : 7420
Localisation : Essonne

Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre EmptySam 14 Mai 2011 - 0:19

le RLE pour minecraft, à mon avis, ça reviendrait à rien si la map est bien construite (par contre, sur une terre vierge, ça compressera très bien).
Mais si tu essaye de compresser une colonnade, bin ça va pas être top.
Quoi que...

Mais le mieux, c'est un petit coup de 7Z, et hop, on envoie.

Par contre, je pense que sur ton serveur, il vaut mieux qu'elle soit décompressée.
Et compressée ou non, il te faut des "chuncks" pour éviter de charger toute la carte à chaque connexion.

_________________
Bonne chance pour vos projets actuels ! Prêt à aider ceux qui en ont besoin ^^
Minecraft-like - stocker les données - SQL ou autre U3dfr2 l'antique http://www.membres.lycos.fr/thedarkminousite/Minecraft-like - stocker les données - SQL ou autre Sign
Bienvenue au 2628eme utilisateur : *Yashiro89 !
Revenir en haut Aller en bas
http://www.tdms.fr
Contenu sponsorisé





Minecraft-like - stocker les données - SQL ou autre Empty
MessageSujet: Re: Minecraft-like - stocker les données - SQL ou autre   Minecraft-like - stocker les données - SQL ou autre Empty

Revenir en haut Aller en bas
 
Minecraft-like - stocker les données - SQL ou autre
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Stocker des variables dans un array
» Minecraft Art by Shadow_the_killer
» Minecraft
» Serveur minecraft
» tri de données ...

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide confirmés-
Sauter vers: