Forums Développement Multimédia

Aller au contenu

PHP/MySQL et programmation de jeu ! Help !

CODE PHP MySQL

25 réponses à ce sujet

#1 manzard

    Ceinture Blanche

  • Members
  • Pip
  • 10 messages

Posté 01 November 2013 - 22:23 PM

Bonsoir ! Je suis entrain de créer un site de jeu en ligne et j'aimerais vous poser quelques questions car je suis un peu bloqué.

Grâce a une fonction PHP qui demande des données à MySQL on peut facilement créer un inventaire à l'aide d'une table contenant les ID, objets, leur nombre etc ... Mais comment l'info envoyé à MySQL permet à MySQL d'envoyer l'objet dans l'inventaire du joueur ? Par exemple : PHP dit à MySQL que Bob à reçu une épée mais comment faire apparaitre une épée dans l'inventaire de Bob sur le jeu ?
L'épée va être ajouter dans une table via une fonction mais comment cette épée va-t-elle être affichée dans l'inventaire du joueur ?


J'ai une autre petite question pour vous, chers confrères ! Image IPB

J'aimerais savoir si vous saviez comment faire d'un point de vue codage, pour faire glisser un objet de l'inventaire jusqu'au stuff mais en plus que seulement les chapeaux puissent se glisser sur l'emplacement(la case) des chapeaux(sinon l'objet sélectionné retourne à sa place)? Bottes pareil, etc...


stuff inventaire

OO OOOO
OO OOOO
OO OOOO

O= 1 emplacement

Ou alors ! Connaissez-vous un moyen plus simple pour faire passer un objet présent dans l'inventaire jusqu'au stuff (et en rajoutant la même difficulté qu'au dessus: que chapeau soit positionnable uniquement sur emplacement chapeau etc...) ?


Je débute vraiment en programmation donc si vous pouviez expliquer lentement ça serait vraiment génial ! :P

Merci beaucoup à tous ceux qui voudront bien m'aider, bonne soirée à vous ;D

#2 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2530 messages

Posté 01 November 2013 - 22:34 PM

Salut et bienvenue sur le forum !

Désolé de répondre par des questions.

Pour ton jeu, tu utilises uniquement du PHP ? ou également du Flash ?

C'est quel style de jeu ? un jeu type Zelda ou quelque chose comme 650km ?

Tu as déjà quelque chose en ligne ?
"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site

#3 manzard

    Ceinture Blanche

  • Members
  • Pip
  • 10 messages

Posté 01 November 2013 - 22:46 PM

Salut, merci à toi ! C'est que du php. Ce n'est pas un jeu genre Zelda mais plutôt du genre ogame, dino gaia, un site de jeu quoi ^^. Je n'ai rien en ligne pour l'instant, je commence à le créer.

#4 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2530 messages

Posté 01 November 2013 - 22:55 PM

Ok, alors partons sur ta première question :

Citation

Mais comment l'info envoyé à MySQL permet à MySQL d'envoyer l'objet dans l'inventaire du joueur ?


Tu as 2 manières de le faire :

1 - tu utilises un formulaire HTML classique et tu rafraichis la page.
Au chargement suivant, l'inventaire sera alors mis à jour

2 - tu ne veux pas rafraichir la page à chaque modification, tu vas donc devoir le faire en javascript
Pour cela, tu vas utiliser un appel AJAX, ça permet d'envoyer une requête à ton serveur PHP : +1 épée au joueur Bob
... et de recevoir en retour la réponse du serveur : voici l'inventaire de Bob mis à jour
Reste alors à modifier l'inventaire de Bob.

J'imagine que tu cherches à le faire avec la solution 2

Est-ce que tu connais un peu le javascript ?
As-tu déjà utilisé jQuery ?
"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site

#5 manzard

    Ceinture Blanche

  • Members
  • Pip
  • 10 messages

Posté 01 November 2013 - 23:02 PM

Merci pour ta réponse rapide ;). J'aimerais le faire avec la solution 2, oui. En fait, je connais un peu le javascript mais je n'ai jamais utilisé jQuery :/ !

Pourrais-tu m'aider à faire ça, s'il te plaît ? :D

#6 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2530 messages

Posté 01 November 2013 - 23:30 PM

En quelques mots : jQuery permet de simplifier l'accès aux éléments de la page HTML pour les modifier (par exemple) ainsi que d'effectuer des appels AJAX (définition un peu réductrice toutefois)

Et surtout le code fonctionnera sur tous les navigateurs !

A titre d'exemple, au lieu de faire

document.getElementById('inventaire');
 

tu fais

$('#inventaire);

En revanche, jQuery ne va pas te permettre d'organiser ton code et il est possible que ton jeu nécessite pas mal de programmation, ce qui va vite se transformer en plat de nouilles.

Tout ça pour dire que ça ne va pas être de la tarte, et tu vas devoir sans doute passer par la case tutoriels mais d'un autre côté, c'est toujours plus motivant d'apprendre avec un objectif concret.

Pour une mise en route rapide, je te propose de jeter un oeil sur cet article (en anglais)
http://learn.jquery....w-jquery-works/

Va au moins jusqu'au premier "Complete example", tu auras vu comment intégrer jQuery dans ta page, sélectionner un élément et poser un écouteur sur le click

Après quoi on s'occupe d'équiper Bob ^^

PS : si tu as déjà la structure de la base de données, poste là, ça permettra d'échanger directement sur le code de ton jeu
"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site

#7 manzard

    Ceinture Blanche

  • Members
  • Pip
  • 10 messages

Posté 01 November 2013 - 23:53 PM

Merci à toi mais ça risque d'être assez compliqué sachant qu'on débute Image IPB. Parce que apprendre jquery et javascript je préfère éviter...Surtout si ça va seulement nous aider sur 1 ou 2 trucs dans le jeu.


Quelle est la méthode la plus simple selon toi ?

"1 - tu utilises un formulaire HTML classique et tu rafraichis la page.
Au chargement suivant, l'inventaire sera alors mis à jour"

==>Cette méthode est-elle simple ? Si oui, que faut-il faire précisément ? Qu'est-ce qu'il va y avoir de différent pour le joueur ? Juste le fait de devoir réactualiser la page des équipements ?


Merci pour ton aide, bonne soirée ;D

#8 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2530 messages

Posté 02 November 2013 - 13:54 PM

Il te sera difficile de faire l'impasse sur le javascript pour coder un jeu dans le navigateur

Pour la première méthode, elle consiste en un simple formulaire, balise "form"

A quoi ressemble ton interface ? l'épée est elle achetée par le joueur ? gagnée après un combat ?

Tu as déjà utilisé du HTML et du PHP ?
"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site

#9 manzard

    Ceinture Blanche

  • Members
  • Pip
  • 10 messages

Posté 02 November 2013 - 16:50 PM

Salut, merci pour ta réponse ;). En fait, dans la base de donnée on a une table dans laquelle il y a le nom de l'objet et son ID mais pas son image et ses bonus... Comment associer l'image de l'objet avec ses bonus à son nom et à son ID dans la base de donnée ?

De plus, j'ai finalement décidé d'opter pour une méthode plus simple pour le déplacement d'objet : Je vais créer des menu déroulants pour chaque sorte d'items. Le menu déroulant des chapeaux ne contiendra que les chapeaux, les armes, pareils.

Dans ce menu déroulant je veux qu'il n'y ait que les équipements que le joueur possède. Comment faire ?

En gros, imaginons que dans la base de donnée le joueur possède:

Chapeau1
Chapeau2
Chapeau3

Mais qu'il existe aussi chapeau 4, Chapeau5, Chapeau6, Chapeau7 etc...Comment afficher seulement chapeau1, chapeau2, chapeau 3, dans le menu déroulant du joueur ?


Comment afficher l'image de l'objet avec ses bonus si il est sélectionné dans le menu déroulant et comment placer l'image qui va apparaitre ? (car je voudrais que le chapeau sélectionné se place dans la case chapeau, etc...)

Exemple de menu déroulant:

<select name="chapeaux">
<option value="c1" > Chapeaux 1 </option>
<option value="c2" > Chapeaux 2 </option>
<option value="c3" > Chapeaux 3 </option>
</select>



Merci à vous et j'espère que vous pourrez m'aider ! ;D

#10 Henri_B

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 337 messages

Posté 02 November 2013 - 17:47 PM

une methode simple (mais pas forcement "propre") : tu fais un iframe pour l'inventaire et tu ne rafraichis que cet iframe si tu chnages l'inventaire :

ps : j'ai pas tout lu des reponses precedentes donc desolé si ça colle pas

ps 2 : tu fais ton jeu en flash. pour la gestion de l'affichage tout ou presque sera deja reglé... :-)

#11 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 6986 messages

Posté 02 November 2013 - 18:44 PM

Salut,

Y a t'il un impératif de faire le jeu en PHP ?
Personnellement je n'en vois pas, autant apprendre tout de suite ce qui sert le plus dans le domaine du jeu en ligne si vous voulez faire un jeu, à savoir HTML5/JS/Canvas ou Flash.
Ensuite ça dépend si votre objectif c'est apprendre PHP, ou apprendre à faire des jeux ;-)
Mais comme le disent ceux qui vous ont répondus, avec l'une ou l'autre de ces techno vous auriez déjà réglé votre problème.

#12 manzard

    Ceinture Blanche

  • Members
  • Pip
  • 10 messages

Posté 02 November 2013 - 18:57 PM

Merci à vous. Eh bien en fait j'aimerais créer un site de jeu en ligne, un genre de jeu d'élevage sans animation, du genre dino gaia et non un jeu comme dofus ou WoW. Il me semble que flash est compliqué et s'occupe des animations, non ?

On m'a dit partout que pour créer un jeu en ligne il fallait du HTML,CSS,PHP...Ca serait donc faux ?

Sinon, pourriez-vous m'expliquer comment résoudre mes problèmes avec flash, svp ? ^^. Je débute vraiment, j'ai lu quelques cours mais il se peut que je sois passé à côté de certaines choses essentielles :/...


Merci à celles et ceux qui voudront bien m'aider, bonne soirée Image IPB.

#13 Goabonga

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2724 messages

Posté 02 November 2013 - 19:56 PM

On peut faire un jeu en php html et css ! mais il faut apprendre a coder un minimum ..... ou payer un dev ( http://guru.sensiolabs.com/ )

#14 Henri_B

    Ceinture Noire

  • Members
  • PipPipPipPipPipPipPip
  • 337 messages

Posté 02 November 2013 - 20:06 PM

150 euros de l'heure ... minimum. ça me laisse rêveur... :-)

#15 Goabonga

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2724 messages

Posté 02 November 2013 - 23:02 PM

Deviens un dev php ;)

Pour faire simple :
  • 450€ 3h pour Monter un blog (gestion des users, des roles, articles, categories, tags, et commentaires )
  • 300€ 2h pour intégrer une template html
  • 600€ 4h de design ( infographiste )
  • 300€ 2h de configuration des serveurs (varnish, apache, php, mysql)
  • 300€ 2h de gestion de projet
Et pour moins 2k€ t'as un blog qui peut répondre aux besoins d'un grand groupe ......

#16 manzard

    Ceinture Blanche

  • Members
  • Pip
  • 10 messages

Posté 08 November 2013 - 13:43 PM

Je pense que je préfère passer un peu plus de temps à chercher que de payer une telle somme :D.

J'ai quelques doutes concernant la conception de ma base de donnée.

Je pensais procéder comme ça:

-Table joueur: id, pseudo, mot de passe...
-Table personnage:id, nom , pv, classe, etc...
-Table objet_type: id,chapeau, épée, etc..
-Table objet_description: id, liste des objets avec leurs bonus
-Table objet_type / objet_description: 2 champs: id objet_description et id objet_type
-Table joueur/personnage: 2 champs: id joueurs et id personnage
-Table joueur/objet_description: 2 champs: id joueur et id objet_description


Qu'en pensez-vous ?

Concernant la table objet_description/objet_type, je n'aurais qu'à associer à la main chaque id d'objet_description à son id objet_type mais comment faire pour la Table joueur/personnage pour que chacun des id personnage s'associe à son id joueur ?

Pour que le joueur puisse créer plusieurs personnages sur le même compte, faut-il faire 2 tables(1 table joueur et 1 table personnage) ou alors 1 table qui regrouperait les 2 ?

Si quelqu'un veut bien m'éclairer.

Merci à vous.

#17 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2530 messages

Posté 08 November 2013 - 18:08 PM

Salut,

Je pense que ton approche est la bonne, une table "joueur", une "personnages" et une table qui fait le lien entre le joueurs et son, ou ses, personnages

exemple:
joueur_id 1 | personnage_id 10
joueur_id 1 | personnage_id 20
joueur_id 1 | personnage_id 30
...

Quant à la question comment faire pour associer l'id d'un joueur à un personnage, je ne comprend pas la question

Tu devrais commencer par créer les 3 tables et écrire le formulaire pour la création d'un compte joueur, puis la connexion du joueur à son compte
Ensuite création d'un compte personnage

Ne t'embarrasse pas de détails, contente toi de saisir un nom pour le joueur et idem pour le personnage, tu n'auras ensuite qu'à enrichir les formulaires (mot de passe, âge, sexe ...)
"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site

#18 manzard

    Ceinture Blanche

  • Members
  • Pip
  • 10 messages

Posté 11 November 2013 - 00:32 AM

Merci pour les infos :). J'ai commencé à créer mon formulaire mais là, problème !


A chaque fois que je fais un test en rentrant des valeurs(pseudo, mot de passe...)

ça m'affiche :

"Erreur SQL !INSERT INTO membres VALUES( "", "err", "d95679752134a2d9eb61dbd7b91c4bcc etc...)

Column count doesn't match value count at row 1" ?

Je n'arrive pas à trouver l'erreur ! je bloque dessus depuis maintenant 4h o_o ! Si quelqu'un veut bien m'aider, ça serait cool :P.

Voici le codage: http://pastebin.com/RuJAeNkB

J'ai déjà essayé de mettre mysql_real_escape_string à la place de mysql_escape_string et des tas de trucs mais ça n'a pas marché...

Je ne comprends pas... J'indique 7 valeurs et j'ai 8 colonnes dont l'id qui est en auto-incrémentation, donc pas besoin de le rentrer.

Merci par avance, bonne soirée.

#19 Goabonga

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2724 messages

Posté 11 November 2013 - 01:12 AM

une simple recherche sur google te donnes normalement la réponse :
INSERT INTO membres('col_name','col_name', etc) VALUES( "", "err", "d95679752134a2d9eb61dbd7b91c4bcc etc...)


(regardes doctrine l'orm et le dbal, puis Silex le micro framework php)

#20 manzard

    Ceinture Blanche

  • Members
  • Pip
  • 10 messages

Posté 11 November 2013 - 10:09 AM

Merci, j'avais déjà essayé et ça me fait toujours ça...


Erreur SQL !INSERT INTO membres(`pseudo`,`mot_de_passe`,`email`,`nom_perso`,`classe`,`type`,`réponse_secrète`) VALUES ("" ,"René", "d95679752134a2d9eb61dbd7b91c4bcc\", \"ooo@hotmail.fr\", \"lalalalala\", \"zombie\", \"mâle\", \"llallaa")
Column count doesn't match value count at row 1

Je pense que je dois mal gérer l'id dans l'insertion...Que faire, svp ? ^^


(Edit: ce n'est pas un problème d'orthographe, chaque colonne dans la BDD s'appelle pareil que ce dans quoi je veux insérer.)


Merci.

#21 Goabonga

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2724 messages

Posté 11 November 2013 - 10:31 AM

passes l'id a null si tu veux le passer :


INSERT INTO  `test`.`membres` (
`id` ,
`pseudo` ,
`mot_de_passe` ,
`email` ,
`nom_perso` ,
`classe` ,
`type` ,
`réponse_secrète`
)
VALUES (
NULL ,  'goabonga',  'goabonga',  'goabonga@gmail.com',  'goabonga',  'goabonga',  'goabonga',  'goabonga'
);
 


ou ne le passes pas :


INSERT INTO  `test`.`membres` (
`pseudo` ,
`mot_de_passe` ,
`email` ,
`nom_perso` ,
`classe` ,
`type` ,
`réponse_secrète`
)
VALUES (
'goabonga',  'goabonga',  'goabonga@gmail.com',  'goabonga',  'goabonga',  'goabonga',  'goabonga'
)
 


#22 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2530 messages

Posté 11 November 2013 - 10:52 AM

Salut,

Je pense que "count" indique qu'il y a une erreur sur le nombre de paramètres passés


Erreur SQL !INSERT INTO membres(`pseudo`,`mot_de_passe`,`email`,`nom_perso`,`classe`,`type`,`réponse_secrète`) VALUES ("" ,"René", "d95679752134a2d9eb61dbd7b91c4bcc\", \"ooo@hotmail.fr\", \"lalalalala\", \"zombie\", \"mâle\", \"llallaa")
Column count doesn't match value count at row 1

dans la 1ere parenthèse tu indiques vouloir mettre à jour 7 clés
1-`pseudo`,
2- `mot_de_passe`,
3-`email`,
4-`nom_perso`,
5-`classe`,
6-`type`,
7-`réponse_secrète`


Dans la 2eme, tu passes 8 valeurs
1- "" ,
2- "René",
3- "d95679752134a2d9eb61dbd7b91c4bcc\",
4- \"ooo@hotmail.fr\",
5- \"lalalalala\",
6- \"zombie\",
7- \"mâle\",
8 -\"llallaa"
"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site

#23 manzard

    Ceinture Blanche

  • Members
  • Pip
  • 10 messages

Posté 11 November 2013 - 12:19 PM

J'ai réessayer en enlevant 'id', donc ça me fait 7 valeurs d'un côté et 7 valeurs de l'autre, mais ça me fait toujours pareil...!

Erreur SQL !INSERT INTO membres (`pseudo`,`mot_de_passe`,`email`,`nom_perso`,`classe`,`type`,`réponse_secrète`) VALUES ("rttgg", "83878c91171338902e0fe0fb97a8c47a\", \"eldel@hotmail.fr\", \"efzfff\", \"blabla\", \"mâle\", \"gghhjj")
Column count doesn't match value count at row 1


Ca ne viendrait pas du count(*) par hasard ? ou alors ça vient de l'id et il faut mettre quelque chose de particulier et ne pas rien mettre...Ou alors ça peut venir des types que j'ai mis pour les champs.

Champs/types dans ma BDD:

id/int11 ==>auto_increment
pseudo/varchar 20
mot_de_passe/varchar32
email/varchar45
nom_perso/varchar25
classe/varchar20
type/varchar20
réponse_secrète/varchar20


Les valeurs à insérer dans la base ne dépasse pourtant pas les valeurs limites...Je ne comprends pas d'où vient l'erreur...

#24 Goabonga

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2724 messages

Posté 11 November 2013 - 12:54 PM

Mes deux requêtes passent très bien fais nous un export de la table ;)

#25 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2530 messages

Posté 11 November 2013 - 13:18 PM

Chez moi, ça passe également avec

INSERT INTO 181170 (`pseudo`,`mot_de_passe`,`email`,`nom_perso`,`classe`,`type`,`reponse_secrete`)
VALUES
("rttgg", "83878c91171338902e0fe0fb97a8c47a", "eldel@hotmail.fr", "efzfff", "blabla", "mâle", "gghhjj")
 

note : pas sûr qu'avoir des accents dans les noms de champs soit une bonne idée : réponse_secrète => reponse_secrete
note : 2 : je n'ai pas les caractères d'échappement que tu sembles avoir, les anti-slash : "\"
"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site

#26 tagboy

    Ceinture Blanche

  • Members
  • Pip
  • 6 messages

Posté 06 May 2014 - 08:23 AM

Voir le messagemanzard, le 02 November 2013 - 18:57 PM, dit :

Merci à vous. Eh bien en fait j'aimerais créer un site de jeu en ligne, un genre de jeu d'élevage sans animation, du genre dino gaia et non un jeu comme dofus ou WoW. Il me semble que flash est compliqué et s'occupe des animations, non ?

On m'a dit partout que pour créer un jeu en ligne il fallait du HTML,CSS,PHP...Ca serait donc faux ?

Sinon, pourriez-vous m'expliquer comment résoudre mes problèmes avec flash, svp ? ^^. Je débute vraiment, j'ai lu quelques cours mais il se peut que je sois passé à côté de certaines choses essentielles :/...


Merci à celles et ceux qui voudront bien m'aider, bonne soirée Image IPB.

envois moi un email si tu veux cmppc@hotmail.com



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP