Hunter_1k
This was made for the Pico 1k Jam 2022
Compressed Bytes: 1024
Movement: Arrow keys
Attack: X / V
Reset on end screen: C / Z
Objectives:
Hunt the Monster Lords | |
Avoid or Destroy Spawn | |
Mana recharges overtime |
Credits:
Code/Art/Audio: myself
Some chars are symbols found inside pico8
Tools:
Pico-8 : A truly amazing lightweight game engine. very easy to pick up and very powerful to get started in game making.
Hex/Binary Pixel Editor : Can't use the first column if your using the the raw binary to get valid ASCII, and the image flips h when printed, any anyone that knows a work around for this I'd like to know. otherwise very helpful.
The 'Pico-8 Manual' the appendix was my best friend thru this.
Thoughts:
This was my first time using pico8, and making something so small. I found the restrictions of the jam freeing as I didn't have to worry about GFX and SFX as much. and could focus on adding a little bit at a time. Although I added them in code(maybe in a crude way) anyway. There's a lot that can be done with pico8 in 1k. I'm sure with some more fine tuning I could squeeze a little more out of it, with some direct memory calls(wasn't ready for that one yet). But for this one, it was a great learning experience. Let me know if I should upload a .p8 with comments or larger function names so you can get an idea of thought process. Thanks for playing!
*cleaned up the code and added a score that persists each round. old version is in downloads
Source Code: New
sc=0 function _init() ?"\asfl0fi5c1>d#<.fd.g.c2c1.c.cd.cd#.f" x=64y=64k={}q={}h=6z=5w=c(7,6,4)f=c(15,5,3)u=c(5,2,9)i=c(3,3,5)o=c(6,4,2)p=c(1,1,6)v=t()n=v end function _update() if h>0 and #o>0 then p[1][3]=x p[1][4]=y if(btn(o))x-=.8 if(btn(1))x+=.8 if(btn(2))y-=.8 if(btn(3))y+=.8 r(u,p,-.5)r(i,p,-.5)r(o,p,.5)r(q,p,-.8)r(u,o,-.15)r(i,o,-.15)r(q,o,-.15) if(t()-v>1.5 and z<5) z+=1 v=t() end end function _draw() ak=false cls(5)circfill(64,64,128,1)camera(x-64,y-64) if(btnp(5))at() for i in all(k) do dm(i[5],i[3],i[4],i[6]) end if(h>0)l("\*"..h.."♥", x-61,y-60,14) if(z>0)l("\*"..z.."█", x-61,y-53,13) l("🐱: "..#o,x,y-60,2) l("◆: "..sc,x+24,y-60,9) if(#o<=0)e(0)l("clear", x-19,y-6,7) if(h<=0)e(1)l("🐱game over",x-32,y-6,8)end function e(b) cls(1)sfx(-1) if(b>0)sc=0 if(btnp(4))_init()end function at()if z>0 then circfill(x+3,y+3,14,5) ?'\as4x5c1egc2egc3eg' z-=1ak=true end end function m(...)return{0,0,...}end function c(n,s,c)g={} for i=1,n do add(k,add(g,m(rnd(200)-32,rnd(200)-32,s,c)))end return g end function r(al,bl,g) for i=1,#al do fx=0fy=0 for j=1,#bl do a=al[i]b=bl[j] dx=a[3]-b[3] dy=a[4]-b[4] d=sqrt(dx*dx+dy*dy) if d>0 and d<40 then if(bl==p and ak and d<20)del(al,a)del(k,a)sc+=1return if(bl==p and d<8)h-=1del(al,a)del(k,a)return if(al==o and t()-n>1)add(k,add(q,m(a[3],a[4],7,9)))n=t() f=g*1/d fx+=f*dx fy+=f*dy end end a[1]=(a[1]+fx)*.5 a[2]=(a[2]+fy)*.5 a[3]+=a[1] a[4]+=a[2] if(a[3]<=10 or a[3]>=118)a[1]*=-1 if(a[4]<=10 or a[4]>=118)a[2]*=-1 end end function dm(s,...) vs=({'\^.⁸、>]]⁘⁘6\vi★','웃\vi🐱','🐱\f9\vm░','\^.⁸、>]]⁘⁘6\ve🐱','ˇ\|f\f8\vmˇ','\^.g<>゛゛<nw\f3\vm▤','░'})[s] l(vs,...) end function l(s,...) for i in all(split'\|f\f0,\|h\f0')do?i..s,... end ?s,... end
Download
Click download now to get access to the following files:
Comments
Log in with itch.io to leave a comment.
This is a really cool entry. 👍
You managed to get a lot in here - including music!
(Particularly impressive on hearing it's also your 1st time with PICO-8)
I'm also very glad to hear that you enjoyed the restrictions of this jam. It's tough to get a good balance with jam rules (+I changed them this year, which was a bit of a gamble). But thankfully, others are also seemingly enjoying the new setup.
Either way, thank you for taking part. I hope you enjoyed the experience & the opportunity to focus on the essentials that it perhaps gave you 😉