PHP Marsufod

A

Anonymous

Invité
#1
Bonsoir à tous,

Je m'étais présenté un peu plus tôt cette année, cependant, avec le "reboot" du forum, je crains devoir le refaire.

Sur ce forum, et ici uniquement, je m'appelle Xiferax. Je suis un casual gamer de D., ce qui ne m'empêche pas de le connaître depuis ses débuts, alors que le jeu était encore en bêta.

Depuis quelques mois (février/mars 2011), j'ai dans l'optique de créer un bot D. qui diffère des autres, dans le sens où celui-ci ne nuirait pas aux autres joueurs. En effet, étant joueur, voir tous ces bots poluer le jeu m'énèrve. Néanmoins, je ne suis pas contre les bots s'ils sont utilisés de façon intelligente.

J'aimerais donc créer un bot qui ne farme pas la même zone en boucle ou le même donjon. J'aspire à créer un bot avec une IA minime, ou chargeant des comportements codés au préalable, effectuant des actions qui ne soient pas répétitives, qui profitent au joueur mais également à une communauté. Je ne m'étends pas plus là dessus, j'ai déjà beaucoup à coder.

Quoi qu'il en soit, je me suis fixé certains objectifs concernant ce bot :
- Codé exclusivement en PHP
- Reposant exclusivement sur des sockets
Ces deux objectifs imposent déjà pas mal de contraintes en terme de code et d'apprentissage.

J'ai donc commencé mon bot en mars 2011. Comme la plupart des projets que je réalise, je l'ai laissé de côté. Seulement, il y a quelques semaines, j'ai souhaité y retoucher. À la vue du code, j'ai compris qu'il me manquait des choses : des commentaires dans le code pour m'y retrouver. Bref, c'était le bazarre, c'était bancal, j'ai tout mis à la poubelle, et j'ai recommencé mon bot depuis le début, en commentant cette fois-ci (en utilisant la syntaxe Doxygen).

C'est ainsi que j'en arrive à me représenter sur ce forum, ainsi que mon projet : le seul bot socket en PHP à ma connaissance.

Cela suscite peut-être quelques questions ?

- Pourquoi un bot socket ?

Je suis en école d'ingé Informatique, la programmation réseau et l'analyse de protocole est un challenge intéressant. Par ailleurs, concernant les bots, un bot socket est beaucoup moins gourmand en mémoire qu'un bot simulant des clics. Un bot socket ne nécessite pas d'avoir une instance D. d'ouverte, et peut gérer des dizaines de bots D. sans broncher ou laguer.

- Pourquoi un bot PHP ?

Avec le recul, ce n'est pas la meilleure décision que j'ai prise de ma vie, étant donné la trop grande permissivité et le trop grand laxisme de PHP concernant le typage. Néanmoins, PHP reste interéssant dans le sens où il est facile à prendre en main. Cela garantie entre autres que chaque personne souhaitant utiliser ce bot, pourra (s'il le souhaite) créer des plugins/comportements sans trop se casser la tête.

Concernant le bot

Venons en maintenant au faits : le bot, quecekifé, oukilen né ?

J'ai décidé de ne pas me précipiter dans le code tête baissée. Cela me permet de réfléchir à une architecture stable et exploitable pour mon bot qui pourra évoluer si nécessaire. En conséquence, j'en suis à peine à l'implémentation des premiers messages du protocole D. (oui oui, ceux qui permettent de se connecter au serveur).

Une fois que j'aurais assez de messages pour pousser un peu mes tests, il me faudra encore beaucoup de réflexion en amont pour coder certaines logiques (Exemple : logique de connexion). Et une fois les logiques de base créer, il me faudra encore reproduire tous les comportements primitifs du jeu. Et une fois ces comportements (échange, achat, message) primitifs mis en place, il me faudra penser des comportements plus aboutis pour produire des actions un minimum intéressantes (communication inter-bot, etc.)

Bref, beaucoup de choses encore à implémenter...Et encore de nombreux problèmes à régler.

Pour une explication plus complète sur le bot, mais aussi plus vulgarisée, c'est par là : http://marsufod.blogspot.com/

Quant à moi, je vous donne rendez-vous très bientôt sur ce post pour connaître les avancées techniques. Par ailleurs, j'essayerai très bientôt de mettre en place un github contenant les sources de mon projet (oui je compte mettre les bases de mon bot sous licence open-source), ainsi que la doc générée avec Doxygen.

Cordialement,
Xiferax.
 
A

Anonymous

Invité
#4
Projet super intéressant ! Bon courage !
 
A

Anonymous

Invité
#5
Oui, projet très intéressant. Bon courage à toi :p
 

Kyu

Staff
Membre du personnel
Inscrit
4 Octobre 2009
Messages
327
Reactions
8
#6
Tu as l'intention d'utiliser les websockets?
 
A

Anonymous

Invité
#7
jones a dit:
Tu as l'intention d'utiliser les websockets?
Si tu parles bien de "socket", oui le bot est basé sur des sockets. Si tu parles vraiment de "websocket" en tant que tel, je dois dire que je ne sais pas de quoi il s'agit (un rapide coup d'oeil m'a indiqué qu'il s'agissait d'une ébauche de protocole initiée par le W3C. En extrapolant sans connaître, j'imagine que si ce protocole est encore en phase de réflexion, il n'est pas encore implémenté en PHP, mais je me trompe peut-être).
 

Kyu

Staff
Membre du personnel
Inscrit
4 Octobre 2009
Messages
327
Reactions
8
#8
Les WebSockets, n'ont rien à voir avec PHP.
Cette nouvelle technologie voit le jour par l'intermédiaire d'HTML 5.

Plus de renseignement ici : WebSockets

Sous firefox, par défaut la possibilité d'utiliser les websockets est désactivé pour des problèmes de sécurité, mais activable dans les paramètres avancé du navigateur.
 
Haut Bas