Partage
  • Partager sur Facebook
  • Partager sur Twitter

[WebGL + JS] Minecraft en Javascript

    20 août 2012 à 22:19:36

    Citation

    le php est très très lent (langage interprété) si tu compilais en C++ qui écrivais ton fichier tu irais beaucoup plus vite.


    Oui, en effet, c'est une bonne idée :D Mais il faudra quand même garder le code PHP pour que les utilisateurs puissent ajouter/supprimer des blocks.

    Citation

    Je rencontre un probleme avec la démo, j'ai le personnage tout a droite de mon écran et je ne peu pas bouger. J'ai testé sur PC et MAC et j'ai le même résultat.


    Si tu utilise chrome, il faut activer le mouseLock (tape chrome://flags/ comme url puis cherche Activer le verrouillage du pointeur que tu activeras. Relance chrome, ouvre le lien de démo et appuis sur une touche ou clique sur un bouton de la souris)
    • Partager sur Facebook
    • Partager sur Twitter
      20 août 2012 à 22:22:01

      Je suis effectivement sous chrome je testerais ça demain, merci.
      • Partager sur Facebook
      • Partager sur Twitter
        22 août 2012 à 19:18:37

        j'ai tester le jeux mais a par la touche échappe pour quitter le plaine écran, je ne peux rien faire
        • Partager sur Facebook
        • Partager sur Twitter
          22 août 2012 à 19:51:50

          pareil pour moi, je suis sous firefox 14.0.1 . :)
          • Partager sur Facebook
          • Partager sur Twitter
            22 août 2012 à 23:52:38

            Bonjour.

            Pareil sur chrome, même problème.

            Sinon, ton commentaire sur le téléchargement des informations est assez absurde. Qui te dit que la connexion du client est bonne et fiable ? Rien que chez moi, il faut beaucoup de temps pour tout charger, même si la cause est que je bouffe mon taux d'envoi (faible, raison p2p), et donc techniquement, il y a une limitation du téléchargement. Ensuite, pour les images, je ne sais pas comment tu fais, mais crée-en une seule avec toutes (sprites), et chez le client, au chargement, tu les sépares dans des canvas que tu interpréteras comme image, ainsi, ça fait moins d'appels HTTP, moins d'octets, etc. Et 2 secondes pour séparer des images contre 10 pour les charger, le choix est vite fait. Bref, niveau téléchargement, il faut vraiment compresser et comprimer le tout.

            Ensuite, webGL ne fonctionne pas sous opéra. :/ Et si en plus on doit activer des choses sur les navigateurs pour jouer, personne ne viendra.


            Je rejoins @Earh@ter pour faire un programme c++ pour la génération. Même si le programme est appelé via php. Tu gagnes en temps, en efficacité. Par contre, tu dis qu'il faut 4min pour 256^3 cubes, même en c++, compte au moins la moitié (2min). Est-ce que tu sais quel en est la cause, quel est la partie du code le plus lourd ? Ca me semble quand même énorme. Qu'est-ce qu'un cube ? Et tu testes avec quoi (wamp, autre) ?

            Bref, je suis vraiment intéressé, personnellement.
            • Partager sur Facebook
            • Partager sur Twitter
              23 août 2012 à 19:19:25

              Citation

              Sinon, ton commentaire sur le téléchargement des informations est assez absurde


              Bon détaillons un peu :

              - un cube prend 1 octet.
              - la vitesse moyenne en France est de 4.9Mb/s (627ko/s) soit 627 000 cubes chargés en 1s
              - si je compresse l'envois des cubes via gzip, j'obtiens un ratio de 1:10
              - sauf que je met un temps considérable à décompresser les cubes en javascript ! temps qui au final se trouve être plus lent que si je les charge directement.

              Après, il est vrai qu'il faudra que j'améliore le téléchargement des chunks qui pour l'instant sont chargés séparément.

              De plus, en téléchargeant par P2P, ta bande passante devient tellement basse que tu laggerais comme un porc donc il faudrait les couper.

              Citation

              Ensuite, webGL ne fonctionne pas sous opéra.


              1% des utilisateurs peuvent bien faire une concession et télécharger chrome. Au même titre que des jeux récents nécessitent du matériel récent.

              Citation

              Et si en plus on doit activer des choses sur les navigateurs pour jouer, personne ne viendra.


              L'activation n'est normalement pas obligatoire, mais pour une raison inconnue, ça ne marche pas sans l'activer sur certains PC.

              Citation

              Par contre, tu dis qu'il faut 4min pour 256^3 cubes, même en c++, compte au moins la moitié (2min). Est-ce que tu sais quel en est la cause, quel est la partie du code le plus lourd ? Ca me semble quand même énorme. Qu'est-ce qu'un cube ? Et tu testes avec quoi (wamp, autre) ?


              La vitesse est de 66 064 cubes/s.
              Cela nécessite de générer un bruit de grande taille et de l’interpoler (0.4s) surtout qu'il utilise 8 octaves pour une meilleure impression de réalité.
              Ensuite, viens l'éclairage : il faut calculer la dispersion de la lumière pour chaque cube et c'est un calcul monstre (0.5s)
              Finalement, il faut sauvegarder tous ces cubes (0.1s)

              Même s'il n'y parait pas, la génération de voxel prend un temps fou !
              • Partager sur Facebook
              • Partager sur Twitter
                23 août 2012 à 19:37:53

                Quand je parlais de compresser, je ne parle pas de gzipper, qui pour moi est absurde également... Je parlais seulement du code et des images.
                Ensuite, tu es fort optimiste. 4.9MB/s de téléchargement moyen, d'accord, mais il faut savoir qu'il y a peu de 100MB/s et beaucoup de 1MB/s (malheureusement :/). Ensuite, si tu es par exemple en suite étudiante, ta connexion est divisée entre tous (chez moi, je suis < 100 Ko si personne), bref plein de petits éléments qui font que les connexions ne sont pas si correctes que ça.

                Ensuite, je ne sais pas quelles seront les caractéristiques du serveur, mais distribuer vers tous les clients va lui bouffer sa bande passante. Ici aussi il faut faire attention. Ce n'est qu'un petit plus que je te proposais, l'optimisation étant un point que je regarde tout le temps.

                Pour le p2p, j'ai limité pour avoir une connexion correcte, et je n'ai donc pas de (gros) problèmes de connexion, je peux jouer à des MMORPG en parallèle, mais tous ne savent pas que ça a une influence ("j'upload, je download pas, pourquoi je mets autant de temps à charger ?").


                WebGL : Juste l'info, au lieu de alert(), mettre un élément qui l'indique et proposer le lien de téléchargement.


                OK.


                D'accord, comme je ne connais pas vraiment minecraft, ceci s'effectue une seule fois, ou à chaque fois qu'on "dépasse" la map actuelle ?
                • Partager sur Facebook
                • Partager sur Twitter
                  23 août 2012 à 21:10:26

                  Citation : stombaker


                  D'accord, comme je ne connais pas vraiment minecraft, ceci s'effectue une seule fois, ou à chaque fois qu'on "dépasse" la map actuelle ?


                  Sur certain ordi pas tres puissant, la génération de map minecraft lagge a mort ! (et même parfois sur certain ordi récent) Mais c'est pas très gênant car la map se génère comme ceci :
                  • Il génère d'abord autour du spawn (c'est d’ailleurs ici qu'entre en jeux le seed)
                  • Puis la map se génère à chaque fois qu'on se déplace trop au bord des chunks générés et/ou non chargés(s'il sont donc déchargés c'est donc très rapide mais c'est pour la génération de nouveaux qui est plus lentes: quelques secondes chez moi, mais 1min chez un amis !)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    30 juin 2017 à 18:16:19

                    Mince, alors le lien est mort, dommage je viens de le decouvrir :/

                    On pourrait le filer un lien FONCTIONNEL ?

                    (je sais je suis en retard)

                    Merci,

                    • Partager sur Facebook
                    • Partager sur Twitter
                      3 juillet 2017 à 7:13:16

                      Hello,

                      Pourquoi ne mets tu pas le code sur Github ?

                      Comment qu'on fait pour participer au projet ?

                      (le lien est mort :'( )

                      • Partager sur Facebook
                      • Partager sur Twitter
                        3 juillet 2017 à 14:37:11

                        Le projet n'a pas donné de nouvelle depuis 5 ans, je pense que c'est normal que le lien soit mort.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          3 juillet 2017 à 18:47:19

                          En effet ça fait longtemps que je ne bosse plus dessus. Et en 5 ans, autant dire que les technologies ont beaucoup évoluées en js...
                          • Partager sur Facebook
                          • Partager sur Twitter

                          [WebGL + JS] Minecraft en Javascript

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown