lunes, 12 de septiembre de 2011

Articulo: Reinventar la rueda

Creadores de videojuegos o creadores de engines
Hay un fallo en el que veo caer a mucha gente y esque la gente parece estacanrse al tratar de crear su propio 'Engine'. Con engine me refiero al conjunto de programacion al completo que le permite al sistema funcionar.
Si estas con un plataformas, hacerlo de 0: colisiones, mapeado, tiles, objetos, fisicas, etc... y luego mucha gente trata ademas de publicarlo en plan framework o engine para otra gente, sin embargo...

Pygame
Estuve mirando los proyectos de Pygame, y.... ¿cuantos hay completos? ¿Un 1%? ¡Ni creo que llegue!
El 99,99% de ellos estuvieron reinventando la rueda una y otra vez, escribiendo de 0 engines completos que publicaban para los demas, cada vez, etc, etc. Hay muchas librerias y frameworks, tambien. Esto se ve facil al ser todo codigo abierto.

Me baje una larga serie de proyectos, muchos abandonados, que podria usar para mis fines la verdad. Hay muchas librerias, directamente, aunque muchas de ellas de nuevo, incompletas y con varios equivalentes.

Creo que recolectando y reusando codigo todo abria ido mucho mejor.

Cuando reinvetar la rueda
Reinventar la rueda es util cuando:
-Estas aprendiendo: es vital. Aunque no estoy de acuerdo en hacer ejercicios chorra, hacer pequeños proyectos y clones y sistemas es necesario para tener la base necesaria para lo demas.
-Reto: Hay gente que hace autenticas virguerias programando y lo quiere demostrar.
-Ofrecer tu vision o version: Hasta cierto punto puedes pensar en crear tus propios sistemas a tu estilo o segun tus ideas.
-Gusto: Cualquier valor subjetivo que quieras darle.

Mi opinion
Yo siempre reuso o mejoro. La unica razon de no reusar es porque lo hago por reto o por aprender. De hecho tengo un pequeño proyecto de engine y proyecto simple en pygame que voy haciendo, aunque no totalmente de 0, ojo. Pero si quiero aprender a hacer algunas cosas que no se hace y por el ligero reto.

Cuando me dedico a scriptear para el Rpg Maker Xp siempre busco algun script y si lo hay lo aprovecho y si no me sirve almenos lo uso de base y lo mejoro. Y luego publico todo lo que hago, para resarcir a la escena, y en mi gusto personal, intento que sea todo hiperflexible y configurable.

Osea.. aparte del uso del ACBS, genial sistema de batalla, yo por ejemplo tenia en mente hacer un sistema de habilidades en algo similar al del FFIX, solo que con algunos cambios o mejoras. ¿Que hice? Busque un script de ese sistema y lo use de base. Me ahorre un monton de tiempo aunque reconozco que he tenido algunos problemas en la adaptacion, pero me da igual, compensa.

Lo importante es disintguir: ¿programas para crear videojuegos o para mejorar o disfrutar programando?

Y siendo una pregunta con muchos matices y grados, yo almenos lo que quiero hacer son juegos(me gusta programar, por eso), donde al final , la programacion es una parte bastante menor del todo, y donde liberar tiempo en un campo me ayuda en la creacion en conjunto.

Siempre genero otros retos o necesidades, sin embargo, que debo programar yo mismo(tengo sobre 30 scripts para el rpgmaker, algunos muy complejos, aparte de subproyectos en ruby y python), y como me gusta... pero procuro ser lo maximo practico siempre si puedo.

1 comentario:

  1. buena filosofía, pero yo que soy estoy recién en pañales en lo que es programar, prefiero darme el tiempo y acostumbrarme a programar.

    ResponderEliminar