CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Programmation python

VideAtomique
VideAtomique
Niveau 10
10 novembre 2012 à 01:27:41

Codeurs du soir, bonsoir.

J'ai un petit problème, disons que les avis entre les tutos et des connaissances sont très différents sur le sujet.

Donc je suis en apprentissage C++ et j'ai découvert le Python, j'ai du faire 2,3 chapitres en Python et je trouve ce langage vraiment pratique au niveau de l'écriture.

Après pour ce qui est de la portée du langage, bien sur je veut faire de "l'orienté objet" donc le C++ est la mais j'aimerais savoir si c'est vraiment limité l'orienté objet en Python, parce qu'on m'a dit que c'est un langage vraiment puissant mais limité au niveau graphique, et l'univers du piratage c'est pas mon truc donc je ne coderais pas pour faire des scripts toussa toussa. :hap:

Mon projet pour l'instant c'est de programmer quelque chose de simple, mais en grand nombre ( donc de grandes générations d'objets, algorythmes ...), je veux pas faire un truc 3D avec Shaders hyper réaliste a 20 000€ etc etc...

Voila :hap: :gba:

MounchMan
MounchMan
Niveau 10
10 novembre 2012 à 01:35:03

Coucou :hap:

Elle est où la question ? :hap:

VideAtomique
VideAtomique
Niveau 10
10 novembre 2012 à 01:39:17

Si c'est vrai que l'interface graphique du Python est sous-développée et ne permet pas de faire plus qu'un simple tétris.

MounchMan
MounchMan
Niveau 10
10 novembre 2012 à 01:43:36

http://www.minecraftforum.net/topic/13807-mcedit-minecraft-world-editor-now-open-source/

C'est de la 3D et c'est du Python, je crois que c'est avec la lib Pygame :(

M'enfin, ça dépend de ce que tu définit comme "sous-développée" aussi :(

VideAtomique
VideAtomique
Niveau 10
10 novembre 2012 à 01:48:14

disons limité en performances par rapport au Qt en C++.
(a ce qu'on ma dit, moi je n'y connais presque rien, je débute en orienté objet )

Pseudo supprimé
Pseudo supprimé 10 novembre 2012 à 02:27:00

si tu veux faire de la 3d avec pyton regarde

pyogre (bind du moteur libre ogre3d)
panda3d (moteur libre)
blender (moteur libre)
pyopengl (bind opengl)
geexlab (studio shader opengl)
pypy (compilateur jit pour python 2.7)

godrik
godrik
Niveau 30
10 novembre 2012 à 03:01:29

videatomique: arrete d'upper ton topic. Eventuellement si ton topic passe en deuxieme page et que tu as toujours ton probleme. Mais la tu fais juste du bruit pour rien. Au prochain up illegitime, tu prends un kick.

godrik
godrik
Niveau 30
10 novembre 2012 à 03:03:17

Une vraie reponse a la question. Python c'est vrai que c'est lent compare a quelquechose comme C++ (quand c'est bien ecrit). Cependant 99% du code que tu ecriras n'aura pas besoin de performance. Donc les performances de python ne seront pas un probleme.
En particulier quand on debutte, les performances ne sont pas un soucis.

tbol
tbol
Niveau 20
10 novembre 2012 à 15:52:48

Python à aussi des avantages, certains jeux de stratégie très importants ont été développés en Python, et tout le contenu du jeux est stocké dans des fichiers texte, que le jeux récupère avant de se lancer, du coup on peu changer toutes les données du jeux facilement en modifiant les fichier texte sans avoir à tout recompiler.

Donc du coup on à pas mal de jeux de stratégie fait en Python pour cette raison, alors que les jeux 3D, FPS, simulateurs etc restent souvent faits en C++ pour des raisons de performance.

godrik
godrik
Niveau 30
10 novembre 2012 à 18:00:16

"Python à aussi des avantages, certains jeux de stratégie très importants ont été développés en Python, et tout le contenu du jeux est stocké dans des fichiers texte, que le jeux récupère avant de se lancer, du coup on peu changer toutes les données du jeux facilement en modifiant les fichier texte sans avoir à tout recompiler."

Il y a des trucs bien dans python, mais cet argument me semble completement pipeau. Je travaille en ce moment sur un shoot them up dont la configuration se fait entierement dans des fichier texte a cote du programme. Et le jeu est ecrit en C++ et fonctione sur PC et Android.

Je ne vois pas le rapport entre avoir des fichiers de conf ascii et python.

(ou j'ai loupe un truc dnas l'argument?)

Pseudo supprimé
Pseudo supprimé 10 novembre 2012 à 21:07:28

je supose quil voulais parler des jeux civilization qui depuis le 4 utilise un noyau c++ avec une interface python.

http://en.wikipedia.org/wiki/Civilization_IV#Customization

tbol
tbol
Niveau 20
11 novembre 2012 à 15:19:15

Oui Godrik évidement tu as raison on peu aussi utiliser des fichier textes de config avec d'autres langages :-)
Mais c'est sur des jeux de stratégie écrits en Python que j'ai vu le plus gros niveau de customisation dans ce domaine, est ce que parce que Python est interprété que cela ouvre la porte à plus de customisation possibles en dynamique ? Je cite sur le lien très intéressant donné par elite_2009 : "Game data and rules are stored in XML files, and a Software Development Kit was released in April 2006 to allow AI customization. Major parts of the interface, map generation, and scripted events are written entirely in Python and can be customized... said in September: "Editing these files will allow players to tweak simple game rules and change or add content. For instance, they can add new unit or building types, change the cost of wonders, or add new civilizations. Players can also change the sounds played at certain times or edit the play list for your soundtrack.""

Il s'agit pas de changer quelques contenus de variables dans le jeux, mais de pouvoir customizer le jeux totalement, ce que je voie très souvent dans les jeux de stratégie écrits en Python auxquels je joue (donc en simple utilisateur, pas en programmeur).

Sinon à part ça je ne sais pas si vous connaissez Pygame : http://www.pygame.org , ça permet de faciliter la programmation de jeux tout en s'appuyant sur des fonctions écrites en C, donc en somme avoir à la fois la facilité et une certaine forme de performance. Ça semble être utilisé par exemple par des gens qui aiment avant toute chose programmer des jeux, mais qui ne sont pas forcément des hardcore codeurs.

godrik
godrik
Niveau 30
11 novembre 2012 à 18:50:57

Etrangement, je ne pense pas que le benefice viennent de python lui meme, mais de l'architecture logicielle pour le supporter et d'effet de bord. Laisse moi expliquer ca.

Quand tu fais un jeu et que tu veux separer un noyau de jeu en C++ de l'interfacage en python, tu te retrouves forcer a programmer de facon modulaire. Il te faut faires de interfaces de programmations explicite et stable de facon a ce qu'un objet dans un "espace de programmation" different puisse l'utiliser. Que ca soit un programme python, un proframme lua ou une dll ecrite dans le langage que tu aimes, ca ne change pas grand chose a l'affaire. Tu as eu besoin de poser une barriere stricte dans la programmation de ton jeu. Avec une interface bien defini, documente et stable.

Cette interface est le reve des moddeurs. Mais lorsque tu couple ca a python ca va plus loin. Le code python est accessible en texte dans les ressource du jeu. Que ca soit dans un blob ou autre, le code est visible. Du fait, il est facil pour un programmeur (meme amateur) de comprendre ce qu'il se passe. Modifier le code de l'interface devient raisonnablement facil.

Etant donne que le code de l'interface est facil a changer, cacher les variables du jeu ou les ressources n'a plus beaucoup de sens. Tous les formats sont accessible depuis l'interface qui est facilement changeable. Quel interet alors de cache les variables. Un utilisateur motive va certainement trouver l'appel de fonction python qui va bien.

A mon sens, ce n'est pas tant le langage en lui meme qu'un aspect "open source" qui rend ces jeux si moddable et si modde. Si tu regardes un projet comme VLC. Le core est ecrit en C/C++, mais il expose une interface de programmation sous la forme de plugin. Originellement, les plugin devait etre ecrit en C ou en C++. et on a vu des myriades de plugin etre developpe. Ce n'est qu'assez recement que VLC a ajoute un support LUA pour ecrire les plugin de VLC.
Je pense que la cle du modding et compagnie, c'est une interface de programmation clair et la possibilite d'ecrire du code toi meme. Dans civilization c'est fait en python, dans wow c'est fait en lua et dans vlc c'etait en C++. Si ton interface de programmaiton masque les details saugrenue et permet de se concerter sur la tache a accomplir, tu aura du modding.

PS: A aucun moment je ne dis a OP que c'est pas bien python. Perso je fais tout en C++, mais je suis un peu con, ce n'est pas forcement adapte a ce que je cherches a faire.

tbol
tbol
Niveau 20
11 novembre 2012 à 22:00:31

Tout à fait godrik c'est certainement quelque chose comme ça.
Je précise que je n'ai jamais développé en Python, je me demandais juste pourquoi beaucoup de jeux de stratégie utilisent Python, et d'ailleurs ça m'est souvent arrivé de modifier ces fichiers pour adapter les jeux à mes besoins c'est très appréciable.

Pseudo supprimé
Pseudo supprimé 12 novembre 2012 à 00:19:46

au fait natural selection 2 utilise lourdement lua (peut etre trop car le ratio perfs/graphismes du jeux est clairement desekilibrer).

pour les plugin python n'est pas forcement le meilleur choix. si tu veux seulement fournir une interface venant de ton jeux alors il est mieux de choisir lua ou angelscript[1] par contre si tu veux que le moddeur ai acces a toute sorte d'api externe (sockets, compression zip, serveur html/ftp...) alors python est mieux. il existe aussi dautre langage script come scheme/guile[2], javascript[3], dart[4], ...

[1] http://www.angelcode.com/angelscript/
[2] http://fr.wikipedia.org/wiki/GNU_Guile
[3] https://developers.google.com/v8/embed
[4] http://www.dartlang.org/

a noter aussi que python profite des implementations ecrites en java (jython) et C# (ironpython) qui facilite lintegration pour ces langages.

Pseudo supprimé
Pseudo supprimé 12 novembre 2012 à 00:27:39

dailleur pourquoi javascript est si peu utiliser dans ce domaine la ? (je conais tres peux ce language)

godrik
godrik
Niveau 30
12 novembre 2012 à 18:45:49

J'ai pas d'exemple precis, mais j'ai entendu parle de plusieurs projet qui se scriptent en javascript. Je pense que c'est juste moins utilise parceque ca a une connotation plus web. Donc du coup les gens y pensent moins.

Perso je ne connais aucun de ces langages de script donc je ne saurais pas bien dire pourquoi l'un est prefere a l'autre.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de Jeux
  • Programmation
  • Création de sites web
  • Linux
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment