Program Arcade Games
With Python And Pygame

Voor we gaan starten...

Als je reeds weet waarom je wil starten met het maken van spelletjes en je vraagt je af hoe je kan starten, dan kan je dit hoofdstuk overslaan en meteen naar het hoofdstuk gaan over hoe je de software kan installeren.

Ben je hier om je eigen games te maken? Super! Hier kan je video’s vinden van spelletjes die gemaakt werden door studenten die deze cursus hebben gevolgd :

Video: Fall 2012 Game Projects
Video: Spring 2012 Game Projects

Wanneer je start met het leren programmeren, dan zal je merken dat dit vlug lijkt op werk. We weten allemaal dat we eerder het werk overslaan en meteen gaan goud verzamelen in World of Warcraft of Eve Online of een ander spel, niet? Waarom zouden we dan starten met programmeren? Wat kan iemand hieruit halen?

0.1 0.1 Het leren maken van spelletjes en ervoor betaald worden.

fig.money
Figure 0.1: Bags of money

Het leren maken van spelletjes en ervoor betaald worden? Ok, Ik ga je niet betalen maar als je leert programmeren zijn er heel wat mensen die ervoor willen betalen. Hier volgt hoe je ervan kan genieten :

  1. Leer hoe je spelletjes kan maken.
  2. Maak plezier met het maken van je eigen spelletjes.
  3. Kies je favoriete werkaanbieding.
  4. Geniet.

Kijk, nummer ??? in dit plan!

Denk er eens over na. Je kan spelletjes spelen, maar iedereen kan dat. Goed zijn in een videospelletje is echt een verwezenlijking in je leven als je er over nadenkt. Maar je kan ook zelf spelletjes maken. Mensen houden ervan.

Wanneer je aan het studeren bent hoe een computerspel moet werken, zeg dan tegen je ouders en medewerkers dat je informatica studeert. Dat klinkt beter.

0.1.1 Waarom informatica studeren?

Terug naar het geld. Volgens de National Association of Colleges and Employers (NACE) (Is een vereniging van hogescholen en bedienden in Amerika), is computer engineering de tweede best betaalde diploma, informatica staat op nummer 4 en informatie-wetenschappen op nummer 8. De meeste andere diploma’s zijn eveneens te vinden in de technologie of in de software branche.

Best betaalde bachelor's diploma's
Diploma Gemiddeld Salaris
Petroleum Engineering $93,500
Computer Engineering $71,700
Chemical Engineering $67,600
Computer Science $64,800
Aerospace Engineering $64,400
Mechanical Engineering $64,000
Electrical Engineering $63,400
Management Informational Systems $63,100
Engineering Technology $62,200
Finance $57,400

(De gegevens komen van de NACE April 2013 Salaris Enquete.)

Computer engineers verbinden de computer programma’s met de hardware. In de huidige markt hebben de meeste van deze jobs kennis nodig van computer programmatie.

Wat is informatiewetenschap? Dit is een diploma voor mensen die graag werken met computers en technologie maar die niet houden van programmeren. Dit book wil je duidelijk maken dat dit niet voor jou is. Programmeren is leuk en wie wil er nu op de 10de plaats staan in de lijst van bestbetaalde diploma’s?

Tijdens het leren programmeren van spelletjes kan je studeren voor één van de best betaalde batchelor diploma’s dat er bestaan. En laat ons eerlijk zijn, de ingenieurdiploma’s nemen 5 jaar in beslag. Informatica is een goede keuze voor een carriere.

Niet alleen krijgen afgestudeerden informatica de goedbetaalde aanbiedingen, ze zijn ook diegene die de meeste kans hebben op een aanbod. Dit komt omdat er weinig studenten deze richting kiezen en de vraag groot is. Volgens NACE krijgen meer dan 56 percent van de studenten een job als ze solliciteren. Om een idee te hebben hoe de verdeling is tussen de kennis van de studenten en de vraag naar informaticajobs zie 0.2 en Figure 0.3.

fig.code_graphics1
Figure 0.2: Gegradueerde informatica tov jobs. Source: code.org
fig.code_graphics2
Figure 0.3: Verwachting informatica jobs. Source: code.org

Wat met een programmeeropleiding op school? Want uiteindelijk is een schoolopleiding een goedkoper alternatief dan drie jaar hogeschool. Veel goedkoper. Maar wanneer je volgende gegevens bekijkt moet je toch voorzichtig zijn met het kiezen van een schoolopleiding :

Gemiddelde salaris per studieniveau
Vocational/Tech School$65,408
Some College$75,701
High School$79,370
Military$84,131
College Graduate (4-Year)$85,815
Master's Degree$97,811
Doctoral Degree$113,600

Volgens Dice.com's onderzoek verdienen mensen die kiezen voor een technologische richting $20,000 minder wanneer ze uit de humaniora komen ten opzichte van mensen die naar de hogeschool zijn geweest. Merk op dat het salaris vermeld niet het gemiddelde aanvangssalaris is. De getallen geven het gemiddelde salaris van alle werknemers, ongeacht hoe ervaren ze zijn.) Natuurlijk ben ik ervan overtuigd dat Simpson College de beste school is van het midwesten. http://simpson.edu/computer-science

0.1.2 Haal het meest uit deze lessen

Je kan geen grote basketballer worden zonder veel te oefenen.

Wil je weten of je je tijd aan het verliezen bent? Beantwoord de vragen van de hoofdstukken! Sla ze niet over. Ze zijn nodig om de leerstof te begrijpen.

Doe de oefeningen! Deze zijn zelfs het belangrijkste. Alleen maar de leerstof te lezen is even zinnig dan proberen om basketballer te worden door een boek te lezen.

Oefen! Er zijn misschien anderen die niet hoeven te oefenen en dat is niet eerlijk. Of je bent misschien slimmer dan hen maar omdat zij er meer voor doen zijn ze toch beter. Dat is ook niet eerlijk. Zo is het leven. Oefen!

Neem je dit op als een klas? Super! Wist je dat je tijd kan winnen door de antwoorden te copieren van het internet? Je kan ook iemand betalen om de oefeningen voor jou te maken. Dat is even zinvol.

Serieus, wat ben je met het copieren van iemand anders? Als je niet van plan bent de oefeningen te maken kan je meteen beter stoppen.

Wanneer lezen niet echt je manier van studeren is kan je de meeste informatie vinden met de video’s. Je kan de volledige tekst overslaan en alleen de video’s bekijken op de YouTube playlist :
http://www.youtube.com/playlist?list=PL1D91F4E6E79E73E1
Maar je kan niet leren zonder te werken. Lees en stel vragen. Maak de oefeningen en stel vragen. Maak de werkbladen en stel vragen. Bekijk de video’s en stel vragen.

0.1.3 Stuur Feedback

Dit is de tekst dat ik gebruik in de Simpson College klas:
Computer Science 150 Fundamentals of Computing I
Er is een geprinte versie en een online versie. De online versie is te vinden op :
http://ProgramArcadeGames.com
Het doel van de tekst, websites, werkbladen, oefeningen en video’s is om een basis informatica concept aan te leren zodanig dat studenten zo snel mogelijk zelf hun spelletjes kunnen gaan maken.

Wil je er tijd voor vrijmaken?
Stuur me een briefje!

Laat me iets weten wanneer je dit gebruikt voor zelfstudie of voor een andere klas. Hoe meer mensen er gebruik van maken, hoe meer energie ik erin wil steken om het te verbeteren.

Wanneer je fouten of tekortkomingen merkt in het boek mag je me een e-mail sturen. Ik wil deze informatie zo goed mogelijk kunnen houden.

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

0.2 Installeren en Starten met Python

Om te beginnen heb je twee programma’s nodig. Python en Pygame. Python is een programmeertaal waar we gaan meer werken en Pygame is een bibliotheek van instructies dat ons zal helpen bij het schrijven van spelletjes.

0.2.1 Windows Installatie

Video: Installeren van Python en Pygame

Wanneer je werkt met een computer waar Python en Pygame reeds geinstalleerd zijn kan je deze stap overslaan. Wanneer je Python en Pygame nog moet installeren op je Windows computer moet je je niet ongerust maken. Het is zeer eenvoudig.

  1. Start het Python installeerprogramma dat je kan downloaden van :
    ProgramArcadeGames.com/python-3.3.3.msi
  2. Start het Pygame installeerprogramma dat je kan downloaden van :
    ProgramArcadeGames.com/pygame-1.9.2a0.win32-py3.3.msi

Wanneer deze geinstalleerd zijn start je Python op door de ontwikkelingsomgeving op te starten. IDLE = Integrated Development Environment zie Figuur 0.4

fig.starting_python_idle
Figure 0.4: Starten met Python

De originele bestanden komen van de Python download pagina :
http://www.python.org/download/
...en de originele Pygame bestanden komen van :
https://bitbucket.org/pygame/pygame/downloads

0.2.2 Mac Installatie

Python en Pygame draaien op een Mac. Ik heb er nooit een opleiding voor gemaakt. Gezien de hoofdpijn dat voormalige studenten kregen om Pygame op een Mac aan het werk te krijgen raad ik aan om Python en Pygame te draaien onder een Windows emulatie.

0.2.3 Unix Installatie

Unix en Unix-like installaties hebben mogelijks een Pygame package, of is er de mogelijkheid om er gemakkelijk eentje te krijgen. Wanneer je eentje wil compileren vanuit de bron kan je dit zoals ik als volgt doen voor 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

Het grootste risico bij UNIX platformen is dat de standard versie 2.x is en dan zal niet alle code werken uit het boek omdat wij werken met 3.3.x.

0.2.4 Optie Wing IDE

Python heeft een eigen editor en een eigen omgeving om in te ontwikkelen. Jammergenoeg is dat niet zo’'n hele goeie. Mijn studenten lopen meestal tegen volgende twee problemen :

Probleem 1 is dat het moeilijk is om een goed overzicht te hebben bij het werken met meerdere open bestanden. Het is dan gemakkelijk om een bestand vergeten te bewaren voor dat je het programma laat starten. Wanneer dat gebeurt werkt het programma eigenlijk nog met de oude code in plaats van met de nieuwe code. Dit is heel verwarrend.

fig.bad_idle
Figure 0.5: Het Python programma hangt vast in IDLE

Probleem 2 is er wanneer er zich een fout voordoet in de graphics van het Pyhton programma. Het programma gaat dan hangen, crasht en is moeilijk te stoppen. De foutboodschap is dan meestal goed verborgen en zeer moeilijk te vinden.

De Wing editor lost het eerste probleem op door het gebruik van tabs per bestand. De editor zal ook vragen of je meteen alle bestanden wenst te bewaren. Een programma dat loopt onder de Wing debugger zal niet gaan hangen zoals beschreven in probleem 2, maar geeft onmiddellijk de controle terug aan de gebruiker door de juiste lijn aan te duiden waar het programma fout ging.

fig.good_wing
Figure 0.6: Het Python programma hangt in Wing IDE

Daarom raad ik jullie aan om nog een derde installatie te doen. Ik stel voor om de Wing editor te gebruiken. Er is een gratis versie beschikbaar die gekend is als “Wing IDE 101”
wingware.com/downloads/wingide-101/

Hoewel het niet nodig is om te beschikken over alle toeters en bellen is de betaalde versie wel erg leuk. De editor help je door automatisch de variabelen in te vullen van zodra je begint te typen. Als je er het geld voor over hebt is dit het overwegen waard.

In de video’s wordt er gebruik gemaakt van de Python editor of de Wing editor, maar er zijn er nog vele anderen :

Met ontwikkelaars discuteren over welke nu de beste editor is, is zoals met een groep van mensen discuteren welke de beste religie is. Je kan best zelf je favoriet kiezen en dergelijke discussies met anderen mijden.

0.3 Het bekijken van de file extenties

Video: Hoe kan je de file extenties tonen

Het is aan te raden om in je windows configuraties de file extenties te tonen. Een bestand heeft meestal een naam zoals Book report.docx waarbij .docx aan de computer zegt dat het over een Microsoft Word compatible document gaat. Standaard verbergt Windows de .docx extentie indien er een programma is dat weet over welk document het gaat. Wanneer je gaat programmeren is het vervelend dat je de extenties van de bestanden niet kan zien.


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