Look, I’m not exactly pleased to be here either, but this much of that green ore is too good to turn up. Yes, the moon is increasingly unstable but carve as much as you can using the rockerizer, get it back to the tele unit and we’re out of here in an hour. Not the time to be asking why we aren’t sending a bot. If we had the money for one we wouldn’t need to be here. It’s a very decent payday.

Your hazard suit will absorb a fair amount of punishment from the molten rock, but the surface instability means it’s leaking between gaps in the ground. Nothing like a bit of motivation eh? It’ll mean your journey back to the TU will be trickier than the outward trek, so use the nano waypoint device to mark a path back. Anything marked will have a bright yellow glow in your HUD just like the TU. It’s got limited juice though, so go easy. Oh yeah, worth saying - just remember that less rock means more lava.

See you in a bit!

x - start/restart game

arrow keys - move

x - mine rock/ore

z/c - mark waypoint on hard rock

Credits:

Made for pico1k game jam by Ben Jones using pico8 in 1023 bytes of compressed code. Raycasting engine based on Lode Vandevenne's Raycasting Tutorial - licensed under BSD 2-clause license - check it out, it's brilliant.

Licensed under the 2-Clause BSD License

Code:

See below for the original jam code. Cart is annotated with comments

r=3::_::f,x,y,o,v,cx,cy,a,t,l,w={15,1,1,6,6,6,6,6,6,6,6,6,9,9,9,0,0,2,2,3,1},16,16.5,1,0,0,.75,0,0,100,8pal({1,141,137,130,133,141,133,141,134,4,9,135,131,3,139},1)memset(8192,9,4096) for j=1,30 do for i=1,30 do k=f[1+rnd(#f)\1]mset(i,j,k)f[16+i%3]=k end end mset(14,16,11) mset(15,15,11) mset(15,16,1) mset(15,17,11) mset(16,15,2) mset(16,16,2) mset(16,17,2) mset(17,15,2) mset(17,16,2) mset(17,17,2) fillp(0xa5a5) ::l:: if r>0 then if(r==1)?"ore mined: "..a if(r==2)?"signal lost" if(r==3)?"moon miner" if(btn(5))r=0goto _ goto l end t+=1 for j=1,30 do for i=1,30 do k=mget(i,j)m=i+rnd(3)\1-1n=j+rnd(3)\1-1 if(t%360<1and k==3and mget(m,n)<3)mset(m,n,3) end end s=0 if(btn(2))s=.05 if(btn(3))s=-.05 if(mget(x+o*s,y)<4)x+=o*s if(mget(x,y+v*s)<4)y+=v*s s=0 if(btn(0))s=-.01 if(btn(1))s=.01 i=mget(x,y) if(i==3)l-=1?"\ag4" if(l==0)r=2 if(x\1==15and y\1==16)r=1 m=mget(x+o,y+v) if(btn(5)and (m==15or m==6))mset(x+o,y+v,rnd(2))?"\ag0" if(btn(5)and m==15)a+=1?"\ab3" if(btn(4)and m==9and w>0)mset(x+o,y+v,12)w-=1 i=o o=o*cos(s)+v*sin(s)v=i*-sin(s)+v*cos(s) i=cx cx=cx*cos(s)+cy*sin(s)cy=i*-sin(s)+cy*cos(s) cls(3)for z=0,127do local sx=2*z/128-1 local r,s=o+cx*sx,v+cy*sx local ly,g,w,cy,sx,sy,sd=127,1,0,0,1,1,0 local i,j=x\1,y\1 local lc=mget(i,j) local c,dx,dy=lc,abs(1/r),abs(1/s) if(r==0)dx=30 if(s==0)dy=30 local u,v=(i+1-x)*dx,(j+1-y)*dy if(r<0)sx=-1u=(x-i)*dx if(s<0)sy=-1v=(y-j)*dy while g do if u<v then sd=0u+=dx i+=sx else sd=1v+=dy j+=sy end c=mget(i,j) g=c<4 if(sd==0)d=u-dx if(sd==1)d=v-dy local f=128/d\1/2+64line(z,ly,z,f,80+lc) if(lc<2)line(z,127-ly,z,127-f,sget(16+lc,max(0,min((d-1)/3\1,3))))cy=127-f w=128/d+.5\1 if(c<2)c2=6line(z,max(cy,-w*2+64),z,-w/2+64,bor(max(c2-2,c2-sd-d/3\1),shl(max(c2-2,c2-(d+.5)/3\1),4))) ly,lc=f,c end h=-w/2 if(lc>1)h=-w*2 c2=c line(z,max(cy,h+64),z,w/2+64,bor(max(c2-2,c2-sd-d/3\1),shl(max(c2-2,c2-(d+.5)/3\1),4)))end?"\ff◆"..a.." ♥"..l.." ˇ"..w flip()goto l``` |

Thanks for playing all!

Both those scores are good! 30 is really good. Obviously randomness comes into it, but once you get at all far away from the starting area, getting back becomes increasingly difficult.

I was *this* close to adding 'x-y ore should do' to the flavour text. Not sure if missing that was a mistake or not.

[Please log in to post a comment]