Log In  

Cart #moon_miner_2580-0 | 2023-10-01 | Code ▽ | Embed ▽ | No License
15

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```
P#135249 2023-10-01 23:13 ( Edited 2023-10-01 23:17)

1

After many attempts I got out with a score of 30. awesome game!

P#135257 2023-10-02 00:14

wow.

P#135260 2023-10-02 03:14

i got like 12 of the green things, i hope thats a good score XD anyway good game;)

P#135267 2023-10-02 09:34

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.

P#135294 2023-10-02 18:47

[Please log in to post a comment]