JeuWeb - Crée ton jeu par navigateur
[Split] Créer des briques pour les jeux - 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 : [Split] Créer des briques pour les jeux (/showthread.php?tid=4838)

Pages : 1 2 3 4 5


RE: Th3kid (programmeur) - atra27 - 21-05-2010

Mais pourquoi vous partez dans des trucs compliqués?

Prenez ce tuto pour exemple: http://www.jeuweb.org/zone-membre-messagerie-admin-par-globe-t-240.html

Qui ici parle de framework? Ce tuto n'en parle pas... alors pourquoi pas faire pareil...
A quoi sa sert sur un code de 2 ou 3 page max? si la lib du framework est plus grosse que les pages.
Et puis on se mettra jamais d'accord...
donc on stop la question du framework, on fait avec les fonctions php en natif et ensuite libre a chaqun de réécrire pour le framework qu'il utilise! (noter aussi que sinon sa force a utiliser le méme framework pour les jeux de ceux qui reprennent le code...

Systeme de template... pareil! dans le tuto on en parle pas car pas besoin! libre a chaqun de reprendre le code, l'adapter pour son systeme de template et en fare ce qu'il veut!


Pour toutes les autres question j'ai envie de dire que, a par le code indenté normalement, des commentaires pour expliquer aux endroits critiques, des fonctions natives et un code réduit au strict nécéssaire... bah a par ça pas la peine de se casser la tete....

Enfaite je vois plutot cette bibliothéque de script comme des scripts d'exemples! pour guider sur la démarche a suivre... Aprés si la personne ne sait pas retoucher et faire ce qu'elle veut avec... bah avec ou sans ces scripts de toute façon elle n'arrivera jamais a faire un jeu sans coder juste en utilisant nos bouts de codes...

Mon idée est plus claire? Si on part dans des dmaines trop spécifiques autand laisser tomber on arrivera jamais a rien tous ensemble car on travaille trop différement...


RE: Th3kid (programmeur) - pascal - 21-05-2010

Bon courage Smile

J'ai hâte de voir de nouveaux tutoriels.

Sinon, tu es de où en Belgique ?

++

Pascal


RE: Th3kid (programmeur) - Sephi-Chan - 21-05-2010

Non. Ce n'est pas une façon de travailler. On ne peut pas faire un travail de qualité en développant comme dans l'article.
Si on apprend aux gens à faire des choses, autant leur proposer une manière correcte de faire, sinon le niveau n'augmente jamais et la qualité reste médiocre.

Tu dis que le script fait 2 pages, mais un jeu, c'est plein de scripts de 2 pages.

Ensuite, il faut au moins séparer les couches de présentation et de contrôle tel que présenté dans l'article de Julien Paulli — Le modèle MVC et le contrôleur sous PHP, mais en utilisant PDO plutôt que les fonctions mysql_* (qui ne doivent plus être utilisées d'après les conseils de la documentation de PHP).

Inciter les gens à utiliser un framework, c'est tirer les compétences vers le haut.


Sephi-Chan


RE: Th3kid (programmeur) - pascal - 21-05-2010

+1 Sephi

Dès qu'on commence un projet de plus de quelques pages / quelques mois / quelques personnes il faut faire ça bien.

On ne fait pas compliqué pour faire compliqué. On fait compliqué parce que c'est le plus simple Smile

++

Pascal


RE: Th3kid (programmeur) - atra27 - 21-05-2010

J'utilise une lib d'abstraction de bdd (dbfacile)

A votre avis si je poste le code tel quel, vous allez pas avoir un peu de mal a comprendre les requetes passées en bdd?

Aller un petit exemple pour le fun, ce sont les requêtes de ma page de connection:

$data = $db->fetch('SELECT id, pseudo, password, block FROM `'.$config['db_prefix'].'user` WHERE pseudo=\''.$_POST['pseudo'].'\'');
$ssid=uniqid();
$login=$data['0']['pseudo'];
$id=$data['0']['id'];
...
...
$db->update(array('sid' => $ssid, 'lastvisit'=>$currentdate, 'lastip'=>$_SERVER["REMOTE_ADDR"]), $config['db_prefix'].'user', 'id="'.$id.'"');

Sans regarder l'aide de dbfacile, la sa reste compréhensible, mais mettons on fait les tutos sous symphony, et que la personne qui lit le tuto veut travailler sous zend framework... il lui reste plus qu'a apprendre l'un pour comprendre, et retaper l'autre...
Alors qu'avec le php natif, on est tous censés le connaitre donc c'est un peu plus général...

Et je compte pas faire des briques clés en main! sa sera juste a titre d'exemple, pour trouver l'inspiration quoi!


RE: Th3kid (programmeur) - Sephi-Chan - 21-05-2010

Hm… C'est goret comme code… Mais comme je ne suis pas que méchant, je vais expliquer ce qui ne va pas.

Déjà, tu n'es pas homogène : parfois tu mets des espaces, parfois non, tu sautes des lignes là où t'en as envie, etc.



$data = $db->fetch('SELECT id, pseudo, password, block FROM `'.$config['db_prefix'].'user` WHERE pseudo=\''.$_POST['pseudo'].'\'');
Déjà ça commence mal : la requête est illisible avec les points, les slash, etc. Ensuite, tu utilises un paramètre sans la protéger. Risque d'injection SQL.

Si tu veux améliorer la qualité de ton code, tu peux utiliser des requêtes préparées avec des placeholder (des ? qui sont ensuites remplacés par des valeurs) ou la fonction sprintf(). Exemple :


$query = sprintf(
"SELECT id, pseudo, password, block FROM %s.users WHERE pseudo = '%s';",
$config['db_prefix'],
$_POST['pseudo']
);
Ce n'est toujours pas sécurisé, mais au moins c'est lisible.




$db->update(array('sid' => $ssid, 'lastvisit'=>$currentdate, 'lastip'=>$_SERVER["REMOTE_ADDR"]), $config['db_prefix'].'user', 'id="'.$id.'"');
En SQL, seules les chaînes (et donc les dates) sont encadrés de guillemets simples (et pas double), pas les nombres. Donc :


$db->update(
array(
'sid' => $ssid,
'lastvisit' => $currentdate,
'lastip' => $_SERVER["REMOTE_ADDR"]
),
sprintf("%s.users", $config['db_prefix']),
sprintf("id=%d", $id)
);


Sephi-Chan, qui scinde le sujet…


RE: Th3kid (programmeur) - php_addict - 22-05-2010

(21-05-2010, 10:43 AM)pascal a écrit : Pour la cohérence du code je pense qu'il faut un framework. Comment gérer toujours de la même manière les points suivants :
- accès à la base de données ?
- gestion des formulaires ?
- template ?
- sécurité ?
- tests unitaires du code ?
- conventions de codage ?

bon je sais que les mecs qui ont fait les framework sont nettement plus balaise que moi mais je me permet une remarque:

Citation :Une faille de sécurité découverte dans Symfony 1.3.2 et 1.4.2
source: http://www.symfolive.com/une-faille-de-securite-decouverte-dans-symfony-1-3-2-et-1-4-2/

Citation :Il est important de mettre à jour votre version de Zend Framework vu que la version 1.7.7 corrige une faille de type XSS dans le composant Zend_Filter_Striptags.
source: http://www.webinside.be/zend-framework-1-7-7/

Citation :PHP : Une vulnérabilité importante a été découverte dans le CMS open source [e107]
source: http://www.developpez.com/index/redirect/6790/PHP-Une-vulnerabilite-importante-a-ete-decouverte-dans-le-CMS-open-source-e107/

le soucis avce les frameworks et les cms et les scripts connus (phpbb,etc...)est à mon sens celui ci: dès qu'une faille est decouverte c'est la porte ouverte aux petits malins...

je ne dis pas qu'il n'y a aura pas de faille sur mon projet, mais mais elles ne seront pas "génériques" Smile


RE: [Split] Créer des briques pour les jeux - Sephi-Chan - 22-05-2010

Elles sont plus génériques, mais elles sont fixées très rapidement, et de manière fiable. Et généralement, elles sont publiées quand un correctif est disponible : c'est donc un faux problème. Elles sont souvent trouvées avant d'avoir été exploitées, lors d'audit de code.

Les failles de ton application artisanale, tu vas les ignorer. Ça peut être des trucs gros comme une maison, si tu ne le sais pas, elle resteront. Personne ne pourra auditer ton code, personne ne pourra t'aider à l'améliorer.

Il existe des scripts qui lancent des batteries de tests contre un site (notamment un truc en Python), comme le fait Metasploit avec les systèmes, mais aussi des plugins pour Firefox (ici et ), etc.

Cf. Sécurité par l'obscurité sur Wikipedia.


Sephi-Chan


RE: [Split] Créer des briques pour les jeux - Ter Rowan - 22-05-2010

perso je soutiens atra27

certes on ne sera pas sur un code optimisé utilisant un framework (et lequel ?) mais dans ce cas, on peut virer tous les posts de jeuweb
mais on sera sur des briques qui serviront d'illustration voire qui pourraient servir à certains tels quels

après tout le type qui veut faire un jeu simple pour ses potes, est ce qu'il a besoin de respecter les meilleurs standards de développement ?


je ne sais pas si réaliser ces briques "élèvera ou non le niveau" mais je suis sûr que ne rien faire n'apportera aucun bénéfice

bien sûr si la ligne éditoriale de jeuweb est désormais "créer ton jeuweb par navigateur pour devenir développeur professionnel" j'adhérerais vos propos Sephi et Pascal mais je ne crois pas qu'on en soit encore là, non ?

le mieux est souvent l'ennemi du bien

d'autant que rien n'empêche d'améliorer des briques et je dirais même... qu'utiliser des briques, c'est utiliser des composants communs, c'est donc déjà un pas dans la démarche d'utilisation d'un framework. On pourrait même y voir une action positive dans ce sens


RE: [Split] Créer des briques pour les jeux - Sephi-Chan - 22-05-2010

Sans forcément parler de framework, je soutiendrais aussi l'initiative (autrement qu'en codant puisque PHP…) si elle respecte un minimum de bonnes pratiques de développement (cf. l'article de Julien Paulli lié plus haut).

Entre le développement professionnel et le développement "gros péon", il y a une vaste palette. On peut être amateur et faire des choses correctement. Smile


Sephi-Chan