UGO es una librería para Turbo Pascal que ayuda en la creación de videojuegos. Su nacimiento se remonta a comienzos del 98. En un principio me hice una librería que contenía unas cuantas funciones y procedimientos básicos, poco después creé otra para el manejo de sprites, fue entonces cuando decidí unir lo que llevaba hecho, y a su vez incorporar nuevas cosas para ir mejorando poco a poco la recién nacida librería.
Y fue así como comenzó todo. Empecé a introducir funciones básicas (PonPixel, Linea...). Una vez tuve esto hecho, empecé con los sprites. Construí una versión bastante primitiva del programa SPROW, y creé un tipo básico de sprite. Manejar los sprites individualmente es bastante pesado, por lo que construí otra herramienta, SPR2BSF, que "compactaba" todos los sprites indicados en un solo fichero BSF, lo que hacía las cosas más sencillas. Una vez hechos los programas, añadí sus correspondientes funciones a la librería (CargaSprite, PonSprite...).
Lo siguiente fueron los formatos gráficos, comencé con los "archifamosos" PCX y RAW, a los que añadí posteriormente el LBM, formato que usa el programa Deluxe Paint. Que sería un juego sin pantallas virtuales?, nada, ya que no se podría hacer. Llegado este momento codifique una rutina para copiar pantallas virtuales que era MUY lenta, por lo que no tuve m s remedio que sacarme un libro de ensamblador de la biblioteca y aprender un poco. Al poco volví a codificar la rutina, y ahora si iba bien. (La rutinas de copiar pantallas virtuales y de poner sprites, son de las que más orgulloso me siento, ya que no tenía (ni tengo) ni idea de ensamblador, y al final quedaron bastante curiosillas :).
Ya tenía algo hecho, pero aún faltaba mucho. El teclado por ejemplo, seguía usando las rutinas que trae Pascal (READKEY, KEYPRESSED), que además de lentas no detectan más de una pulsación de teclas a la vez, por lo que (por ejemplo) mover una nave a la derecha y disparar a la vez se hacía imposible. ¡Ale!, pues manos a la obra, como no era muy complicado, al poco tiempo ya estaba hecho.
Ahora ya tenía algo más o menos curioso, pero no tenía nada hecho de ejemplo y no sabía si todo "rulaba" bien. Un día, mi amigo Isma me pidió la librería para probarla, y gracias a ‚l pude solucionar bastante problemas, y a su vez creó ejemplos y un juego para distribuir conjuntamente con la librería, otro amigo (Angel), convirtió el fichero TXT de ayuda a formato NG (ayuda interactiva). Fue entonces cuando decidí sacar la versión 0.666. Versión que solo pudieron "disfrutar" los compañeros de clase, ya que solo fue a ellos a los que se lo comuniqué.
Todo esto fue un poco antes del verano, entonces llegó la pausa obligada por los exámenes (¿que qué tal?, ¡muy mal!). Durante el verano, incluí un generador de ficheros BTF, que no es ni m s ni menos que otro "compactador", solo que esta vez se podían unir todos los ficheros que se usaban en el juego en un solo fichero, es decir, es vez de tener (por ejemplo) 3 ficheros de sprites BSF, 10 imágenes PCX, y 2 paletas, solo se tiene un solo fichero con todo lo anterior. Durante esta ‚poca, también incluí los ficheros de sonido por la Sound Blaster y comencé a crear las funciones GUI, las interfaces gráficas de usuario (tipo güin2), antes de acabarlas, envié a varias revistas la versión 1.0 del programa, siendo elegido como unos de los mejores programas del mes por la revista HOT SHAREWARE.
Y por último, hace dos meses, realicé la última actualización. Incorporando como novedades la memoria EMS (640 kb están muy limitados), las GUI, rutinas de scroll por tiles (gracias Isma!) y un número considerable de programas de apoyo: creador de iconos, de ficheros PCX, de mapas, etc.
Por último quería hacer una última actualización a la versión definitiva 2.0, incorporando ya SVGA, pero actualmente dispongo de muy poco tiempo para poder dedicarlo a UGO, por lo que es posible que la versión 1.63 (la actual) sea la última versión de UGO que salga.
Para cualquier cosilla, me tenéis en: