Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs

2DArray

5
Posts
139
Followers
A member registered Oct 13, 2014 · View creator page →

Creator of

Recent community posts

(1 edit)

Awesome job! Brings me back to the old Orisinal game, "Winterbells"

(3 edits)

Here's Froggy Road, de-obfuscated!  I tried to make the variable names more clear and removed all the line-break-saving measures, but I didn't change any of the logic, so there are still some spots where it does a weird thing to avoid an if statement or whatever (for example, every road-lane draws a frog, but they're all hidden offscreen except for the lane which actually-currently-contains the player).

(edit - like with tobiasvl, my linebreaks get stripped here - here's a version on pastebin which keeps them intact)

frogX=0
frogY=0
died=0
camX=frogX
camY=frogY
::_::
flip()
cls(1)
// weird arrow key input
z=btnp()
// add +/- 5 to x for right/left arrows
frogX+=(flr(z/2)%2-z%2)*5
// add +/- 1 to y for up/down arrows
frogY-=flr(z/8)%2-flr(z/4)%2
// camera eases toward frog position
camX+=(frogX-camX)/3
camY+=(frogY-camY)/3
// draw road lanes
for laneY=frogY+25,frogY-2,-1 do
    // each lane has its own randomized properties
    srand(laneY)
    // car animation properties
    cycleOffset=rnd()
    carSpeed=8+rnd(16)
    // perspective distortion strength
    // (persp=0 means "infinitely far away")
    persp=(laneY-camY+2.3)/12
    
    // draw the road
    // (but draw it offscreen if persp<0)
    rectfill(-1,64+9/persp,sgn(persp)*127,127,6-laneY%2)
    // draw a frog in every lane...
    // but offset it off the screen if the
    // frog isn't actually in this lane
    print("🐱",61+(frogX-camX)/persp+(laneY-frogY)*99,62+7.5/persp,3)
    // each lane has a different # of cars
    // (early/negative lanes have no cars)
    for i=1,sgn(laneY-2)*rnd(8) do
        // a car has two halves, parallel to the lane
        // (near-half and far-half)
        for k=0,1 do
            // each car has five sub-circles for the body
            for j=-2,2 do
                // x-position of this sub-circle
                worldX=(i*carSpeed*4+j+t()*carSpeed+cycleOffset-camX)%198-99
                
                // collision detection for the frog
                if laneY==frogY and abs(worldX-frogX+camX)<2 then
                    died=1
                end
                // far-half of car uses a different persp value
                persp2=persp-k/60
                // get screen position of this sub-circle
                screenX=worldX/persp2+64
                screenY=5/persp2+64
                // draw this sub-circle
                circfill(screenX,screenY,2/persp2,laneY%5)
                // draw a wheel, but only if j equals +/- 2
                circfill(screenX,screenY+2/persp2,(abs(j)-1)/persp2,0)
            end
        end
    end
end
// self-explanatory death check
if (died>0) then
    goto dead
end
// if you're not dead, continue the game loop
goto _
::dead::
// you done goofed
// random red/orange noise
pset(rnd(128),rnd(128),8+rnd(2))
// death UI
print("❎ reset",46,62,7)
// your score is your distance, literally
print("score: "..frogY,3,3)
// restart command
if btn(5) then
    run()
end
// haven't reset yet. resume death
goto dead

And then just for the sake of easy comparison, here's the original code:

x=0y=0l=0q=x
r=y
f=rnd
g=flr
h=circfill::_::flip()cls(1)z=btnp()x+=(g(z/2)%2-z%2)*5y-=g(z/8)%2-g(z/4)%2
q+=(x-q)/3r+=(y-r)/3
for z=y+25,y-2,-1 do
srand(z)o=f()m=8+f(16)p=(z-r+2.3)/12rectfill(-1,64+9/p,sgn(p)*127,127,6-z%2)
?"🐱",61+(x-q)/p+(z-y)*99,62+7.5/p,3
for i=1,sgn(z-2)*f(8)do
for k=0,1 do
for j=-2,2 do
u=(i*m*4+j+t()*m+o-q)%198-99
if(z==y and abs(u-x+q)<2)l=1
v=p-k/60n=u/v+64w=5/v+64h(n,w,2/v,z%5)h(n,w+2/v,(abs(j)-1)/v,0)end
end
end
end
if(l>0)goto d
goto _::d::pset(f(128),f(128),8+f(2))
?"❎ reset",46,62,7
?"score: "..y,3,3
if(btn(5))run()
goto d

No problem! Send me a link to anything you make with it, I'll play them all

Hi!  Thanks for asking instead of flying around throwing content at people.

You can use Tiny Platformer (and modifications of it) for commercial use, but there's a specific restriction: you can only use what's included in the "blank map" version of the cartridge.  Basically, the source code is open for commercial use, but you have to build your own map, and you can't re-use my bossfight.

Cheers!

Thank you very much!

David and I talk about Patreon periodically, and it definitely seems like an option, but I don't know exactly how much of a following you need before you can effectively launch one.  I also sort of dislike subscription plans in general, though admittedly, Patreon is one of the less-abrasive ones just due to its purpose.

I'm not sure if it'd be a positive or negative type of pressure to need to release stuff on a fixed schedule...on the one hand, it'd make it harder to commit to other work or larger projects, but on the other hand, the structure would likely encourage me to release "some kind of fleshed-out content" more often.

Patreon also caught some flak recently about changing their payment model and making it less likely for people to do low-price donations, which seemed like a huge bummer, but I don't really know how that situation has developed since then (I haven't heard about it in a few weeks - maybe it's been resolved already).

I'm interested to hear other people's opinions about this - either about Pateron (or alternatives) in general, or about the possibility of a 2DArray Patreon page!