PICO-8: la “consola” retro perfecta para aprender a hacer videojuegos

LKS

🕹️ Introducción a PICO-8

PICO-8 es un entorno cerrado que simula una consola retro con limitaciones autoimpuestas:

  • Resolución fija de 128x128 píxeles
  • Paleta de 16 colores
  • Sonido y música integrados
  • Todo el juego cabe en un solo cartucho virtual en forma de .png

Estas restricciones ayudan a eliminar la parálisis por exceso de opciones, te obligan a terminar proyectos pequeños y hacen que los resultados se vean rápido.


🛠️ Todo en un solo lugar

Una de las grandes ventajas de PICO-8 es que incluye todo lo necesario para crear un juego:

  • ✏️ Editor de código (Lua)
  • 🎨 Editor de sprites
  • 🧩 Editor de mapas
  • 🎵 Editor de música y efectos
  • ▶️ Ejecución inmediata del juego

Nada de instalar motores, librerías ni configuraciones raras. Abres PICO-8 y empiezas a crear.


🌍 Una comunidad enorme

PICO-8 tiene una comunidad muy activa:

https://www.lexaloffle.com/pico-8.php

  • Juegos gratuitos para jugar y estudiar
  • Tutoriales y recursos
  • Game jams frecuentes
  • Código abierto compartido por otros usuarios

Es muy fácil aprender viendo cómo lo hacen los demás.


🧠 ¿Y si ya eres desarrollador veterano?

PICO-8 no es solo para principiantes. Es una herramienta perfecta para hacer prototipos rápidos, experimentar o validar conceptos.

Noel Berry, desarrollador de Celeste, utilizó PICO-8 para idear el juego durante una jam de 4 días. Aquí lo tenéis: https://www.lexaloffle.com/bbs/?tid=2145


🚀 ¿Por dónde empiezo?

Juega a algunos juegos de PICO-8: https://www.lexaloffle.com/bbs/?cat=7&carts_tab=1#sub=2&mode=carts&orderby=featured

Puedes descargarte la versión educativa de forma gratuita para probar. La versión completa es un único pago de 15 €: https://www.lexaloffle.com/pico-8.php

Documentación de la API y otros recursos: https://www.lexaloffle.com/pico-8.php?page=resources

PICO-8 Fandom Wiki: https://pico-8.fandom.com/wiki/Pico-8_Wikia

Cursos online gratuitos: https://nerdyteachers.com/PICO-8/

También encontraréis varios canales de YouTube con tutoriales. Por ejemplo: SpaceCat y LazyDev.


🎯 Demuéstralo

Con absolutamente ninguna experiencia previa en programación, siguiendo un tutorial de 1 hora de YouTube conseguí hacer un clon de Flappy Bird.

Además, le incorporé nuevas mecánicas usando los mismos conceptos básicos que había aprendido en el tutorial, dándole un aspecto único al juego: dos botones de salto, coger globos para aumentar la puntuación o una explosión de partículas al morir.

44
darksturm

enorme hilo, en esta plataforma hice un juego de la serpiente del nokia y nada mal xD

1
tute07011988

Qué guapa y qué interesante la movida. Lo meto en portada por el hilazo que es.

5
Jastro

creo que @AikonCWD le dio en su dia, si no me equivoco, tengo pendiente hacer alguna cosilla.

1 respuesta
AikonCWD

#4 siii. Encima ahora he evolucionado a su otra consola virtual que pretende simular un SO: https://www.lexaloffle.com/picotron.php

Como dato adicional curioso... cualquier juego creado en pico8 se puede serializar (automáticamente) dentro de la caratula del cartucho en formato png. Para ello el autor utiliza el bit menos significante de cada pixel de la imagen y lo usa para almacenar el código de tu juego. De esta forma se pueden compartir juegos completos con solo enviar una pequeña imagen.

La idea detrás de todo esto es en todo momento tener la sensación de que esta consola virtual es "real", pudiendo compartir cartuchos de juegos, etc...

edit: vale veo que si lo ha explicado #1 xD

Como dato adicional, Celeste, el aclamado juego indie, nació como juego de Pico8. Animo mucho ha utilizar este "engine" porque es puro amor y realmente está muy bien hecho, tienes gestión directa de su memoria virtual y se puede llegar a hacer virguerías

2
Jastro

ostia lo que no sabia es que pico8 era de pago lol

1 respuesta
AikonCWD

#6 Sí que lo es. Piensa que al pillarlo ya tienes acceso a poder ejecutar/jugar infinidad de cartuchos compartidos por la comunidad, y a parte desarrollar tus propios cartuchos.

spoiler
1 respuesta
Jastro

#7 ahora no tengo tiempo con el mud, pero mas adelante me la pillo y hago pruebas

St3in3R

Qué interesante! A favoritos para echarle un ojo en casa.

charlesmarri

En las últimas consolas emuladoras que he pillado venían varios juegos de PICO. Muy interesante, quizás una tarde me dé por hacer algo si decís que es "asequible". Estudié letras puras, así que va a ser todo un reto.

Edito: veo que no es tan sencillo 😂

r2d2rigo

De eso nada, la consola perfecta es Vircon32.

Siempre me ha parecido curiosa la PICO-8 pero que se programe en Lua me tira para atras muchisimo, aunque eso no impide que la gente haga cosas muy locas en ella como picoCAD https://picocad.net/

4 2 respuestas
Jastro

#11 vircon32 esta bien, pero es para hardcore players, yo la pase putas para hacer Ocean Storm, si no es por Carra no hubiera avanzado tanto.

Pico tiene muchas cosas que me gustan, creo que lo que mas pereza me da es la resolucion, pero welp, de momento, no me da la vida xD

1 respuesta
HR1772

He visto en el post que hay versión gratuita pero soy incapaz de localizarla, alguno me pasa el link? Me gustaría probar antes de comprar y ver si echando el día consigo algo

2 respuestas
AikonCWD

#13 https://www.pico-8-edu.com/

#12 picotron tiene una resolución mucho mayor y en esencia es lo mismo que pico8

Kalgator

#13 https://www.pico-8-edu.com/

HR1772

Llevo un rato trasteando, los "sprites", dibujos, etc... se pueden hacer más "grandes" es que se ve feisimo en los cuadritos esos y hay 4 colores contados XD soy incapaz de crear nada bonito.

PD: He creado un "juego" de mover un personaje, empujar una caja y llegar a la meta. Es todo tan feo que duele la vista al mirarlo pero al menos funciona... xD

1 1 respuesta
LKS

#16 Solo necesitas asignarle los argumentos de ancho y alto a la función spr()

  -- sprite simple 8x8
  spr(1, 10, 10)
  
-- sprite de 16x16 (4 sprites) spr(1, 10, 10, 2, 2)

Luego en el editor de sprites donde haces los dibujos, puedes usar la rueda del raton para dibujar el sprite más o menos grande.

Si le das al F8 empiezas a grabar un GIF, con el F9 paras la grabación. Luego lo subes a algún sitio tipo imgur y nos enseñas que has hecho.

HR1772

Podeis ponerlo a partir del segundo 10 https://www.youtube.com/live/WF1F5ptcjZc he hecho el coche, y le he puesto colision a la rotonda y a lo blanco. Al probarlo me he dado cuenta de que es todo muy pequeño, tengo que hacer el escenario más grande y ver como mejorar el tileset para crear un recorrido más entretenido.

Cuando tenga hecho una "ciudad" voy a intentar "programar" algunos NPCs para que tengas que recogerlos y llevarlos a sitios o al menos esa es mi idea. xD

1 3 respuestas
newfag

#11 Que locurote

HR1772

@LKS Se ve el video? A un amigo no, me dice que se queda cargando indefinidamente xD

2 respuestas
LKS

#20 a mi si me carga en el navegador del móvil. Mola el concepto.

Jastro

#18 joder mola, si tuviera tiempo infinito me lo pillaba xD

qpu

#20 aquí no, se queda cargando

HR1772

Pues intentaré seguir, la verdad que a la hora de escribir en LUA lo que más problema da es la interfaz que no se ve una mierda con las letras esas que trae el programita XD

1 respuesta
AikonCWD

#18 buen nick tienes en tu cuenta de youtube :)

#24 Usa vscode (hay una extensión para pico8 pero no es ni necesario). Edita el fichero desde tu editor de código favorito y luego en pico8 hay que pulsar una tecla para recargar el fichero (no recuerdo cual era, algo tipo Ctrl+R o similar). y luego ya ESC y RUN para testear. El video no me carga :(

2 2 respuestas
LKS

#25 yo estoy usando un paquete de sublime que formatea los colores para pico 8 y tiene incluso un comando para lanzar el juego desde sublime. Lo que he hecho es cambiar la fuente para no usar la de pico8. Aunque reconozco que tiene su encanto la fuente y dentro del juego se ve guay.

2 1 respuesta
HR1772

#25 Es un secreto a voces xD el avatar no engaña tampoco

Desde la app movil de YT si podeis ver el video, pero vamos no tiene mucho misterio xD

tute07011988

#18 A mí no me carga :(

Nunca me acuerdo de quién eres realmente, cabrito xd

AikonCWD

#26 Usar la fuente del juego tiene unas pequeñas ventajas.

Por diseño, hay un número limitado de tokens por cartucho. Hay que ser un poco bestia para llegar a ese máximo pero la gente que suele llegar tiene que empezar a aplicar métodos de economía de código para ahorrar caracteres. En ese aspecto hay teclas especiales que se insertan pulsando SHIFT+letra y eso añade un icono. Hay iconos que en ese caracter resume varios tokens. por ejemplo R printa un caracter para indicar la flecha derecha (right) y puedes usarlo así:

1 1 respuesta
Jastro

ale, estareis contento ya me he pillado pico8 cagonto

4