New games every week!
Something with Balls
20th August 2021  
Made a fun little engine, yesterday, in SmileBASIC.

-=-=-

Tweet with video

Taking cues from my Falling Petals/Lemmings test thing in GotoJSE, I got balls falling onto Platforms, and then wondered where to take it from there.
I made the "tilt" be thumbstick controlled, and then added a little boat at the bottom, where Platdude can fire giant balls into the air.
The balls then fall down, and you can kinda guide them using the tilting platforms.

From there, I'm not sure.
A few ideas got sent to me on Twitter, and it looks like it's either going to be a shoot-em-up, or a target range, or something to that effect.
*shrugs*

If the game works out well enough, I'll likely rewrite it in JSE, later.
For now, though, if you want to see roughly where this idea came from, the Falling Lemmings example is on the Pink Examples Disk, or the code is here.

// Falling Lemmings // by Jayenkai // Created 2021/6/9 // Lemmings (c) DMA Design, Psygnosis, Sony Symbol 0,"2__0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0/P@0_0_0!P@0_0_0!P.880_0_0@P.880_0_0_08!0_0_0@8!0_0_0@88dd0_0_0_088dd0_0_0_088dd0_0_0_088dd0_0_0_088dd0_0_0_088dd0_0_0_0d.0_0_0_0d.0_0_0@88d.0_0_0@88d.0_0_0_08.0_0_0_08."; Symbol 1,"2__0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0@PP00PP0_0_0@PP00PP0_0_0!P!0_0_0@P!0_0_0@P.880_0_0@P.880_0_0_08!0_0_0@8!0_0_0@88dd0_0_0_088dd0_0_0@88d.0_0_0@88d.0_0_0@88d.00880_0_0.88d.00880_0_0!d.00880_0_0!d.00880_0_0.d.00880_0_0!d.00880_0_0!8.0_0_0_08."; Symbol 2,"2__0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0/PP00PP0_0_0@PP00PP0_0_0@P!0_0_0@P!0_0_0_0PP880_0_0_0PP880_0_0_08!0_0_0@8!0_0_0!8.dd0_0_0@8.dd0_0_0@88d.0_0_0@88d.0_0_0!8.d!0_0_0.8.d!0_0_0!d@0_0_0!d@0_0_0.8.0.8.0_0_008.0.8."; Symbol 3,"2__0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_P.0_0_0_0P.0_0_0@P.88PP0_0_0!P.88PP0_0_0!PP8!0_0_0!PP8!0_0_0@88dd0_0_0_088dd0_0_0_088dd0_0_0_088dd0_0_0@88d.0_0_0@88d.0_0_0_0d.0_0_0_0d.0_0_0!88d@0_0_0.88d@0_0_0.880.8.0_0_0.880.8."; Symbol 4,"2__0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0/P@0_0_0!P@0_0_0!P.880_0_0@P.880_0_0@PP8!0_0_0!PP8!0_0_0@88dd0_0_0_088dd0_0_0_0dd880_0_0_0dd880_0_0_088dd0_0_0_088dd0_0_0_0d.0_0_0_0d.0_0_0@88d.0_0_0@88d.0_0_0_08.0_0_0_08."; Symbol 5,"2__0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0@PP00PP0_0_0@PP00PP0_0_0!P!0_0_0@P!0_0_0@P.880_0_0@P.880_0_0_08!0_0_0@8!0_0_0@88dd0_0_0_088dd0_0_0_0dd880_0_0_0dd880_0_0_0dd8800880_0_0!dd8800880_0_0!d.00880_0_0!d.00880_0_0.d.00880_0_0!d.00880_0_0!8.0_0_0_08."; Symbol 6,"2__0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0/PP00PP0_0_0@PP00PP0_0_0@P!0_0_0@P!0_0_0_0PP880_0_0_0PP880_0_0_08!0_0_0@8!0_0_0@dd880_0_0_0dd880_0_0_0dd880_0_0_0dd880_0_0_0d.880_0_0@d.880_0_0!d@0_0_0!d@0_0_0.8.0.8.0_0_008.0.8."; Symbol 7,"2__0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_0_P.0_0_0_0P.0_0_0@P.88PP0_0_0!P.88PP0_0_0!PP8!0_0_0!PP8!0_0_0@88dd0_0_0_088dd0_0_0_088dd0_0_0_088dd0_0_0_0dd880_0_0_0dd880_0_0_0d.0_0_0_0d.0_0_0!88d@0_0_0.88d@0_0_0.880.8.0_0_0.880.8."; Graphics 512,512,2 lems=50 flrs=5 skips=3 pt=0 Dim lemming(250,20) Dim flr(250,20) y=ScreenHeight()/(flrs+2) for n=0 to flrs flr(n,1)=jRand(64,ScreenWidth()-64) flr(n,6)=Rnd(0.5,1.5) flr(n,7)=Rnd(0,360) flr(n,8)=Rnd(10,30) flr(n,9)=Rnd(128,256) flr(n,2)=(y*(n+1))-flr(n,9) next for d=0 to lems lemming(d,1)=jRand(16,ScreenWidth()-16) lemming(d,2)=0-jRand(16,ScreenHeight()) lemming(d,3)=0 lemming(d,4)=0 lemming(d,5)=h lemming(d,6)=jRnd(0,8) lemming(d,16)=1 next Repeat CLS 30,30,80 pt=((pt+1) mod skips) SetFontSize 32 SetSize 1 for n=0 to flrs flr(n,7)=(flr(n,7)+flr(n,6)) mod 360 ang=Sin(flr(n,7))*25 flr(n,11)=flr(n,1)+Sin(ang-flr(n,8))*flr(n,9); flr(n,12)=flr(n,2)+Cos(ang-flr(n,8))*flr(n,9); flr(n,13)=flr(n,1)+Sin(ang+flr(n,8))*flr(n,9); flr(n,14)=flr(n,2)+Cos(ang+flr(n,8))*flr(n,9); flr(n,15)=flr(n,1)+Sin(ang)*flr(n,9)*0.4; flr(n,16)=flr(n,2)+Cos(ang)*flr(n,9)*0.4; flr(n,5)=Neg(0.1); if flr(n,11)<flr(n,13) and flr(n,12)<flr(n,14) then flr(n,5)=0.1; if flr(n,11)>flr(n,13) and flr(n,12)>flr(n,14) then flr(n,5)=0.1 flr(n,17)=ang SetThick 3:SetCol 255,128,0,1 Line(flr(n,11),flr(n,12),flr(n,13),flr(n,14)) SetCol 0,0,0,0.5 Oval(flr(n,1),flr(n,2),8,8,16) SetThick 1:SetCol 150,150,150,0.3 Line(flr(n,15),flr(n,16),flr(n,11),flr(n,12)) Line(flr(n,15),flr(n,16),flr(n,13),flr(n,14)) Line(flr(n,1),flr(n,2),flr(n,15),flr(n,16)) next for d=0 to lems ResetDraw() if pt==(d mod skips) x1=lemming(d,1) y1=lemming(d,2) x2=lemming(d,1) y2=lemming(d,2)+lemming(d,4)+7 for n=0 to flrs if CollideLineToLine(flr(n,11),flr(n,12),flr(n,13),flr(n,14),x1,y1,x2,y2) lemming(d,2)=LineCollidePointY-8 ang=flr(n,5) lemming(d,3)=lemming(d,3)+ang lemming(d,4)=0.5 lemming(d,5)=-flr(n,17) endif next lemming(d,2)=lemming(d,2)+4+lemming(d,4) lemming(d,4)=lemming(d,4) lemming(d,4)=lemming(d,4)+0.5 if lemming(d,4)>6 then lemming(d,4)=6 if lemming(d,2)>ScreenHeight()+32 lemming(d,2)=-32 lemming(d,1)=jRand(16,ScreenWidth()-16); lemming(d,3)=0 lemming(d,4)=0 endif s=lemming(d,3) lemming(d,1)=lemming(d,1)+s*4 if s>0 then lemming(d,16)=1 if s<0 then lemming(d,16)=0-1 lemming(d,3)=s*0.94 endif x=lemming(d,1);y=lemming(d,2) SetSize 0.5*lemming(d,16),0.5;SetRot lemming(d,5)*lemming(d,16) lemming(d,6)=(lemming(d,6)+0.25) mod 8 DrawImg x,y-2,lemming(d,6) next Flip Forever

Views 48, Upvotes 0
Daily Blog , Smilebasic
New games every week!
Site credits : PHP script, Blog posts, Games, Music, Pixelart, Poems and More : Jayenkai
(c) Jayenkai 2017 and onwards, site design Rychan. RSS feed
Blog - Something with Balls - AGameAWeek