[Devlog] Vircon32: Creando mi propia consola

Yerboth

#180 hombre es un buen tocho, de primeras puede asustar xD
¿No puedes separarlo en varios documentos?

1 respuesta
carra

#181 Pues poder sí se podría, había pensado en ello pero aún no tengo claro las desventajas que me puede traer. Se perdería el tener un índice general, y habría que tener cuidado en cómo se referencian cosas de las otras partes y si alguna no queda un poco desnuda estando aislada.

Por otro lado también puede tener ventajas, claro. Puedo ir publicando capítulos según los tenga en vez de esperar a que esté todo. Y quizás sería más fácil dar formato a los capítulos porque no habría tantos niveles de títulos.

1 respuesta
r2d2rigo

#180 yo no haria un unico documento kilometrico, quiza una wiki seria lo suyo.

2 1 respuesta
desgraciao

#182 Puedes usar el wiki del github.

1 respuesta
carra

#183 #184 Pues para las guías una wiki puede ser algo cojonudo, de hecho para aprender a crear juegos podría ser de las mejores opciones si la wiki se hace medianamente completa. Pero para una especificación no es un buen formato.

La idea es que la especificación de Vircon32 no es una guía, sino que se convertirá en un estándar a seguir. Una wiki es un formato no lineal, y es difícil asegurar que no te has saltado alguna sección con requisitos que debas cumplir. Además, al ser cada sección editable de forma independiente, no existe una "versión" del documento a nivel global a la que se pueda hacer referencia.

Los estándares suelen estar hechos en forma de documento (PDF u otros). Por ejemplo si buscáis cómo se definen los números de coma flotante que usamos todo el mundo (el estándar IEEE 754), veréis que es un documento PDF identificado con su versión, fecha y hasta ISBN. Pasa lo mismo con otras publicaciones como por ejemplo los artículos científicos.

18 días después
carra

Estos días he hecho algo que no se debería hacer: pausar el desarrollo de Triple Bubble para crear otro juego. Antes de publicar la demo de Triple Bubble (que ya no será el primer juego completo para Vircon32), lanzaré una versión para Vircon de 2048. Os dejo unas imágenes:

Pantalla de título:


Gameplay:


Es un juego más pequeño, con lo cual va a ser rápido de hacer. Pero ya me permitirá decir que la consola tiene algún juego terminado. Ahora mismo todos los gráficos y sonidos que usa el juego están ya creados. Me falta sólo terminar la programación, que espero que no me llevará demasiados días.

9
carra

Tengo el juego básicamente terminado: ya es jugable y se puede ganar y perder la partida. Lo que me estoy encontrando ahora son cosas curiosas a la hora de jugarlo. Os lo explico un poco.

En este juego se hacen muchos movimientos rápidamente, con lo cual cualquier efecto de transiciones o adornos tiene que ser rápido o las partidas se alargan. Para hacerlo más visual había programado que se moviera el tablero en la dirección que movemos, y el efecto tal cual no queda mal. Pero también tenía pensado hacer que durante ese movimiento las fichas se desplazaran. Todo bien (el efecto es vistoso), pero cuando lo he terminado y me he puesto a jugar, el efecto de los dos movimientos juntos se empieza a hacer mareante en muy poco tiempo. Así que estoy viendo diferentes alternativas para que se juegue mejor y no canse la vista. Algo parecido pasa también con los efectos de sonido, tienen que ser sutiles para no hacerse cargantes al cabo de cientos o miles de movimientos.

Aunque me retrase un par de días prefiero asegurarme bien de que el juego es cómodo de jugar, ya que si no al final no lo jugará nadie (yo incluido). Puede que tenga que sacrificar algún efecto gráfico que ya tenía dibujado, pero es mejor eso que un juego incómodo.

1 respuesta
thenanox

#187 me recuerda al wolfenstein original, que por mas que quisiera me mareaba, y nunca sabre por que :p. mucho animo que es un buen ejemplo de juego

1 1 respuesta
carra

#188 A mi me pasa eso mismo con el Doom. Me pasaba en su día y me sigue pasando incluso hoy, si veo un video de Doom en YouTube. Y más viendo partidas de gente que lo juega super rápido...

AikonCWD

offtopic, creo que lo del mareo viene por el fov?

1 1 respuesta
carra

#190 Imagino. A ver yo soy de mareo fácil en general. También a lo mejor, si juegas a diario te acabarías acostumbrando.

thenanox

#1 nunca te lo he preguntado, quizas me estoy tirando un triple random, pero entendiendo que la idea de Vircon es emular una consola, intentando simplificar los componentes como la CPU, Memoria etc. de tal manera que a la hora de programar juegos, no tienes que preocuparte de cosas como el tick de reloj, etc

Entiendo que la potencia de la consola es baja, pero que pasaria si vircon se ejecutara sobre, sobre algo que tuviera menos de 1MHZ de potencia, o algo que tuviera incluso menos potencia de lo que necesitara vircon. que pasaria?

ha sido un pensamiento de repente, y no queria dejarla por ahi en la estocada

2 respuestas
r2d2rigo

#192 que pasa cuando pones a un seat panda a tirar del remolque de un trailer? Pues eso.

1 2 respuestas
carra

#192 Para hacer juegos no hay que preocuparse de los ciclos de reloj, pero un emulador sí los tiene que tener en cuenta. Ojo, Vircon32 sólo garantiza que cada frame empieza cuando debe (a 60 fps), pero dentro de cada frame el emulador puede organizarse los ciclos como mejor le venga. En mi emulador, cada frame se ejecuta en el menor tiempo posible y el tiempo que sobre hasta el frame siguiente simplemente espera. Es decir, no necesitas que un sistema respete los 9MHz de Vircon.

¿Puede un aparato con menos MHz ejecutar Vircon? Dependería del juego. Si aprovecha la CPU a tope no es posible, pero si tu juego solo usa un 15% de la CPU entonces podría ser. Aunque lo veo difícil jaja.

#193 Lo has explicado con menos palabras que yo :rofl:

1 respuesta
thenanox

#193 ke alegrias me dio mi seat panda

#194 na si es lo que imaginaba, solo lo escribia por si tenia algun tipo de gestion concreta al emularlo

carra

JUEGO TERMINADO: 2048 PARA VIRCON32


¡Vircon32 ya tiene su primer juego completo! Se trata de un port para Vircon del juego de puzzle 2048. Para quien no lo conozca, aquí tenéis un pequeño video con gameplay del juego. Comparándolo con el original, a mi me parece como una especie de "versión arcade" de 2048.

Tenéis disponible la rom para jugar y el código fuente del juego en las DESCARGAS DE VIRCON32. He creado una subcarpeta separada para subir los juegos que vayan saliendo para la consola, por separado. Así serán más fáciles de encontrar.

5
thenanox

me ha molado mucho las animaciones y sonidos la verdad :). la unica cosa que me ha chocado por decir algo, es que se sale del juego con la A ajaajaj

mis dies

1 1 respuesta
carra
#197thenanox:

la unica cosa que me ha chocado por decir algo, es que se sale del juego con la A ajaajaj

Pues, puede ser... :sweat_smile: pero bueno como para jugar no se usan los botones, tampoco hay mucha confusión

carra

Estos días estoy trabajando en escribir la especificación. Finalmente voy a seguir vuestro consejo y la voy a separar en varias partes (cada una será un documento PDF independiente). El índice de partes será este, aunque todavía puede haber algún cambio en las últimas:

Parte 1: Definiendo Vircon32
Parte 2: Arquitectura de la consola
Parte 3: Procesador (CPU)
Parte 4: Chip gráfico (GPU)
Parte 5: Chip de sonido (SPU)
Parte 6: Chips controladores
Parte 7: Otros chips
Parte 8: Dispositivos externos
Parte 9: Formatos de archivo
Parte 10: El proceso de emulación

Por el momento las estoy escribiendo en inglés, más adelante las traduciré también al español.

2 1 respuesta
thenanox

#199 Podrias probarte y escribirlo en Markdown, eso tiene dos futuros beneficios a mi modo de ver, al menos para sopesar:

Pros:

  • Markdown puede exportarse a HTML con alguna herramienta, y luego a PDF
  • Markdown funciona muy bien para cuando subas documentacion en el repositorio, ya que github por ejemplo puede ver directamente los ficheros desde el navegador.

Cons:

  • No compite con documentacion seria en PDF, o tipo LaTeX o movidas asi
1 respuesta
carra
#200thenanox:

Podrias probarte y escribirlo en Markdown

Buf, a estas alturas con lo que llevo ya escrito no me planteo cambiarlo todo a otro sistema... Aparte como dices, para la maquetación no tiene nada que ver. En la documentación de Vircon le estoy poniendo mucha atención a que el resultado sea bueno.

carra

Al final me he venido arriba escribiendo y acabo de terminar ya las primeras 3 partes de la especificación (todavía sólo en inglés). La número 3 es la más larga de todas, porque debe explicar todo el juego de instrucciones de la CPU (esto le interesará a @AikonCWD).

Todavía no os he subido estos documentos porque quiero intentar crear ya una primera versión de la web y que se descarguen ya desde allí.

3 1 respuesta
Yerboth

#202 si necesitas ayuda con la web avisa, que viendo tu trayectoria lo mismo te pones a programar el servidor desde 0 y a escribirla en ensamblador para que se traduzca a HTML con un algoritmo cuántico 😅

2 1 respuesta
carra

#203 jajajaja gracias, ya veo la fama que tengo 🤣🤣🤣

carra

Ya está online la primera versión de la web:
www.vircon32.com

Como veréis, está tanto en inglés como en español. Ahora mismo sólo hay 3 secciones: la página principal, la del emulador y la de las especificaciones. De ahí os podéis ya descargar las 3 primeras partes (todavía sólo en inglés).

El resto de secciones están pero sólo sale el texto de "en construcción". Las iré completando poco a poco.

10
7 días después
carra

Estoy arreglando el emulador para que los mandos tipo XBox se puedan usar bien (lo que ya mencioné de los hats). Ya está casi hecho. Aparte voy a aprovechar también para hacer que la interfaz del emulador se pueda poner en español. Lo mismo pasará con el programa para editar los controles.

En cuanto a la web ya tiene algunas secciones más, aunque aún falta alguna.

2
7 días después
carra

Ya he terminado la primera versión de la web, la podéis ver en www.vircon32.com
La podéis ver en español pinchando en la banderita.

Creo que con esto se aprecia bastante mejor todo lo que hay hecho para la consola, al poder navegar a las distintas secciones y tener las explicaciones y descargas en cada una. He aprovechado y he subido también el código fuente de las herramientas de desarrollo (compilador, ensamblador, etc). Así al menos cumplo mi propia licencia BSD :sweat_smile:

Por otro lado, también están subidas las nuevas versiones del emulador y EditControls. Ambos programas están ya traducidos al español. Además ya se puede usar la cruceta de mandos de XBox sin problemas.

Como curiosidad, veréis que he tenido que cambiar la fuente de texto. ImGui no permite añadir caracteres extra (como los especiales del español) a la fuente que viene por defecto. Además he programado un apaño para un bug en SDL, que cuando intentas mostrar MessageBoxes en pantalla completa te puede bloquear la ventana. También he añadido al emulador una guía rápida en la ayuda, y he hecho que nos muestre en los menús qué cartucho y qué tarjeta de memoria tenemos insertados en la consola para evitar confusiones.

En fin, como véis aunque no hay mucha novedad tangible en forma de juegos, sigo completando trabajos "de background" que no son igual de agradecidos pero igualmente se tienen que hacer en algún momento si el proyecto pretende ser un poco serio.

5
13 días después
carra

Ahora estoy haciendo un juego de plataformas muy básico. Como veréis en este video, ya tengo el motor medio montado:

La idea es que me sea un juego muy sencillo y rápido de crear, así que estoy ahorrando esfuerzo en todo lo que puedo: uso música de dominio público, las físicas son simplificadas, no hay menús ni opciones... pero sí que tendrá todo lo básico de un juego completo, y lo poco que haya trataré de que esté pulido.

Al ser tan básico y centrarse sólo en lo necesario, este juego también está pensado para servir como un proyecto "tutorial" para quien quiera hacer juegos de plataformas y similares para la consola.

4 1 respuesta
r2d2rigo

carra dejando en evidencia a todo el subforo, el tio se hace una consola y no contento con eso se hace los juegos para la consola.

Menudo crack eres macho.

6 1 respuesta
thenanox

#208 por que no llega al final? que va a pasar!!

1 respuesta