Mostrando las entradas con la etiqueta P* blog. Mostrar todas las entradas
Mostrando las entradas con la etiqueta P* blog. Mostrar todas las entradas

miércoles, agosto 31, 2011

¿Ya no puedo jugar más?

¡Ta-rá, último post de P*! A partir del próximo post regresamos a la programación regular.

Soy Simón, el venezolano programador de segundo año.

En Venezuela conozco una persona que es actriz de voz. Ella hace las voces en español de películas, dibujos animados y animé.

Según ella, una vez que uno se convierte en un actor de voz, ya no es posible ver las animaciones como un espectador normal. La razón detrás de esto es que, mientras ella está viendo la animación, sin querer le presta atención a las técnicas de voz.

"¿Cómo hace para expresar éste sentimiento? ¿Cómo hace esa voz? ¿Por qué usó esa entonación en ese momento?" Et cétera. Cuando ve animaciones no puede concentrarse en lo absoluto en la animación. Siempre termina concentrándose en las técnicas de voz.

Una vez que uno se convierte en creador de juegos, ¿ya no es posible jugarlos como un usuario normal? ¿Será que uno se concentra en las técnicas de programación, y que uno no puede concentrarse para nada en el juego?

En mi caso, es un poco así. "¿Cómo hacen para mostrar tantos polígonos? ¿Cuándo están cargando este escenario? ¿Cómo hacen este efecto?" Et cétera.

Sin embargo, no es un problema tan grande como el de mi amiga la actriz. La primera vez que juego un juego con toda certeza ocurre lo descrito. Me preocupo por las técnicas de programación y no me puedo concentrar en el juego. Sin embargo, una vez que he aclarado todas mis dudas puedo regresar al mundo del juego. Es más, como ahora sé lo difícil que es hacer un juego puedo apreciarlo mejor al momento de jugarlo.

Volverse creador de juegos tiene tanto cosas buenas como cosas malas...

domingo, agosto 14, 2011

Un ciclo

¡Uy, penúltimo post de P*!

Hola, soy Simón, programador de segundo año.

Hace varios meses fui asignado a un equipo de desarrollo. Desde ese momento he estado trabajando en el desarrollo de un juego que no puedo mencionar. Hace poco tuvimos la fecha de entrega del prototipo. Ésa fue mi primera fecha de entrega en el desarrollo de un juego. ¡Vaya, qué experiencia!

El comienzo del desarrollo no fue difícil. Cuando mi jefe decía "haga este sistema", yo hacía el sistema con calma. Había tiempo para pensar a fondo y para hacer los ajustes necesarios. Cuando el sistema fallaba, había tiempo para arreglarlo.

De vez en cuando recibía solicitudes de los diseñadores de juego, algunas veces de los artistas. Cuando los diseñadores de juego y los artistas me decían "haz una herramienta que haga esto", o "arregla esta otra cosa", yo tenía tiempo para trabajar con calma.

Sin embargo, a medida que el prototipo avanzaba cada vez estaba más ocupado. Poco a poco las solicitudes fueron aumentando. El tiempo para pensar a fondo y para hacer ajustes desapareció. Si no trabajaba rápidamente, no podía cumplir con mis responsabilidades.

La última semana estuvo fatal. Había un sinnúmero de ajustes que hacían falta. Al terminar un ajuste, ya había otro esperando. Ajustar, ajustar, ajustar... todo el tiempo era ajustar detalles.

Para ajustar los detalles utilizaba el mismo sistema que yo había desarrollado. A través de tanto usarlo descubrí muchas cosas que hacía falta mejorar. Sin embargo, no había tiempo para arreglarlo. No había otra opción. Aunque fuera difícil de usar, había que avanzar así. No había tiempo para reescribirlo. Y eso que era un fastidio de usar...

Con esfuerzo terminé mis responsabilidades a tiempo. El productor probó el juego. Todo los miembros del equipo, en silencio y prestando mucha atención, veían al productor jugar. Yo también veía en silencio y prestando atención. ¡Qué satisfacción al ver cómo se movía lo que yo había hecho! Era como para gritar "¡yo construí eso!".

Luego de la fecha de entrega la presión bajó. Ahora hay suficiente holgura para poder arreglar los problemas del sistema. De hecho, ahora los estoy arreglando. Ya me estoy preparando para la próxima fecha de entrega. Mi sistema tiene que ser más fácil de usar.

Diseñar un sistema, construirlo, utilizarlo, ¡entregarlo!, mejorarlo. Iterar.

Parece que acabo de experimentar un ciclo de desarrollo de juegos (:

domingo, agosto 07, 2011

A estar menos en el puesto de trabajo

Ya que nada más faltan 3 post de P* por traducir, voy a retarme a publicar dichos post este mes. Primera semana, primero de los 3 faltantes:

Hola a todos, soy el programador Simón. ¿Están todos bien?

"Simón, tú estás todo el día en tu puesto. Vamos a estar menos en el puesto de trabajo" - fue lo que me dijo mi jefe un día. Al principio no entendí lo que me quería decir.

Si no estoy en mi puesto de trabajo, ¿cómo voy a trabajar? Me puse a pensar qué podría significar "estar menos en el puesto de trabajo".

¿Será que estoy trabajando demasiado? No, si yo me voy del trabajo antes que mi jefe. Debe ser otra cosa.

¿Será que debería tomar vacaciones? No, si se está acercando una fecha de entrega. Debe ser otra cosa.

Creo que mi cara se debe haber transformado en un signo de interrogación. Mi jefe, al ver mi cara de confusión, decidió explicarme más.

"El programador Fulanito casi nunca está en su puesto, ¿verdad? Así es que quiero que tú hagas".

Que Fulanito casi nunca está en su puesto es algo que yo sé, pero ¿por qué es eso bueno? Creo que debería ser al revés. Ya esto no tiene ningún sentido.

"El programador Fulanito se la pasa discutiendo con los artistas, se la pasa pensando cosas interesantes junto con los diseñadores de juego, etc." - dijo mi jefe. ¡Ah! Entendí. ¡Hacer un juego no es trabajo de una sola persona!

Para poder producir algo bueno, es necesario discutir con las personas de los otros grupos.

¿Cuál es el significado de este objeto? ¿Por qué la cámara enfoca ese punto? ¿Cuál es el propósito de esta animación? Si no hago ese tipo de preguntas es como si estuviera programando a ciegas.

Sin embargo, no es suficiente con preguntar. También hay momentos en que es necesario hablar de manera proactiva.

Si uno encuentra un error en el trabajo de otra persona, ¡hay que reportarlo! Si para poder avanzar con el trabajo de uno se necesita algo producido por alguien más, entonces ¡a fastidiarlo hasta que termine! Y, claro está, si uno tiene una buena idea, ¡hay que decirla! Et cétera.

Es a través de la interacción del equipo que los juegos avanzan de manera positiva. Si me la pasara todo el tiempo en mi puesto, ¿cómo podría hacer buenos juegos?

jueves, junio 30, 2011

Compras extrañas

Entrada 8 de 11 del blog de P*.

Hola, es Simón, uno de los nuevos programadores.

Hace poco hice un par de compras extrañas. Desde mi punto de vista las cosas que compré no son raras, pero cada vez que le digo a un amigo "mira, me compré esto", la respuesta que obtengo es "¿Eh? ¿Por qué te compraste eso?".

Mi primera compra extraña es un PS2 (PlayStation 2). Sí, 2, dos, II. No es un PS3. Me han dicho cosas como "¿Eh? ¿Por qué te compraste un PS2?", "¡Pero si el PS3 está a la venta, y es de última generación!". La razón por la que me compré un PS2 es que nunca tuve un PS2.

Yo soy de los que piensa que los juegos que son buenos están más allá de la definición de generación. Si es un juego realmente bueno, no importa si fue hecho hace 10, 20 ó 30 años, aunque lo juegue hoy será divertido. Un ejemplo muy famoso es Tetris. Es un juego de hace 25 años, pero si lo juegas hoy igual te diviertes.

Como los juegos buenos van más allá de las generaciones, aunque estemos en la generación del PS3, los buenos juegos del PS2 deben seguir siendo divertidos. Como nunca tuve un PS2 quiero jugar esos juegos que me perdí. Además, como programador de juegos podría aprender algo.

La segunda compra extraña fue una Mac Mini. Me han dicho mucho "¿Eh? ¿Por qué la Mini? ¡Pero si están la Pro y la Book!". La razón porque me compré una Mac es que nunca he tenido una Mac.

Desde hace un tiempo Mac OS se ha vuelto muy popular. La gente que le gusta Mac dicen que Mac OS es mucho más bonito, que es más fácil de usar y más seguro.

Hasta ahora yo he usado Linux. Comparado con el sistema operativo común, es más estable, seguro, barato (de hecho, es gratis) y se puede customizar todo lo que quieras. Pienso que en verdad tiene muchas ventajas. Sin embargo, no puedo ignorar la popularidad de Mac OS. Si en verdad es un buen sistema operativo me gustaría usarlo, aunque sea pago.

Es por eso que me compré una Mac. Porque quiero probar Mac OS.

Y la razón por la que me decidí por una Mini es que, en el caso en que no me guste Mac OS, por lo menos gasté poco dinero ^_^

Éstas son las cosas que Simón, el nuevo programador, hace. Eso es todo.

martes, mayo 31, 2011

Cinturón negro

Séptima entrada del blog de P* traducida al castellano. Para los que se están preocupando porque sólo hay entradas de P*, tranquilícense, que con la siguiente entrada pasamos los 2/3.

Hola, soy Simón, el nuevo programador. ¿Cómo están?

Yo hice Aikido en Venezuela. Luego de llegar a Japón practiqué un poco más. Yo pensaba que el cinturón negro significaba que uno se había convertido en un experto del arte marcial, que uno ya no era más un discípulo. En mi mente, obtener el cinturón negro era equivalente a graduarse del arte marcial.

Yo estudié computación en Venezuela. Luego de llegar a Japón hice una maestría. En total me gradué dos veces de computación. Yo pensaba que me había convertido en un cinturón negro de la programación. Ya no soy más un discípulo, ahora soy un experto.

Supongo que esa mentalidad es común en occidente. Si uno se gradúa en una universidad, uno está preparado para llegar a una compañía y empezar a trabajar. Como uno ya ha estudiado lo suficiente, no han de quedar muchas cosas por aprender. Creo que por ahí va nuestra manera de pensar.

Cuando en abril del año pasado entré en P* yo tenía esa manera de pensar. Tal vez sea necesario aprender la manera de hacer las cosas de P*, pero no habrá mucho que aprender en cuanto a programación, es lo que yo pensaba.

No podía estar más equivocado. Durante los primeros meses participamos un entrenamiento. Desde el primer día de entrenamiento aprendí cosas nuevas. No sólo eso, sino que cada día de entrenamiento aprendía más cosas.

Luego del entrenamiento fui asignado a una línea de desarrollo. Pensaba que una vez que se ha terminado el entrenamiento, no quedarían muchas cosas por aprender. Sin embargo, no podía estar más equivocado. Ya llevo 10 meses en P*, y todavía estoy aprendiendo cosas nuevas todos los días. De hecho, las cosas que he aprendido durante estos 10 meses me han permitido desarrollar más, y ahora que desarrollo más descubro más cosas que aprender.

Pero, ¿cómo es posible que un cinturón negro de programación todavía esté aprendiendo cosas?

Resulta que yo aprendí una cosa más en Aikido: el verdadero significado del cinturón negro. El cinturón no significa que uno se ha convertido en un experto del arte marcial, sino que simboliza el camino que va desde el cinturón blanco hasta haberse convertido en un discípulo. El significado del cinturón negro es que uno se ha vuelto un discípulo, que uno está listo para aprender.

Finalmente entendí eso que aprendí en Aikido. Cuando uno puede programar es que uno está listo para estudiar programación. Además, entendí que todavía queda mucho por aprender. Es por ello que ahora soy un cinturón negro de la programación: ahora estoy listo para aprender.

domingo, abril 17, 2011

Para los que aspiran a ser programadores

Sexta entrada del blog de P* traducida al castellano:

Hola, tengo mucho tiempo sin escribir. Es Simón, uno de los nuevos programadores.

Ahorita, febrero, es el mes en que están en plena búsqueda de trabajo, ¿verdad? Uds. que están buscando trabajo, ¡ánimo!

Cuando a mí me tocó hacer búsqueda de trabajo pasé por muchas dificultades. Especialmente, se me hizo muy difícil el idioma japonés y los modales. Si no leía el japonés lo suficientemente rápido, no podía terminar los exámenes a tiempo. Además, como no conocía los modales, en las primeras entrevistas cometí muchos errores.

Sin embargo, a través de ensayo y error aprendí qué se debe hacer en la búsqueda de trabajo. Quisiera compartir una de las cosas que aprendí con aquellos que aspiran a ser programadores de juegos. Me alegraría mucho que les fuera de utilidad en su búsqueda de trabajo.

Los aspirantes a una compañía deben enviar varios documentos. Dependiendo de la compañía, a los aspirantes a programador se les pide que envíen un proyecto. Las personas que estudiaron en escuelas técnicas de video juegos pueden enviar juegos que hayan desarrollado, pero no todos los aspirantes a programador asisten a escuelas de juegos.

Yo era uno de esos aspirantes a programador que no había ido a una escuela de juegos. No sabía qué debía enviar. Como estaba en competencia con los estudiantes que fueron a escuelas de juegos, pensé que yo también tenía que enviar un juego, y que mientras más grande fuera el juego, mejor.

Yo había programado un juego de peleas en 3D, por una razón que no tenía nada que ver con la búsqueda de trabajo. Con esfuerzo, yo mismo hice los modelos, las animaciones y el escenario. El juego en sí no era muy divertido. Además, como el juego era enorme, todavía estaba incompleto. Sin embargo, tenía la esperanza de que las personas que revisaban los proyectos pensaran que una persona que se proponga el reto de construir un juego así de grande debía ser un programador que trabajara con empeño.

No obtuve buenos resultados de parte de las compañías a las que envié el juego de peleas. Concluí que no importaba qué tan grande fuera el juego, ni qué tan ambicioso fuera el proyecto; un juego incompleto no era la mejor estrategia.

Decidí preparar otro proyecto. Esta vez sería un programa pequeño, completo y simple. Como aspiraba a compañías de juegos decidí que tenía que ser un programa que tuviera que ver con computación gráfica. Me decidí por dos programas. El primer programa muestra una aproximación de una esfera. Se podía cambiar interactivamente el número de subdivisiones de los polígonos. El segundo programa mostraba en 3D un mapa de alturas. Para ambos programas usé OpenGL y los escribí en el lenguaje C.



Con los programas cortos recibí mejores resultados de las compañías.

Pienso que, dado que el programa es corto, las personas que evalúan los proyectos pueden concentrarse más en entender la estructura del programa, en ver las habilidades del programador, en ver su capacidad de resolver problemas y su forma de pensar.

Pienso que uno puede mostrar mejor sus habilidades de programador a través de un programa corto. Uno puede hacer que resalten aquellas cosas que uno quiere mostrar. Es fácil comunicar un "miren, ¡soy capaz de programar estas funcionalidades!".

Lo que quiero compartir con los aspirantes a programador es: lo importante no es el tamaño del programa, sino que sea un programa completo y fácil de entender. Me alegraría que este tip les sea de utilidad.

domingo, abril 10, 2011

Las obsesiones de un programador

Tengo mucho tiempo sin escribir, vamos a ver si este mes me pongo las pilas y compenso con más entradas. Aquí va la quinta entrada en el blog de P*, traducida al castellano:

Hola, es Simón, uno de los nuevos programadores.

Creo que es algo obvio, pero el trabajo de un programador implica usar mucho el teclado. Sin importar qué herramienta, sistema o juego uno desarrolle, uno escribe el programa a través de un teclado. Yo utilizo el teclado más que el control de juegos, más que el mouse, más que los lápices, más que cualquier otra cosa. De hecho, creo que el objeto con el que más tengo contacto durante el día es el teclado.

Antes de empezar a trabajar en P* yo ya tenía experiencia en programación. Sin embargo, comparativamente, en el colegio no usaba tanto el teclado como lo uso en P*. Como en P* me la paso programando todo el día, empecé a desarrollar ciertas obsesiones.

Mi primera obsesión son los shortcut keys. Como cambiar las manos del teclado al mouse, y del mouse al teclado es algo fastidioso y quita tiempo, quería hacer mi trabajo utilizando sólamente el teclado. Para lograr mi deseo la única manera era utilizando shortcut keys.

Toda la vida he utilizado los shortcuts básicos como Ctrl-c, Ctrl-v (copiar y pegar) y Alt-Tab (cambiar de ventana); pero, recientemente no utilizó click-derecho para abrir el menú contextual sino Shift-F10, navego por la estructura de directorios con las flechas del teclado, incluso inicio los programas a través del teclado.

Para abrir un programa desde el teclado utilizó un programa llamado Launchy, que me lo presentó Ochiai, un programador que entró a la vez que yo. Si uno presiona Alt-Space, Launchy abre una pequeña ventanita. En esa ventanita uno puedo escribir el nombre del programa o del directorio y ejecutarlo. Si les interesa pueden visitar launchy.net.

Sin embargo, no me limité a los shortcuts del escritorio, ahora también uso bastante los shortcuts del editor de texto. Por ejemplo, para mover el cursor hacia la línea de abajo no utilizo ↓ (abajo) de las flechas del teclado sino Ctrl-n, para bajar una página utilizo Ctrl-v, para comentar una función utilizó Ctrl-c Ctrl-c, etc. El utilizar estos shortcuts me permite no alejar las manos de las teclas principales del teclado y teclear más rápido. (Por cierto, estos shortcuts sólo funcionan en el editor de texto Emacs)

Mi siguiente obsesión es la distribución de teclas del teclado. Aunque los shortcuts son muy útiles, si uno los utiliza mucho uno se dará cuenta de que la posición de ciertas teclas es inconveniente. En especial la tecla Ctrl (control) de la izquierda.

Muchos de los shortcuts utilizan Ctrl, ¿verdad?. Me intrigó por qué razón la persona que diseño los shortcuts decidió utilizar una tecla en una posición tan lejana e incómoda. Decidí investigar y terminé leyendo sobre la historia de los teclados. Resulta ser que la posición original de la tecla Ctrl es la posición actual de la tecla CapsLock (BloqMayús).



¡Por supuesto! Con la posición original, los shortcuts son fáciles de teclear. El problema es que cambió la posición de las teclas. Decidí probar cambiar la posición de las teclas, resultó ser súper fácil escribir los shortcuts. ¡Ya no se me cansa más la mano izquierda! Las personas que utilizan mucho los shortcuts deberían probar la posición original.

Para poder cambiar la posición de las teclas hay que editar el registro de Windows. Como eso es un fastidio, estoy usando un programa llamado SharpKeys. Como es muy fácil de usar, aquí se los presento: sharpkeys.codeplex.com

Mi última obsesión es el teclado en sí mismo. Es la última frontera de la obsesión con teclear. Si uno llega hasta este punto es que uno se ha convertido completamente en un fanático de los teclados.

Según los más fervientes entusiastas de los teclados, los teclados comunes no son suficiente para una persona que teclee mucho. Esto se debe a que, en un teclado común, aunque uno presione una tecla uno no sabe con certeza en qué momento se activa su circuito. La única retroalimentación que uno tiene es el ver que el caracter ha aparecido en la pantalla. Sin embargo, las teclas de los teclados mecánicos tienen cierta resistencia. Cuando el circuito de la tecla se activa, la resistencia de la tecla cambia inmediatamente. Por lo tanto, la retroalimentación no se limita al caracter en pantalla, uno también cuenta con el sentido del tacto. Dependiendo del diseño, también se puede escuchar un "click" cuando se activa el circuito. Según los amantes de los teclados, si uno cuenta con el feedback táctil y auditivo uno puede teclear más rápido y minimizar los errores. Aparentemente, también se siente muy bien.

Quisiera comprar un tecládo mecánico para probar. En estos momentos esto investigando diferentes marcas y modelos. Por lo que he investigado, la calidad de los teclados mecánicos hechos en Japón es muy buena. Posiblemente escoja uno japonés. Sin embargo, si tuviera infinito dinero, me compraría un teclado mecánico modificado al estilo steampunk por datamancer.



Sin embargo, como cuestan alrededor de (USD) $1500, creo me mejor me compraré un teclado mecánico normalito.

--

Hasta ahí el post original. Si tienen curiosidad, terminé comprándome un Filco Majestouch Tenkeyless, con switches Cherry MX azules. En castellano: un teclado mecánico de la marca Filco, que no tiene la sección de números de la derecha, y que utiliza los switches que fabrica la compañía Cherry; los switches azules proveen feedback tácil y auditivo.

Y aquí las fotos de mi bebé:





Como pueden ver, lo modifiqué con unas teclas de colores diferentes. Esc ahora está en rojo, y en una posición más cómoda si uno se la pasa cancelando programas, y las teclas WASD (que se usan mucho en juegos de computadora) están en morado.

:D

domingo, enero 23, 2011

El trabajo de hacer videojuegos - programador

Cuarta entrada en el blog de P*, traducida al castellano:

Saludos, es Simón, el nuevo programador.

En el desarrollo de un videojuego participan muchas personas: artistas, planificadores, programadores, músicos, etc. A groso modo, los artistas producen los modelos de los personajes y las animaciones, los planificadores crean las mecánicas y la narrativa del juego, los programadores escriben el código que hace funcionar el juego, y los músicos componen la banda sonora y efectos de sonido.

Dado que soy un programador, no quisiera quedarme con una explicación tan basta como la anterior. Me gustaría explicar más a fondo qué es lo que hace un programador. Como todavía soy novato no comprendo cabalmente lo que implica ser un programador, pero por lo menos me gustaría explicar lo que he aprendido hasta el momento.

El trabajo de un programador es producir software. Todos saben lo que es software, ¿verdad? Software son programas cuya función es manipular datos y que se ejecutan en computadoras. Y su vez, un programa es una serie de instrucciones escritas en un lenguaje que la computadora es capaz de entender.

Por ejemplo, el sistema operativo de una computadora es software, el browser que ustedes están usando es software, la aplicación que se encarga de reproducir música en una computadora es software. Los videojuegos también son software.

Como los videojuegos son software, manipulan datos al igual que cualquier otro software. Por supuesto, son datos que tienen que ver con juegos. Por ejemplo, supongamos que en un juego tenemos la siguiente regla: "si el jugador toma 100 monedas, su vida se incrementa en 1". Les mostraré cómo podría ser la función que se encarga de esta regla. Digamos que esta función es ejecutada cada vez que el jugador toma una moneda. Si escribimos la función de manera sencilla, podría verse algo así:

int coins = 0;
int lifes = 3;

void takeCoin(){
   coins++;
   if( coins == 100 ){
      coins = 0;
      lifes++;
   }
}

El código de arriba declara las variables coins y lifes como números enteros. El valor inicial de coins es 0 y el de lifes es 3. Luego, se declara la función takeCoin(). El contenido de takeCoin() significa:

Incrementar en 1 el valor de la variable coins;
si el valor de coins es igual a 100, asignar 0 a coins e incrementar en 1 el valor de lifes

Variables, enteros, funciones, igualdad... ¡Programar es pura matemática! Yo no le recomendaría el trabajo de programador a alguien que no es muy amigo de la matemática.

Para mí, el trabajo de programador es un trabajo muy satisfactorio. El código que uno escribe hace funcionar juegos, o le da soporte al desarrollo de juegos. Lo que uno produce se difunde por todo el mundo y llega hasta cada usuario. Los jugadores en cada rincón del planeta se divierten gracias al software que uno hace.

A mí me gustaría darle algunos consejos a las personas que quieren entrar a la industria de los videojuegos, a aquellas personas que se quieren convertir en programadores. Pero como todavía soy novato decidí ir a preguntarles a los programadores séniors.

Le pregunté a cinco programadores qué debería estudiar en la universidad o en una escuela vocacional una persona que quiere convertirse en programador de videojuegos. Obtuve las siguientes respuestas:

- álgebra lineal e inglés.
- muchas cosas: matemática, física, etc.
- que se ponga a desarrollar cosas en el lenguaje C ó C++. No importa lo que desarrolle, o si es en la escuela o por su cuenta. 
- si quiere ser programador de videojuegos, lo mejor que puede hacer es hacer un videojuego. Uno aprende mucho más en el proceso de hacer un juego que lo que puede aprender a través de un libro. Luego sería bueno que estudiara aquellas cosas que fueron necesarias en el desarrollo. Además, uno debería pulir aquellas áreas en las que uno es bueno, sin importar el campo de estudio. Uno nunca sabe cuándo esos conocimientos pueden ser útiles.
- partiendo de la premisa que uno ha estudiado las bases que se enseñan en la universidad/escuela, lo ideal es que uno experimente aquellas cosas que todavía no ha experimentado. Eso es válido tanto para los juegos como para cualquier otra cosa. Experiencia de vida. Inclusive es importante divertirse a fondo. Pienso que en el momento en que uno va a dar ideas para un videojuego, mientras más experiencias uno tenga mucho más amplia será su capacidad de aportar. Tanto en juegos como en lo que sea, lo ideal es hacer las cosas que uno todavía no ha hecho.

Además, hice otra pregunta: para convertirse en un buen programador de videojuegos, ¿qué tipo de habilidad debe uno cultivar? Me respondieron lo siguiente:

- resaltar en algo. Ser una persona muy humana.
- un buen programador de videojuegos es aquel que tiene curiosidad de averiguar lo que no sabe. Además, debe tener espíritu lúdico.
- tener la habilidad de proactivamente retar aquello que uno no tiende o que uno no sabe. Tener la actitud de querer siempre crecer. Más que hablar de habilidades concretas, es la postura ante la vida y el estar preparado.
- la habilidad de comunicarse. No importa cuanto uno sepa de programación, si uno no se puede hacer entender no sirve de nada. Es importante tanto escuchar como hablar. Y dentro de eso, es importante tener la habilidad de entender lo que quiere decir el interlocutor. Adicionalmente, creo que es importante poder ampliar la conversación
- más que una habilidad, lo que hay que hacer es meterse en un ambiente donde uno pueda conectarse con muchos programadores aventajados. No importa que tan talentoso sea una persona, si está en un ambiente limitado su crecimiento también será limitado. Como en nuestra era, a través de Internet uno puede intercambiar con muchos programadores aventajados, creo que poco a poco veremos cada día más excelentes programadores.

Esas fueron sus respuestas.

Creo que yo no pude transmitir adecuadamente el encanto del trabajo de programador, pero me conformaría con que lo que he escrito sea de utilidad a quienes no sabían mucho sobre este trabajo. Además, me alegraría que los consejos de arriba le sean de utilidad a quienes se sienten atraídos por la programación.

viernes, diciembre 31, 2010

Programadores fortachones

Tercera entrada en el blog de P*, traducida al castellano:

Una vez que terminé el período de entrenamiento fuí asignado a una línea de desarrollo. El estereotipo que tienen de las personas, incluso el que tengo yo, es que los programadores somos todos débiles ya que sólo usamos la cabeza. Sin embargo, los programadores de esta línea no siguen el común. En una ocasión en la que coincidimos en el gimnasio, uno de los programadores dio por darle un nombre a nuestro equipo: “los programadores fortachones".

Wow, ¿qué hace Simón en un gimnasio? Así es, los que me conocen se extrañarán de que esté haciendo ejercicio voluntariamente. Veamos las razones detrás de este cambio de actitud.

En Japón el medio de transporte por excelencia para los estudiantes y amas de casa es la bicicleta. Naturalmente, cuando yo era estudiante de maestría no tenía otra opción sino montar bicicleta para ir a la universidad. Un poco menos de media hora de ida, y lo mismo de vuelta, era suficiente ejercicio para una persona no muy adepta a los deportes.

Por otro lado, el medio de transporte tradicional de los shakai-jin es el tren. Naturalmente, desde que empecé a trabajar tomo el tren todos días para ir a la oficina. Como la compañía queda en el centro de la ciudad y yo vivo en las afueras, irme en bicicleta no es posible ni deseable. Además, media hora de tren me permite saldar un poco mi deuda de sueño -_-zZ

Dejé de hacer bicicleta para tomar el tren, pero no cambié mis hábitos alimenticios de cuando hacía ejercicio. De modo que ahora gasto menos energía de la que gano. En pocas palabras: peso más.

Al poco tiempo de entrar a P* decidí que tenía que hacer ejercicio. No sólo para llegar a mi peso ideal, sino también porque es necesario hacer ejercicio para mantenerse saludable. Además, es una muy buena manera de botar stress.

P* no es Google. No tenemos un gimnasio privado dentro de nuestras oficinas. Pero de todas formas tenemos gimnasio. El Sky Building, donde se encuentra la oficina principal, tiene un gimnasio para uso exclusivo de quienes laboran en el edificio. P* muy generosamente invita.

Nunca había ido a un gimnasio en mi vida, así que JP, el otro extranjero trabajando en P*, me hizo el favor de darme un tutorial. Mi rutina de ejercicio se basa en la de él.

El gimnasio me parece genial. No es algo enorme, pero es suficiente. Tienen diversas máquina para hacer músculos, pesas, bicicletas y caminadoras. Además, hay cursos de golf y boxeo para los más entusiastas.

Y el área de relajamiento me gusta bastante. Hay internet, televisión y all-you-can-drink. En la sección de baño hay sauna y baño público con vista a la ciudad (a veces me preocupa si desde afuera no se verá algo...)

Desde que empecé a ir al gym he logrado bajar como 3 kgs. de peso y ahora puedo correr 5km en 35 minutos :D Nunca jamás, ni en el colegio, había corrido tanto. Y me gusta. Ni yo mismo creo que corro tanto.

Me parece que es así como debe ser. Usar la cabeza en el día, y en la noche ejercitar el cuerpo. Como decían los romanos, mens sana in corpore sano.

--

Hasta ahí fue el post de P*. Cómo postdata les quiero contar que de tanto trotar en la caminadora, e impulsado por una amiga, terminé inscribiéndome en una carrera.

Dicha carrera fue en el Expo '70 Commemoration Park, fue una carrera de 5km. Logré terminar la carrera en 32 minutos, obviamente fuí de los últimos en cruzar la meta. Sin embargo, la carrera era un reto personal, nunca tuve la costumbre de correr; el participar y terminar una carrera es algo que nunca había pensado que haría. Si fuera posible me gustaría seguir entrenando para poder inscribirme en una carrera de 10km.

Como post-postdata debo agregar que existe la posibilidad de que esa haya sido mi única carrera. A medida que entrenaba en la caminadora mis rodillas empezaron a resentirse. Durante la carrera tuve que dejar de correr por el intenso dolor en las rodillas. Me tocó caminar un buen trecho.

Sospecho que tengo un trauma consecuencia del excesivo entrenamiento en el club de Aikido, donde me destrocé las rodillas a punta de practicar infinidad de veces técnicas en las que uno empieza sentado. En enero planeo visitar un doctor y ver si podré retomar las carreras o si me toca cambiar tierra por agua y hacer natación... no quiero dejar de hacer ejercicio y me parece que nadar es de bajo impacto :D

martes, noviembre 23, 2010

El ambiente de P*

Aquí está la traducción del segundo post que escribe un tal Shimon en el blog de P*:


La primera vez que entré a las oficinas de P* me sorprendí. El primer pensamiento que pasó por mi mente fue “Esto es el Hollywood de los video juegos”. La gente aquí no está jugando, están desarrollando juegos profesionalmente. Ese día que visité P* estaban durante el desarrollo de Vanquish; todas las personas trabajaban con seriedad utilizando tecnología de punta. Algunos refinaban la animación de cubrirse de Sam, el personaje principal de Vanquish; algunos estaban modelando un nuevo escenario con herramientas que nunca antes había visto; algunos tenían instrumentos musicales en sus escritorios y con ellos componían el soundtrack del juego. ¡Estoy tras los bastidores de la industria de los video juegos!

¿Uds. no considerarían que un lugar donde la gente trabaje con demasiada seriedad sería un tanto aburrido? Un lugar donde los programadores escriban código sin decir nunca una sola palabra, donde los artistas dibujen sin quitar jamás los ojos de los monitores, con toda seguridad ha de ser un lugar aburrido. En el ambiente de una oficina común y corriente no se pueden crear juegos divertidos.

Por fortuna, P* no es así. El siguientre pensamiento que pasó por mi mente fue “Esto es el Disneyland de los video juegos”. Les cuento porqué:

Por donde sea que uno camine en las oficinas de P* se ven juguetes. Los hay sobre los grandes escritorios de los desarrolladores, sobre las computadoras y monitores, inclusive hay estantes dedicados a las colecciones de figuras. Al ver juguetes de series de animé, de juegos de P*, de juegos de otras compañías, de películas occidentales, etc., pensé que estaba entre compañeros. Estar rodeado por expresiones de la cultura de los video juegos es lo máximo. Nunca imaginé que el ambiente de una compañía de videojuegos pudiera ser así de divertido.

Un lugar en el que uno puede entretenerse con la cultura de los video juegos, donde uno puede trabajar relajadamente, y que el trabajo que uno realize sea el desarrollo de juegos es para mí el equivalente a Disneyland. Sin embargo, las razones que contribuyen a generar un ambiente en el que se pueden desarrollar juegos no se limitan a los juguetes sobre los escritorios.

Una de esas otras razones es que P* es una compañía en la que no hay parades. La oficina principal es una única y enorme habitación. No hay cubículos ni particiones que te separen del resto de las personas. Si quisieras consultar algo sobre el desarrollo, o si quisieras hablar sobre el último juego que jugaste, o sobre cualquier otra cosa, el hecho de que no hayan paredes hace que sea mucho más fácil entablar un conversación. Bueno, a veces sí hay paredes... de juguetes...

Ahora bien, no es sólo la falta de paredes físicas, tampoco tenemos paredes sociales. Es decir, es un ambiente en el que es fácil hablar con quien sea. El hecho de que uno puede dar libremente su opinión sobre los juegos que se están desarollando (sin censurarse cuando uno tiene alguna objeción), o sobre qué es lo siguiente que uno quiere desarrollar (o qué no le gustaría desarrollar), hacen que P* sea para mi un lugar bastante cómodo.

Por último, hay algo que contribuye a ese ambiente de desarrollo de juegos. Es una cosa trivial, pero me gusta mucho. Es el hecho de que muchas personas recién llegan a la compañía se quitan los zapatos, incluído yo. Algunas personas se ponen zandalias o crocs del color de su preferencia, algunas personas andan en así no más en medias. Cuando yo me siento en una silla cruzo las piernas, de modo que estoy agradecido de P* no sea un ambiente occidental en donde uno siempre tiene los zapatos puestos. Comodidad++ Definitivamente, el ambiente de P* es divertido.

jueves, septiembre 30, 2010

Blogueando - ¿Por qué P*?

Hace algunos posts atrás había comentado que escribiría posts para el blog de la compañía donde trabajo. Mi primer post, titulado ¿Por qué P*?, fue publicado a mediados de septiembre. Ese post es parte del blog oficial de Platinum Games. Lamentablemente, el blog está disponible solamente en japonés. En la página para occidente hay disponible versiones en inglés de los posts de más interés, es decir, aquellos escritos por los directores o aquellos que hablan sobre los nuevos juegos que se han desarrollado. En otras palabras, los posts escritos por los nuevos se quedan en Japón.

Algo interesante es que por primera vez estoy escribiendo para un público que no conozco. No es que conozca a todos los lectores de este blog, pero presumo entender su cultura.

Por completitud voy a traducir al castellano estos posts y los publicaré por aquí. Por favor, tomen en cuenta que mi nivel de japonés no es nativo, muy posiblemente mi post tiene errores gramaticales, palabras que no son las más adecuadas y demás. Encima de eso, está escrito en un japonés sencillo, que es lo que sé manejar. Cuando traduzco al castellano posiblemente me tome algunas libertades literarias y utilice un lenguaje más avanzado que el del post original. Todo sea por comunicar mejor las ideas allí contenidas.

-   -   -

¿Por qué P*?

Hola, mi nombre es Simón Ortiz. Eso se lee "Shi-mo-n  O-ru-tei-su". Sí, soy extranjero. Además, soy uno de los nuevos programadores. Soy venezolano. Nací y crecí en Venezuela, y allí estudié computación. Vine a Japón como estudiante de intercambio y a partir de ese entonces he tenido una vida como la de cualquier japonés.

¿Qué hace un extranjero en P*1? ¿Eres un programador que tiene que ver con localización?

No, para nada. Soy un programador común y corriente.

¿De verdad? Si es así ¿Por qué escogiste P*? En Estados Unidos y muchos otros países también hay compañías de video juegos.

Muy bien, voy a explicarles.

Una vez que decidí que lo que quería hacer era programar video juegos había que decidir dónde hacerlo. Tanto en Venezuela como en los demás países de Latinoamérica no hay compañías de video juegos. Mis tres opciones eran Estados Unidos, Europa y Japón.

En mi opinión, en occidente la parte tecnológica de la producción de juegos es muy avanzada. Recientemente se producen juegos que son técnicamente maravillosos ¿Verdad? Sin embargo, desde mi punto de vista las ideas y géneros de estos juegos son casi siempre las mismas. Si no es un juego de disparos es un sandbox game. Pienso que en Japón hay más originalidad, que se exploran muchos más géneros. Como yo quiero producir juegos de diveros tipos me decidí por Japón.

Cuando me tocó buscar trabajo me presenté en muchas compañías. Todas eran compañías de video juegos. Me tocó asistir a muchas reuniones explicativas. Mientras más uno participa de estas reuniones más va cambiando el ideal de compañía que uno busca. Por lo menos ese fue mi caso.

Al principio quería ir a compañías grandes. La razón es que estas compañías producen juegos espectaculares. Eso lo sabe todo el mundo. Aquellas series que tienen fama mundial, las más populares, por lo general vienen de compañías grandes. Como yo quiero crear juegos geniales no me quedaba otra opción sino trabajar en una compañía grande. O al menos eso pensaba.

Al uno ir a las reuniones explicativas uno se da cuenta de las diferencias entre las compañías. La visión, el ambiente, los géneros de juegos, su objetivo a futuro, etc. ¿Cómo hace uno para escoger de entre este millar de compañías? Tenía que sentarme a pensar qué quería hacer en el futuro.

Yo quiero hacer juegos maravillosos. Eso es indiscutible. Pero hacer juegos maravillosos no es suficiente. Quiero que mi trabajo tenga una influencia en esos juegos. Además, yo quiero programar diversas partes de estos juegos.

Se dice que en las compañías grandes el ideal es que la gente sea especialista. La imagen que tengo del trabajo de los especialistas es que es bastante repetitivo. Además, pienso que en una compañía grande no importa que tan grande sea tu contribución, nunca tendrá un gran impacto en el juego. Por lo tango, decidí que las compañías grandes no eran para mí. Lo que yo estaba buscando era una compañía de tamaño mediano que produjera juegos de alta calidad.

Si uno revisa la lista de compañías de videojuegos japonesas, uno comprende rápidamente que son pocas las compañías que cumplen con mi estricto estándar. Una de esas es P*. En el momento en que había hecho mi solicitud de trabajo los juegos que había desarrollado P* eran pocos, pero si uno mira el currículum de las personas que trabajan en P* uno se da cuenta de que es gente que sabe producir juegos de calidad.

Cuando fuí a la reunión de P* me enteré de que ésta es una compañía sin paredes, donde se puede programar diversas partes de los juegos, que es de tamaño mediano, y que tiene una visión de "hecho en Japón para el resto del mundo"… ¡P* es perfecta para mí! Me presenté para el proceso de selección, me concedieron el puesto y ahora estoy escribiendo este post :D

¿En qué tipo de compañía deseas trabajar? ¿Qué tipo de juegos quieres hacer? ¿En qué tipo de ambiente quieres trabajar? ¿Has encontrado alguna compañía que vaya contigo?

De ahora en adelante me esforzaré para producir juegos de calidad para todos uds. Mucho gusto.

1P*, léase "P star", es el logo de Platinum Games. Dado que "Platinum Games" es un nombre un poco largo, muchas personas lo abrevian a "PG" o "Platina", sin embargo a mí me gusta abreviarlo "P*".