2DArray
banner
2darray.bsky.social
2DArray
@2darray.bsky.social
i make games and silly code demos.

some of my games:
http://2darray.itch.io

some free gamedev tutorials:
http://demoman.net
what do we call tweetjams now? (dunno. 248 bytes)
#pico8

?"\^!5f10█▒1⬇️3⬅️;⌂♥7"
::_::flip()cls()w=t()/8for i=0,700do
for j=0,1do
srand(i)f=w+j/120g=i*.618a=g+sin(f+g+rnd()/9)y=cos(f+g)r=sqrt(1-y*y)x=r*cos(a)z=r*sin(a)h=120/(z+3)u=x*h+64v=y*h+64if(j<1)p=u q=v else line(p,q,u,v,rnd(9)+1)
end
end
goto _
November 19, 2025 at 3:12 AM
August 17, 2025 at 5:09 AM
adding a long trail behind the player to highlight your path through the level
August 15, 2025 at 12:07 AM
haven't posted in a while but i'm working on another thing for the playdate
August 14, 2025 at 1:58 AM
i will not be taking any further questions at this time
March 30, 2025 at 4:06 AM
sounds for a swarm-o-roaches
January 6, 2025 at 3:39 AM
working more on spider-behavior and finally adding some sound effects. the sound isn't particularly _good_ yet, but it exists, at least!
January 4, 2025 at 7:48 AM
pathfinding for large agents: the spider patrols by default and chases you when you're in a place that it can reach (it can't fit through smaller doorways)

eventually this will have some stealthy line-of-sight stuff, but for now the spider just has magic awareness
December 21, 2024 at 5:53 AM
reached a fun milestone in scenario-authoring today!
December 11, 2024 at 5:12 AM
started adding support for a moving camera - this is harder than usual in this game, because of the lighting system!

getting more and more interested in making the whole game one continuous/seamless map, instead of doing room-transitions...
December 8, 2024 at 7:16 PM
video of what happens when running the script from the previous post. currently it just prints stuff to the console, but i'll get into proper in-game dialogue rendering soon

works in a traditional way: source text -> lexer -> parser -> AST -> bytecode
December 4, 2024 at 5:46 AM
#pico8
flurry, 274 bytes

?"\^!5f10076=1▒"
s={}::_::cls()for i=0,2do
add(s,{x=rnd(130),y=-10,d=1+rnd(5),u=0,v=0})end
for i,p in pairs(s)do
p.u=(p.u+rnd(.3)-.16)*.98p.v=(p.v+rnd(.4))*.8line(p.x,p.y,p.x+p.u,p.y+p.v,p.d)p.x+=p.u/p.d
p.x-=flr(p.x/130)*130p.y+=p.v/p.d
if(p.y>130)del(s,p)
end
flip()goto _
November 30, 2024 at 3:39 AM
here's an oldie
#pico8

cls(6)m=8192?"shit",3,3,1
memcpy(0,m*3,m)::_::cls()w=-t()/2rect(36,54,37,127,2)for x=0,60do
a=x/45
for y=0,30do
c=sget(x/3,y/3)+(x+y)%2+.2p=a*(sin(x/20+w)+cos(y/16+w))q=a*(cos(x/23+w)+sin(y/19+w))u=x+p
v=y+q+a*7circfill(u+39,v+54,1,c+p/3-q/3)end
end
flip()goto _
November 27, 2024 at 3:09 AM
third type of bug: little roaches that get scared away by your lantern
November 23, 2024 at 7:24 AM
#pico8

?"\^!5f101😐<😐1🐱2🅾️◆?7♥웃8☉2"
::_::u=rnd(128)v=rnd(128)g=u-99h=v-64d=max(20,sqrt(g*g+h*h))c=9+d/20+rnd()
if(v>65)p=v-64z=120/(v-64)x=(u-64)/p d=sqrt(x*x+z*z)s=z/d+x/d/4w=(z+sin(x/3+t()/8)+rnd())%4c=w+(c-w)*min(z/40+s^14/4,1)
pset(u,v,c)goto _
November 23, 2024 at 4:08 AM
fiddling with another type of creepy-crawler today
November 22, 2024 at 7:10 AM
starting to work on a first enemy type (video contains a creepy-crawler)
November 21, 2024 at 2:39 AM
trying some ambient occlusion - i'm doing it in an unusuable bruteforce way for now, but i like how it looks enough that it feels like it'll be worthwhile to find a smarter way to do it
November 19, 2024 at 6:15 AM
making a map editor, partly to make it faster to set up rooms, but also so i can auto-generate these red sectors...

sectors are always rectangles, so any two points inside the same sector are guaranteed to have line-of-sight to each other. this should allow a much faster raycasting strategy!
November 18, 2024 at 6:40 AM
a clip showing the penumbras more clearly - the shadow's edge is softer when standing very close to the shadowcasting corner, and gets sharper as the light gets farther away. it's a "real" area-light!
November 17, 2024 at 4:08 PM