Resumen febrero 2018
28-02-2018 11:34 AM
- Estaba leyendo este post sobre hacer una “own engine“ (recuerdo una época en que leía los posts completos) y me puso a reflexionar, ¿estoy haciendo una engine propia para khpx? La respuesta corta es sí. Si entramos más en detalle, no exactamente. La respuesta completa estará en un futuro post sobre la tecnología detrás de khpx, pero baste decir por ahora que khpx está sólidamente basado en DirectX, que tiene respuesta a casi cualquier cosa que se requiera de un api gráfico. Esto deja por fuera cualquier posibilidad de migración a otras plataformas, pero qué me importa, hace tiempo dejé de preocuparme por la tecnología en sí y me dediqué a programar juegos (al menos las llamadas a DirectX están confinadas a rutinas xxx_render (), eso ayuda, ¿cierto?). En lo que al game engine en sí se refiere, es decir, la estructura que permite hacer el juego, es una amalgama de funciones estructuras alrededor del main-loop. No, no hay nada como esto (Godot engine) detrás de khpx (detrás y adelante de khpx está, khpx). No hay editores, ni Lua, plugins, ni flujo basado en nodos. Solo rutinas del juego: ¿no es eso lo que debe haber detrás de un juego?
- Por cierto que en el mencionado post, aparece como uno de los principales errores que cometen los programadores de juegos generalizar demasiado temprano: es mejor copiar y pegar al ir desarrollando que abstraer las funciones principales y derivar de ellas (” it’s better to default to copypasting it than to abstracting/generalizing it too early”). Nada puede ser más cierto. El post también menciona algo que yo estoy aplicando en khpx, ciertamente hay unas mejores prácticas de ingeniería de software pero están orientadas a software que va a ser compartido entre grandes grupos de trabajo o el público en general. Si eres un desarrollador solitario, algunas de estas prácticas no son necesarias. Por ejemplo, no hay problema en tener variables globales siempre que sean manejadas correctamente y estén confinadas a un archivo (salvo pocas excepciones). Esto acelera el desarrollo y garantiza hacer las cosas, aunque no sea de la forma más elegante.
- Yo no sé cuántas horas paso sentado programando frente al computador. Con toda seguridad más de 10 horas diarias. Eso es destructivo para mis articulaciones. Por ello, y como un mecanismo anti-stress camino unos 40 minutos diarios, más breves interrupciones para estirar las piernas cada 45 mins. Encontré este artículo que dice que no solamente es suficiente caminar, también hay que usar a su máximo las articulaciones, de otra forma se interrumpe o se desmejora la creación del líquido sinovial, que es lo que mantiene lubricado las articulaciones. Una de las múltiples maneras de usar a su máximo las articulaciones es “agacharse”. Así que voy a incluir esto en mi rutina diaria ya que todavía no me decido a practicar yoga (donde se usan al extremo todas y cada una de las articulaciones). Debemos cuidar nuestra musculatura y huesos, al fin y al cabo, nuestros huesos no están hechos de acero, y por una razón.
- Boom de Yada, Boom de Yada . No me puedo sacar esta melodía de la cabeza. ¡Gracias reddit, gracias por nada!
- Silenciosamente hice unos minúsculos cambios en el menú del lado izquierdo (the sidemenu). Eliminé enlaces a algunos temas que están en el olvido de post de años anteriores, y dejé los que son relevantes para mí en la actualidad. Ya yo no juego ficción interactiva pero leo detenidamente revisiones y comentarios en esa escena. Por ejemplo, este artículo de Gamasutra sobre sistemas de diálogos. Lo tenía guardado desde el año pasado y Emily Short me lo recordó.
- nuklear, otra solución GUI totalmente independiente de la plataforma, 100% en un header desarrollado en C con 0% de dependencias, pequeño (~18kLOC), con características infinitas, fácil de usar con DirectX, opengl*, alegro, gdi, bindings para Lua, Java, Rust, C#, otros. Estuve una mañana examinando los fuentes y va a ser mi solución para ciertos menus de khpx, ya tengo desarrollado nativo en DX el despliegue de ventanas, botones, etc., pero otras cosas sofisticadas las haré en nuklear, entre otras razones por el look profesional y el buen acabado. Recomendado A+++++.