game maker: jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar...

20

Upload: others

Post on 12-Aug-2020

3 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Game Maker: Jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar en Pacman . Segurament, després d'haver proatv el seu joc uns quants cops, desitjarà

Game Maker: Jugant a programar

Autor : Joan Robert Rocaspana Marietti

Curs sol.licitud : 2006-07

Especialitat : Informàtica

Nivell: Batxillerat

Tutor: Josep Maria Ribó Balust

30 de març de 2007

Page 2: Game Maker: Jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar en Pacman . Segurament, després d'haver proatv el seu joc uns quants cops, desitjarà

Índex

1 Introducció 3

1.1 Explicació del tema . . . . . . . . . . . . . . . . . . . . . . . . . . 31.1.1 Objectius i resultats proposats . . . . . . . . . . . . . . . 5

2 Treball dut a terme 8

2.1 Disseny del pla de treball . . . . . . . . . . . . . . . . . . . . . . 82.1.1 Dissenyar el contingut d'un crèdit d'iniciació a la progra-

mació utilitzant Game Maker . . . . . . . . . . . . . . . 82.1.2 Dissenyar d'una plataforma per enfrontar agents a través

de la xarxa . . . . . . . . . . . . . . . . . . . . . . . . . . 92.1.3 Tasques a realitzar . . . . . . . . . . . . . . . . . . . . . . 10

2.2 Metodologia emprada . . . . . . . . . . . . . . . . . . . . . . . . 102.2.1 Plani�cació temporal de les activitats . . . . . . . . . . . 11

2.3 Descripció dels recursos utilitzats . . . . . . . . . . . . . . . . . . 11

3 Resultats obtinguts 12

3.1 Presentació dels materials elaborats . . . . . . . . . . . . . . . . 123.1.1 Disseny del contingut d'un crèdit d'iniciació a la progra-

mació utilitzant Game Maker . . . . . . . . . . . . . . . 123.1.2 Disseny d'una plataforma per enfrontar programes a través

de la xarxa . . . . . . . . . . . . . . . . . . . . . . . . . . 16

4 Conclusions 19

1

Page 3: Game Maker: Jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar en Pacman . Segurament, després d'haver proatv el seu joc uns quants cops, desitjarà

Agraïments

Gràcies al Departament d'Educació de la Generalitat de Catalunya per donar-me l'oportunitat de dedicar sis mesos al desenvolupament d'aquest projecte ifer possible el compliment d'una il.lusió.

Gràcies a Josep Maria Ribó per el seu suport, les seves indicacions i les sevesaportacions al treball desenvolupat.

Gràcies a Emili Grau per recolzar la meva tasca des de l'institut.

Gràcies a Núria i la meva família per estar al meu costat.

Gràcies a Maarten Kerkhofs per descobrir-me Game Maker.

Gràcies a Mark Overmars per la creació d'aquesta eina i permetre'm �reviure�hores de la meva joventut programant jocs de naus espacials amb en Sergi Parisi.

2

Page 4: Game Maker: Jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar en Pacman . Segurament, després d'haver proatv el seu joc uns quants cops, desitjarà

Capítol 1

Introducció

1.1 Explicació del tema

Molts dels que avui en dia som o ens considerem informàtics, vàrem tenir elnostre primer contacte amb aquest món a través de la primera generació decomputadors que van aparèixer en el mercat: Amstrad, Commodore i Msx.Tots ells incorporaven un intèrpret d'un llenguatge de programació anomenatBASIC que, a partir d'una sèrie d'instruccions relativament senzilles, permetiaque usuaris com nosaltres, sense gaires coneixements d'informàtica però sí ambmolta motivació, creéssim els nostres propis jocs, normalment relacionats ambnaus espacials disparant a naus enemigues.

A mesura que perfeccionàvem el nostre joc, sense saber-ho, estàvem perfec-cionant els nostres coneixements sobre la programació estructurada: Vàremaprendre a utilitzar variables per poder emmagatzemar el nombre de videsrestants de la nau. Vàrem aprendre a utilitzar instruccions de control de �uxper poder veri�car si s'havia arribat al �nal de la partida (si el nombre de videsrestants era zero) i poder actuar en conseqüència (�nalitzar la partida o procediramb la següent vida).

Actualment, els ordinadors personals han evolucionat moltíssim i ara perara, ofereixen un gran ventall d'utilitats: processadors de textos com Word perescriure documents, fulls de càlcul amb els que poder realitzar pressupostos ...i, com no, l'aparició d'Internet amb les seves immenses possibilitats: la world

wide web, el correu electrònic, el xat, ...Tot sovint es confon tenir coneixements d'informàtica amb saber utilitzar

programes típicament associats a l'ordinador personal. Saber utilitzar el Word,saber descarregar música per Internet, o ser molt hàbil utilitzant un cercadorcom google són habilitats que s'haurien d'associar a la informàtica d'usuari. Encanvi, un informàtic, hauria de ser una persona amb coneixements su�cients percrear un programa amb la mateixa funcionalitat que, per exemple, un proces-sador de textos.

Molts estudiants que inicien estudis relacionats amb la informàtica (cicles

3

Page 5: Game Maker: Jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar en Pacman . Segurament, després d'haver proatv el seu joc uns quants cops, desitjarà

CAPÍTOL 1. INTRODUCCIÓ 4

de grau mig, superior o universitaris), ho fan perquè es desenvolupen bé util-itzant l'ordinador a nivell usuari, però molts cops ignoren que el món en el ques'endinsen és el relacionat amb el món de la programació.

Actualment, en cicles formatius superior com DAI (Desenvolupament d'Apli-cacions Informàtiques), els primers rudiments de programació es donen en llen-guatges com C o Pascal. Normalment els exercicis pràctics per tal de queels estudiants apliquin els coneixements adquirits estan directament relacionatsamb el món de la gestió d'empresa: càlcul de nòmines, càlcul d'una factura idels seus corresponents impostos, ...

La di�cultat resideix en que, per resoldre aquests exercicis, l'estudiant, amés a més d'haver de tenir clars els conceptes de programació, també ha detenir clars conceptes del món de la gestió empresarial amb els que possiblementno estigui familiaritzat, i que no trobi gaire engrescadors.

Els jocs d'ordinadors comercials són fruit del treball de mesos de grans equipsde professionals. Això els fa inviables per tal de que siguin proposats com aexercicis de programació en un nivell d'iniciació, ja que implicarien centenarsde milers de línies de codi.

Game Maker és un programa que permet dissenyar i programar jocs diver-tits, ocultant la major part engorrosa de la feina de programació. El resultatsón videojocs que, evidentment, no corresponen a l'estàndard actual, però quesí que s'haguessin pogut comercialitzar fa deu anys.

Game Maker permet a l'usuari de�nir objectes com naus espacials, laberints,comecocos, ... A més a més, incorpora un llenguatge de programació estructuratsimilar al C, que permet de�nir el comportament dels objectes que hi creem:com es mouran a través de la pantalla, què passarà si xoquen amb un obstacle,què passarà si l'usuari pitja una determinada tecla o el ratolí, ...

Una primera �nalitat del projecte és apro�tar l'entorn que ofereix Game

Maker per fer-lo servir com a un eina de docència de la programació. La ideaés, per tal de posar a prova els coneixements de programació d'un estudiant,poder proposar-li exercicis del tipus:

Dissenya un joc per poder jugar al tres en ratlla contra l'ordinador ,

enlloc del típic:

Dissenya un programa per calcular la nòmina d'un empleat .

Una segona �nalitat del projecte és apro�tar la capacitat que ofereix Game

Maker de treballar en xarxa. A nivell de programació, Game Maker té imple-mentades una sèrie de funcions que permeten comunicar dos o més ordinadorsa través d'una xarxa. Aquesta capacitat es podria apro�tar, posant un exemplesenzill, de la següent forma: Imaginar el joc de la batalla naval en que dos ju-gadors col.loquen els seus vaixells dins una graella i, per torns, cadascun d'ellsdispara amb l'esperança de tocar un dels vaixells enemics. Es podria proposarque els estudiants desenvolupessin no el joc pròpiament, sinó un jugador dela batalla naval. Així, aquests jugadors es podrien enfrontar amb d'altres de

Page 6: Game Maker: Jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar en Pacman . Segurament, després d'haver proatv el seu joc uns quants cops, desitjarà

CAPÍTOL 1. INTRODUCCIÓ 5

la classe, i fons i tot, es podrien enfrontar, gràcies a Internet, amb jugadorsdissenyats en altres centres d'altres ciutats o �ns i tot d'altres països.

1.1.1 Objectius i resultats proposats

La programació de jocs és una activitat en la que no sols intervé la capacitatlògica, sinó també la creativitat.

Game Maker és un programa que permet dissenyar i programar jocs divertitsd'una manera senzilla, ocultant la major part de la feina de programació.

L'objectiu principal del projecte és apro�tar l'entorn que ofereix Game Mak-

er per fer-lo servir com a un eina de docència de la programació en nivells coml'ESO i el batxillerat.

Un segon objectiu és el desenvolupament d'una plataforma que, gràcies aInternet, serveixi de punt de trobada per a alumnes que haguessin desenvolupatun joc d'estratègia amb Game Maker. La plataforma ha de permetre als agentsdesenvolupats pels estudiants poder-se enfrontar, i per tant, permetre la cele-bració de diferents competicions i campionats entre diferents centres educatius.

El projecte es pot dividir en dues parts fonamentals:

• Disseny d'un crèdit d'iniciació a la programació utilitzant Game Maker

• Disseny d'una plataforma per permetre enfrontar agents desenvolupatspels alumnes a través de la xarxa

Dissenyar el contingut d'un crèdit d'iniciació a la programació utilit-

zant Game Maker

Es pretén dissenyar un crèdit d'iniciació a la programació amb les contingutsque es consideren fonamentals dins la programació estructurada:

• Els tipus de dades bàsics i les variables

• Les instruccions de control de �ux

• Les funcions

• Els arrays

• Les matrius

Aquests continguts es volen presentar dins de l'entorn de programació de Game

Maker. Així doncs, es pretén dissenyar una bateria d'activitats que permetin al'alumne aprendre a programar a partir del disseny senzill de videojocs.

Els objectius concrets d'aquest crèdit serien:

1. Permetre la iniciació a la programació sense requerir coneixements en al-tres camps :

Com ja s'ha dit, usualment els exercicis de programació que es proposenals estudiants d'un cicle formatiu d'informàtica estan molt lligats al món

Page 7: Game Maker: Jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar en Pacman . Segurament, després d'haver proatv el seu joc uns quants cops, desitjarà

CAPÍTOL 1. INTRODUCCIÓ 6

de la gestió empresarial. Això és així, perquè la majoria de programes quees desenvolupen a nivell professional estan dissenyats per l'automatitzacióde tasques d'aquest entorn: control de l'estoc, facturació, comptabilitzaciódels fets econòmics, ...

Per entendre el que es demanaria en les activitats que es pretenen dissenyaren aquest projecte, només caldria haver jugat algun cop amb jocs tan típicscom el tres en ratlla, la batalla naval, el comecocos, ...

2. Fomentar la creativitat i la iniciativa dels estudiants :

Si un alumne s'engresca en el desenvolupament d'un joc, segurament tro-barà per sí mateix moltes millores que es podrien afegir al disseny bàsicd'aquest. Així doncs, ell mateix es trobaria amb la necessitat d'aprendremés sobre els conceptes de la programació estructurada per tal de podermillorar la seva pròpia creació.

Imaginem que un alumne ha creat un joc per jugar als comecocos. Imag-inem que en una primera versió, els fantasmes es mouen d'una maneratotalment aleatòria, sense seguir cap estratègia per empaitar en Pacman.Segurament, després d'haver provat el seu joc uns quants cops, desitjarà ferque els fantasmes es comportin d'una manera més agressiva i intel.ligent.

En canvi, si un estudiant ha desenvolupat un programa per calcular lanòmina d'un empleat, difícilment se li acudirà alguna millora a la fun-cionalitat del programa que el motivi en continuar pensant sobre l'exercici.

Dissenyar una plataforma per enfrontar agents a través de la xarxa

Es pretén dissenyar un servidor de partides, per exemple d'un joc com podriaser el de la batalla naval. Els estudiants haurien de desenvolupar un agent capaçde jugar-hi, comunicant els seus moviments al servidor. Així doncs el servidoractuaria d'intermediari i àrbrite entre els diferents agents desenvolupats perdiferents estudiants.

Els objectius concrets d'aquest serien:

1. Permetre als estudiants interactuar amb d'altres estudiants a través d'Internet :

Com ja s'ha dit, els agents desenvolupats pels estudiants es podrien en-frontar a altres agents desenvolupats per altres estudiants. Aquests estudi-ants podrien ser estudiants de la mateixa classe, d'altres centres educatiusde Catalunya, o d'altres països. Es podrien organitzar campionats, enels que el servidor aniria emmagatzemant informació sobre el resultatsdels diferents enfrontaments, i aquesta informació podria ser publicada aInternet.

2. Donar nocions de com els ordinadors es comuniquen en un entorn comInternet :

Page 8: Game Maker: Jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar en Pacman . Segurament, després d'haver proatv el seu joc uns quants cops, desitjarà

CAPÍTOL 1. INTRODUCCIÓ 7

El fet de desenvolupar un agent que es comuniqui amb un servidor, impli-caria que l'alumne s'adonés que per tal d'intercanviar informació amb unaltre ordinador, s'han de seguir les regles rígides que marquen els proto-cols.

3. Donar nocions sobre la intel.ligència arti�cial :

El fet de desenvolupar un agent que jugui a un determinat joc d'estratègia,implica que l'alumne haurà de dotar d'intel.ligència als seu jugador.

Page 9: Game Maker: Jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar en Pacman . Segurament, després d'haver proatv el seu joc uns quants cops, desitjarà

Capítol 2

Treball dut a terme

2.1 Disseny del pla de treball

Les tasques a realitzar es divideixen en dos grans blocs:

• Primera Part - Dissenyar el contingut d'un crèdit d'iniciació a la progra-mació utilitzant Game Maker

• Segona Part - Dissenyar d'una plataforma per enfrontar agents a travésde la xarxa

2.1.1 Dissenyar el contingut d'un crèdit d'iniciació a la

programació utilitzant Game Maker

Com ja s'ha dit, es pretén desenvolupar un material web que serveixi per ladocència de la programació a través de la construcció de jocs. Aquest materiales dividirà en els mòduls que es detallen a continuació:

Inicialment es pretén introduir a l'alumne a l'entorn de treball elegit : Game

Maker. Inicialment sols es pretén presentar quines característiques ofereix aque-sta plataforma per al desenvolupament quasi automàtic de videojocs:

• Mòdul 1 .- Iniciació a Game Maker.

L'objectiu del capítol seria dissenyar un primer joc pas a pas que in-trodueixi en les principals elements de Game Maker : Sprites, Objectes,Rooms i events.

• Mòdul 2 .- Conceptes avançats amb Game Maker.

Introduir a l'alumne característiques avançades de Game Maker, com l'úsde l'herència, la creació d'objectes controladors per supervisar la lògicadel joc, ...

• Mòdul 3 .- Tipus de jocs.

8

Page 10: Game Maker: Jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar en Pacman . Segurament, després d'haver proatv el seu joc uns quants cops, desitjarà

CAPÍTOL 2. TREBALL DUT A TERME 9

Presentar els tipus bàsics de jocs que es poden desenvolupar de manerasenzilla amb Game Maker. Bàsicament els anomenats Maze Games i elsPlatform Games.

Si pensem en un joc senzill com pot ser el del PacMan, ens podem adonard'una limitació que sorgeix al construir jocs amb Game Maker : Els fantasmesque han de perseguir en PacMan es mouen d'una manera aleatòria, i això faque el joc resulti una mica decepcionant. Per solventar aquest problema, Game

Maker disposa d'un llenguatge de programació que permet de�nir comporta-ments complexos per als objectes que s'hi de�neixen. Dotar d'intel.ligència als�enemics� pretén ser l'argument principal per motivar als alumnes a aprendre aprogramar:

• Mòdul 4 .- Els tipus de dades bàsics i les variables. Les instruccions decontrol de �ux

• Mòdul 5 .- Les funcions i la modularització del codi

• Mòdul 6 .- Els arrays. Les matrius

Els mòduls dedicats a la programació s'exempli�caran amb la construcció dejocs que facin ús dels conceptes presentats. Per exemple, els arrays es podrienexempli�car desenvolupant el joc de la serp i representant-n'hi el cos com laseqüència de posicions que ocupen en pantalla els diferents nodes que el com-posen.

Finalment un tercer bloc de mòduls presentaran com aplicar la programacióestructurada a la millora de les estratègies que segueixen els �monstres� per talde perseguir-nos. També es presentarà com adaptar un joc per tal de que espugui enfrontar a un altre a través de la xarxa:

• Mòdul 7 .- Donant intel.ligència als enemics

• Mòdul 8 .- Comunicació de Game Maker a través de la xarxa

2.1.2 Dissenyar d'una plataforma per enfrontar agents a

través de la xarxa

La segona part del projecte pretén desenvolupar una plataforma que serveixide punt de trobada pels jocs desenvolupats per diferents alumnes de diferentsescoles. L'objectiu és crear els components bàsics d'aquesta plataforma, i aixòinclouria la realització de les següents tasques:

• Dissenyar i documentar el joc d'estratègia a utilitzar en els enfrontamentsa través de la xarxa

• Dissenyar i documentar les funcionalitats i protocol de comunicació delservidor de partides

• Implementar el servidor de partides

• Implementar un client de prova

Page 11: Game Maker: Jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar en Pacman . Segurament, després d'haver proatv el seu joc uns quants cops, desitjarà

CAPÍTOL 2. TREBALL DUT A TERME 10

2.1.3 Tasques a realitzar

Les tasques a realitzar identi�cades són:

1. Dissenyar el contingut d'un crèdit d'iniciació a la programació utilitzantGame Maker

(a) Dissenyar i documentar el contingut del Mòdul 1 .- Iniciació a Game

Maker .

(b) Dissenyar i documentar el contingut del Mòdul 2 .- Conceptes .

(c) Dissenyar i documentar el contingut del Mòdul 3 .- Tipus de jocs .

(d) Dissenyar i documentar el contingut del Mòdul 4 .- Els tipus de dades

bàsics i les variables. Les instruccions de control de �ux .

(e) Dissenyar i documentar el contingut del Mòdul 5 .- Els arrays. Les

matrius .

(f) Dissenyar i documentar el contingut del Mòdul 6 .- Les funcions i la

modularització del codi .

(g) Dissenyar i documentar el contingut del Mòdul 7 .- Donant intel-ligència als enemics.

(h) Dissenyar i documentar el contingut del Mòdul 8 .- Comunicació de

Game Maker a través de la xarxa .

2. Dissenyar un joc d'estratègia per enfrontar programes a través de la xarxa

(a) Dissenyar i documentar el joc d'estratègia

(b) Dissenyar i documentar les funcionalitats i protocol de comunicació

(c) Implementar el servidor de partides

(d) Implementar un client de prova

(e) Validació dels components

2.2 Metodologia emprada

La metodologia emprada ha consistit en fer una estimació inicial dels costosde desenvolupament de cada tasca i un anàlisis de les relacions de dependèn-cia entre les diferents tasques. En funció dels resultats obtinguts s'ha fet unaprimera plani�cació temporal, adaptant-la al temps disponible. El seguimentde la plani�cació s'ha fet a traves de reunions de supervisió. En cada reunió esrevisaven l'estat dels objectius marcats, i en funció de la realització d'aquestses marcaven uns objectius nous a aconseguir per la següent reunió. La tempo-rització de les reunions ha variat en funció del temps que s'estimava que podiacostar el desenvolupament dels objectius marcats.

Una decisió important ha sigut canviar la seqüenciació dels dos blocs princi-pals del projecte. S'ha decidit desenvolupar en primer lloc el software destinat a

Page 12: Game Maker: Jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar en Pacman . Segurament, després d'haver proatv el seu joc uns quants cops, desitjarà

CAPÍTOL 2. TREBALL DUT A TERME 11

la interconnexió de jugadors amb Game Maker, enlloc de desenvolupar el mate-rial dedicat a la docència de la programació de jocs, ja que el material docent esdissenyaria, en part, en funció del software obtingut. Un segona raó ha estat novoler deixar pel �nal la tasca que podria ser que es desviés més de la estimacióinicial.

2.2.1 Plani�cació temporal de les activitats

Tasca Previsió Data inici Data �

2.a 1 setmana dilluns, 4 setembre 2006 divendres, 8 setembre 20062.b 1 setmana dilluns, 11 setembre 2006 divendres, 15 setembre 20062.c 2 setmanes dilluns, 18 setembre 2006 divendres, 29 setembre 20062.d 2 setmanes dilluns, 2 octubre 2007 divendres, 13 octubre 20072.e 1 setmana dilluns, 16 octubre 2007 divendres, 20 octubre 2007

1.a 1 setmana dilluns, 23 octubre 2007 dilluns, 27 octubre 20061.b 1 setmana dilluns, 30 octubre 2007 divendres, 3 novembre 20061.c 2 setmanes dilluns, 6 novembre 2006 divendres, 17 novembre 20061.d 1 setmana dilluns, 20 novembre 2006 divendres, 24 novembre 20061.e 2 setmanes dilluns, 27 novembre 2006 divendres, 8 desembre 20061.f 2 setmanes dilluns, 11 desembre 2006 divendres, 22 desembre 20061.g 2 setmanes dilluns, 8 gener 2007 divendres, 19 gener 20071.h 1 setmana dilluns, 22 gener 2007 divendres, 26 gener 2007

2.3 Descripció dels recursos utilitzats

• S'ha utilitzat la tecnologia J2SE per el desenvolupament del portal d'in-terconnexió de jugadors.

� Tomcat com a servidor d'aplicacions

� Postgres com a SGBD

• Per l'elaboració del material web, s'ha utilitzat l'entorn Macromedia DreamWeaverMX .

Page 13: Game Maker: Jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar en Pacman . Segurament, després d'haver proatv el seu joc uns quants cops, desitjarà

Capítol 3

Resultats obtinguts

3.1 Presentació dels materials elaborats

3.1.1 Disseny del contingut d'un crèdit d'iniciació a la pro-

gramació utilitzant Game Maker

Com a conseqüència de la primera part del projecte, s'ha desenvolupat un ma-terial web que s'ha dividit amb els següents capítols:

• Introducció a Game Maker :

� Introducció a Game Maker

� El meu primer joc

� Conceptes avançats

� Tipus de jocs

• Introducció a la programació estructurada:

� Variables i Estructures de control

� Procediments i Funcions

� Arrays

� Matrius

• Presentació de Game Maker Arena:

� Donant intel.ligència als enemics

� Batalla Naval

Com es pot veure, els diferents temes en què es divideix el curs s'hanagrupat principalment en tres blocs:

• Introducció a Game Maker

12

Page 14: Game Maker: Jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar en Pacman . Segurament, després d'haver proatv el seu joc uns quants cops, desitjarà

CAPÍTOL 3. RESULTATS OBTINGUTS 13

• Introducció a la programació estructurada

• Presentació de Game Maker Arena

Introducció a Game Maker

En aquest primer bloc de temes es pretén introduir a l'alumne a la utilització dela eina Game Maker. L'objectiu bàsic d'aquests temes és presentar les diferentscaracterístiques d'aquest entorn i donar els coneixements necessaris per poder-hidissenyar diferents tipus de jocs, principalment Maze Games i Platform Games.

El primer tipus de jocs, els Maze Games, es refereix a aquells jocs en queel jugador es troba dins un laberint i, abans de poder-ne sortir, ha de recolliralgun objecte especial com pot ser una clau. També cal que el jugador eviti elsmonstres que es troben dins el laberint. El segon tipus de jocs, els Platform

Games, es refereix a aquells jocs a l'estil de la consola Game Boy en que eljugador es mou a través d'un món virtual i en el que pot saltar d'una plataformaa un altra, pot pujar per escales, ...

Inicialment es crearan enemics que es mouran de manera aleatòria. Sil'alumne vol millorar el joc i fer que els monstres persegueixin al jugador d'unaforma "intel.ligent" , caldrà que passi al següent bloc de temes en els que espresenten els conceptes bàsics de la programació estructurada.

Introducció a la programació estructurada

En aquest segon bloc de temes es presenten les conceptes bàsics relacionats ambla programació estructurada: variables, estructures de control, arrays, ...

Cadascun d'aquests conceptes s'exempli�ca amb la creació d'un joc que faciús dels conceptes presentats. Per exemple, per demostrar la utilització delsarrays, s'implementa el joc Snake, guardant el conjunt de posicions que ocupael cos de la serp dins d'un vector.

Com ja s'ha dit en l'apartat anterior, l'objectiu d'aprendre a programar seràel de poder dotar d'intel.ligència als enemics amb que interactuï el jugador enuna partida.

Presentació de Game Maker Arena

Un cop l'alumne és capaç de programar el comportament d'un monstre per talde que persegueixi a un jugador, també serà capaç de desenvolupar un agentcapaç de jugar a un determinat joc d'estratègia, per exemple, el joc de la batallanaval.

Game Maker Arena és un portal que s'ha desenvolupat amb la intenció depoder donar suport a l'organització de campionats en que s'enfrontin a travésd'Internet diferents agents desenvolupats per alumnes de diferents escoles.

Per la presentació dels capítols corresponents a la programació s'han dis-senyat i implementat els següents jocs:

Page 15: Game Maker: Jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar en Pacman . Segurament, després d'haver proatv el seu joc uns quants cops, desitjarà

CAPÍTOL 3. RESULTATS OBTINGUTS 14

Snake

El típic joc de la serp que va creixent a mesura que menja bonus que apareixenen la pantalla ha servit per exempli�car l'ús de vectors.

BombLink

El joc de BombLink s'ha dissenyat i implementat per exempli�car l'ús de ma-trius.

BombLink és un joc d'habilitat. La pantalla de joc consisteix en una sèriede bombes apilades. Cada bomba, en funció de la seva "metxa", pot estarcol.locada de quatre maneres: mirant a la dreta, a l'esquerra, a dalt o a baix.

Pels laterals de la pila de bombes cauen �ames que, si entren en contacteamb alguna "metxa", provoquen que s'encengui la bomba corresponent i totesles bombes que hi estan "encadenades". Una bomba està "encadena" amb unaltra, si les dues bombes estan a tocar i la "metxa" de la primera mira a lasegona.

El jugador pot seleccionar les diferents bombes de la pantalla, i modi�carcom estan coll.locades. És a dir, el jugador pot fer que la "metxa" miri al'esquerra, dreta, dalt o baix. L'objectiu del joc és aconseguir fer esclatar demanera encadenada el màxim de bombes possible, ja que a mesura que avançael joc, apareixen de forma automàtica noves �leres de bombes que fan que lapila de bombes creixi i la feina s'acumuli.

Page 16: Game Maker: Jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar en Pacman . Segurament, després d'haver proatv el seu joc uns quants cops, desitjarà

CAPÍTOL 3. RESULTATS OBTINGUTS 15

Batalla naval

El joc de la batalla naval s'ha desenvolupat com a exemple de programa quenecessita intel.ligència per tal de decidir una jugada. S'han implementat duesversions: la primera permet enfrontar-se contra l'ordinador. La segona versiós'ha adaptat per la connexió al portal de Game Maker Arena.

Page 17: Game Maker: Jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar en Pacman . Segurament, després d'haver proatv el seu joc uns quants cops, desitjarà

CAPÍTOL 3. RESULTATS OBTINGUTS 16

3.1.2 Disseny d'una plataforma per enfrontar programes

a través de la xarxa

Game Maker Arena és una plataforma dissenyada per permetre la celebració detorneigs en que s'enfrontin programes d'estratègia dissenyats per alumnes.

Existeixen tres tipus d'usuari que poden connectar-se al portal:

• Professors

• Alumnes

• Administrador

Els professors són els encarregats d'organitzar i supervisar els torneigs on en-frontar els programes desenvolupats pels alumnes.

Per�l professor

Un professor és responsable d'una escola. Les tasques que pot realitzar són lessegüents:

1. Crear i mantenir grups d'alumnes

2. Crear torneigs a nivell d'escola i supervisar-los

Page 18: Game Maker: Jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar en Pacman . Segurament, després d'haver proatv el seu joc uns quants cops, desitjarà

CAPÍTOL 3. RESULTATS OBTINGUTS 17

Quan un professor crea un grup d'alumnes, se li dóna l'opció de generar au-tomàticament un nombre d'alumnes amb un login i passwords genèrics. Llavors,el primer cop que l'alumne entri en el portal, se li demanarà d'elegir un nou login

i password, i introduir les seves dades.

Torneigs

Quan un professor crea un torneig, cal indicar una data orientativa de quan escelebrarà i el tipus de joc que s'utilitzarà en el torneig. Abans de poder iniciarun torneig, cal inscriure els alumnes que hi participaran. Així doncs, els passosa seguir a l'hora de crear un torneig son:

1. Crear el torneig i assignar-li una data

2. Inscriure alumnes

3. Iniciar el torneig

Quan s'inicia un torneig, es crea un procés en el servidor que es posa a escoltar enun port aleatori a l'espera de que es connectin els alumnes que s'han d'enfrontar.Així doncs, per tal de que un alumne es connecti correctament, caldrà queconegui a quin port de connexió cal que ho faci.

El professor pot supervisar l'estat del torneig. Pot observar quines partidesestan en curs, i veri�car que la partida no està penjada, veri�cant que s'hiprodueixen moviments. El professor pot cancel.lar partides per tal de reiniciar-les, assignar un guanyador si ho creu convenient, o �ns i tot cancel.lar tot eltorneig. Poder controlar les partides en joc habilita al professor per controlarels processos que s'estan executant en el servidor, per poder prendre mesuresen cas que hi hagi algun problema d'execució.

Page 19: Game Maker: Jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar en Pacman . Segurament, després d'haver proatv el seu joc uns quants cops, desitjarà

CAPÍTOL 3. RESULTATS OBTINGUTS 18

Per�l alumne

El primer cop que es connecta un alumne se li demanarà que con�rmi les dadesde que es disposa d'ell.

Un cop validades les seves dades, podrà consultar la informació dels torneigsen els quals es troba inscrit.

Page 20: Game Maker: Jugant a programar · totalment aleatòria, sense seguir cap estratègia per empaitar en Pacman . Segurament, després d'haver proatv el seu joc uns quants cops, desitjarà

Capítol 4

Conclusions

Fruit del treball realitzat durant el període de llicència ha sigut possible desen-volupar la base d'un projecte del que s'espera que tingui continuïtat.

El material web elaborat és la base d'un crèdit de programació pensat pera un nivell de batxillerat i serveix com a introducció als alumnes que pretenenorientar els seu estudis dins el camp de la informàtica.

Per altra banda, el portal per la celebració de torneigs pretén servir com unaeina d'interrelació entre diferents centres d'ensenyament de Catalunya, i qui sapsi més endavant, entre centres de diferents països.

Aquestes esperances es basen en que més professors s'involucrin en el pro-jecte, i sempre que el consumidor �nal, és a dir l'alumne, trobi el materialdissenyat del seu interès.

19