From the creator of VULF 3D comes the super-advanced high tech sequel: MAZE 3D a heart pumping tacti-cool maze action!

Features:

  • Fully textured walls and floor! wow its the 1980's all over again!
  • Wall collisions! no more ghost powers for you!
  • Auto-mapping! throw that pen and paper in the garbage!
  • An epic ending! one whole line of congratulatory text!

Controls:

  • Mouse to look left/right
  • Left click to move forward
  • Z to view map
  • Right click for ludicrous speed while glancing at map

Code:

1017 chars:

z=rectfill
h=mget
function a(x,y,u,v)
if(pget(u,v)>1)line(x,y)for i=rnd(4)\1/4,2,.25do a(u,v,u+cos(i)*2,v+sin(i)*2)end
end
cls()z(0,0,62,62,2)?"\f1"
a(9,9,9,9)a=63circ(61,61,2)for i=0,7^5do
mset(i%a,i/a,pget(i%a,i/a))end
fillp(8015)z(0,0,7,7,40)z(8,0,15,7,79)memcpy(0,●-웃,999)poke(14-😐,7)fillp()c=0t=1e=0f=.5x=9.5y=9.5::_::r=stat(38)/999m=stat(34)/9g=cos(r)v=sin(r)
if(h(x+c*m*2,y)<2)x+=c*m 
if(h(x,y+t*m*2)<2)y+=t*m
c,t,f,e=c*g-t*v,c*v+t*g,f*g-e*v,f*v+e*g
for n=a,127do
rd=a/(n-a)tline(0,n,127,n,x+rd*(c-f),y+rd*(t-e),rd*f/a,rd*e/a)end
for i=0,127do
cx=i/a-1j=c+f*cx
k=t+e*cx
l=x\1w=y\1n=abs(1/j)o=abs(1/k)p=sgn(j)q=sgn(k)r=n*(j>0and l-x+1or x-l)u=o*(k>0and w-y+1or y-w)s=1b=0while s<2do
b+=1m=r<u
if(b>20)goto a
if(m)r+=n l+=p
if(not m)u+=o w+=q
s=h(l,w)end
d=m and(l-x+.5-p/2)/j or(w-y+.5-q/2)/k
n=(m and y+d*k or x+d*j)%1d=64/d\1sspr(n*8,0,1,8,i,64-d,1,d*2)::a::end
for i=0,1,1/8do
j=x+cos(i)k=y+sin(i)sset(j+64,k,h(j,k)+4)end
if(btn(4))spr(8,0,0,8,8)pset(x,y)
?"⁶1⁶cc"
if(h(x,y)>0)goto _
?" ⁶t⁶wfound the exit!"

Outdated and unoptimized "source" code:

score=0
::start::
function map_gen(px,py,u,v)
if(pget(u,v)>6)line(px,py)for i=rnd(4)\1/4,2,.25do map_gen(u,v,u+cos(i)*2,v+sin(i)*2)end
end
cls()
rectfill(0,0,64,64,7)
color(6)
map_gen(9,9,9,9)
for x=0,63do
for y=0,63do
mset(x,y,7-pget(x,y))end
end
mset(10,10,2)
cls()
fillp(8015)
rectfill(0,0,7,7,40)
rectfill(8,0,15,7,79)
memcpy(0,24576,8191)
poke(24365,7)
fillp()
pdirx=0
pdiry=1
planex=0
planey=.5
px=9.5
py=9.5
::_::
r=stat(38)/999
m=stat(34)/9
pcos=cos(r)
psin=sin(r)
pm=mget(px+pdirx*m,py+pdiry*m)
if(pm>0)px+=pdirx*m py+=pdiry*m
if(pm>1)score+=1goto start
pdirx,pdiry,planey,planex=
pdirx*pcos-pdiry*psin,
pdirx*psin+pdiry*pcos,
planey*pcos-planex*psin,
planey*psin+planex*pcos
for y=63,127do
 rd=63/(y-63)
step=2/128
tline(0,y,128,y,
px+rd*(pdirx-planey),
py+rd*(pdiry-planex),
rd*planey*step,
rd*planex*step)
end
for i=0,127do
cx=i/63-1
rayx=pdirx+planey*cx
rayy=pdiry+planex*cx
mapx=px\1
mapy=py\1
deltax=abs(1/rayx)
deltay=abs(1/rayy)
stepx=sgn(rayx)
stepy=sgn(rayy)
distx=deltax*(rayx>0and mapx-px+1or px-mapx)
disty=deltay*(rayy>0and mapy-py+1or py-mapy)
s=1
while s>0do
m=distx<disty
if(m)distx+=deltax mapx+=stepx
if(not m)disty+=deltay mapy+=stepy
s=mget(mapx,mapy)
end
d=m and(mapx-px+.5-stepx/2)/rayx or(mapy-py+.5-stepy/2)/rayy
wallx=(m and py+d*rayy or px+d*rayx)%1
d=64/d\1
sspr(wallx*8,0,1,8,i,64-d,1,d*2)
end
?score.." flr⁶1⁶c"
goto _

Made for 1k Jam!

StatusReleased
PlatformsHTML5
Rating
Rated 3.5 out of 5 stars
(2 total ratings)
AuthorMunro
GenrePuzzle
Made withPICO-8
Tags8-Bit, First-Person, maze, PICO-8, Pixel Art

Comments

Log in with itch.io to leave a comment.

i cudnt find the exit :(

some good stuff in ur code i didnt kno about

I can't lie - it do be a maze

(+1)

Awesome - was hoping someone would make a 3D/Wolf-type game!
This is a HUGE maze that I got totally lost in (so glad for the map 😅)
Also loving the simplified mouse controls - more games should use this!
Great entry 👍