Saltar al contenido

Documentación

  • Descarga el juego, abre la lista de niveles y juega cualquiera. Para crear el tuyo, crea un nivel en el editor y pon en su carpeta una canción de 1-2 minutos

  • Los errores del juego van a las issues de releases, las preguntas a Discord. Adjunta la línea de versión de la configuración y los pasos tras los que aparece el error

  • Antes de jugar, el juego muestra cuánto le cuesta a tu dispositivo ejecutar un nivel, con un indicador de cinco barras: cuantas más barras se encienden, más ligero es el nivel. Las barras verdes signi

  • El editor viene integrado en el juego, no hay que instalar nada aparte. Un nivel en él es una carpeta con una canción y archivos, que llevas de vacía a lista para publicar

  • Un nivel es una carpeta de archivos, el primero se construye en seis pasos, y todo el editor se apoya en seis ideas: objeto, fotograma, tramo, capa, padre, fotograma clave

  • Un nivel es una carpeta normal en el disco: el archivo del nivel, los metadatos y todo lo que usa. Créalo en Json y pásalo como una copia de la carpeta, no hace falta instalar nada

  • Seis pasos hasta la primera prueba: crear un nivel, añadir la canción, marcar el ritmo, colocar objetos, hacer una prueba, guardar

  • Objeto, fotograma, tramo, capa, padre, fotograma clave - las seis ideas sobre las que se apoya todo el editor

  • Un nivel cuenta el tiempo en sus propios fotogramas, no en los de la pantalla, así que se juega igual en cualquier equipo. La duración del nivel la fijas tú, y los fps conviene dejarlos en el valor pr

  • Un fotograma clave es un valor en un fotograma de una pista, más el suavizado con el que se llega a él. Todo lo que en un nivel se mueve, cambia de color o se activa y desactiva es una lista de fotogr

  • El nivel mínimo es una canción. Las imágenes y las fuentes las traes tú, y todo vive en la carpeta del nivel

  • Lo mínimo es una canción. Todo lo demás es opcional, y casi todo lo traes tú

  • Convierte la canción a ogg: pesa entre 8 y 10 veces menos que wav y, a diferencia de mp3, no añade silencio al principio del archivo. Aparte de ogg, solo se cargan mp3 y wav

  • Si basta una forma, usa una forma: no tiene archivo, no gasta memoria y no plantea dudas de derechos. Haz la imagen del tamaño de su sitio en pantalla, como mucho 2048 para un nivel móvil y 4096 en ge

  • Un nivel vive en su propia carpeta dentro de levels, en la carpeta del juego. No cambies el nombre de los archivos que usa, y una copia de seguridad completa es una copia de la carpeta del nivel

  • Un nivel que publicas solo puede contener archivos con una licencia abierta no más estricta que CC BY-NC o con el permiso de su autor. Un nivel para ti puede montarse con cualquier cosa

  • Puedes usar una canción si su licencia abierta no es más estricta que CC BY-NC o si su autor permitió directamente usarla en el nivel. Una canción de YouTube, SoundCloud o Spotify necesita el permiso

  • Un recurso es válido si tiene una licencia adecuada o el permiso del titular de los derechos. No hay una tercera vía

  • Seguros por defecto: música de ccMixter, Freesound y Kenney, imágenes de Poly Haven, Pexels y Unsplash, fuentes de Google Fonts. De YouTube, SoundCloud o Spotify no se puede tomar nada

  • El registro anota de dónde viene un recurso y en qué condiciones: el enlace, la licencia, los permisos, los autores. Un campo de licencia vacío significa "nadie lo comprobó", y ese recurso se rechaza

  • Cada servicio comprueba un nivel con sus propias reglas, así que uno puede aceptarlo y otro rechazarlo. Solo un error bloquea la publicación, una advertencia envía el nivel a moderación

  • Escribe al autor con la plantilla, deja intactos los puntos 1-3 y guarda la respuesta. Solo cuenta un permiso que permita directamente distribuir el nivel, no uno solo para uso personal

  • Un buen nivel es aquel en el que el jugador entiende qué lo mató, se mueve con la música y quiere volver a intentarlo

  • El jugador tiene que entender qué lo mató. Muestra un peligro antes de que sea peligroso, da al menos 12 fotogramas para reaccionar y haz que el peligro destaque más que la decoración

  • Marca primero la cuadrícula de pulsos: el tempo, luego el desplazamiento, luego los pulsos por compás. Pon el pico del nivel en el pico de la canción, y dale al jugador un respiro en los breaks

  • Diseña según los números del propio jugador - todos están en 6_avatar y 7_damage - y una reacción humana de 12-15 fotogramas. Muestra primero cada patrón nuevo en una forma segura

  • Mantén el contenido importante lejos del borde: otras pantallas ponen el borde en otro sitio, y el recorte de un teléfono puede tapar un proyectil. La sacudida de cámara funciona durante un compás, el

  • Pasa el color del contenido por una referencia al tema y deja los colores literales para lo que de verdad es único. Activa el posprocesado en un pico y vuelve a desactivarlo, o los proyectiles pierden

  • Un tema es una paleta de 64 colores a los que los objetos se refieren por número de ranura. Cambia el tema, y todo lo que se refiere a él cambia con él

  • Monta una imagen primero con formas integradas y dibuja las tuyas solo donde ninguna encaje. Pon luces y sombras sobre una forma base, convierte cada elemento repetido en un prefab y compara el result

  • Hábitos, no diseño: en qué orden construir un nivel, cómo no hacer el trabajo dos veces ni perderlo, cómo comprobarlo con el bot, pasárselo a otra persona y construirlo con un asistente de IA. Empieza

  • Primero la pista de audio, los fps, el mapa de pulsos y los marcadores, después un esqueleto de formas simples y su prueba de juego. La decoración, el tema y los efectos van al final

  • Los objetos que más tarde tendrás que cambiar todos a la vez forman un prefab, sean cuantos sean. El contenido que se puede describir con una regla es un generador. En cualquier otro caso, simplemente

  • La paleta de comandos (Ctrl+Shift+P), la búsqueda de contenido (Ctrl+F), el botón Localizar y las flechas en una línea de tiempo son lo que más tiempo ahorra. Cualquier tecla se puede reasignar en la

  • Tu trabajo lo protegen el guardado automático, deshacer y una copia de la carpeta del nivel. Solo una copia de la carpeta es una instantánea completa del nivel. Cambiar el formato del archivo y elimin

  • Un bot juega el nivel con los mismos controles que tú y comprueba la legibilidad, no la dificultad. No garantiza que el nivel se pueda superar

  • Empaqueta la carpeta del nivel en zip o tar.gz y, si quieres contraseña, cífrala con gpg. En otro equipo, el nivel desempaquetado se juega al instante, y el juego lee esos archivos comprimidos por sí

  • Un cliente de IA compatible con MCP puede editar el nivel abierto en el editor mientras lo ves. Cada lote de la IA es un solo paso de deshacer, y la IA no puede publicar, eliminar archivos ni escribir

  • Que un nivel funcione en los dispositivos de los jugadores lo deciden el número de formas en un fotograma y el sobredibujado. Empieza por el presupuesto del nivel y, si haces un nivel para teléfonos,

  • Un teléfono aguanta con holgura unas 1000 formas en un fotograma, un PC débil 5000-10000. El sobredibujado cuesta más que la cantidad: cosas translúcidas sobre toda la pantalla, capa sobre capa

  • En un teléfono, el dedo tapa la pantalla y el sistema ocupa los bordes. Mantén lo importante lejos de los bordes y prueba el nivel en un teléfono débil: la translucidez a pantalla completa es lo prime

  • Qué hace un campo o un botón concreto del editor, una página por panel, ventana o pestaña. La referencia no se lee de principio a fin: se llega aquí desde la búsqueda o desde un enlace de un artículo

  • La lista principal de términos del proyecto. La interfaz del juego, esta documentación y cualquier otro texto sobre Bullet Hero usan estas palabras, y un término nuevo se añade aquí primero

  • Los metadatos son la portada del nivel: nombre, descripción, imagen, autores, clasificación por edad, dificultad y avisos sobre el contenido. Hoy un nivel llega a otra persona como carpeta o a través

  • Las líneas de tiempo muestran el nivel a lo largo del tiempo: los objetos, los fotogramas clave del objeto seleccionado, la plantilla de un prefab, el audio y los eventos. La cuadrícula de pulsos te a

  • La jerarquía es un árbol de los objetos del fotograma actual ordenados por padre. Cada línea de tiempo tiene su propio búfer de portapapeles, y la paleta de comandos encuentra cualquier acción del edi

  • El inspector de objeto edita los campos del objeto seleccionado, el inspector de fotograma clave edita los fotogramas clave seleccionados, en todas las pistas que toca la selección a la vez

  • Un efecto son partículas de VFX Graph cuyos parámetros se dividen en módulos: cuántas partículas hay, desde dónde salen, cómo se mueven, de qué color y tamaño son. Se editan en el inspector o en el ed

  • El sonido de una pista de audio pasa por una cadena de efectos: hay 11, desde la normalización y el compresor hasta el eco y la reverberación. La cadena, la velocidad y el volumen se fijan en el inspe

  • Un generador crea contenido y lo aplica al nivel en una sola operación que se deshace en un solo paso. Todos los generadores se ejecutan desde la ventana "Generadores" de la barra de herramientas

  • Un modificador cambia lo que ya hay en el nivel: elimina contenido, recalcula los fps, aplana prefabs, cuantiza fotogramas clave, encaja y desplaza tramos. Una ejecución se deshace en un solo paso

  • Aquí se fija todo lo que pertenece al propio nivel: duración, fps, semilla, orientación, metadatos, publicación. Desde aquí también se lanza el nivel, se comprueba con las reglas y se restaura desde u

  • Las texturas, formas, temas, efectos y prefabs de un nivel viven en su carpeta y viajan con él. Cada recurso tiene su propia ficha con su origen, licencia y autores

  • En el modo prefab editas la plantilla, y al guardar la edición llega a todas sus colocaciones. Se entra con el botón "Editar prefab" del inspector de una colocación y se vuelve al nivel con Ctrl+Shift

  • Exportar guarda el nivel fuera del juego como carpeta o archivo comprimido, junto con todos los archivos que usa. Una contraseña cifra el contenido del nivel en el disco, y una contraseña olvidada no

  • Aquí se configuran el autoguardado, la cuadrícula, la selección, los gizmos y los presets de nivel nuevo. El autoguardado está activado por defecto y salta 60 segundos después de una edición

  • La jerarquía, los inspectores y las líneas de tiempo están acoplados alrededor de la vista. Un clic en el tirador del borde de un panel lo abre o lo cierra, un arrastre cambia su ancho

  • Las colecciones guardan los recursos que reutilizas entre niveles. Un nivel nunca hace referencia a una colección: importar copia el recurso dentro, y el nivel se juega en cualquier parte

  • Un nivel se envía solo desde la pestaña "Publicación" de la configuración del nivel: como archivo comprimido o al Workshop de Steam. El informe comprueba el nivel por sí solo, y sus errores bloquean e

  • El editor renderiza el nivel abierto en un archivo de video mediante el ffmpeg instalado en tu equipo. El renderizado es offline, fotograma a fotograma, así que el video es exacto por lento que sea el

  • El SDK es el formato de nivel de Bullet Hero en forma de biblioteca abierta en C#. El juego lee y escribe los niveles a través de él, y tu programa puede hacer lo mismo

  • El SDK es el paquete BulletHero.SDK de nuget.org o una compilación desde el código fuente. En Unity se conecta como git submodule, y el ejemplo ConsoleSmoke comprueba que tus niveles se leen

  • Un nivel es una carpeta: el contenido en level.json o level.blob, los metadatos en metadata.json o metadata.blob, una portada y archivos multimedia. Las copias de seguridad, los récords y la configura

  • Un nivel se exporta como carpeta, tar.gz o zip, con contraseña opcional: zip con AES-256 u OpenPGP. El SDK detecta el formato de un archivo recibido por sus primeros bytes, no por su nombre

  • Hay tres versiones: gv para el juego, sv para el SDK y mg para la generación del formato de modelos. Según mg, el SDK migra un archivo antiguo y se niega a leer uno con una generación más reciente que

  • La validación la llamas tú a través de ValidationFacade, no está integrada en el guardado ni en la carga. Las incidencias se dividen en Error, Warning y Advice, y ValidateAndFix corrige lo que puede

  • Un servicio describe qué niveles acepta con un archivo PublishProfile: licencias, orígenes de los recursos, campos obligatorios, límites de tamaño. Añadir un servicio significa escribir un archivo, no

  • Bullet Hero es un híbrido gratuito de juego de ritmo y bullet hell. No hace falta cuenta y todavía no hay servidor. Los jugadores crean los niveles en el editor integrado y se los pasan como carpeta o

Notas

  • Uso la IA y creo que merece la pena usarla. Pero bien: como una herramienta cuyo trabajo reviso, no como algo que piensa por mí. Usada sin pensar, produce mucho texto y código que parece correcto y no

  • Bullet Hero es gratis, funciona en Windows y Android, y su SDK, su documentación y sus builds son abiertos. El núcleo mueve miles de objetos en pantalla en teléfonos y lo cubren más de 8000 tests

  • Comunidad

    Las preguntas, los comentarios y tus niveles van a Discord. Cualquiera puede ayudar al juego: corregir un error en la documentación, añadir una traducción, informar de un bug o hacer un nivel

  • Las conversaciones y preguntas van a Discord, los videos a YouTube y los bugs del juego a los issues del repositorio bullet-hero/releases. El código fuente está en la organización bullet-hero de GitHu