Consejos para usar IA

Con el uso de la IA, quizá sea útil abrir un hilo sobre consejos prácticos para aprovecharla al máximo y ayudarte a llevar tu idea al siguiente nivel.

Si tienes un error visual, toma una captura de pantalla. En Paint o en cualquier otro programa de dibujo, traza un recuadro del color que prefieras alrededor del problema.

Luego, arrastra y suelta la imagen en la ventana del chat de la IA o, si estás usando la línea de comandos, guárdala en una ubicación que pueda leer (el mismo lugar donde están tus archivos) e indícale el nombre del archivo de la imagen.

En el prompt, por ejemplo si usé un rectángulo rojo: «Hay un error, adjunto una captura de pantalla y he marcado el problema con un recuadro rojo. Investígalo».

Si la IA puede iniciar, ejecutar y depurar un emulador, esto puede funcionar muy bien porque puede iterar sobre el problema. Si no puede, puede que opte por hacerlo de otras formas, pero a menudo encontrará el fallo y lo solucionará. Puede que intente deducirlo y aplicar una solución. Tendrás que ejecutar el juego y comprobarlo.

Sin embargo, ten en cuenta que al arreglar eso existe la posibilidad de que rompa otra cosa, así que tendrás que revisarlo.

4 Me gusta

Si tienes mucho parpadeo, dile a la IA que use «hardware double buffer» (búfer doble por hardware), pero también indícale que tenga cuidado para asegurarse de que «no queden estelas ni fallos gráficos en los sprites».

El búfer doble funciona dibujando en una pantalla que no vemos mientras miramos otra y luego alternándolas una vez terminado el dibujo; al presentarse la pantalla de golpe se elimina el parpadeo, aunque costará memoria para esa pantalla adicional. Cuando se usa desplazamiento por hardware (hardware scrolling), es de esperar que consuma unos 16 KB adicionales en comparación con el búfer simple.

1 me gusta

Si notas ralentizaciones, indícale a la IA que no quieres que el juego pierda fluidez y que mantenga una tasa de fotogramas específica (por ejemplo: «el juego se ralentiza cuando hay muchos sprites en pantalla. ¿Qué puedo hacer?» o «el juego se ralentiza cuando hay muchos sprites en pantalla. Mantén 25 fps. Dame opciones»).

Puede que te ofrezca sugerencias sobre cómo lograrlo: mostrar menos elementos en pantalla, métodos de dibujado diferentes para optimizar, etc. Tendrás que decidir qué prefieres.

1 me gusta

Intenta recopilar toda la documentación que puedas sobre diversas técnicas y pídele a la IA que la use como fuente de verdad. En realidad, los LLM son bastante tontos, pero con la documentación adecuada pueden brillar de verdad.

2 Me gusta

Me está resultando muy útil pensar como un programador.

No te limites a aceptar todo. Cuestiona las cosas. Haz sugerencias. Comprende lo que te está diciendo.

¡Y no te apresures! Trátalo como a un programador júnior muy rápido que necesita muchísima supervisión.

3 Me gusta

Además, pídele revisiones periódicas y que compruebe si hay solapamientos de RAM.

Eso me ha salvado varias veces.

1 me gusta

Tengo dos preguntas: ¿cuáles son los mejores emuladores para usar con Claude? Y cuando hablamos de usarlo en Amstrad y Z80, ¿connect u opus? ¿Medium?

Solo dejo este dato por aquí: Amspirit (un emulador relativamente nuevo) expone una API HTTP con la que se puede hacer prácticamente de todo desde fuera. amspirit-releases/docs/lite/web_api.md at main · AMSpiriT-Emulator/amspirit-releases · GitHub

Hace un tiempo leí una entrada del blog del autor sobre esto, pero no la encuentro ahora mismo.

3 Me gusta

Sí, y también ACE-DL, es realmente útil para que la IA interactúe directamente con cpc sin simular pulsaciones de teclas (por ejemplo).

Y no olvides enviarle a la IA la documentación de la API :slight_smile:

1 me gusta

¿Podrías hacer un tutorial sobre cómo conectar Claude con acedl y lo demás?

Claude siempre me dice que no puede conectarse ni usar acdl.

He creado un «paquete» con todo lo necesario para Claude en mi proyecto, solo arrastra y suelta en el área de discusión:

  • BNDZEN.tar.gz: Linux Ace-dl
  • ACE-API.txt: Descripción de la API de ace-dl
  • disark: Desensamblador disark para Linux de Julien Névo (Arkos)
  • Otros archivos: dsk, ejemplo de proyecto, lo que quieras.

Luego dile lo que quieres.

Si tienes una cuenta de GitHub, conéctala a Claude; creará el repositorio con el nombre que desees y trabajará dentro de él.

1 me gusta

Esto es fantástico. Los artefactos ya no son interesantes (es decir, los que obtienes simplemente pidiéndole a un modelo que lo haga); en su lugar, ¡cuéntanos cómo usas los modelos y deja la creación de los binarios como un ejercicio para el lector! :smiley:

@Arnaud6128 Gracias por el consejo sobre ACE-DL. Es una idea genial.

Le pregunté a Claude qué versión de ACE-DL prefería, y me dijo que la versión «Ubuntu 24.04 LTS» coincide con la que Claude mismo está ejecutando.

Subí esa, ¡y de repente es más fácil probar las compilaciones dsk!

1 me gusta

Otro consejo muy útil:

Pídele a la IA que se ciña a la tarea que le has pedido.

Divide tu proyecto en tareas pequeñas y, a continuación, divide esas tareas en tareas todavía más pequeñas.

Pídele a la IA que trabaje únicamente en esas tareas más pequeñas y que no se desvíe de lo que le has pedido.

Pídele que se mantenga enfocada en el objetivo y que no investigue cosas que no has pedido.

De lo contrario, tus prompts pueden tardar mucho tiempo en recibir respuesta y consumirás tokens mucho más rápido.

La IA normalmente ofrecerá diferentes opciones sobre en qué trabajar a continuación. Analiza las opciones con cuidado y elige la que consideres más adecuada. La IA te dará consejos o recomendaciones, y eso está bien. Lo importante es que se apegue a la elección que hagas y no pierda tiempo y tokens «metiéndose en una madriguera de conejo».

2 Me gusta

crea un archivo MEMORY.md en el espacio de trabajo que contenga todas tus reglas para el proyecto

llénalo con cosas como «Quiere que se use el estándar ASD-STE100 Simplified Technical English al escribir documentación, comentarios o respuestas», estilos y preferencias de programación (p. ej., comentar siempre el código) y reglas estrictas como indicarle que use una carpeta específica para borradores, o que nunca elimine ningún archivo a menos que se le pida específicamente..

1 me gusta

Ace-dl ha funcionado, pero desafortunadamente en mi caso no ha servido para el problema que tengo.

Claude no puede ver el problema ni siquiera con el emulador, intenta adivinar qué pasa y crea parche tras parche, pero ninguno funciona. Ve el fallo en los vídeos que le mando, pero eso es todo; no puede simular el problema aunque use ace-dl.

Mi problema es que el juego dibuja mal de vez en cuando una línea en los bordes superiores. No estoy seguro de por qué.

He investigado hasta el límite semanal intentando arreglarlo.

Oh… No debiste haber dicho eso. Siempre es más divertido cuando lo descubren por sí mismos :slight_smile:

Mi granito de arena desde que empecé a generar código en el trabajo:

  • Totalmente de acuerdo con lo de las tareas pequeñas e identificadas. Si sabes programar y puedes revisar (el código o el resultado) lo que está haciendo la IA, es mucho mejor. A menudo tengo que recordarle que se apegue a las especificaciones…
    Además, tu IDE te mostrará el antes de la modificación de la IA y el después con los cambios para revisarlos. Cuanto más pequeño, mejor.
  • En cuanto a la optimización de código ensamblador, creo que deberían entrenarla un poco más… Para mover bits de un lado a otro, como: «la mejor manera de traducir un color PEN (0…15) al subpíxel 0 de un octeto de pantalla». Mi IA ni siquiera usó el Carry Flag para reducir la cantidad de rotaciones y desplazamientos necesarios. Así que terminé haciéndolo yo mismo… Una pena, ¿no?
    Si seleccionas una subparte para optimizar, indícale a qué registros tiene acceso o si puede hacer push/pop si eso mejora el rendimiento.

Si usas Claude CLI o tal vez desde el chat, usa «compact» con regularidad. Cuesta tokens, pero puede alargar la sesión durante más tiempo.

Además, no dudes en mantener la mente de la IA «fresca». Pídele que «te escriba un documento de traspaso para dárselo a otra instancia», luego abre una nueva ventana de chat o de CLI, y allí dile «continúa a partir del documento de traspaso». Empezará con la memoria más despejada y puede resolver el problema mejor que cuando se acerca al final de un contexto.

¡Ah, y por último! Solo porque una IA recomiende no hacer nada, tú tienes el control; cuestiónala, ¡solo se está haciendo la vaga!

1 me gusta

Creo que también puede pasar en el borde izquierdo.

Ocurre con bastante frecuencia al cambiar de dirección: hacer scroll hacia abajo y en el siguiente frame hacer scroll hacia arriba, o scroll hacia la derecha y en el siguiente frame hacia la izquierda, etc. Quizá más aún cuando el desplazamiento pasa a la siguiente línea/columna de caracteres. La IA tiene que redibujar en el lugar correcto ¡y se está equivocando! Un bug clásico.

Y probablemente en el borde derecho, pero no podemos verlo porque los sprites por hardware están en la parte superior.

1 me gusta