tuxDB - linux gaming aggregate
TUXDB - LINUX GAMING AGGREGATE
 NEWS TOP_PLAYED GAMES ITCH.IO CALENDAR CHAT WINE SteamDeck
 STREAMERS CREATORS CROWDFUNDING DEALS WEBSITES ABOUT
 PODCASTS REDDIT 

 

SUPPORT TUXDB ON KO-FI

MENU

ON SALE

New Twitch streamer aggregation implemented (#FuckTwitch) due to Twitch's API issues (more info on my Discord )


https://elgregos.itch.io/astero1k


Controls

  • Left & right keys to rotate the ship
  • C to activate engine, ie shoot & move at once

How far can I go?

The game starts with 2 blobs and for each of the 4 following levels difficulty will raise, ie your ship will get less energy, more inertia, and bullets won't go as far. Then 2 blobs are added, difficulty will reset, and so on. So the game has no end, but since I can't seem to pass the 14.3 level, the game kind of ends there. Please make this wrong by going further! Anyway here's my 40 minutes longplay until that 14.3 level:

5.4 also seems to be the end for many players, if you own Pico-8 you can set the l  (lowercase L) value in the penultimate line (here set to 0=level 1.1): 19 for level 5.4, or 54 for level 14.3. If you want to go any level set l to level*4+difficulty-5 (difficulty going from 1 to 4).

The 1k code

function i()f=l%#e
g=99-f*20d=e[f+1]srand(l)?"\aszi7v7e0x1v4ev2ev0e"
t=0p={t=0,c=7,x=64,y=64,r=3,a=.25,s=0,n=100}m={p}
for n=-1,l\#e*2do
add(m,{t=1,c=k[l%#k+1],x=r(99)-50,y=r(99)-50,a=r(),s=r(.2)+.1,r=r(9)+4})end
end
function _update60()a=circfill
p.a-=(b()\2%2-b()%2)*.01if(b(4)and t%3<1and p.n>5)add(m,{t=2,c=10,x=x,y=y,r=1,a=p.a,s=2,d=30*d})p.s-=.2p.n-=1?"\ax5i0g"
p.s*=.99-d*.01cls(k[(l-1)%#k+1])for v=#m,1,-1do
n=m[v]for w=#m,v+1,-1do
o=m[w]ts=n.t+o.t
if n.r+o.r>=sqrt((n.x-o.x)^2+(n.y-o.y)^2)then
if(ts==1)p.n-=1a=circ?"\ai2c0"
if ts==3then
n.r*=.7?"\as9i3x5e1e0"
if n.r<3.5then
del(m,n)else
o.r,o.t,o.s,o.c=n.r*.5,1,n.s,n.c
end
end
end
end
n.x+=n.s*cos(n.a)n.y+=n.s*sin(n.a)n.x%=128n.y%=128a(n.x,n.y,n.r,n.c)if n.t==2then
n.d-=1
if(n.d<0)del(m,n)
end
end
x,y,p.n=p.x+cos(p.a)*p.r*1.5,p.y+sin(p.a)*p.r*1.5,mid(0,p.n,g)a(x,y,2,10)rect(13+g-p.n,11,13+g,15)?"astero1k\n\nlvl "..1+l\#e .."."..f+1,13,5
if(#m<2)l+=1i()
if(p.n<=0)i()?"\ascv7x3i3c3c2c1"
p.n+=.1
t+=1
end
k={12,4,1,3,9,8,14,13,2}l=0r=rnd
e={2,1,.7,.4}i()b=btn

How 'bout the source code?

The code above IS the source code, I directly made the game this way to keep a precise control over its size. But I kept a doc to track my 1 char variables:

  • a() = circfill()
  • b() = btn()
  • c = collision
  • e = difficulties
  • f = l%#e
  • g = 99-f*16
  • i() = init()
  • k = colors
  • l = level
  • m = mobs
    • a = angle
    • c = color
    • n = nrg
    • r = radius
    • s = speed
    • t = type (0 = plyr, 1 = foe, 2 = bullet)
    • x, y = position
  • n = current mob
  • o = mob checked for collision with n
  • p = player
  • r() = rnd()
  • v = # of n (current mob)
  • w = # of o (checked mob)
  • x, y = x, y weapon/engine