JeuWeb - Crée ton jeu par navigateur
[PHP/SQL] Système de vêtements - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [PHP/SQL] Système de vêtements (/showthread.php?tid=2659)

Pages : 1 2


[PHP/SQL] Système de vêtements - Mr-Blonde - 07-06-2008

Bonjour tout le monde,

Pour mon jeu j'aimerai programmer un système de vétements, je m'explique :
Le joueur commence avec son personnage en caleçon, il peut aller dans des boutiques pour s'acheter armes et armures qui s'afficheront sur son personnage afin de générer diverses combinaisons de vêtements.

Donc j'ai une première questions :
-Comment générer une image en PNG en superposant plusieurs images les unes sur les autres.

Chaque joueur possède un charset (son image découpée en 16 morceaux qui constituent les animations du joueur), la base SQL va chercher dans le dossier images et prend l'image du charset indiquée. Ainsi chaque joueur possède un champ charaset du type "skin1.png".

Donc ma deuxième question :
-Comment entrer un lien de ce type dans une entrée de la base SQL sachant que le lien généré à partir des différentes armes et armures comprendra surement tout pleins de variables. Est-ce que ça marchera ?

Merci d'avance et bonne fin d'après-midi !


RE: [PHP/SQL]Système de Vêtements. - Jon04 - 07-06-2008

Salut,

alors pour ta première question, il existe une librairie php qui permet ça: http://www.siteduzero.com/tuto-3-166-1-creer-des-images-en-php.html#ss_part_5
Avec ceci tu peux créer des images en superposons plusieurs images.

J'éspère que ça peut t'aider !

Jon04


RE: [PHP/SQL]Système de Vêtements. - xender - 07-06-2008

Salut,

je te deconseille d'utiliser GD de php si tu a beaucoup d'utilisteurs car cela demande beaucoup de ressource, moi je reflechirais plutot a un système de superposition des images en css.

Cordialement,
Xender


RE: [PHP/SQL]Système de Vêtements. - Tagu - 07-06-2008

Une autre méthode peut se faire via les css. Tu crée un div.body contenant un div.armor par exemple.
Le div.body à comme background ton skin1.png alors que le div.armor à comme background ton armure.

Le problème de ce système c'est que tu devra donc faire un "armorset" de 16 morceaux pour suivre les mouvements de ton personnage.


RE: [PHP/SQL]Système de Vêtements. - keke - 09-06-2008

Coucou,

Dans Magdales, j'ai résolu un problème similaire, mais plus simple. Je te donne ma méthode, peut-être pourra-t-elle s'adapter à tes besoins.

Magdales dispose de batiment, représenté par une image 3D iso, un petit logo pour indiquer la religion qui le possède, et une enseigne au dessus avec un fond + le nom du batiment. Cela pourrait se résumer à un "charset" de 4 morceaux. (C'est quoi un charset ?)

Avec la bibliothèque GD, je génère l'image et je la sauvegarde avec un nom très intelligent (admirez la modestie) :
nom_image_3D_iso-logo_religion-nom_enseigne-nom_batiment-id_batiment.png

Ainsi, au premier affichage, c'est long, lourd, etc ... et sa ce sauvegarde. Ensuite, je n'ai qu'à tester si l'image existe et je l'affiche.

Les points positifs sont :
- un gain en puissance car maintenant, pas de calcul trop important, et surtout indépendant du nombre de connecté.
- Plus de gestion des images trop longues dès que j'ai un nouveau batiment.
- Possibilité de customiser UNE image d'UN batiment donné ! et pas les autres (les joueurs peuvent ainsi proposer de nouvelles bannières ^^)
- Possibilité de modifier tous les dessins d'un batiment si on m'offre un graphisme mieux (on change le nom du graphisme d'origine dans la table batiment)

Le point négatif est :
- plusieurs fois le même dessin dans un répertoire à quelques détails près... (c'est pas lourd ! quelques méga dans ce répertoires c'est tout. Dans ton cas, ca sera carément plus, mais c'est des images plates ... c'est donc pas la mort.)

kéké.


RE: [PHP/SQL]Système de Vêtements. - Holy - 02-12-2008

(09-06-2008, 10:46 AM)keke a écrit : Ainsi, au premier affichage, c'est long, lourd, etc ... et sa ce sauvegarde. Ensuite, je n'ai qu'à tester si l'image existe et je l'affiche.
De fait, y a plutôt intérêt à créer un cache pour les images générés dynamiquement ^^

Suffit de prévoir un petit outil pour gérer le cache en cas de mise à jour des images Smile Dans tous les cas, il faut au maximum simplifier l'accès aux données en lecture dans un environnement où elles sont beaucoup utilisées (le cas de 99% des jeux php).


RE: [PHP/SQL] Système de vêtements - Allwise - 03-01-2009

Salut, pour avoir déjà bossé sur la génération d'images en PHP, je te conseille d'utiliser la librairie ImageMagick plutôt que GD. Elle est très performante et permet de faire davantage de traitements que GD... Enfin ça tu t'en fous, ce qui est intéressant dans ton cas c'est que ça gère bien la superposition d'images et la transparence.
Le plus important dans tout ça c'est qu'ImageMagick est beaucoup plus rapide que GD.

Sinon, je pense aussi qu'un système de cache est indispensable.


RE: [PHP/SQL] Système de vêtements - wild-D - 03-01-2009

à mon avis y a 2 stratégie

- superpose en dur: tu génères les images (si possible en les mettant en cache) comme on te le propose avec GD ou imagick; note que t'as 2 option: généré au besoin/à la volée ce qui manque; ou prégénérer toutes les combinaisons(valable seulement si le nombre de combinaison est pas exponentiel).

- superpose en composite: tu travailles en css/xhtml et tu superpose des div avec tes png transparents.
(et y a bien sur l'option mixtes des deux Big Grin)

la meilleure option dépendant de pleins de paramètres:
- pack graphique ou pas ? (mais j'ai l'impression aujourd'hui que cette option est plus du tout à la mode)
- nombre d'option/composition possible, par rapport au nombre de joueur, par rapport au nombre d'affichage.


RE: [PHP/SQL] Système de vêtements - Thedeejay - 03-01-2009

il y a aussi le flash, mais je doute que cela te convienne...


RE: [PHP/SQL] Système de vêtements - Allwise - 04-01-2009

La solution du CSS est optimale en terme de quoi ?
En terme de bande passante j'en doute, elle requiert plusieurs images, donc plusieurs hits, + du code html / css qu'on n'aurait pas avec une image unique.
En terme de développement, ouais, je suis d'accord... C'est certainement plus rapide à mettre en place. Mais dès l'instant où on a son perso nu et les vêtements / accessoires transparents qui s'empilent comme il faut, la génération d'image dynamique n'est pas difficile à mettre en place.

Ce que je trouve dommage avec la solution CSS, c'est que d'une part, si on a besoin du perso dans des dimensions différentes, ça peut poser des problèmes, et d'autre part, elle prive l'utilisateur de télécharger l'image de son personnage, ce qui est quand même dommage. Le gars qui va faire click droit / enregistrer sous, il va être vachement déçu Confusediffle:

Je vais bientôt me pencher sur le même problème, que j'appréhenderai avec ImageMagick. Je vous ferai part de mon retour.Wink