13-03-2011, 10:49 PM
(Modification du message : 13-03-2011, 10:55 PM par Asphodèles.)
(13-03-2011, 09:19 PM)niahoo a écrit : bon en plus une base de données n'est pas obligatoire mais quand tu vas vouloir te faire un éditeur, générer dynamiquement du code php c'est plutot chiant.
Pour l'éditeur, il est déjà fait : Tiled. Après je peux récupérer la map générée par Tiled de plusieurs façons. Pour l'instant je l'ai récupérée en csv et un script me la convertit dans le code PHP que tu as vu plus haut. C'est donc presque entièrement automatisé, et surtout 1000 fois mieux que tous les éditeurs que je pourrais faire (je le sais, j'ai déjà essayé dans d'autres projets).
(13-03-2011, 09:19 PM)niahoo a écrit : que tu aies des 1 ou des 0, 4 octets ça pèse 4 octets, point barre non ?
Mon exemple t'a induit en erreur, pardon. Ma map n'est pas juste des 1 et des 0. Donc oui, en php, '1' ou '0' ça sera toujours la même taille (1 char), mais la case '325542' prendra plus de place, et à terme (quand j'aurais plus de cases différentes) ce sera donc probablement un plus gros fichier .php que .bin
(13-03-2011, 09:19 PM)niahoo a écrit : Mais je ne suis pas convaincu que créer un parser maison aille plus vite que de simplement demander à php de parser un tableau. Ou disons le autrement, 68ms c'est que dalle donc bosse sur autre chose et si vraiment un jour tu veux réduire ça alors tu te fais un format de map perso avec parser.
d'accord, merci beaucoup ! 68ms c'est donc pas beaucoup ?
En fait je me suis posé cette question après un petit coup de flip : je testais tout en local, et évidemment ça tournait bien. Là j'ai fini par le tester chez un hébergeur (j'ai mis quelques temps à comprendre que free était encore sur php4 et ne supportait pas json_encode...), et ça me fait peur comme c'est lent... Je vous ferais bien tester, mais j'ai encore quelques petits doutes sur ma sécurité avant de vous envoyer une url...
Je ne compte pas faire comme ça, mais avec une table bien indexée, sur une map contenant 40.000 cases, et en sélectionnant quelque chose comme 600 cases par vue (je comptais que les joueurs voient environ 33*19 cases), on peut espérer des performances correctes ?
En plus, il y aura plusieurs maps, donc ça rallonge la table. Enfin, ça serait possible de faire une table par map, donc c'est un faux problème.