Autor Tema: Programando Eye of the Gods  (Leído 3324 veces)

danytoon

  • Visitante
Programando Eye of the Gods
« en: Abril 30, 2017, 15:19:51 »
"El mapa también suponía un reto pues tenía que ser bastante grande, y el C64 no va sobrado de memoria. Finalmente conseguí idear un formato en el que cada habitación ocupa solo 64 bytes, incluyendo ítems, enemigos etc. Utilicé el editor de mapas Tiled para el cual creé un script en Python que compactaba el resultado en el formato exacto que utiliza el juego en tiempo real. Para los gráficos hay multitud de herramientas disponibles en internet; finalmente me decidí por el CharPad y el SpritePad para realizar los sprites y los tiles del mapa."

Leyendo la entrevista que Bieno le hizo al autor de este juego en su web, leo esto y me doy cuenta de que programar algo en 8 bits no es simplemente un ejercicio de "saber", si no de "reducir"...

@Bieno , sabe el chico este que aquí hay un foro dedicado a la programación? No pretendo que venga aquí a dar clases particulares, pero sí sería bueno tener a alguien con ese nivel de programación por aquí :D


josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Programando Eye of the Gods
« Respuesta #1 en: Mayo 01, 2017, 03:03:01 »
Creo que le ha avisado, Ojalá que se registre a ver si le podemos sacar algunas copias por la cara ;-)
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

Dashiad

  • Commodoremaníaco
  • ****
  • Mensajes: 160
  • SYS 0
    • Ver Perfil
Re:Programando Eye of the Gods
« Respuesta #2 en: Mayo 01, 2017, 22:49:51 »
Precisamente acabo de abrir un hilo a ver si conseguimos hacer una rutina para pintado de mapas..
Con tiles de 5x5, una pantalla completa requiere 8x5 bytes : 40bytes (sin marcadores, ni nada de eso).
Los objetos y enemigos no necesitan tanta "resolucion": Si la pantalla se divide en espacios de 8x8, una pantalla completa requiere 5x3 = 15 bytes.En cada byte, unos bits codifican el enemigo (si existe), y otros, el objeto (si existe).
Si se dejan 4 bits para el objeto, y 4 bits para el enemigo, habría 16 objetos posibles, y 16 enemigos posibles. Si de esos 15 bytes, el primer byte fuera un 0x11, significaría que en el primer cuadrante de 8x8 caracteres, está el objeto 1 y el enemigo 1.
Eso suma 40 bytes de tiles + 15 de enemigos y objetos, 55 bytes.Aun quedan unos cuantos bytes para codificar punteros a las pantallas adyacentes, etc

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Programando Eye of the Gods
« Respuesta #3 en: Mayo 02, 2017, 00:38:10 »
Creo que tarde o temprano hay que comprimir mapas... eso dependiendo del mapa y si es una sola carga.

Aqui podemos invocar a @sensei_yume :P el creador del Eye of the Gods.
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

sensei_yume

  • Sinver
  • *
  • Mensajes: 2
  • PRESS PLAY ON TAPE
    • Ver Perfil
Re:Programando Eye of the Gods
« Respuesta #4 en: Mayo 02, 2017, 11:10:59 »
¡Hola chicos! Pues respondo a vuestra invocación, jejeje

Probablemente la gran mayoría de mapas están comprimidos en los juegos de C64... Yo al final no lo hice, porque el mapa tampoco es tan tan grande en mi juego. Al final mi mapa, con unas 150 habitaciones a 64 bytes por habitación, ocupó unos 9kb, que me pude permitir. Pero por ejemplo mi juego es muy modesto en cuanto a sprites se refiere, lo que dejó espacio en memoria para otras cosas.

Si tenéis más dudas os intento ayudar.

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13630
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:Programando Eye of the Gods
« Respuesta #5 en: Mayo 02, 2017, 13:33:42 »
Se me courre que:
- Roma no se construyó en dos días: antes fue una aldea y fue creciendo, so sea que antes de empezar con un megaproyecto quizás deberías ir por algo mas simple
- La sobreingeniería existe: mas o menos lo mismo que lo otro, igual si tu juego es mas simple no vale la pena planificar tanto a lo bestia

:P
« última modificación: Mayo 02, 2017, 18:45:51 por josepzin »
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

danytoon

  • Visitante
Re:Programando Eye of the Gods
« Respuesta #6 en: Mayo 02, 2017, 18:24:55 »
Hola Sensei_yume! Tienes previsto seguir trabajando en cosas para C64?

Zub

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 150
  • SYS 0
    • Ver Perfil
Re:Programando Eye of the Gods
« Respuesta #7 en: Mayo 02, 2017, 23:23:17 »
Yo uso el sistema de Lasse Orni (Cadaver) con tiles de 4x4 chars. El mapa es un rectángulo de tiles, asumiendo que no hay más de 256 diferentes implica 1 byte por tile. Cada pantalla por tanto son unas 50 tiles (50 bytes). La verdad que no me he planteado comprimir el mapa, quizás se podría conseguir una ganancia importante si el mapa es muy grande. Para codificar qué objetos van en una pantalla, puede usarse el propio identificador de tile (si un objeto va implícito en ella). En caso contrario, bastaría con codificar las coordenadas para ubicar cada objeto en el mapa (2 bytes te dan precisión a nivel de tile).

Lo que si he visto es tener comprimidos los sprites. Se guardan en una zona de memoria compactados, y cuando se va a pintar uno, se descomprime y se copia on-the-fly a la posición donde el VIC lo "vea". El Samurai Warrior (Usagi Yojimbo) hace esto.

« última modificación: Mayo 02, 2017, 23:26:14 por Zub »