Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
A jam submission

ResurfaceView game page

A Tiny Metroidvania
Submitted by JadeLombax — 10 hours, 52 minutes before the deadline
Add to collection

Play game

Resurface's itch.io page

Compressed Bytes used
1021

Source Code (OPTIONAL)
s="■ᶜ}□ᵇ♪,V¹G🅾️²Bめ♪qア■$き*0ひ♥みd⬅️[ねᶜx¹•U0、*jャむケ●o➡️c⁵き、c█、⁶な²もwッ⁴さ☉\r🅾️⁴Nえ²xニ•、0、d@Tクろ⌂1っ웃:\"i=}²$0、⁴🅾️⁴りツ} 🅾️²▮t😐Bソ¥h 、Aな²😐⁶⬇️ᶜ‖メaイ」⁵き8i0、えdgA◆⬆️<ふb*`、5ぬF"
?"⁶c8⁶!5f55\0█"
?"⁶c0⁶.}●へ●|█F\0⁶.\0}●へ●|²4⁶.\0}●へ●|\0「⁶.\0}●へ●|\0l\nᶜ1⁶.◝◝◝◝◝◝◝◝ᶜb ■ˇ🅾️∧ワᶜ5⁶.\0▮🐱\0 &…³⁶.\0▮🐱\0 &…³⁶.サヤV웃 &…³ᶜd⁶.⁸、、、チミw6ᶜ3⁶.⁸、、、チミw6ᶜ8⁶.⁸、、、チミw6ᶜc⁶.⁸、、、チミw6⁶!5f55-"
srand()
for i=1,512do
rectfill(i\8*16%128+rnd(14)+1,i\64*16+rnd(12)+2,i\8*16%128+rnd(14)+1,i\64*16+rnd(12)+2,0)
end
for i=1,#s,3do
a,b,c=ord(s,i,3)⬅️+=a\128*16({rectfill,ovalfill})[c\128+1](a%128,⬅️+b\16,a%128+max(b%16,b%16*16-179),⬅️+b\16+max(c%128%14,c%128%14*16-163),c%128\14)
end
for i=1,▥ do
b=pget(i%128,i\128)
c=pget(i%128,i\128)
if(b*rnd()>7)c=10+i%128\64+i\128\64*2
if(b-pget(i%128,i\128-1)>6)c=9
mset(i%128,i\128,c+15)
end
a,b,c=192,364,64p=5
s=""function _update60()w=1g=0
?"⁶c0⁶!5f5c◝"
if(btnp(5))█=128
if(b<-3)c=8█=382
➡️=min(➡️+min(➡️/8,2),█)c=max(c-█\128)
if(c==0)do
d=btn()\2%2-btn()%2b+=⬆️
if(btnp(4)and p>6)▤,▥,◆=a,b,⬅️
▤+=◆*8⧗=t()
if(mget(▤/8,▥/8)==22)mset(▤/8,▥/8)▥=★
if(mget(▤/8,▥/8)>21)▥=★
if(mget(a/8,b/8)==17)mset(a/8,b/8)c=48●=48s..="■"
if(mget(a/8,b/8)%22>17)mset(a/8,b/8)c=108●=160p+=1
if(mget(a/8,b/8)==16)w=2웃=g+p\8
⬆️=mid(-3/w,⬆️+1/6/w,3\w)
for i=-3,3,6 do
if(mget(a/8+i/8,b/8+sgn(⬆️)/2)>21)b+=4-b%8g=max(g,sgn(⬆️))웃=max(웃,sgn(⬆️))⬆️=0
if(mget(a/8+d/2,b/8+i/8)>21)d=0웃=g+p\9⬆️=min(⬆️,8\p+.2)
end
⬇️=g*3
if(d!=0)⬇️=t()*g*9%3⬅️=d
if(btnp(5)and 웃>0)⬆️=-4웃-=0^g+5\p
a+=d
end
camera(a\128*128,max(b\128*128))map()
spr(⬇️,a-3,b-4,1,1,⬅️<0)circ(a,b,●)●-=2
rectfill(▤-8,▥,▤+8,▥,8)
camera()
spr(18,2,7,p-5,1)circfill(63,-4,➡️-128,7)
?"⁶x6resurface¹❎\n⧗"..⧗,39,64-➡️,11
?s,2,1
end

Leave a comment

Log in with itch.io to leave a comment.

Comments

HostSubmitted

Truly bonkers how much you managed to cram in here.
The levels, the progression, all seemingly meticulously crafted.
Plus I still absolutely love the minimal sprite + walk anim - adorable!
The only thing letting it down is my inability to find that last blasted power cell 😭
(hence the awful time, as I explored everywhere, looking for more secrets!)
AMAZING entry - as always 👍

Developer (2 edits) (+1)

As always, thank you for being a kind and gracious host. =)

I found a hybrid system for the map that seems to work pretty well: deliberate design elements laid on top of procedural generation. I'm calling the little robot K5, as it's the last part of his serial number.  Initially was going to call him Gizmo, but it didn't really fit with the more realistic tone I was going for. Speaking of naming, my initial name for the game was MapDroid, do you think that's a bit too on-the-nose for a non-size-restricted version?

As for the power cell, I believe only 2 are truly hidden, I'd recommend searching the depths of the red crystal area, or around the waterfall. ;)

Submitted

Nice game! It's amazing how much map data you've managed to include . Plus the game is challenging. I haven't finished it yet.

Developer (1 edit)

Thank you, glad to hear you're enjoying it!

I might have to shatter the illusion a bit, but there's actually not very much map detail stored. The world is made up of just 35 rectangle and oval shapes drawn to the screen and copied to map memory. The trick is that the shapes are drawn over 64 cel-like room shapes composed of several hundred randomly-drawn black rectangles. I hit on this after initially trying pure procedural generation, which was too chaotic. Combining random detail with specifically-designed features seems to give most of the effect of storing a lot more information, though you have to work with what's there. It's kinda like looking for faces on a textured ceiling. =)

Submitted

Phenomenal entry.  It's scarcely believable that you can make a metroidvania in 1024 bytes, let alone make it play so well and be addictive.

Developer

Thank you very much, that's high praise coming from someone with your coding savvy.

There's definitely some procedural generation smoke and mirrors, but it's a video game, what it looks like is kinda the whole thing. Glad to hear people are legitimately liking how the game plays. It's my first-ever shot at a Metroidvania, so that's encouraging for potential future projects.

Submitted

Thank you, but I can assure you I'm as much of a fraud as anyone - taking code that more clever people came up with and making it fit my purposes!

Submitted (1 edit) (+1)

Genuinely unbelievable. Your bytes must be a lot bigger than my bytes! However I couldn’t collect the final sub-system in the green area and so couldn’t proceed… Just wouldn’t register the collision.

There are a lot of very cool techniques in the code that I’m going to internalize! Thanks for the lesson!

Developer (1 edit)

Thanks, 

I've just been practicing the digital equivalent of jumping up and down on a suitcase to cram 'em in as tight as they'll go. ;) This one was tricky. I had a good base from my last entry, but as I've found when encoding sprite and map data in custom, highly-compressed form, things can get very temperamental.

Thanks for letting me know about the glitch, didn't have a lot of time for playtesting. I uploaded a fixed version. It appears I had failed to update a number from 21 to 22...