@ agnasg

agnasg


Cómo saber si estás enamorado, en una simple y fácil lección

22-02-2018 10:47 AM

Estoy tratando que ciertos detalles a los que nunca le presto atención, no se escapen esta vez en un pet proyect actual (khpx), incluyendo no tener externs inútiles en los archivos y que las funciones se llamen de una forma uniforme y consistente. Por ejemplo, ¿cómo se debe llamar la función de inicialización de los mapas, init_map () o map_init ()? Estoy descartando initMap () porque estoy dejando la notación Camel solamente para los nombres de las variables locales después del módulo: map_getTheCoordinates (), por ejemplo.

Pues pensaba que yo tenía alguna preferencia linguistica sobre el tema, volviendo a la controversia init_map () vs. map_init (), pero no, resulta ser que en los fuentes de umoria podemos encontrar store_init () y magic_init(), pero también init_signals(). Por otro lado en los de rogue se ve init_player(), init_colors(), init_materials (). Por su parte en doom, predomina InitSlidingDoorFrames (), InitData (), InitThinkers (), etc. Así que no, no hay alguna regla discernible por lo que voy a inventar una, me quedo con map_init (), khpx_init () y help_init (). De esa forma la búsqueda en los drop down menu de Visual studio aparecen ordenados por módulo y por función.

Toda esta atención y dedicación a khpx me resulta inusitada, debe ser que estoy enamorado. Porque eso es amor, eso es estar enamorado: cuando le dedicas el tiempo y tu esmero al objeto de tu amor. Fácil de deducir y entender.

4 horas de “trabajo”

14-02-2018 12:33 PM
¿Quieren ver como pierdo 4 horas de trabajo? Este bug:

[code]
CUSTOMVERTEX* pV;
for (i = 0; i < MAX_MODIFIED_OBJS; i++) {
pV = pVertices += i * 4;
pV++;
pV->Z = 2.1f;
pV++; pV++;
pV->Z = 2.1f;
}
[/code]

En mi defensa, este bug estaba profundo en el sistema de update antes del final rendering. En khpx el código está extremadamente modulado, con funciones lo más compactas posible (que es como se debe programar) Eso trae como consecuencia el problema de que para conseguir un bug tienes que seguir la secuencia de funciones y un bug puede desaparecer aun cuando sea obvio, como el de arriba.

La idea de esa rutina es colocarle 2.1f a la coordenada “Z” de los objetos de tipo CUSTOMVERTEX con índice 1 y 3. Lamentablemente la variable pV tenía serios problemas al ser inicializada. MAX_MODIFIED_OBJS eran 6 objetos de tamaño sizeof (CUSTOMVERTEX) * 4. Esta rutina generaba la inicialización solamente de los objetos 1, 2 y 4 lo cual parecía algo tan bizarro como imposible. Adiós a 4 horas de productividad echadas a la basura. Que lástima.

De la diversión y otros placeres medievales

11-02-2018 3:24 PM

Me he estado preguntando todo el día si khpx va a tener una audiencia. Algo así como un grupo de fans. Estoy viendo videos de Dark Soul, de Cupcake, otros, y obvio, tienen fans porque son divertidos, en su forma particular de ser divertidos. ¿Es khpx divertido? Es claro que hay una demanda para un space game. Stark Citizen y otros juegos similares (por no mencionar “No man sky”) revelan un apetito por el perfecto space game, que, al parecer, no ha llegado. O, quizás, los jugadores piensan que tiene que ser posible, aunque todavía no se ha visto un space game definitivamente exitoso, tiene que ser posible, un space game con el tipo de juego que ha habido en otros géneros. En el cine, sucede que las películas han tratado de emular éxitos como el de 2001 o Alien.  Pero eso no sucedió hasta Gravity o, quizás, Interstellar. Eso no ha pasado con los space games. Sí, claro, Eve, etc, etc, pero todavía parece haber un territorio no 100% explorado como ha sucedido en otros tipos de juegos. En otras palabras, sí, khpx tiene un interesante segmento del mercado, y sí van a haber jugadores interesados, a pesar de sus características nerdianas. ¿Eso lo hace per se, divertido? No necesariamente pero si te gusta el estilo, el género, las características, es un buen primer paso. Nadie se divierte con algo que no le gusta: la diversión viene después de la degustación, cuando el acto es consumado nuestro cerebro transforma lo que estamos haciendo en una reacción: ¡Que divertido! Esto sucede después, no antes. Por ello antes de la diversión tiene haber una aproximación debido al agrado: esto me gusta, deseo probarlo. No podemos divertirnos con algo que no experimentamos, y nunca vamos a experimentar algo que nos causa repulsión. Por ello, la existencia del mercado para los space games es tan importante.

Pero eso no importa. A mi solamente me interesa un jugador: yo.

Se ha dicho que si un juego al menos tiene un jugador, ya ha dado el primer paso en la dirección correcta (no se quién dijo eso, y si nadie lo ha dicho, bueno, ya lo dije). Ya en otros sitios he mencionado las bondades de khpx, todavía si me permiten mencionaré una más: khpx es simple en su interfase, simple en los efectos especiales, tiene las cosas básicas que debe tener todo space game (exploración, uso de recursos, progresión a través de la dominación de planetas, recursos y tecnologías, y otras populares características), y además ofrece múltiples sistemas de progresión: misiones, piratería, penetración tipo ninja, venta de armas, alianzas.

Nota 22-02-2023: si Ud. está curioso por qué el enlace de este post es micronosis.com/de-la-diversion-y-otros-placeres-medi3vales con ese 3 en vez de medieval, es porque el archivo que resuelve los URLs en Apache web server el archivo htaccess no acepta que el url incluya “eval” o “ftp”, y como medieval incluye “eval”, bueno eso es la razón. “eval” es una instrucción de PHP que permite la ejecución de código. Utilizado por hackers alrededor del mundo.

Yo lo que quiero es un space game

18-01-2018 5:24 AM

Mi cerebro trabajando a las 3am

Mi cerebro trabajando a las 3 de la mañana es una máquina prodigiosa. Ayer estaba resolviendo una complicada formula trigonométrica, que involucraba modificaciones en al menos 3 funciones en mi juego espacial khpx, sin mucho éxito. Creo que le dediqué 1-2 horas al tema, y parte de mis pensamientos durante los 40 minutos de Lost (voy por la última temporada, Locke realmente me tiene molesto). Hoy, en 2 minutos resolví el problema, agregando un término en la ecuación (algo así como a=b+c => a=b+c-d. Ese término ‘d’ me consumió sin éxito 2 horas ayer).

Los programadores sabemos la potencia que tenemos en las horas de la mañana, y por eso no la desaprovechamos nunca. Usualmente dejo las más complicadas actividades para estas horas, y las cosas rutinarias o que puedo hacer en piloto automático para el resto del día.

“Irrelevante es una término legal”

Esta pregunta en stackoverflow es una maravilla. ¿Puede “a== 1 && a ==2 && a==3” evaluar a TRUE (verdadero) en alguna situación, en javascript?

El preguntón recibió esta pregunta en una entrevista de trabajo y su respuesta fue “imposible”. Ouch… craso error. En computación, como explico más adelante, no existe tal cosa: todo es posible.

Las respuestas son brillantes. Yo por mi parte respondí  a la primera parte de la pregunta ( ¿Puede “a== 1 && a ==2 && a==3” evaluar a TRUE?) con un “Sí, en cualquier lenguaje de programación” y a continuación muestro la versión en C/C++:

[code]

#define a (b++)
int b = 1;
if (a ==1 && a== 2 && a==3) {
printf ("Yes, it’s possible!\n");
} else {
printf ("it’s impossible!\n");
}
[/code]

Por supuesto, hubo respondones que adujeron que la pregunta es en relación a javascript, y que C/C++ es irrelevante. Mi querido amigo, mi apreciado lector, irrelevante es una término legal, usado en los tribunales, en programación todo es relevante, incluyendo los comentarios que te hizo tu mamá cuando te despertaba para que te fueras a la escuela. Si insistes en usar el término “irrelevante”, la próxima vez que te persiga un bug, te va a torturar durante días, hasta que digas “nada es irrelevante en programación, nada es irrelevante en programación. Lo juro.” Imposible, irrelevante, nunca, siempre,”no puede ser”, son términos inexistentes en la jerga de cualquier programador profesional.

Star citizen ha recaudado más dinero que la deuda externa de Venezuela

Este artículo. Aquí están los comentarios en reddit.  Por si has estado debajo de una piedra en la redoma de Petare en los últimos 3 años, Star citizen, un juego ambientado en el espacio (space game) inició un Kickstarter  hace tres años, y lleva recaudado casi 100 millones de dólares. Todavía parece que no hay una fecha oficial del lanzamiento. La gente ya no se acuerda del juego, y sigue recaudando dinero, hoy en día. ¿Hay algo positivo en todo esto? ¿Podemos aprender algo? La primera lección es que un Kickstarter aguanta lo que sea (en este momento hay 15 millones de patrocinadores en  kickstarter.com , casi 140 mil proyectos financiados). Lo segundo es que la búsqueda por el perfecto space game no se detiene. Toda la decepción de “No Man’s Sky” no desanimó a los jugadores.

¿Mi respuesta? khpx…

“poder jugar con un comerciante, un artesano o un diplomático, establecer mis rutas comerciales, impactar al mundo en alguna manera… ¡o hacer lo que quiera!” (“to be able to play a trader or a crafter or as a diplomat, set my trade routes, impact the world this way… or do whatever I want!”)