You are on page 1of 22
urso de Disefio y Programac eee ee} Eeeia de récords TT Te) D Blitz: Videojuegos curso préctco de viseaivego= Aprende divirtiéndote dona thc Bienvenidos de nuevo a Programacién y Disefio de Videojuegos, le ‘Marcos Medina primera obra coleccionable cuyo objetivo es formar al alumno en las prin Tne cree Cipales técnicas relacionadas en ol desarrollo completo de un videojuego. Eduardo Toribio Alo largo de la obra el lector est aprendiendo programacién a nivel general ttieeenesa cn ¥ a nivel especifico con ciertas herramientas y lenguajes, aprendiendo a tra- ‘COORDINACION EDITORIAL bajar con aplicaciones de retoque de imagen y también de disefio 3D y ar Eva-Margaita Garcia macion, Estamos descubriendo las aplicaciones profesionales mas impor- Cn ped tantes de audio y conociendo la historia de lo que se denomina “la industria rset Y MAQUELACaR deal videojuego", los ultimes 20 afos, los juegos que marcaron un avance. ‘Antonio G* Tomé ‘sus creadores y en general la evolucién del videojuego. noouccidn Marisa Copa Pero ademés, esta obra tiene un segundo objetivo, desarrollar y poten- suscnIcIES ciar la creatividad del lector, nosotros a lo largo de las diferentes entre- Tel gt 628 0203, Gas pondremos las bases y tu pondras tu ingenio, tu creatividad y tu Fax 91628 0038 Sapacidad de mejorar. srpcaneobereracon Nos encontramos a mitad de camino del viaje de 20 semanas que os -unacton Fotpreim Duval proponemos, viaje articulado en 400 paginas y 20 CD-ROMs cuya finali uPResion:Grfieas Don Basco dad es proporcionar las bases minimas para después cada uno conti- nuar su camino. Recuerda que para alcanzar el éxito necesitas cumplir tres condiciones: que te gusten los juegos, poseer cierta dosis de creatividad y finalmen- ‘Auda, Valdelaparra 29 (Pal, Ind.) t@ capacidad de estudio. 28108 Alobendas Madi) ie cereied oe oes Tal: 91657 6800, Una la cumples seguro. pir: Iberprensa ne bees 261 Zona de desarrollo Vamos a desarrollar el sistema de particulas que gestiona todos los efectos conseeno especiales de fuego, humo, chorras de luz y otros do cardctor climatico. Carlos Peropadre 265 Zona de gréficos AEDACCION, PUBLICIDAD Y Pasamos a texturizar todos los elementos del decorado que creamos en el ‘ADMMSTRACION ' Aumero anterior, usando distintos programas pare esta labor el Ro Ter, 7 (Po. nd. EL Nog” 269 Zona de audio 28110 Algete Macri) Aprendemos como editar manualmente en Anvil Studio nuestra composi Tel: 91628 02 03 clon desde el Compose. Fax 91 628 09 35. 271 Blitz 3D oe in ae Vamos a aprender cémo usar correctamente las luces, ya que un uso ade- cuado de éstas puede cambiar la ambientacién del entorno notablemente. oer ea mort 275 Tutorial Iso: aacanbie 84 32017 25 ono eect 1 Una tabla de récords es algo casi fundamental en un juego arcade, on el wap 275 gue 0 jugador acumula puntos. Aprendemos distintas formas de cept 608 laborer une. ‘PRINTED IN SPAIN 277 Historia del videojuego En esta entrega vamos a centramos en otro de los grandes géneros dal mundo de los videojuegos para ordenador: los juegos de Rol o JDR (RPG), 279 Cuestionario Cada semana un pequeno test de autoevaluacién, en ol proximo numero encontraras las respuestas. Cott areola relt ee ee eee ees Cor eke cakes sumartlio {sluts ei osvormet lee 0 ‘cus wrsoes comes daw senvcio Técuco: PARA ENCUADERNAR LA OBRA: Para consuls, dudastécnicas yreclamaciones Iberprensa ‘ofrece la siguionte dreccian de coreoelectrinice: > Tapas del volumen 1 disponibles en Iberprensa. ‘amesCiberprense.com Pedidos por teléfono: 916280203 ea > Tapas del volumen 2 ya a la venta en quioscos. |e Lara ha cemrmedelnpapstrd Et envio de nimeros sueltos 0 arasads se realizaré contra > Los suscriptores recibiran las tapas en su domicilio | reembolso ce! precio de vent al plico més el costed los ‘sin cargo alguno como obsequio de Iberprensa. ‘gastos de envio. Pueden ser solictados en ol teléfono de atencién | atctinte 91 628 02 03, oe ee Efectos especiales. Sistema ce particulas f nesta entrega vamos a desarrollar una de las partes del videojuego que pro- porciona mas espectaculari dad a la accién y ayuda a crear un entorno mas real. Nos referimos al sistema de particulas que gestiona todos los efectos especiales de fuego, humo, chorros de luz y otros de caracter climatico, como la nieve © lallluvia. Los sistemas de part culas suelen ser bastante com- lejos de implementar, sobre todo si se quieren buscar efectos realistas. Basicamente, los siste- mas de particulas consisten en el manejo independiente de entida- des, normalmente sprites, asig- lemplos del emisor de tbo 1 utlizedo para el ‘num de os dopares. jemplos del emizer de tive 2 utzado para Deere y » Preepamocién do nando a cada una de ellas unas propiedades fisicas. Cada una de estas propiedades determina el comportamiento de las particulas que, unidas, forman un determi nado efecto. Dependiendo de! numero de estas propiedades podemos obtener un sistema més 0 menos complejo y real Evidentemente, a mas variables mayores posibilidades. ) COMO SE FABRICA UN EMISOR DE PARTICULAS? Hay multitud de maneras de construir un sistema de particu: las, como es normal dependien- do siempre de nuestras necesi dades. Lo més esténdar y til es implementar un sistema general. a través de funciones, que admi: ta valores para modificar las variables que gobiernan alas particulas. De esta forma, sélo tenemos que llamar @ la funcién con unos valores determinados para conseguir diferentes efec- tos. En "Zone of Fighters” traba- jaremos con una funcién que crea lo que se denomina “emiso- res". Los emisores son zonas cuadradas 0 rectangulares, de tamaho variable, que pueden estar situadas en cualquier lugar y donde colocamos las particu- las para que evolucionen. El numero de ellas determina la densidad del efecto. Por ejem- plo, si queremos simular la nieve al caer, obtendremos mejores resultados si creamos mucha cantidad de particulas, ya que cada una de ellas representa a un copo, Aunque cada particula puede ser también une entidad en 3D como cubos 0 esferas. es mas normal el uso de sprites texturizados y siempre orienta- dos hacia la cémara. Y ¢por qué sprites? Sencillamente, porque el uso de emisores de particulas conlleva la creacién de muchas entidades para obtener un resul- tado mas 0 menos decente y eso supone muchos poligenos y por consiguiente un mayor consumo de rendimiento. Si, por ejemplo, usamos cubos, necesitariamos 12 poligonos por cada uno de ellos; asi que para crear un emi- sor de 100 particulas se tendrian que dibujer 1200 poligonos. Como sabemos, un sprite es un objeto plano formado por solo dos poligonos. Si lo orientamos hacia la cémara y le aplicamos una textura adecuada se pueden obtener resultados fantasticos y solo necesitarlamos 2 poligonos por particula. La idea principal es Dos captras del emizr de tipo 5, expeiaizade crear un numero inicial de parti- culas por medio de sprites. Luego, durante el juego, vamos modificando, actualizando y des- truyendo estos sprites. Una vez que se llama ala funcién, ésta crea un emisor en donde evolu- cionan las particulas siguiendo los valores de las variables de entrada a través de ciertas ope- raciones matematicas. c DEFINIENDO LA. ESTRUCTURA DE DATOS Antes de crear las particulas debemos definir cada una de las variables que intervendran en su evolucién en el médulo “defini- clones.bb", Como vamos a utili- zar un gran numero de entidades iguales y que tenemos que actualizar durante el juego, |o mejor es utilizar una estructura de datos (Ver Cédigo 1) Bien, en primer lugar vamos a dividir esta estructura para que se pueda comprender mejor. Por un lado, tenemos las variables que utilizaremos para el emisor y Por otro las variables para cada particule. (Cédigo 1. Usamos una estruct "ype enisar + Baisor Field X anisort, Bnisort,7_Bnisort ‘eld Rangoxt,Rangoet, Rangodt 3 Fertioula Pield Bitidad Field Vida Field alfat eld Angulo Rotaciont eld Yvel#, elf Zvelt Bud Type 262 (2) CREANDO Las PARTICULAS PARA GADA TIPO DE EMISOR En el juego, utilizamos 6 emiso- res diferentes: MEmisor 1: Se utiliza para el humo de los disparos de misi- les y bombas de minifusién. Emisor 2 y 3: Se utilizan en las explosiones y para el motor de la bionave y los ovnis. ml Emisor 4: Se utiliza para el cho- rro de luz que emite cada bono. mEmisor 5: So utiliza para gene- rar la nieve. MEmisor 6: Se utiliza para gene- rer la lluvia Debemos definir el mismo tipo de estructura y crear un numero determinado de sprites para cada tipo de emisor. La creacién de las particulas (sprites) para cada emi- sor la realizamos en la funcion “crear particulas()" en el médulo uncpentaudio bb”. Utilizamos Un buele desde 1 hasta el ntimero total de particulas de cada emisor € partir de la variable global “Num_particulas”, por ejemplo, para el emisor 1 tenemos: Sculas*3 + For x = 1 To Mun_pa Mun Particulas-100 * 3 = 300 particulas para el enisor 1 b.emisor = New enisor D\tided = Copymtity particula) D\Alfatl = Rnd(.2, .8) Entityalpha (b\entidaé, tyBlend b\Entidad, Vala) Next Aqui, solo creamos el sprite (particula”) que asignamos a “Entidad” y, sequidamente, defi- nimos su transparencia inicial Los demas valores se iran crean- ade datos Posicién del enisor ‘arato de] endear ntidad Sprite que forma la particula vida de 1a partfcula wna vez anitida ‘rangparencia do la partiula dngulo de rotaciéa de cada partScula Velocidad inicial de las particulas Los emisores de po 4s utitzan solo pars do y actualizando en la funcién de actualizacién del emisor. Podemos tener varios emiso- res del mismo tipo; es decir, sien 1 juego se producen al mismo tiempo cinco explosiones, ten- dremos a la misma vez cinco emi- sores del tipo 2 0 3. Ahora bien, si hemos creado 300 perticulas para el emisor del tipo 2, en todas las explosiones que utilicen este omisor se repartirian estas parti- culas. Del mismo modo sucede con todos los demés tipos. (®) GESTIONANDO LAS PARTICULAS DE CADA EMISOR Ha llegado el momento de cons~ truir el nucleo de nuestro sistema de particulas. Para cada tipo de ‘emisor utilizamos un procedi- miento diferente pero con el mismo funcionamiento. Asi que tomaremos como ejemplo la del emisor de tipo 1 (Ver Fig.7). Para crear un emisor desde cualquier punto del programa lla mamos a la funcion con los valo- [Enquems de un emizor y sus pardmetros de joiocaase ff] res correspondientes. Por ejem- plo, vamos a asignar unos valo- res previos y llamamos ala fun- clén pasando esos valores (Ver Codigo 2). Las’variables PosX_Emisor, PosY_Emisory PosZ Emisor corresponden a la posicién del emisor de particulas, RangoX Emisor, RangoY_Emisory RangoZ Emisor, definen el tama- fo del emisor. VeloX_Particula, Velo. Particula y VeloZ_Particula, asignan la velocidad inicial de las particulas. Vida Particula asigna el tiempo que estaré la particula en accion. TamarioParticulay Peso Particula definen el tamahio que tendra el sprite de la particula y su peso. Y Dir Viento y Vel_Viento asignan la direccion y velocidad que tendré el viento. Cada funcién de control de los ‘emisores la incluimos en e! médu- lo “funepantaudio.bb" y su des- cripcién la vemos en el Cédigo 3. En primer lugar, preguntamos sila particula ha muerto a través de su variable “Vida”. En caso afirmativo (b\Vida < 0), procede- ‘mos a inicializarla con los valores iniciales. Recordemos que no podemos destruirla, ya que sélo la. creamos una vez en el progra- ma. Por lo tanto, solo debemos inicializarla en posici6n, velocidad inicial, tamaho y tiempo de vida. Si la particula no ha llegado al final de su vida la actualizamos ‘seguin los siguientes procesos: mA) B\X Reisort-b\x mnisorésb\ivelt b\ivel#-b\xvel-.001/Dir_vientot (Cédigo 2. Funciones de control de los emisores = 50 Incrementamos la posicion ini cial de la panticula en la direccién, , del eje X segiin la velocidad indica- da en “Xvel”. Ademés, reducimos este incremento seguin la direccién dal viento (.007+Dir Viento#) para ) tener en cuenta la resistencia que éste ofrece, (Cédigo 3, 00000000 (Bock Bnisor¥, Posy_Bnisor'posz_nicor®, RangoX Bnisor#, RangoY_Enicor® RangoZ_Auisort, Velox Particulat, Veloy Particulat, Veloz Particulat, Vida Particula, Tanafio Particulat, Peso_Particula, Dix_vientot, vel_Vientof) For b.enisor = Bach enisor TE BAVidacd \X Baisor#-Rnd (PosK Bnisor, Posk Bnisor +RengoK Enisor#) \Y_nisor#-Rnd(PosY_Bnisor, PosY_Bnisor +Rango¥_anisor#) ‘b\z_fnisor#-Rnd(Posz_Mnisor, Post_fnisor +RangoZ_Bnisor#) b\tvel# Rnd (-VeloK Particulat, Velox Particula#) b\tvel#-Veloy_Particulat bb\avel#-Rnd (-Velox_Particulal, Velo Particula#) Escala¥=Rad(.1, Tamafio_Particula) Scalesprite (b\antidad, Eecalat, Escalat) b\vida-ind(Vida Particula-40, Vida Particula+40) ena b\X_Rnisor#=b\X anisor#sb\.tvel# biavell-b\xvel¥-.001-Dir_Wientot D\¥_Brisor#-=b\¥_Bnicor#sb\vvelt b\welf-b\tvel¥-Peso_Particulat b\z_Rnlsor#-b\Z_ Brisor#+b\zvel# b\avel#-b\zvel#-.001+Vel_Viento# Wide = bivida = 1 Positionsntity b\antidad,D\x snisor#,D\Y_Anisor#,D\z, Anisor# b\Angule Rotaciont-b\ Angulo Rotacion #12 Tf B\ Angulo Rotacion #2360 b\ Angulo Rotacion #-1 Rotatesprite D\zntidad,b\ Angulo_Rotacion + Next nd Function Function enisorparticulas + Resistencia al viento » Gravedad ; Amenta la velocidad por el viento Gaetoy pemeciin do 283 eeceoncueny Valores necesarios pare obtener un chero de Dartcalas estanderutlzando el programa de featoo “particule bb" ry Liecatirepiner tc 9 Riise Un ejemplo de hilo de uz idea para el ume de =e) ryel Paso Aqui, determinamos el des- plazamiento vertical de cada par- ticula incrementando la variable que controla el eje ¥ “Y_Emisor” seguin la velocidad dada por “Yvel”. También afiadimos un factor de gravedad (.01+Peso Particula#) que depen- 26a deré del peso que le asignemos a la particula, mc) Hz inisoriab\as byzvel tb isordvb\zvel =vel_Vientot El siguionte paso es determi- nar el desplazamiento en el eje Z ("Z_Emisor") segiin el valor de la velocidad inicial de la particula almacenada en “Zvel”. Aniadimos ‘también un factor extra como la velocidad del viento ("Vel Viento#”) =D) Decrementamos el valor de la vida de la particula para dar paso a su siguiente estado, me) b\mticad, Y por ditimo, dibujamos el sprite y lo rotamos segtin e! Angulo definido por “Angulo Rotacion#” ‘Como se puede observar no es realmente un procedimiento complicado. Resulta sencillo y ademas es bastante eficaz. ) CREANDO EFECTOS ESPECIALES Una vez que hemos completado nuestro sistema de particulas, os el momento de disfrutarlo. Para obtener diferentes efectos basta con pasar a la funcién distintos valores. Para comprobar el funcio- amianto de la funcién vamos a realizar pruebas con un pequenio programa de testeo incluido en “Extras” del CD, llamado “Particulas. bb". En 61 utilizamos exactamente el mismo sistema de particulas que acabamos de expli- car, el que aparece en el juego. La nica diferencia son las medidas de los valores, ya que creamos un ane -lompo de emizren lamas Ee nce suentar ‘orca rte lon para consegur est efecto entorno 3D estandar. Asi que los valores que debemos colocar deben ser mil veces menor es que los utiizados en el juego. Los diferentes efectos que podemos crear dependersn de los valores que asignemos a los paré- metros de la funcién. Es facil utili- zar el ejemplo que se acompana para hacer pruebas con distintos valores. Apuntando estos valores podemos tener una buena libreria de efectos que podemos aplicar en nuestros juegos. El gestor de particulas mantie- ne una estructura abierta. Por lo tanto, es posible la ampliacién de nuevas posibilidades, como por ejemplo, tener en cuenta la elastici- dad o peso de cada particula, necesario para implementar el bote con el suelo u otras entidades. En el préximo numero... daremos vida al terreno de juego. colocando todo el decorado y seres vivos. = Rcazes fl Fabricando los elementos del juego (V) ee ae eee Peete Pena aa Pats Pe Ne eae) eee Ree aes Peer eee ete nem SR ea Serer Ee ee Ree anew eee a ae ete Pea et tet ee ee Ree eee ea eae Saree eee eee eee eee Ear) Peer ee ie eta ee are) Ree a rr aera Gee eee eee Cee eee Ot eee eens eee carne ae Imagen del template patie erode por bsp ate Sn Uther co ns scree dt sacs Pea eee cacy eee eee Teen eee ner texturas mas realistas eee eT) reese can Peers wt as peetene tet rere ir) eee ei ee eee eC ed Pee tae eC Man ete Peer atae th Se eee) pee nee cee Oe ete Pea a ee oe eka Be ee ar ee ere ne ated Pee ee eee disefios. eee ena ieee es Anrovechemos le Kraria de patron ytetur Pa MN a ‘Paint Shop Pro para obtener una pred de ld delo del primer almacén “al- Vamos a empezar creando la ee eae Rae ae ee ee eo Peter eee on ee cm eee tr) Cee ce) Oe ee ee eae nee erry Penne een Peres eee Ce oe ee i eet a eee Coed ea epee ee ate ee Ae Pore Sea See aaa Pree ee een ok ee ee ee ae ee ene eee eee a ee eo) Coat eee aS Pe ees oe eee) ee Ree ae em ees Code er Para personlzar nuestra pared se pueden spicar Rec ee CeCe ERIM “1c! uminaion con x heramionts de ret err eee ee ac aes — Peg ee eae eas ts Soe ar aa Pen ae a a ee are a eet oe ee er) escent ke Remo ees ee lamos el fondo (null). Luego, _y en Styles seleccionamos el Cee eee a en Cocos VL eco ei a we em Ne etree re gee es eee a Cy nee er) ease) Peete ae oreo y Cee Ta te Eee ae) ee a ee ee aoe bordes de piedeutlizremos de vero» ae reentrant ee ee ae ert oon cP Pee ee ca eee eae a ea ei ea ee eee eee ee a ea eee Pe ee ee ee Pee a as ne a) CO ea ae eee a eon eae ae eee eee eee Ee ect eee ene et are Pe ne ee a eee ar elo verde y azul de 70,-45 y-5. | puede encontrar con el nombre et eee a a eT at nee Peer eee eee eee eee ee eee ee era arene erate En la ventana de opciones Wand"). Hacemos clic en el Eee eee ees Debemes sis goto defo pos pos MR ra eS ripest oh eaten CR RCM aa aa Rc aR ra er a ta Cee erent ian Da teste i aon a ae AT partes dela imagen y eclarar _paleta de capas (Layer Palette) eee ee ee eer Py tend ce te aot freee ea ne ee ory Ee ete ee a ee ere ee an) ee ta en on re re eae ete met erent Sea necator eno ae Pans eat ete eatery ee cert a Ne ea ee ones ieee ee ae ee eee Ee a ee eee eee ae ars eter texts tat wizxeos part RA a to 2a Samm otra pe samiimneperents come gue Bote Sela R A aR oo ee Re ene fon arc gta nx ctios ATS ee re Terre Onan ane Ra ne Cee eee eee eee snes eta es ary eee aes Seer oer ee ee rs eee ney ee ke en ee etre eee ete a mean ee nN ae ne Cre Cer a Seana ea en ean eae ERG Peete oe eee eee ear Ceetn nC ees eee mnt cy ee ea tere Paneer rm Le as oan ee a Peete tee) Por ca Rey eae eee een ee Coen ee cae ews a See Stet tras eee nce ee ee en eee ee eae ee nea) reer eer at eee ee Pe ea) Bare aoe rs ere ee Beene tase Cree ee ence ee ee ia ar (Ver Fig. 6 / 1) ee aca eae eee Pe ahaa ketcy) eae eet ee er ences Ree eerie aoe eee kaos Ree ak rae Re aE eee ete eee eee ree ee eae Rae Cartan Oe eC eee Eee almacén en la plantilla (inclui- ones eee eee PON aa eee Re eee cog) ot ammo een LC) ete eR ec) ae ee ea ae ieee ad eee mt ate ajustamos (Ver Fig. 7) See wer aca Peeters ee a teed ee reno) Pree aac eerie a tar ca Pee eC set Peete rae ea ii Pee oe eek da ea) Cee Ce eee ear) Pitre eke ner pants ee ea ery ee ee rae) ec Se aN aaa Pe ee een eo) Sore a ete) ee el poe ee Vee rea ore Seu) eect) Rese eeu ny Coan Rae eae Pee ee Saeco uta ees ee ea ron Zee eee ca ea) Peee ee ae see eed Pee ces ake eee aed eee Rete tes Cre ces Breen ca ara Reread See ek Stee a in ee eas eee aa Cee RA) Pe ac Penmaes) Peet aCe Bree eta es eee ies Pe een can ee ee ce eae eee ee een eee CeO inert kira) Ere RC ee a et eee eee mcr camente siguiendo el mapea- Pemt2 eset ae awe} eco e cet is Pee eee eae eats Pere mary Perce ara eee tee ete Beet ee Deer Seta) Cee eet Ie ee eee Perea a ei} ss de suet la iagan dea pared» lpr ‘ibemoseoloca ls imagen del ogee del juego. eae acer Deets tee eo Peeters Peer ace nod eee eee a ener Pea ce! Pere Otek ed A ian Pearcy Ceca ae ee Senta eaten is eee ere Rae N rer Pee ae acs um Seen Red Beene aceite ewe Sennen) Erna ae eee) ee esta aoe ae Pee Cee ok ces ca Pree Pre Rae) ayia r re oO aa Ce eae ed yaar Ce Rr) una intensidad (Intensity) de EOE ceo) Pee eee al eee eed DO aii) Poca ence eas Fig. 11/1) ieee enc eee ate) peer tena) ee ee a ae Ets een eee eet) Peake eect ences ea aces eee ea a a | See Oe reese te ee eed Coe eae te eae ace ee ee ee a! Steet eee ae eee eee ne Cree ee Poe ater) oe oR eee tee aa cake nerd ete eae eet acy Pet eee ee cia) Peace ae wa) Sea eater Pe eer ne eee Oe oe ae Reais SPs Rca kaa Ru ee arora Cow eee nen car) Poetry eae rae rae aon See ata Pa aa ecu) Peer re etc ei) Craton) Pera ate eae que tenemos de la pared y los eee ea a) ee eer aera Oa ek aLy ere eres ean) Pees eee earner Satie ae ee eee Re ta completa con un rectangu- ena ea aa ed Peer a aracs Cee eee eer eran sad eae eae eee a i En el proxime ademés de terminar las texturas del decorado, aprenderemos algunas técnicas para terminar de crear las texturas para obtener texturas propias de diferentes maneras. Nuestro primer tema musical con Anvil Studio (II) eee eet eas) eRe ere ects eee eae Peer ee ie hated Pest hee ee Peer eee Ot emo pore eee set Se Pe es ate Ce eee Peete oe Peete re ae ee en ee ener et Nk eee fer Penn ee ae ee A Eo eee SiLENCIO eee ey J Peer ea Teo) ri Pee ee eh onere Seneca cae xquema de ls opciones del seein pee an en tC See cient Compose oe ve de FA), pentagrama de piano eee ee te ME os id Bene ee cas eats ce cena na Pee Ue Oe oe eco Peer ent Me Ta ee) eee een eet Cee Oe Mel tt te a eae eo ee te ee Cc Deere as ee cee ie ee eee ee ee ka) Pa a eee oon) Peet ote ea ee eat Neeeee tc ea eee eee ecco erat Sete eee) oem aC en ne tte ae a eS ea eed eR ee eC ECM LRM Con ncion insert Rest es pose ise Pee een eet ee Reo ad multiples composes vacios cho e izquierdo. Para navegar alo que insertaremos un silencio eee eee et Sn ee cc eter ee Ace eee ace Pee ener Pe ence Ce ete oe ee ee ae aay ieee an ee a) Coen eme tt acetal i) Nee eee tee ee eT Peer BO nn cargado a través del pentagrama. determinado de compases en ne eee Sei enc ee cane ee eee oan eane ee mC eee a Petes eee et ee eee ee pent te eet es eee Peeaeerastere ret ERAN CCMEE | 1extrene omecione of oe aoe eg es eet cen ios insertr nosy scores, Fig. 1) PoSre ence) Putando con ol oto derecho dl rat sobre ead sh 0h 0 Toon Nese Desolace le nots hace ambos lds resute mis Sien vez de compases en Se aera Poaceae) teres ae atte nen eee etd ee eeu) Pee ea ere eer ener Reece ators Pent eer notas seria utilizando el teclado vee tas (ene ea eee pea eee Coe ae ei) Pee eet cae cea a as ieee aber Seg eee ole Ce ee ees Dae ee ed eet ag) Otra opcién interesante que Oe ee tet eae ee tines neat cae eee eats ee eee eerste e tae eee in Neeser Peete ke ea og ee heady Pes aoe a Nac) See ee eee eee ee Pa ee tert modificar y elegimos Properties, aera ee ee eras See ees Ree a cae) eed een ae ead ee ea oe eee eee ee Cece ate eee St ne aecicl) een ead Peers ea ee Pee ae et See aac Pe eal ga) Setecae ea Ree eres eee eee eaters cre! rd Pree ate Perens eet anit eee erie en as Cee ais ate cae eee eet eee aed eee a eae! eee oe tie Soe ae eee De ee aaa) acorde; es decir, mezclamos las Beene et ee ena canoe Pea aes etna inserto, en el que las notas co- Pee eee) Cee ae aed Dee geese eee een teers tes rena) eee cea ars Cees ea ts Pete ee eee ee Crete hea Beek Cae TaD) También es posible inserter sim- eee ae aoe Pee eerie res, crescendos, ete. Por ejemplo, eee ernie ra eae eee ec eee Een] pe cee eee peer ret gido (Ver Fig. 6 /2) En el préximo aprenderemos cémo edi tar en el modo Piano Roll Ademés, también empeza remos a trabajar con las pis- tas de audio, Mianejo ce luces en Blitz3D ‘ome en el mundo real, toda escena 3D necesita de una iluminacion para poder ser apreciada por la camara. Un uso adecuado de las luces puede cambiar la ambientacién del entorno notablemente. Por ejemplo, no se puede conseguir un ambiente lugu- bre si no disponemos de tonos oscuros en la ilumina- cion. Tampoco podemos: simular la luz del Sol sin tonos célidos y brillantes. Por eso, un buen criterio en la eleccién de las luces haré que nuestra escena 3D gane rea- lismo. Blitz3D nos proporciona las instrucciones necesarias, para lograr la iluminacién que necesitamos. Podemos crear diferentes tipos de fuentes luminosas y alterar su color, rango 0 potencia Ademés, las luces son trata- das también como entida- des, asi que podemos apli- carles alguna de las funcio- nes de éstas como posicién, Ronee os desplazamiento 0 facto- res de visibilidad En Blitz3D, las luces determinan el color de todos los vertices de un poligono. La influencia que la luz tendra en el entorno influira por su rango de accion. Cor Suz AMBIENTAL Por defecto, Blitz3D esta- blece una luz ambiental que ilumina a todos los vertices de los objetos por igual y que afecta a todas las demas luces. Disponemos de una ins- Para eta que os bjts de escen sven planos neces {amos ears pe de hz. El igure se muestra lesa ‘nae ns clerntes ces que poderos cer en Bt. Neier truccion que nos permite cambiar el tono de esta luz: “AmbientLight” jnbientLight Componente de color. fo, #, zult Por ejemplo, para determi- nar una total oscuridad escri- biromos: Si solo usésemos. esta luz, se verian todos los objetos de Ia escena sin ningun tipo de som- bra, es decir, planos (Ver “ejemplot.bb") (Fig. 1). Para evitarlo, debemos: crear al menos algun tipo de luz diferente, ® CREANDO LUCES En Blitz3D podemos crear tres tipos de fuen- tes de luz: direccional, punto de luz y foco de luz. Para crear cualquie~ ra de estos tres tipos, disponemos de la ins- truccién “CreateLight” Los tipos de luces se deter- minan por un numero: Tipo de Luz = 1 = Luz direccional Tipo de Luz = 2 = Luz Puntual Tipo de Luz = 3 = Luz Focal Podemos también especifi car una entidad madre para la luz; es decir, si tenemos un ‘cube y lo asignamos como entidad madre, al mover el cubo la luz se movera con él: reatecube () (2 cubs) Novemntity Por defecto, si no dsigna- mos ningun numero al paré- metro “Tipo de luz”, se crearé una luz direccional (Fig. 2) ® LUZ DIRECCIONAL Este tipo de fuente de luz ilumi- na un érea completa por igual dependiendo del angulo. e7 (sombreado) de! terreno (Ver “ejen- plo3.bb) (Fig. 4). @ LUZ OMNI DIRECCIONAL La luz omnidireccio- nal o puntual es un punto de luz simi- a r lar, por ejemplo, @ una bombilla. Se fuente de luz on un ir Luz Direccional = CreateLight (1) [x atekeeteummates Luz_Omni=CreateLight (2) propagéndose en = tin radio de 360 Enel olomplo nimero 2 podemos observer como ateets» Grados hasta alcan- Pare mostrar adecusdemente a specto completo de ae los poligonos dels objetos 3D une luz ereclom Zar el limite establo- Mee emmtsresionaie neeatres beer ea cido. A medida que se extiende, va per- Generalmente, se utiliza para _diendo intensidad generando (Ver “ejemplo5.bb", “ejem- simular la luz del sol. A diferen- un degradado de luz: plo8.bb" y “ejemplo7.bb") cia de la luz ambiental, la luz (Figs. 6,7 y 8) direccional no ilumina toda la uaz_mni = Crea 2 En ocasiones, necesitare- escena sino solo los poligonos. mos que un foco apunte de los objetos, los cuales recibi (Ver “Ejemplo4.bb") (Fig. 5). siempre hacia un objeto de la ran la luz desde la misma direc- escena. Por ejemplo para ilu- cién y con la misma intensidad. ™ FOCO DE LUZ minarlo mientras éste se Modificando el angulo de la El tercer tipo de iluminacién mueve. Para lograrlo, tendre- fuente de luz se pueden conse- que podemos crear con mos que utilizar la instruccién uir variaciones de iluminacién, “CreateLight" simula un proyec-_ “PointEntity" por ejemplo, en un plano (Ver tor; es decir, un cono de luz. “ejemplo2.bb") (Fig. 3): jeto3 Provector = Createbicht ( 3 Para modificar la forma céni- ® OPERACIONES: Este tipo de luz con un ca se dispone de dos circulos CON LAS LUCES 4ngulo de inclinacion es ideal _de luz, uno interior y otro exte- Los tres tipos de luces pue- para iluminar terrenes. El resul- rier, cuyo tamafio puede ser den posicionarse o desplazar- tado de la inclinacién seré mas modificado. Ahora bien, este _se por la escena 3D por medio visible si se activa el “shading” _ tamafio viene establecido por la__de las instrucciones = apertura de ambos “PointEntity” y “MoveEntity” conos, la cual es determi. Ademas, se les puede asignar nada por un angulo. Para cualquier color con la instruc- proporcionar los valores a cién “LightColor’ ambos 4ngulos, dispone- mas de la instruccién | Componente de “LightConeAngles” ’ Es preciso recordar que Los valores por defec- | Blitz3D permite crear to se sitdan en un angu- | simulténeamente todas lo minimo de 0 y uno las luces que la tarjeta de CELAOLAINIE §=™éximo de SO grados. El | video soporte; general- valor maximo posible mente, un maximo de 7 ‘St activamos el “shading” del terreno podemos observar para el anillo interior va (con la luz ambiental por cémo varies inedencia de una luz irecconal cuando desde Q hasta el dngulo | defecto incluida). Ss del anillo exterior. Foco = CreateLight ( 3) ‘Se pueden relia algunos efector artistic usando Asignando un color blanco ("LightColor Luz, 255, 255, 255") establecemos el brillo maximo para esa luz. Por el No hay estable- cido un valor exac- to para el rango de cada luz. Este os aproximado y pasa por aplicar el ensa- yo = error para obtener los resul- tados mas adecua dos. Una opcién muy interesante que nos ofrece Blitz3D @s la de crear una falsa iluminacion sobre objetos 30 (meshes). Este sis- tema resulta interesante para “pintar” nuestros decorados. Para realizer esta operacion disponemos de la instruccién contrario, con un coler negro “LightMesh”. (‘LightColor Luz, 0, 0, 0”) no habra efecto de brillo alguno. También, se puede obtener coli G luz negativa aplicando a cada componente de color un valor negativo maximo ("LightColor Luz, -255, -255, -255"). Esto anula cualquier tipo de brillo. Es ideal para obtener efectos de sombras. En el ejemplo 8 se puede observar como proyectando una luz negativa desde la esfera, dicha luz origina la sombra de ésta sobre el suelo (Fig. 9) Desgraciadamente, este tipo de técnicas no resulta efi- caz en la practica si queremos proyectar sombras irregulares © de varios objetos al mismo tiempo, ya que necesitariamos una luz para cada uno de ellos y, I6gicamente, existe un limi- te impuesto por nuestra tarje- ta grafica Como comentabamos en la introduccién, la influencia de las luces viene determinada por su rango de accién. Todo lo que queda fuera de ese rango no seré afectado por la iluminacién. Para modificar este aspecto, Blitz3D nos pro- porciona la instruccion LightRange’ @ UTILIZACION DE LUCES El uso de luces se torna varia- disimo en multitud de ocasio- nes. Para los videojuegos, su utilided es evidente y entre una lista interminable de posi- bilidades se me ocurren algu- nas interesantes y faciles de implementar. Para ello, vamos recorrer cada una de las diferentes instruc nes que disponemos para el desarrollo de ilu- ®@ NOCHE Y DIA Este efecto resulta ideal para simular realismo en entornos abiertos. Es ‘sumamente facil de pro: gramar y el resultado "salta a la vista”. El truco radica en utilizar las propiedades que nos ofrecen la instruccion ‘AmbientLight” y les luces direccionales. En primer lugar, es necesa- rio crear una luz por MUNA COM acca: 0) Enel ejemplo 60 aplic el deeplacamianto de un foc0 pare simular la opresntacin de un ecpse de sl defecto (tipo 1, direccional) que haré el papel del sol. Seguidamente, debemos utili- zar una variable del tipo float que utilizaremos para aplicarle Debemos jugar, ademas. con la luz ambiental, variando su brillo para aumentar el efecto de la rotacién del sol Asi que tenemos que utilizar otra variable float para dismi- nuir y aumentar por igual las componentes de color: Podemos observe lfuncionamiento de todos los pars focal ono eorplo numero 7 conten: Para lograr que la luz se modifique desde un valor a otro y viceversa, utilizaremos otra variable que servird de incre- mento de la cantidad de luz (variable “Luz"). Por ultimo, cre- laremos una funcién que haré todo el proceso y que tenemos que debemos llamar desde el bucle principal del juego: tajas de la funcién coseno para lograr un modo mas ‘elegante de fluctuacién entre claridad y oscuri- dad, evitando el uso de nales: lluminacion_Méxima-50 : Velocidad Transicién#=0.01 Luzslluminacién Maxima + Cos (MilliSecs0 )* Velocidad Transicion 274 3 Con las dos senten- Foco = CreateLight (3, Estera)iy rin era aeons) oe <6! cias condicionales, sim- plemente, cambiamos el signo de “Variacién_Luz” Para conseguir sumar o restar al incremento del valor de “Luz”. Con ello, conseguimos fluctuar de un valor a otro. #@# EXPLOSIONES Y DISPAROS EI segundo tipo de ilumi- nacién (omnidireccional) nos puede ayudar a enfatizar, aun mas, las explosiones de nuestros juegos. Simplemente, consiste en ir creando y destruyendo luces en el momento del impacto. Realmente, si vamos a tener un uso masive de explosiones en el juego puede ocurrir que, en ocasiones, se rebase la barrara del maximo de luces simulténeas permitido por la tarjeta de video. Llegado el caso, veremos cémo nuestra escena se oscurece por momentos, ya que perdemos la luz ambiental. Para evitar este problema, es fundamen- tal destruir la luz una vez visualizada. Aunque este sis- tema tiene una efectividad del 70%, siempre se puede evitar utilizar luces reales para este cometido y simularlas por medio del coloreado o pintado de los tridngulos involucrados en la explosion. Esta técnica de mapeado de luces en tiem- po real denominada “vertex lighting” resulta algo mas complicada de implementar, pero es una de las alternativas, més usadas por los juegos de hoy dia De igual manera, es posible aplicar este efecto a los dispa- ros. Basicamente, creando una luz en el momento de dis- parar, por ejemplo, para simu- lar la combustion del arma Por razones que ya hemos comentado, no es convenien- te crear una luz y que se des- place en la trayectoria del dis- paro. Facilmente, sobrepasari- amos 61 limite de luces. ——k=z = ® LINTERNAS Este tipo de efecto es facil realizarlo utilizando el tercer tipo de luz (foco). Consiste en situar en el objeto emisor (lin- terna) un foco de luz con el ajuste del rango y el angulo de apertura adecuados. Podiamos ver el uso de esta técnica en el tutorial que dedicamos a los niveles BSP del numero 11. En ella, situa- mos la linterna al nivel de la nterna-Createl-ight (2, ‘i ® SOMBRAS DINAMICAS UTILIZANDO LUCES Como hemos comentado, existe una técnica para gene- rar sombras en tiempo real de un objeto 3D mediante el uso de luces negativas. Basicamente, la teoria consis- to en asignar al objeto un foco de luz negativa (sombra), el cual se orientaré hacia la fuente de luz principal (Ver "ejemplo8.bb") (Fig. 9) Danse | aprenderemos como utilizar el teclado, ratén y ispositivos para juegos en nuestros programas. Creacion y organizacion de tablas de récords na tabla de récords es puntuaciones ordenadas de algo casi fundamental mayor a menor. Cuando un juga: enun juego arcade, dor supere el minimo se insertaré a enel que eljugador ena tabla en el lugar correspon- acumula puntos. diente. Debemos entonces afron- s Basicamente, consiste en tar un par de problemas. Por un 3 mostrar una lista, més omenos _lado tenemos que ordenar la tabla x extensa, de nombres con los de mayor a menor y por otro correspondientes puntos conse- _insertar un elemento nuevo si ‘guidos. Para que un jugador llega el caso. Para resolver el pri- pueda inscribir sunombre en la__mero de los problemas se puede lista, es necesario que acumule utilizar cualquier método de orde- £1 método shel este efcaz para ordenar une una cierta cantidad de puntos acién esténdar que veremos a abla con miichos elementos, aro. mas com. superando una cifra minima pre-_continuacién. = establecida, La lista puede ser : todo lo grande que se quiera METODOS DE ‘embargo, existe una relativa dife- Normaimente, se visualizan gru- ORDENACION rencia de velocidad entre ambos. pos de diez nombres en pantallas Basaremos la ordenacién de la consecutivas, pero amenudo se _ tabla en los valores de puntua- METODO SHELL suele usar un scroll vertical para__cién. Existen varios métodos Este sistema de ordenacién se mostrar toda la liste. En nuestro para ordener una tabla. Entre los _utiliza para tablas con un gran tutorial vamos a implementar una més conocidos se encuentran: numero de elementos. Por de estas tablas. Lalista conten- _burbuja, seleccién, shell, inser-__ supuesto, no es el ideal para dra s6lo diez jugadores y la pun-_cién y quicksort. Nosotros sélo__nuestro caso. demas, es mucho tuacién minima inicial para poder __veremos dos: el método shelly el_mas complicado de entender que entrar en la tabla es de 3000. Le de burbuja. el de burbuja. Sin embargo, lo idea es mostrar ala vezenpanta- _—El resultadoes exactamente _hemas incluido por motivos lla Unicamente las diez mejores igual utilizando uno que otro, sin didacticos, Este método, basica- Cédigo 1. Método shel unction orden tabla Nam Elenentos-10 + 1 Wile Num_Elenentos>1 Nun_Elenentoe-Int (Num Elenentos/2} ; Dividinos 1a tabla ef Syititad_ordenad (While SWtitad Ordenada-0 ; Procedenos a recorrer y Sitad_Ordensdae1 ; Activenos en Switch For neO To 9-NumElenentos ; Recorrencs la prinera mitad para ordenarla Num Elenentos ; Situanos el puntero de comparacién TE Puntuacion (n) " If Puncuacion(m) < Puntuacion(n} } Intercanbianos valores usc Punta Puntuacion s) =Puntuacion (n) Puntuacion (n) =aux Puntuacton! enait Next Next snd Function ‘ion Insertar_en Tabla(j8,p) jux_Puntuacion-p : Aux dugador For 1-9 To 0 Step -1 Tf Aux Puntuacion: Puntuaeion (n) -Aux_Puntuacion: Return nat Next End Function 276 yn-Puntuacion (m): ‘ux Jugadors-Jugador$ (m) ‘Jugadors (m) AUDIO Audio Phos 1.02 Si aun compones usando una guitarra, gra cas a este programa podrés afinarla con rapidez y exactitud Audio Phonics Instrument Tuner 1.02 Otro afinador de instrumentos, complemen: taro al primero, répidoy preciso. Da Metronome 1.1 CCompieto metrénomo por ordenador para ayudarte a llevar correctamente el ritmo en tus composiciones Locator MIDI Sequencer 1.10 Secuenciador MIDI de 256 canales. Tene un teclado virtual, un mixer y un editor WAV con soporte de efectos DirectX. 's Guitar Tuner Cool MP3 Splitter Divide MP3 por tiempo o tamafio y une los, fragmentos. Aplicacin basada en QuickTime que simula ds bandejas de DJ en 2D para mezcla de audio, > DISENIO 2D MExplosion Graphics 3.8.2 Una forma dvertda de ver tus ftogratas y de escuchar tus archivos de misica, 280 Autoimager Potente y complatisimo procesadar de imé- ‘genes en masa. Ideal para trabajar rapido con muchas imagenes. Quick Screen Capture 1.2 Préctco y funcional capturador repleto de interesantesfunciones. MEyeBatch 2.0 Fenombra, retoca y procesa imagenes en ‘grupo gracias a esta aplicaciin, ™PhotoCleaner 1.3 ‘Arregla los problemas comunes que puedas tener en tus imagenes con un sol ci MPhotoPhilia 1.7 Organiza tus imagenes y aplicales sencilos efectos usando este programa, > DISENO 3D 3D AIM Animation 3.0 Crea animaciones en tres dimensiones usando multiples modelos 3D Art Composer 1.1 CConstruye imagenes en 20 a partir de distin tas modelos yfondos. Crossroads Completo programa para convert distntos archivos de 3D fécilmente Adobe Dimensions 3.0 Herramienta poderosa con la que podrés ree lzar la trea de renderzacién de abjetos 30, 1 ModelPress 2.0.0.37 Publica en formato web archivos en tres dimensiones. Terragen 0.8.11 Excelente programa para disefarpaisajes ‘0n 30 y rendorizar escenas muy reaistas, PROGRAMACION 1m OSetup Installation Suite 3.0 Crea instalaciones sin necesidad de realizar scripts. i ImpulseStudio 3.05 Completa suite de com: Ponentes Active X para programar en Visual Basi aVTur Performance Analyzer 6.1 Excelente utildad para analizar datos de diversos modes. > JUEGOS Diablo Uno de los juegos de ro! ‘mas popula res, Ambion tado en la Edad Media, ha legado a jugado- res de todo e! mundo, Final Fantasy Uno de los RPG més famaso para consol, en esta version para PC, Dungeon Siege Demo del popular juego con exquisto tentorno 30 real, Te entusiasmars Zone of Fighters Como todas las semanas, nuestro juego. > VIDEO Adobe AfterEffects 5.5 La herramienta esencial para realizar fants. ticos efectos visuales. mNVDVD 2.0 Excelente programa de video para que ten- 5 una auténtica experiencia multimedia > EXTRAS En este apartado encontrarés todos los ‘ejemplos de los que hablamos en el colec- cionable, para que no pierdas detalle.

You might also like