Entradas

Mostrando las entradas etiquetadas como Programación

Diario de desarrollo proyectoTanks: 00 - De como un juego retro puede llegar a ser contemporáneo

Imagen
Hace casi un mes (5 de agosto según github), recordé el clásico Battle City, venia en la Snes junto a una cantidad importante de títulos, este en específico tenia algunas características que nunca se me olvidarán, tenía una cantidad de niveles que nunca pude completar, tenía un cooperativo real (no como Súper Mario donde se ejecutaba el mismo juego para el jugador 1 y 2 de forma independiente y cada quien avanzaba según podía) y por ultimo, lo mas importante y aquello que me afectó de forma mas directa, un editor de mapas donde se podía crear un escenario con los bloques que se nos ofrecían. Bajo esta premisa en primer lugar tuve la tentación de hacer un remake a mi gusto, esto me daría bases técnicas para otros proyectos, cuando tenía listo el movimiento del jugador me di cuenta que cometí un "error", el juego original no tenía controles de tanque, el tanque apuntaba en las cuatro direcciones del control (arriba, abajo, izquierda y derecha) al momento de presionar alguna y...

Software Libre: Documentos interesantes sobre libertad, software y desarrollo

Imagen
Entre los ensayos y libros de RMS (Richard Matthew Stallman) se toca constantemente el tema de "piratería" y libertad, Stallman cree que la piratería no existe, es un concepto creado en nuestra sociedad egoísta que coloca al dinero sobre el trabajo, al dinero sobre la amistad y al dinero sobre las necesidades de la persona, claramente esta concepción de la realidad egoísta no es humana, mas bien busca convertir a la sociedad en un conjunto de maquinas en pro de ideas y deseos sin trascendencia, ahora bien, respetando las concepciones religiosas y filosóficas existentes voy a recurrir a una pequeña estrofa del grupo musical El Barrio: "La vida es un tablero de ajedrez (...) con los años se termina la partida y dormimos los dos en el mismo cajón". Los conceptos que debemos desterrar de nuestro vocabulario están todos compilados en este primer documento que les ofrezco " Por qué el Software no debería tener propietarios " de unas pocas paginas, en resumen...

Metodologías para el desarrollo de software: Programación extrema (XP)

Imagen
Esta es la única metodología que aprendí, re aprendí y no necesite modificar nada, de hecho cuando hay proyectos en parejas o grupos surte un efecto impresionante, es importante que no se utilice para proyectos "imposibles" ya que el equipo necesario para los proyectos debe ser cada vez mas grande para que siga siendo eficiente la XP(eXtreme Programing), para proyectos imposibles tengo mi incremental plagiado,  la mayoría de software empresarial si se puede crear con XP ya que estos proyectos requieren que muchos ojos estén sobre el código, el trabajo en parejas sobre la misma computadora consigue que siempre cada linea de código esté pensada y revisada dos veces evitando que los problemas de lógica o descuido atrasen el proyecto. Según los autores que consulté a lo largo del tiempo la XP es el resultado de las mejores practicas de programación, algunas bases del sistema son: Simplicidad ya que cuando hacemos uso de la refactorización (mejorar la forma en que un método...

Metodologías para el desarrollo de software: Desarrollo Incremental

Imagen
Mi ultima entrada era sobre mi versión de esta metodología,  ahora voy a definir la de forma algorítmica a como lo hice como la anterior,  esta metodología se basa en crear modelos o prototipos muy rápidamente, su objetivo es conseguir programas utilizables en corto tiempo cosa que genera muchos errores y para solucionar esa problemática en cuanto aparecen errores se deben solucionar y una vez se ha terminado una etapa final, hay que reiniciar, es la forma mas usada para mantener programas existentes ya que no pueden existir errores por mucho tiempo y los mismos usuarios tienen total conocimiento sobre los bugs que se presentan, haciendo del usuario un perfecto asistente para el testeo del software. Como su nombre y la pequeña definición indican es un método de desarrollo recursivo con énfasis en el usuario,  no hay fase de pruebas por que el usuario se encargará de retroalimentar el proyecto y reportar fallas o incomodidades suyas, muchos de los proyectos fallan solo p...

Metodologías para el desarrollo de software: Desarrollo Incremental Plagiado (Una herencia mia para todos)

Imagen
Hoy quiero empezar con una serie de entradas en las cuales se explicarán las metodologías de diseño de software mas útiles que he podido estudiar y practicar, el desarrollo incremental según yo, como dice en el titulo, lo he modificado y considero que ninguna metodología de desarrollo va a dar los frutos necesarios por si misma, cada proyecto es diferente y no creo que una metodología invariable sea capaz de  cumplir con los objetivos de todos los proyectos, es por tanto una necesidad que el equipo o desarrollador se adapte a cada proyecto usando como base alguna de las metodologías de desarrollo. El método incremental como tal lo quiero tratar después, tomé esa idea por que es mas básica que su hijo mayor, el SCRUM, la idea de hacer un gran proyecto con pocas personas fue la que me empujó a modificar el desarrollo incremental para que yo solo tuviera la posibilidad de finalizar un proyecto de tamaño impresionante e imposible para una sola persona, prueba de lo complejo que es l...

Vídeo Juegos: Arte, Ascenso y caída en la miseria

Hoy tengo ganas de escribir, tanto es así que agregué unas diez paginas a un borrador de libro al que intento dar forma al menos mediocre y a las 11 de la noche, estoy escribiendo esta entrada, posiblemente la publique en unos días, me gusta leer y re leer lo que escribo. Los que vivieron antes de los 90's (soy del 94 así que llegué algo tarde) pudieron apreciar y disfrutar el cambio de la tecnología informática así como la computación, puedo asegurar que antes de los 90, la tecnología no era para los simples mortales, más un arte arcana con tendencia a la brujería que la maravilla de la que hoy en día disfrutamos casi todos, como informático tal vez me intereso mas en estos temas, pero la tecnología actual es muy sencilla de utilizar, no es lo mismo conectar y desconectar cables para programar cada cosa que necesitemos hacer con la computadora que la informática moderna donde enviamos señales (programas, letras y pulsaciones de pantalla) a una serie de componentes tan bien pensa...

Algunas recomendaciones sobre la creación de software

En los últimos días he tenido muchos libros como "Clean code", todos deberíamos hacerle caso para no tener que reescribir o refactorizar paquetes desde el inicio, otras fuentes que tengo para hacer esta entrada son "Análisis y diseño de sistemas", "Desarrollo de software basado en reutilización" y por ultimo "Conceptos avanzados en desarrollo de software libre". Primero tengo que abordar el método que la mayoría de programadores me recomendaron sobre la creación de software, ya que nadie por más artista que sea será capaz de crear cosas sin inspiración y motivación, a fin de cuentas el software tiene al menos un objetivo y es necesario a pesar de no tener un objetivo propio, siempre mantener la practica y programar de vez en cuando, para facilitar la lectura voy a intentar resumir todo lo que he aprendido en puntos clave: 1- Plantear las ideas : Es necesario que todo esté planteado, incluso antes de empezar a programarlo el softw...