• [^] # Re: euuuuhh

    Posté par . En réponse à la dépêche Des petits jeux pour les fêtes. Évalué à 2.

    Python est peut être lent, mais le moteur 3D de Slune est (ou était, il est peut etre en Pyrex(C+python)maintenant) écrit en C

    Le moteur utilisé par Slune (Soya) est effectivement écrit en Python/Pyrex (donc converti en C et compilé) comme tu le supposais. Il était auparavant écrit en Python pur et peut-être en C avant ça.

    C'est marrant sinon, le premier argument avancé par l'auteur de Pyrex par rapport à Python est la lenteur : http://ldots.org/pyrex-guide/(...)

    et seul le jeu en lui même est en python.

    Concernant l'utilisation de Python pour écrire le jeu proprement dit, il y a une question sur la FAQ de Soya (http://home.gna.org/oomadness/en/soya/faq.html(...) ) demandant si Python n'est pas trop lent pour les jeux 3D, ce qui montre que la question est à priori légitime.

    L'auteur répond qu'il pense que non et il argumente en disant que dans ses essais, 80% du temps est passé dans le code 3D et donc que l'utilisation d'un autre langage ne permettrait d'améliorer que les 20% restants.

    D'une part, ça montre que Python n'est pas forcément une solution optimale par rapport à d'autres langages puisqu'on sacrifie de 0 à 20% des performances. D'autre part, je doute qu'il ne reste que 20% à optimiser pour des jeux comprenant de l'intelligence artificielle, de la physique, du réseau, des ombres portées ou des calculs 3D complexes.

    Il me semble aussi (mais je ne suis pas sûr) que les tâches du processeur graphique peuvent se faire partiellement en parallèle des tâches du processeur principal. Si c'est le cas, ça pourrait créer un goulet d'étranglement dans la partie Python qui ralentirait l'ensemble. À vérifier...

    Bref, je pense que Python peut effectivement être adapté comme langage de script ou pour faire des jeux simples en 3D (tout comme Java, Basic ou Perl), mais je ne pense pas que ça puisse répondre à toutes les problématiques de développement de jeux vidéo.