1K Ghost Hunter #Pico1k
1K Ghost Hunter
Annoying ghosts are everywhere! Luckily you've got a brand new proton stream device. Get rid of them and advance to another room filled with more ghosts. Avoid contact with ghosts; they drain your energy.
A game in 1021 Compressed Bytes of code for PICO-1K Jam 2025


Features:
- Smooth 60 fps gameplay.
- Ghosts are really annoying.
- Realistic proton stream physics.
- Lots of action and fun packed in less than 1Kbyte compressed bytes of code.
- Catchy intro tune.
- Sound effects.
- Particle effects.
- Highscore.
- Big energy bar.
- Beautiful, compact, fine tuned code.
Controls:
- Left/Right/Up/Down: move player and aim proton stream
Code:
poke(24405,0)cls()?"\^:1c1c08fc68081434\^:1c1c281c08081434\^:3838103f1610282c\^:1c1c081c28081434\^:183c54fe7c7c381c"
poke(24405,96)_set_fps(60)t=0s=0::r::t=max(t,s)n=1s=0::s::l=0p={}k=120m="level "..n.." ready!!!"
?"\as8c.c.eec.ddb2b....c3.c.c.c.b2bd3d"
for i=1,n do
add(p,{u=rnd(128),v=rnd(128),z=rnd(),k=.8,a=0,b=32,l=63,r=0})
end
o={0,0,0,0,0,0,0,0}
z={x=64,y=64,z=0,l=128,r=0}
w={}
::_::cls(1)
z.r=max(z.r-1)
rect(0,1,z.l,2,3)
rect(0,0,127,3,6)
?"sc:"..s,1,4,13
?"hi:"..t
for q in all(p)do
c=cos(q.z)d=sin(q.z)
if(k<1)q.u+=q.k*c q.v+=q.k*d q.z+=q.a
q.u%=256
q.v%=256
q.x=min(q.u,256-q.u)
q.y=min(q.v,256-q.v)
q.r=max(q.r-1)
q.b-=1if(q.b<1)q.b=32q.a=rnd(.02)-.01
pal(6,q.r\4%2<1and({4,9,10,11})[1+max(q.l\16)]or 7)
spr(4,q.x-4,q.y-4)
pal(6,6)
if(k<1and(q.x-z.x)^2+(q.y-z.y)^2<48)z.l-=1z.r=20
if(q.l<1)del(p,q)s+=1for i=1,64do add(w,{x=q.x,y=q.y,z=rnd(),k=rnd(),l=64,c=12})end?"\asfi6c"
end
a=btn()\2%2-btn()%2b=btn()\8%2-btn()\4%2
if(a!=0or b!=0)if(l<1)z.z=atan2(a,b)%1
if(k<1)z.x=mid(4,124,z.x+a)z.y=mid(4,124,z.y+b)
for i=8,2,-1do
o[i]=o[i-1]
end
o[1]=z.z
e=z.x
f=z.y
a=z.x
b=z.y
for i=1,8do
u=cos(o[i])v=sin(o[i])
c=a+u*4
d=b+v*4
g=c+rnd(4)-2
h=d+rnd(4)-2
if(i>1)line(e,f,g,h,i%2<1and 3or 10)
if i%2<1do
for q in all(p)do
if(k<1and max(abs(g-q.x),abs(h-q.y))<4)q.l-=1q.r=20add(w,{x=q.x,y=q.y,z=rnd(),k=1/4,l=64,c=10})?"\as0i7c"
end
end
e=g
f=h
a=c
b=d
end
pal(6,z.r\4%2<1and 7or 3)
spr(z.z*4\1,z.x-4,z.y-4)
pal(6,6)
for q in all(w)do
q.x+=q.k*cos(q.z)
q.y+=q.k*sin(q.z)
q.l-=1pset(q.x,q.y,q.c)
if(q.l<1)del(w,q)
end
if(z.l<0and l<1)m="game over"k=120l=1
if(#p<1and l<1)m="well done!!!"k=120l=2
if(k<1and l==1)goto r
if(k<1and l==2)n+=1goto s
if(k>0)k-=1?"\fa\^o25a"..m,64-#m*2,52
flip()goto _





Comments
Log in with itch.io to leave a comment.
Great little game!
I was quite surprised by the visual similarities (dark blue background and a lot of characters running around) to my entry Locate.Identify.Eliminate 😅.
Yep, the blue color from PICO-8's palette is quite useful as a background when you want an 8-bit gaming aesthetic.
Me parece increible que en tan poquito código haya un juego.
¡Muchas gracias! Al principio, a mí también me parecía magia. Pero una vez asimilas las técnicas y los patrones para conseguir código compacto, es sencillo y divertido, casi como encajar las piezas en un puzle que resulta ser un juego. Recomiendo este ejercicio a todos los que tengan ilusión por recrear juegos sencillos de la vieja escuela. No hace falta una idea complicada, cuanto más sencilla, mejor. Por cierto, Dozznar me ha permitido presentar un mini Randoom condensado en 1K 😅
Hoooo que buena noticia!!
Gracias a tu recomendación me descargué TIC-80 en el móvil, no pierdo la esperanza de poder "jugar" un poco con eso.
Que bueno eres SkyBerron!
Funny game to have a good time in the role of a real Ghostbuster!
Thanks, dude.
Thank you so much for your kind words. I had a great time playing your game Arlo. I hope you soon release a new game for our beloved ZX Spectrum.
What a surprise, dude!
Thanks for messing around with that little alien, and I'll keep playing your extensive catalog!
It's flattering to meet people who still enjoy that big microcomputer.
Cheers!