Sign in

2DArray

@2darray.bsky.social
1K followers 57 following 57 posts

i make games and silly code demos. some free gamedev tutorials: demoman.net buy "Trackminia" on the Playdate: play.date/games/trackminia older games: 2darray.itch.io

PostsRepliesMedia
2DArray @2darray.bsky.social · 12/07/2026
back to the playdate for more prototyping and software-rendering shenanigans
0300
2DArray @2darray.bsky.social · 19/11/2025
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 _
4578
2DArray @2darray.bsky.social · 17/08/2025
0131
2DArray @2darray.bsky.social · 15/08/2025
adding a long trail behind the player to highlight your path through the level
1120
2DArray @2darray.bsky.social · 14/08/2025
haven't posted in a while but i'm working on another thing for the playdate
1634
2DArray @2darray.bsky.social · 08/04/2025
new mathematical formula just dropped
A screenshot that looks like a scientific paper, containing the following text:

Chocolate chip cookie allocation formula

The following calculation is used to determine the fraction of the chocolate chip cookies which go to me, while the remaining cookies all go to you. Let theta be greater or equal to zero, representing the cookie elasticity, and let omega be less than zero, representing the chocolate chip cookie melting rate.

(At this point a strange looking mathematical formula is shown)

Parameter selection

We set theta to a value of 0, and we set omega to a value of -1, as recommended by leading bakers, such as Tom Marvolo Riddle. You've reached the usage cap for GPT-4. You can continue with the default model now, or try again later. Learn more

(At this point, the content of the image ends. When the above parameters are applied to the formula being described, it always resolves to exactly 1)
070
2DArray @2darray.bsky.social · 30/03/2025
a picture of the "Maxwell the cat" 3D model
100
2DArray @2darray.bsky.social · 30/03/2025
i will not be taking any further questions at this time
3181
2DArray @2darray.bsky.social · 06/01/2025
sounds for a swarm-o-roaches
040
2DArray @2darray.bsky.social · 04/01/2025
working more on spider-behavior and finally adding some sound effects. the sound isn't particularly _good_ yet, but it exists, at least!
291
2DArray @2darray.bsky.social · 21/12/2024
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
160
2DArray @2darray.bsky.social · 11/12/2024
reached a fun milestone in scenario-authoring today!
2111
2DArray @2darray.bsky.social · 09/12/2024
went down a rabbit-hole thinking about how to get the ambient light level to change as you moved long distances, ended up with a baked lightmap
a screenshot of the lantern game. a dim light illuminates a bendy corridora long hallway which gradually gets brighter as it reaches a central roomanother pic of some lights shining in a hallway.the game's player has a lantern which is lighting up a small area around them. some other environmental lights are revealing more distant places in the map
180
2DArray @2darray.bsky.social · 08/12/2024
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...
280
2DArray @2darray.bsky.social · 04/12/2024
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
150
2DArray @2darray.bsky.social · 04/12/2024
kinda dry, but i've been making a custom language for dialogue/scenario authoring for the past few days. sorta like yarn spinner, where you can mix "coding-script" logic and "theater-script" dialogue. it's finally executing some code! video of this script running in the next post
some code in a strange format which has logical flow like if/else, but also lines of theater-dialogue like "name, colon, spoken text" mixed together. there are a few spots where the player can pick something to say, and they get different responses from the character they're talking to depending on what they picked.
1130
2DArray @2darray.bsky.social · 30/11/2024
#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 _
1453
2DArray @2darray.bsky.social · 27/11/2024
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 _
1305
2DArray @2darray.bsky.social · 23/11/2024
third type of bug: little roaches that get scared away by your lantern
1141
2DArray @2darray.bsky.social · 23/11/2024
#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 _
616625
2DArray @2darray.bsky.social · 22/11/2024
fiddling with another type of creepy-crawler today
1141
2DArray @2darray.bsky.social · 21/11/2024
starting to work on a first enemy type (video contains a creepy-crawler)
280
2DArray @2darray.bsky.social · 19/11/2024
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
1110
2DArray @2darray.bsky.social · 18/11/2024
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!
1100
2DArray @2darray.bsky.social · 17/11/2024
for some reason i can't post video replies in this thread anymore lol. maybe just a bug in the site, will try again later. here's a screenshot for now: normal mapping for floors, highlights for lit faces of walls, ambient light for the more relaxed scenes
a screenshot of the lantern game, showing the rendering features described by the main text of the post
2100
2DArray @2darray.bsky.social · 17/11/2024
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!
1110
2DArray @2darray.bsky.social · 17/11/2024
trying another #playdate idea: guy with a candle/lantern quite noisy, but it has soft shadows with correct penumbra behavior, and runs at a stable 30fps on the device!
6834
2DArray @2darray.bsky.social · 12/11/2024
regular people: agile is an adjective corporate people: Agile is a noun the scrum website's blog:
a screenshot of the header of a blog post from scrum.org, which reads "Agile is a verb, not a noun"
2170
2DArray @2darray.bsky.social · 12/11/2024
thanks, and yes! if you paste the code into a blank pico8 cartridge, it'll draw the above image you can try it at www.pico-8-edu.com - once it boots into its command-line: 1. hit ESC to go to the code editor 2. paste the code 3. hit ESC again to go back to cmd 4. use the RUN command to execute
250
2DArray @2darray.bsky.social · 09/11/2024
#pico8 gas giant (204 bytes) ?"\^!5f100█ˇ☉8🅾️◆?7" ::_::x=rnd(4)-2y=rnd(4)-2d=x*x+y*y c=max(2-d/4)if(d<1)z=sqrt(1-d)c=2+(1.5+(x-y+z)*2+abs((y+sin(atan2(x,z)*8+t()/8)/14-z/4)%.4-.2)*5)*(1-(1-z)^2) pset(64+x*32,64+y*32,c+rnd())goto _
310519
2DArray @2darray.bsky.social · 19/09/2024
finally got my video-exporter to output audio as well, so now i'm ready to record trailer footage
020
2DArray @2darray.bsky.social · 16/09/2024
here's some regular gameplay footage, as it'd display on the real device - the dithering does look like full greyscale when it's small, but if you make the video fullscreen on a computer monitor, it looks like total shit. the greyscale export is an attempt to capture how it feels on the device
150
2DArray @2darray.bsky.social · 16/09/2024
trying out video-upload since apparently it works now! here's my (almost finished) racing game "Trackminia" for the Playdate handheld console the game usually relies on heavy dithering (Playdate has a 1-bit screen with high DPI), this is using a greyscale exporter that i made for trailer purposes
2150
2DArray @2darray.bsky.social · 05/08/2023
crescent moon, 150 bytes of pico8 lua (source and link to browser version in reply)
a low-resolution crescent moon, rendered in pico-8
1100