Hello,
Surtout qu'en gros tu fabriques une usine à clones type mamafia.fr ... du coup au lieu de faire un bon jeu, tu vas faire X copies d'un jeu moyen. Moyen parce que tu passera beaucoup trop de temps sur le framework au lieu de le passer sur le gameplay.
Mais bref, le pattern command, pourquoi pas.
Il faut bien le construire ce bâtiment ! Viser les 100% c'est inutile
Moi je partirais plutôt sur un système de hooks :
ça marche si tu définis une liste de hooks sur lesquels les modules peuvent venir se plugger.
M'enfin, moi sur mon jeu si j'ai bien compris quelque chose c'est de ne surtout pas créer un framework. Il faut vraiment créer un jeu, un prototype rapidement au lieu de partir dans l'abstraction stratosphérique.
Citation :S'attaquer seul et directement à un CMS de création de jeu (from scratch) me semble bien ambitieux... Bonne chance quand même
Surtout qu'en gros tu fabriques une usine à clones type mamafia.fr ... du coup au lieu de faire un bon jeu, tu vas faire X copies d'un jeu moyen. Moyen parce que tu passera beaucoup trop de temps sur le framework au lieu de le passer sur le gameplay.
Mais bref, le pattern command, pourquoi pas.
Citation :Forcément, le MBEP "réduisant la durée de construction des batiments" requière le module MCB, ce ne sera donc pas 100% indépendant.
Il faut bien le construire ce bâtiment ! Viser les 100% c'est inutile
Moi je partirais plutôt sur un système de hooks :
<?php
/**
* MQAUBQRLTDCDB = "Module Qui Ajoute Un Batiment Qui Reduit Le Temps De Construction Des Batiments"
*/
Class MQAUBQRLTDCDB extends GameModule {
// fonction appelée pour tous les modules activés au lancement de l'appli
public function start() {
$this->registerHooks(['getAvailableBuidings','buildingConstructionTimeCalculation']);
}
// fonction appelée quand on affiche la liste des bâtiments qu'il est
// possible de construire
// $list contient la liste des bâtiments constructibles
// $playerState contient l'info du joueur
public function onGetAvailableBuildings($list,$playerState) {
if ($playerState->hasSkill(Skill::getByName('Advanced Building'), $skillLevel=3)) {
$list->add($this->getBuildingInfos());
}
}
// fonction appelée quand on calcule le temps de construction des bâtiments,
// ce qui permet de l'utiliser 1) quand on affiche le bâtiment à construire
// et 2) quand la construction est lancée
public function onBuildingConstructionTimeCalculation($buildingInfo,$playerState) {
if ($playerState->hasBuilding($this->getBuildingInfos()->id)) {
// on choppe le niveau de notre building qui réduit le temps
$batLevel = $playerState->getBuiding($this->getBuildingInfos()->id)->level;
// on calcule un ratio pour le temps de construction. Attention
// c'est un calcul d'exemple ici, si on a niveau 10 c'est instantané
$ratio = 1 - ($batLevel * 0.1);
$buildingInfo['construction_time'] *= $ratio;
}
return $buildingInfo;
}
private function getBuildingInfos() {
//
}
}
ça marche si tu définis une liste de hooks sur lesquels les modules peuvent venir se plugger.
M'enfin, moi sur mon jeu si j'ai bien compris quelque chose c'est de ne surtout pas créer un framework. Il faut vraiment créer un jeu, un prototype rapidement au lieu de partir dans l'abstraction stratosphérique.