Program Arcade Games
With Python And Pygame

Avant de commencer...

Vous êtes ici parce que vous voulez créer votre propre jeu ? Parfait ! Vous trouverez ici quelques vidéos de jeux créés par des étudiants ayant suivi ce cours :

Vidéo: Projets de jeux, printemps 2014
Vidéo: Projets de jeux, automne 2014
Vidéo: Projets de jeux, automne 2012
Vidéo: Projets de jeux, printemps 2012

Cet avant-propos est en deux parties :

  1. Préparer votre ordinateur pour pouvoir créer des jeux.
  2. Métiers et perspectives de carrière dans le secteur informatique.

0.1 Installer et Démarrer Python

Avant de commencer, vous devez installer deux programmes : Python et Pygame. Python est le langage de programmation que nous allons utiliser, et Pygame est une bibliothèque qui rend la création des jeux plus facile.

0.1.1 Installation sous Windows

Vidéo: Installer Python et Pygame

Si vous travaillez avec un ordinateur sur lequel Python et Pygame sont déjà installés, vous pouvez passer cette étape. Mais si vous devez installer Python et Pygame sur votre ordinateur personnel fonctionnant sous Windows, ne vous inquiétez pas, c'est vraiment très simple :

  1. Exécutez le programme d'installation pour Python téléchargeable depuis :
    ProgramArcadeGames.com/python-3.3.3.msi
  2. Exécutez le programme d'installation pour Pygame téléchargeable depuis :
    ProgramArcadeGames.com/pygame-1.9.2a0.win32-py3.3.msi

Une fois que tout est installé, démarrez Python en sélectionnant l'Environement de Développement Intégré (IDLE) comme indiqué sur la Figure 0.1

fig.starting_python_idle
Figure 0.1: Démarrer Python

Les fichiers fournis ici proviennent de la page de téléchargement de Python à cette adresse :
http://www.python.org/download/
...et les fichiers pour Pygame viennent initialement de :
https://bitbucket.org/pygame/pygame/downloads

Remarque : Il existe de nombreuses versions de Python et Pygame. Il peut être difficile d'obtenir des versions qui fonctionneront correctement ensemble. Je vous recommande donc d'utiliser les liens de téléchargement fournis ici sur ProgramArcadeGames.com plutôt que de télécharger depuis les sites de Python et Pygame.

Si toutefois vous devez utiliser une version de Python différente de celle indiquée ici, cherchez une version de Pygame qui lui correspond sur ce site :
www.lfd.uci.edu/~gohlke/pythonlibs/#pygame

0.1.2 Installation sous Mac OS

Python et Pygame fonctionnent sur Mac. Cependant, compte tenu des maux de tête que les anciens étudiants ont attrapés en tentant de faire fonctionner Pygame sur Mac, je vous recommande d'utiliser Python / Pygame dans un émulateur Windows.

Si vous ne l'installez pas simplement pour essayer, mais que vous voulez le faire fonctionner directement sur un Mac, assurez-vous d'abord que les éléments suivants sont installés :

Ensuite, ouvrez un terminal sur le Mac, puis installez les dépendances nécessaires en tapant :

brew install sdl sdl_image sdl_mixer sdl_ttf portmidi
brew tap homebrew/headonly
brew install smpeg --HEAD

Finalement, téléchargez, compilez et installez le code source :

sudo pip install hg+http://bitbucket.org/pygame/pygame

Avec un peu de chance, ceci installera la version de développement depuis BitBucket.

0.1.3 Installation sous Unix

Unix et les distributions similaires offrent en général un paquet pour Pygame, ou du moins il est facile d'en trouver un. Si vous souhaitez compiler Pygame depuis les sources, voici ce que j'ai utilisé avec Linux Mint :

# Load required packages
sudo apt-get install mercurial libsdl1.2-dev libsmpeg-dev
sudo apt-get install libasound2-doc libglib2.0-doc python3-dev
sudo apt-get install libsdl-ttf2.0-dev  libsdl-image1.2-dev
sudo apt-get install libsdl-mixer1.2-dev libportmidi-dev
sudo apt-get install libavformat-dev libswscale-dev

# Use mercurial to clone current code
hg clone https://bitbucket.org/pygame/pygame

# Build and install
cd pygame
sudo python setup.py

Le principal risque sur les systèmes UNIX, c'est que la version par défaut de Python soit dans la branche 2.x, et que les exemples donnés dans ce livre ne fonctionnent pas. Assurez vous d'installer et d'utiliser une version 3.x de Python.

0.1.4 Facultatif : l'EDI Wing

Python est fourni avec un éditeur et un environnement de développement. Malheureusement, il n'est pas très pratique. Mes étudiants rencontrent généralement les deux problèmes suivants quand ils utilisent l'éditeur par défaut de Python :

Premier problème : quand ils travaillent avec plusieurs fichiers, il est difficile d'avoir un aperçu clair de ceux qui sont ouverts. Il est alors fréquent d'oublier d'enregistrer un fichier avant d'exécuter le programme. Quand cela arrive, le programme s'exécute avec le dernier code qui a été enregistré, plutôt qu'avec le nouveau. Ceci peut être vraiment déroutant.

Deuxième problème : s'il y a une erreur dans un programme qui utilise des éléments graphiques, le programme Python plantera et se « figera ». Une fois que le programme est planté, il est difficile de le fermer. Le message d'erreur qui décrit pourquoi il a planté est souvent caché et difficile à trouver, comme vous pouvez le voir sur la figure 0.2.

fig.bad_idle
Figure 0.2: Programme Python figé dans IDLE

L'EDI Wing résoud le premier problème en proposant un éditeur avec un onglet pour chaque fichier. Il avertira également qu'il faut enregistrer tous les fichiers avant d'exécuter un programme. Un programme exécuté depuis le débogueur de Wing ne se figera pas comme décrit dans le deuxième problème, mais au contraire l'éditeur indiquera immédiatement à l'utilisateur la ligne de code qui pose problème, comme vous pouvez le voir sur la figure 0.3.

fig.good_wing
Figure 0.3: Programme Python figé dans l'EDI Wing

C'est pourquoi, même si cela fait un programme de plus à installer, je recommande d'utiliser l'EDI Wing. Il en existe une version gratuite appelée « Wing IDE 101 » téléchargeable à cette adresse :
wingware.com/downloads/wingide-101/

Il n'y a aucune obligation de céder aux sirènes des fonctionnalités offertes par la version commerciale, mais elles sont utiles. Le programme vous aidera souvent en complétant automatiquement le nom des variables quand vous commencerez à les taper. Si vous avez de l'argent à dépenser et que vous voulez gagner du temps, vous voudrez sûrement acheter la version commerciale.

Dans les vidéos du site, j'utilise indifféremment l'éditeur par défaut de Python ou l'EDI Wing. Il existe beaucoup d'autres éditeurs que vous pouvez également utiliser :

Dans le milieu des développeurs, discuter de « quel éditeur est le meilleur » revient à demander à un groupe de personnes « quelle religion est la meilleure ». Vous feriez bien mieux de vous faire votre propore opinion et et d'éviter d'aborder ce sujet.

0.2 Afficher les Extensions des Fichiers

C'est une bonne idée de changer votre configuration de Windows pour afficher les extensions des fichiers. Un fichier a habituellement un nom de la forme Book report.docx dans lequel .docx indique à l'ordinateur qu'il s'agit d'un document compatible avec Microsoft Word. Par défaut, Windows cache cette extension .docx s'il y a un programme installé pour la prendre en charge. Si vous programmez, le fait de cacher cette partie du nom du fichier peut être ennuyeux.

Vidéo : Comment rendre visible les extensions des fichiers

Pour Windows 7, pour rendre visible les extensions des fichiers, ouvrez le panneau de configuration de votre ordinateur. Dans « Apparence et personnalisation », cliquez sur « Options des dossiers ». Cliquez sur l'onglet « Affichage », puis cherhez et décochez l'option « Masquer les extensions des fichiers dont le type est connu »

Pour Windows 8, ouvrez un explorateur de fichiers en appuyant simultanément sur les touches Windows et E. Cliquez alors sur l'onglet « Affichage », puis sur « Options » et « Modifier les options des dossiers et de recherche ». Dans la fenêtre d'options, cliquez à nouveau sur l'onglet "Affichage" puis cherchez et décochez l'option « Masquer les extensions des fichiers dont le type est connu ».

0.3 Apprenez à Faire des Jeux et Gagnez de l'Argent

Quand vous allez commencer à apprendre la programmation, vous allez rapidement vous rendre compte que cela ressemble beaucoup à un travail. Nous savons tous que nous ferions bien mieux de laisser tomber notre travail pour aller récolter de l'or dans World of Warcraft, Eve Online ou d'autres jeux, n'est-ce pas ? Alors pourqoi apprendre à programmer ? Quels avantages peut-on en tirer ?

fig.money
Figure 0.4: Sacs d'argent

Comment gagner de l'argent en faisant des jeux ? D'accord, je ne vous paierai pas, mais si vous apprenez à programmer, il y a des tas de gens qui vous paieront. Voici comment y parvenir :

  1. Apprenez à programmer des jeux.
  2. Prenez plaisir à concevoir vos propres jeux.
  3. Choisissez l'offre d'emploi qui vous plait le plus.
  4. Profitez.

Aucun mystère dans ce plan !

Réflechissez. Vous pouvez jouer à des jeux, mais tout le monde peut le faire. Avec un peu de recul, être très bon à un jeu vidéo n'est pas vraiment une fin en soi. Ou vous pouvez apprendre à créer des jeux. Les gens s'intéressent à ça.

Pendant que vous apprendrez à programmer des jeux, dites à vos parents et vos collègues que vous étudiez l'Informatique. Cela sonne mieux.

0.3.1 Pourquoi étudier l'Informatique ?

Reparlons d'argent. D'après l'enquête sur les salaires de la National Association of Colleges and Employers (NACE) d'avril 2014, l' Ingénierie est la profession où les salaires sont les plus hauts et l'Informatique tient la seconde place.

Salaire Moyen Par Profession
Branche Professionnelle Salaire moyen proposé
Commerce 53 901 $ (≈ 41 462 €)
Communication 43 924 $ (≈ 33 787 €)
Informatique 61 741 $ (≈ 47 493 €)
Enseignement 40 863 $ (≈ 31 433 €)
Ingénierie 62 719 $ (≈ 48 245 €)
Métier de la Santé 51 541 $ (≈ 39 646 €)
Sciences Humaines & Sociales 38 365 $ (≈ 29 511 €)
Maths & Sciences 43 414 $ (≈ 33 395 €)

(Données du "NACE April 2014 Salary Survey". Montants en euro estimés sur la base d'un dollar à 1,3€)

Tout en apprenant à programmer des jeux, vous obtiendrez en 4 ans un des diplômes offrant les meilleurs rémunérations. Et soyons honnêtes, obtenir un diplôme d'ingénieur prend généralement cinq ans. l'informatique est donc un très bon choix pour une carrière.

Pourquoi les diplomés en informatique sont-ils payés autant ? Parce qu'il y a beaucoup de demande, et pas assez d'étudiants. Voir la figure 0.5 et la figure 0.6.

fig.code_graphics1
Figure 0.5: STEM/Diplomés en Informatique vs. Emplois. Source: code.org
fig.code_graphics2
Figure 0.6: Perspectives d'Emploi en Informatique. Source: code.org

Qu'en est-il des écoles qui proposent d'apprendre la programmation en deux ans? Après tout, les écoles en deux ans offrent une alternative moins chère que celles en quatre ans. Beaucoup moins cher. Mais jetez un oeil au tableau ci-dessous. Prenez ces données sur le « Salaire moyen par niveau d'éducation » comme une mise en garde sur le choix d'une école en deux ans:

Salaire moyen par niveau d'éducation
Voie Professionnelle65 408 $ (≈ 50 313 €)
Certaines écoles75 701 $ (≈ 58 231 €)
Lycée79 370 $ (≈ 61 053 €)
Militaire84 131 $ (≈ 64 716 €)
Grandes écoles (4 ans)85 815 $ (≈ 66 011 €)
Master97 811 $ (≈ 75 239 €)
Doctorat113 600 $ (≈ 87 384 €)

Selon les données de l'enquête de Dice.com, les personnes travaillant dans le secteur technologique qui obtiennent leur diplôme d'une école en deux ans gagnent en moyenne 20 000 $ (≈ 15 384 €) de moins que celles qui sont allées dans une école en quatre ans. En fait, elles gagnent moins que les décrocheurs des écoles en quatre ans, et que les personnes qui n'ont fait que des études secondaires ! Donc, choisissez une école en quatre ans et ignorez les écoles en deux ans.

Ces données proviennent de l'enquête Dice sur les salaires dans le secteur technique de 2012 à 2013. Notez que les salaires donnés ne sont pas des premiers salaires. Les chiffres représentent le salaire moyen de tous les travailleurs, quelle que soit leur expérience. Bien sûr, je pense que Simpson College a le meilleur département de science informatique du Midwest :
http://simpson.edu/computer-science

0.3.2 Tirez le meilleur parti de ce cours

Les grand joueurs de basket-ball s'entrainent. Les grands programmeurs aussi.

Vous voulez optimiser le temps passé ici ? Alors répondez aux questions de chaque chapitre ! Ne les sautez pas. Elles sont indispensables pour comprendre le contenu.

Faites les travaux pratiques ! C'est encore plus important. Apprendre en ne faisant que lire des cours est à peu près aussi utile que d'essayer de devenir un joueur de basket-ball professionnel en lisant un livre.

Entrainez-vous ! Vous verrez peut-être des gens qui n'ont pas besoin de s'entrainer. C'est injuste. Ou vous serez peut-être plus intelligent que d'autres, mais ils finiront par être meilleurs que vous parce qu'ils travaillent pour cela. C'est injuste également. C'est la vie. Il faut vous y faire. Entrainez-vous.

Prenez-vous cela comme un cours ? Très bien ! Savez-vous que vous pouvez gagner du temps en copiant les réponses et les travaux pratiques depuis Internet ? Vous pouvez aussi vous payer un abonnement à une salle de sport et envoyer quelqu'un d'autre faire les exercices à votre place. C'est aussi sensé.

Sérieusement, que pensez vous que copier sur quelqu'un d'autre va vous apporter ? Si vous ne comptez pas travailler, autant abandonner maintenant et commencer à postuler chez McDonald.

Si vous n'aimez pas apprendre en lisant, la plupart des informations sont disponibles à travers des vidéos. Vous pouvez ignorer complétement le texte et regarder uniquement les vidéos en utilisant la liste de lecture YouTube :
http://www.youtube.com/playlist?list=PL1D91F4E6E79E73E1
Vous ne pouvez pas apprendre sans travailler correctement. Lisez le cours. Posez des questions. Faites les travaux pratiques. Posez des questions. Faites les exercices. Posez des questions. Visionnez les vidéos. Et posez des questions à votre professeur.

0.3.3 Envoyez vos commentaires

Ceci est le texte que j'utilise au Simpson College pour le cours :
Computer Science 150 Fundamentals of Computing I
Il existe une version imprimée disponible sur Amazon et Barnes and Noble. La version en ligne est disponible à l'adresse :
ProgramArcadeGames.com
Le but du texte, du site web, des exercices, des travaux pratiques et des vidéos est d'enseigner les concepts de base de l'informatique et d'obtenir que les étudiants puissent programmer leurs propres jeux le plus rapidement possible.

Vous aimez cette ressource en ligne ?
Envoyez moi un message !

Si vous l'utilisez pour l'autoformation ou pour une autre classe, s'il vous plaît envoyez-moi un message. Plus il y aura de monde qui utilise cette ressource, plus je ferai d'efforts pour l'améliorer.

J'ai entendu parler de quelques lycées qui utilisent ce cours. Si vous êtes élève dans un de ces lycées et que vous aimez le contenu de ce cours, intéressez-vous au Département Informatique du Simpson College. Nous serions ravis d'avoir la chance de pouvoir travailler avec vous. Contactez-moi ou contactez le service Admissions pour plus d'informations.

Si vous remarquez des erreurs ou des oublis dans ce livre, merci de m'envoyer un courriel. J'aimerais que cette ressource soit la meilleure possible.

Dr. Paul Vincent Craven
Department Head, Computer Science Department
Simpson College, Indianola, Iowa, 50125 USA
paul.craven@simpson.edu


You are not logged in. Log in here and track your progress.