21-03-2014, 07:33 PM
Citation :Comme je le disais, mieux vaut commencer par faire un truc qui fonctionne, puis de passer à la suite afin d'avoir un prototype jouable le plus rapidement possible. Ensuite seulement chercher à optimiser.D'où mon "Après" :p J'avais tendance à sur-optimiser trop tôt aussi, j'ai changé de tactique pour sortir d'abord, optimiser ensuite.
Quand je dis "toutes les 5 minutes un contrôle", cela n'exclus pas de faire un contrôle quand un évènement survient Par là j'entends "quand un évènement pouvant terminer une quête apparait, contrôler si ces quêtes sont terminées" + "ajouter un contrôle de toutes les quêtes toutes les 5 minutes" (ou autre unité de temps). c'est comme se dire que le temps qui passe (5 minutes) est un évènement pouvant terminer les quêtes, qui doit donc entrainer un contrôle pour vérifier les quêtes terminées.
J'utilise également ce procédé sur eclerd: mettre à jour (dans mon cas une image, ici, une table sql) lorsqu'une action survient, mais également toutes les N unités de temps; l'écoulement d'une unité de temps peut être considéré comme une "action".
Pour "QuestType", j'aurai mis ça dans une classe de constantes, dans un fichier PHP. Si ce sont des données très statiques (changent peu, sauf quand on mets le jeu à jour pour ajouter une quête) et souvent accédées, je préfère éviter d'encombrer la BDD. Seul inconvénient: on ne peut pas faire de jointure directement...