Utilisateur:Michaelseyne/Pygame

Une page de Wikiversité, la communauté pédagogique libre.

Python est un langage de programmation puissant et Pygame est une librairie libre multiplateformes pour Python qui permet de créer des programmes en gérant très simplement tous l'aspect multimédia pour se concentrer sur le jeu lui-même. Ce qui permet d’avoir des images, des sons, de l’interaction avec un clavier et une souris. Inspiré par SDL pour le langage C++, Pygame permet de réaliser une grande variété de jeu 2D.

Je vais vous présenter un cours sur cette librairie afin de prendre en main la programmation progressivement tout en gardant une orientation jeu vidéo 2D. J'espère qu’il permettra d’initier quelques personnes n’ayant qu’une idée vague de ce qu’est programmer tout en leur permettant de commencer dés maintenant à réaliser leur rêve de créer des jeux vidéos. De poser les premières briques dans la direction qui les amènera à créer leur œuvre personnelle.

Le choix d'apprendre un langage de programmation plutôt que d’utiliser un programme tout en un de conception de jeu comme rpg maker ou game maker, vous permet de voir de façon plus proche ce qu’il y a dans votre jeu, avoir un plus grand éventail ajouter votre personnalité dans tous les aspect du jeu.

L’objectif de ce cours est d’enseigner à la fois la conception de jeux vidéo sur papier à partir d’une idée et aussi d’accompagner cette idée jusqu’à son développement final dans une structure libre et ouverte en partageant la documentation, les cours et les codes. Il y aura aussi des cours transversaux de création graphique avec les logiciel Blender et Gimp pour vous permettre d'apprendre à créer l'aspect visuel et d’être complètement autonome sur vos jeux.Le langage python et sa bibliothèqe pygame ont une philosophie libre (open source), ce qui signifie que nous sommes invité à partager le code sous les même licences (par exemple GPL) pour s'entraider et s’inspirer les uns les autres.

J’ai l' impression que la création a tout à gagner avec cette philosophie associé au réseau internet, le partage permet d’avancer dans un développement co-créatif, une évolution des outils et un enrichissement où chacun peut s’impliquer dans l’évolution d'une œuvre sans qu'elle soit fermé à un petit nombre. Pour installer le langage python (http://www.python.org) et la bibliothèque pygame (http://www.pygame.org) il faut s'assurer de la comptabilité des versions installées, par exemple la dernière version de pygame pygame-1.9.2a0.win32-py3.2.msi sera compatible avec une version de python en 3.2.

Exemple :

introduction[modifier | modifier le wikicode]

Python est un langage de programmation et pygame est une bibliothèque de modules multimédias permettant d’utiliser de manière plus rapide le langage python pour créer des jeux vidéos.

Intaller python et pygame[modifier | modifier le wikicode]

Importer et initialiser la bibliothèque pygame[modifier | modifier le wikicode]

Pour importer un seul module pygame (draw, display, mixer, event, image, mouse, time) par exemple si l’on souhaite faire un programme python et n'utiliser que pygame pour jouer un son sans importer la bibliothèque entière alors on peut écrire :

			
1. import pygame.mixer

Si nous souhaitons importer tous les modules de pygame, la commande :

			
1. import pygame

Pour permettre une simplicité de code, il est recommandé d'importer toutes les constantes (?)

			
1. from pygame.locals import *

De cette façon nous pouvons utiliser toutes les constances sans avoir à appeler pygame à chaque fois. Nous écrivons la constance pour l'appeler plutôt que pygame.constance.

Avant tout, nous devons initialiser pygame par cette commande.

		
1. pygame.init()

Déroulement du cours :

Notes pour enseigner la programmation en créant des jeux vidéos libre. OUTILS : Python, Pygame, (version 3), Gimp, Blender Blog Pax Fabrica + Wiki//versity//book + P2PU + Youtube + GoogleDocs + Framapad + Github

Les outils choisis : le langage de programmation python 3 et la bibliothèque pygame.

Qu'est ce que la programmation ? Et qu'est ce qu'un jeu vidéo ? Installation python et la bibliothèque (module) pygame Commentaires (#) Données, expressions, valeurs, nombres, chaînes de caractères (Integer, String, Float) Opérateurs (+, -, = etc..) Variables Type( ) Données Boléennes (True, False, 0, 1) Statements ? (ex : import) Fonctions ( ex : print( ) ) Arguments ? Opérateurs comparatifs (<, >, ==, <=, >=,!=) Conditions ( variableFalse = 1 > 6 ) Blocs d'indentation Boucle (While) le statement ? If ( + elif, else) et les deux points (:) Break Guillemet et Slash (', , \) la fonction : print ( ) la fonction : input ( ) Import, (from module import function) le module random la fonction random.randint ( ) le module time la fonction time.sleep ( ) le statement Def newFunction() : Valeur return Paramètres entre les ( ) de la fonction Opérateurs Boléens (And, Or, Not) (truth table) Variable globale (dans une fonction (mini-programme) et locale (dans le programme) Les erreurs, (syntax, runtime, semantic) Le debugger (go, step, out, over, break etc.) ASCII Art La boucle (For) String multilignes ( ou \n) Listes ( [1, 2, 3] ) Les méthodes ( string : lower( ) upper( ) liste : reverse( ) append( ) ) les fonctions range( ) et list( ) Découper une liste ( [:] ) La méthode .split( ) Dictionnaires ({ :,}) fonction random.choice( ) Les cours circuitage des opérateurs boléen (or et and) Valeur None (IYOCGwP p209) Hard-coding (VARIABLE = ) la fonction random.shuffle( ) Opérateurs d'augmentation ou diminution d'assignement (+=, -=, *=, /=) la méthode .sort( ) la méthode .join( ) String interpolation (String formating) Conversion specifier (%s) (nested loop or loop inside loop) étape technique et math : SYSTEME DES COORDONEES CARTESIENNE abs( ) la méthode de liste remove( ) la méthode de string isdigit( ) la fonction sys.exit( ) continue structures de données (liste dans liste) variable[x][x]

// STOP HERE !! pour la version 0.25

Programmes, premiers jeux : 1. PYTHON 2. Bonjour, Nouveau Monde ! 3. Deviner un nombre. 4. L'aventure textuelle, choix et directions. 5. Le pendu, Deviner un mot secret. 6. Morpion (tic tac toe), première intelligence artificielle 7. Bagels(trouver un nom en français) (inspiration pour Mastermind), Deviner une combinaison de chiffre. //STOP HERE !! pour la version 0.25

8. Sonar 9. ... 10. Puissance 4 (connect 4) 11. … 12. Démineur 13. … 14. Deviner l'emplacement d'objets sur un terrain (Bataille navale) 15. .. 16. PYGAME 17. .. 18. Assommer le singe (ou d'autres jeux pour s'initier à pygame) 19. … 20. Deviner un assemblage de couleur (Mastermind) 21. ... 22. Pong à partir d'ici retravailler du début pour le cours 1.00 23. .. 24. Jeu de Dame/Draughts 25. .. 26. Domino/Triomino 27. .. 28. Arkanoid/Breakout 29. .. 30. Reversi/Othello (L'IA de Dark Earth!) 31. .. 32. Space Invader 33. … 34. Pac Man 35. … 36. Tetris 37. ... 38. Nombreux jeux d'arcades avant jeux complexes. (bubble, bomberman, solitaire, sokoban, sudoku 39. ... 40. Mario 41. .. 42. Chess 43. .. 44. Zelda 45. .. 46. Go 47. .. 48. Metroid 49. .. 50. Strategy classic : Isometric : Dune 51. .. 52. RPG classic : Final Fantasy/Dragon Quest/Pokemon 53. .. 54. Plateforme classic : Metroidvania/Prince of Persia/plateforme 8bit infinite. 55. … 56. Puzzle, aventure et construction (Crafting, Lego, Mecanic, Physic) 57. ... 58. Multiplayer games (MMO) 59. .. 60. EDUCATION PROJET PAX FABRICA : communauté et école libre virtuelle 61. Sand Box School Game editor RPG 62. Projet open source collaboratif 63. Apprentissage, enseignement et création de jeux vidéo libre (+ ressources éducatives libres) 64. PROJET FINAL PAX FABRICA : CREATION D'UN JEU MOOC LIBRE ECOLE DE CREATION DE JEU VIDEO AVEC LES MECANISMES D'UN MMORPG.

Notes diverses relative à la création du cours :

Création de jeux vidéo libre avec Python et Pygame : licence cc0

Première phase 0.25

Le cours 1.0 permet d'apprendre à créer des jeux vidéo libre à partir de zéro par un méthode progressive basé sur l'écriture et l'explication du code source. (à associer avec des exercices et des petits problèmes à résoudre ?)

Une fois arrivé à comprendre pong et mastermind avec pygame, recommencer à zéro pour écrire un cours jusqu'à la création d'un clone de pong et de mastermind.

En passant par l'apprentissage du langage et la création de nombreux petits jeux simple avant pong.

Une fois arrivé à Pong, reprendre tout et développer le cours, réécrire mes propres programmes, faire d'autres jeux simple et éducatif.

Avec le cours commençant la création de jeu avec Pygame, associer quelques cours sur le pixel art, l’utilisation de Gimp, la création et modification de sons.