04-28-2009, 04:51 PM
Bonjour à tous.
Voilà je vais vous exposer ma façon de faire pour mon jeu, et j'apprecierai d'avoir votre avis sur ma "structure".
Je précise que je ne code pas du tout en POO.
Je vais essayer d'expliquer "simplement" ma methode. N'hésitez pas à me demander d'expliciter des lignes et/ou de vous montrer ce que contient un fichier...
---
Structure Générale (Index)
---
Affichage :
En gros un fichier PHP qui récupère un tableau $affichage et le décompose.
Pour simplifier cela donne ça. (Bien sûr avec des tests pour chaque "div" pour savoir s'il y a de quoi le remplir...)
---
Moteur de jeu
---
Quelques fonctions de mes librairies
---
Un Controleur
Donc pas de view car ma structure est relativement "statique" et gérée par le fichier d'affichage du début.
---
Voilà (trés) grosso modo ma structure.
Qu'en pensez vous ? Ses forces ? Faiblesses ?
Il faut que vous sachiez que je bosse dans un sens où j'aimerai rendre trés "simple" l'implémentation de nouvelles fonctionnalités afin de répondre trapidement aux demandes de mes joueurs...
Merci par avance de votre attention.
Bonne soirée.
Voilà je vais vous exposer ma façon de faire pour mon jeu, et j'apprecierai d'avoir votre avis sur ma "structure".
Je précise que je ne code pas du tout en POO.
Je vais essayer d'expliquer "simplement" ma methode. N'hésitez pas à me demander d'expliciter des lignes et/ou de vous montrer ce que contient un fichier...
---
Structure Générale (Index)
Code PHP :
// Session Start + Include de mes lib de base
// Connexion à la BDD
// Vérification si demande de connexion / deconnexion
// Si le joueur est connecté on charge le moteur de jeu, sinon on charge le moteur hors_jeu
// HTML avec include d'un fichier d'affichage en PHP
---
Affichage :
En gros un fichier PHP qui récupère un tableau $affichage et le décompose.
Pour simplifier cela donne ça. (Bien sûr avec des tests pour chaque "div" pour savoir s'il y a de quoi le remplir...)
Code PHP :
echo '<div id="tete">' . $affichage['tete'] . '</div>';
echo '<div id="titre">' . $affichage['titre'] . '</div>';
echo '<div id="contenu">' . $affichage['contenu'] . '</div>';
---
Moteur de jeu
Code PHP :
// On récupère toutes les infos du joueur depuis la BDD qu'on stock dans des tableaux
// $infos_joueur, $stats_joueur, $carac_joueur, $localisation_joueur...
// On regarde si un $_GET['do'] existe et si son contenu correspond à un controleur, on inclut le controleur en question. Sinon un controleur par défaut.
// On met à jour la BDD avec le contenu des tableaux (qui ont put être modifiés par les controleurs)
---
Quelques fonctions de mes librairies
Code PHP :
// Une fonction qui permet de récuperer rapidement des informations sur le joueur (là les exemples sont simplifié, mais cela doit aussi me permettre de récuperer des infos tels que 'arme_equipe_main_droite' ou 'experience_restante_avant_prochain_lvl' avec des traitements...)
function val($val)
{
global $infos_joueur;
switch($val)
{
case 'vie_joueur': return $infos_joueur['vie']; break;
case 'forme_joueur': return $infos_joueur['forme']; break;
}
}
// Une fonction qui fait l'inverse. Pour modifier les valeurs de cette ensemble de donner en modifiant les tableaux.
function upval($val,$var)
{
global $infos_joueur;
switch($val)
{
case 'vie_joueur': $infos_joueur['vie']+=$var; break;
case 'forme_joueur': $infos_joueur['forme']+=$var; break;
}
}
---
Un Controleur
Code PHP :
include('./modeles/test.php');
$condition = '';
if(val('vie_joueur')<=50) $condition .= 'Vous devez avoir + de 50 PDV';
if(val('region')!='ville') $condition .= 'Vous devez etre en ville';
if($condition == '')
// On appel les fonctions du modele
else
$affichage['contenu'] = $condition;
---
Voilà (trés) grosso modo ma structure.
Qu'en pensez vous ? Ses forces ? Faiblesses ?
Il faut que vous sachiez que je bosse dans un sens où j'aimerai rendre trés "simple" l'implémentation de nouvelles fonctionnalités afin de répondre trapidement aux demandes de mes joueurs...
Merci par avance de votre attention.
Bonne soirée.