ah, thanks/sorry! that’s a bug in pico8 itself, but I think I know how to work around it
pancelor
Creator of
Recent community posts
No, for now it’s mouse-only. I tried adding “mouse emulation” to the game itself but I wasn’t happy with my attempt, especially for how much space it used up in the cart. (Not too much, but not nothing either!)
I can try again, but in the meantime I think the miyoo mini has options to simulate a mouse – e.g. this guide https://youtu.be/QgJPNhgJ1ss&t=232 . you’ll just need mouse movement and left click
Does that work for you?
fun! I didn’t figure the ghosts out entirely but I felt pretty competent by the end, just going on intuition. I wish eating a power pellet and hitting a ghost at the same time didn’t kill you (the end fruit too? I don’t think I tested that actually, but I avoided trying it b/c I assumed it would kill me)
here’s my vague theories about the ghost behaviors: (rot13.com)
- erq - sbyybjf lbh
- benatr - tb fgenvtug hagvy uvggvat jnyyf
- cvax - sbyybjf lbh fbegn? V xabj ubj gur bevtvany cnpzna tubfgf jbex fb vg znxrf frafr gung cvax fbegn sbyybjf, ohg vqx rknpgyl jung’f hc. jul qbrf vg fyrrc fbzrgvzrf? uz npghnyyl gung’f n tbbq pyhr V fubhyq ybbx vagb zber…
- terra - V qhaab, cher eat znlor
thank you! I’m quite proud of those shadows
part 1: bitplanes! basically it’s a pico8 feature that lets me write colors to the screen without completely overwriting the old colors. earlier in the code poke2(-15-😐,...)
sets up the palette that makes this work
part 2: flr(63-😐)
happens to be equal to 0x5f5e
, which is the address I need to poke to configure the bitplanes
putting it together:
poke2(0x5f5e,0x00f4) --enable bitplanes. (poke would make more sense, but poke2 works and we have it saved as a single-letter-variable)
rectfill(x-1,y-1,x+width,y+height,4) --draw the shadow
poke2(0x5f5c,0xffff,0xffff) --disable bitplanes (also disable btn() repeat -- we need to do that anyway, and here is convenient)
sorry about the crashing, that’s really bad! I think it’s fixed in the latest update. If you’d like to help me make sure it’s fixed:
https://pancelor.itch.io/gary/devlog/971793/v14-fix-crash
sorry about the crashing, that’s really bad! I think it’s fixed in the latest update. If you’d like to help me make sure it’s fixed:
https://pancelor.itch.io/gary/devlog/971793/v14-fix-crash
Yup, the save data is stored externally; delete this file to delete your save data and start fresh:
- Linux:
~/.lexaloffle/pico-8/cdata/pancelor-make-ten-dx.p8d.txt
- OSX:
/Users/YOUR_NAME_HERE/Library/Application Support/pico-8/cdata/pancelor-make-ten-dx.p8d.txt
- Windows:
C:/Users/YOUR_NAME_HERE/AppData/Roaming/pico-8/cdata/pancelor-make-ten-dx.p8d.txt
Not easily, but it’s possible with a bit of effort. I wrote a script and some instructions to help; leave a comment there or here if something’s unclear or you run into other issues
the p8 manual has instructions for uploading to itch, and here’s a video tutorial (I haven’t watched it and I have no idea why it’s so long, but it’s a great channel and I’m sure it covers the basics well)
essentially you need to EXPORT -F MINES.HTML
, zip up the folder it creates, then upload that
mhm! goto has some rules about jumping into other scopes (like functions). but if you remove all the functions then it works. here’s a minimally edited version: (a lot of spaces can be removed)
r,x,y,f=rnd,3,3,1
::i::
e={}a=r(8)\1b=r(8)\1
for i=1,5do repeat g=r(8)\1v=r(8)\1until g-x|v-y!=0e[i]={x=g,y=v}end
::m::
d=16for y=0,114,d do for x=0,114,d do
fillp(r(♥))rectfill(x,y,x+d,y+d,2)end end
?"▒",a*d+4,b*d+5,9
?"🐱",x*d+4,y*d+5
?f,2,2,6
for j in all(e)do
z=r(4)\1/4
j.x+=cos(z)j.y+=sin(z)?"😐",j.x*d+4,j.y*d+5,8
if(j.x==x and j.y==y)stop()
if(x==a and y==b)f+=1goto i
end
repeat
flip()
v=btnp()
until v>0
x+=v\2%2-v%2
y+=v\8%2-v\4%2
goto m
I noticed that the spawn check isn’t working – the enemies won’t spawn on the player, but the enemies get to move once after spawning!
best score: 17. I love the visuals! like a nice purple quilt
and you’ve nerdsniped me; here have some sizecoding tips:
-
a!=x and b!=y
becomesa-x|b-y!=0
(basically, check thata-x
andb-x
both don’t have any bits set, i.e. both are zero) This can save a few chars in 3 different places -
enemy movement: If you want them to only move in 4 directions, this should do it:
R=rnd(4)\1/4
j.x+=cos(R)
j.y+=sin(R)
(costs 12 chars ish)
-
stop()
can berun()
, saving a char. this makes the game autorestart instead of freezing – might be nicer? hard to see your score tho -
you can save some chars in init with temporary vars:
for i=1,5do repeat A=r(8)\1B=r(8)\1until A-x|B-y!=0e[i]={x=A,y=B}end m()end
-
input code:
::m::
-- TODO delete m() and put the code inside it here
repeat
flip()
v=btnp()
until v>0
x+=v\2%2-v%2 --extract the x bits
y+=v\8%2-v\4%2 --extract the y bits
goto m
Its arcane but it works! it will let the player move diagonally tho. I also have an incredibly cursed snippet for 4-way movement if you prefer
- goto – I agree with Kamencesc, I think you can remove all functions from this cart and use
goto
instead
“Can you explain more about how goto works?” ummm let’s see, basically these two carts are equivalent:
function _draw()
--stuff
end
and
::d::
--stuff
flip()
goto d
searching for “lua goto” might help too.
I don’t know how to explain it succinctly, but here’s an example where I used multiple goto/labels to have an “init” phase and a “draw” phase, sorta like what you have here.
Not yet, but soon! The project has ballooned out of control a bit but it’s finally almost done – I’m hoping to release it on the 1-year anniversary (may 10)
edit: https://pancelor.itch.io/make-ten-deluxe :)
thank you! You can try that yourself, if you want – the main menu has a key-rebind submenu.
I tried a few different control schemes (qwe|zxc|asd, ewq|zxc|asd, 1qa|zxc|de3) and finally settled on the current one (qwa|zxc|dse). A friend of mine suggested qaz|zxc|cde which was kinda wild – overlapping keys! asz|wse|xsd is hard to play but kinda fun, as S extends all the arms at once. I’m curious to hear if anyone discovers other weird or intuitive controls.
I tried your suggestion (1qa|2ws|de3) for a bit – it’s interesting! I found it a bit difficult to control multiple arms at once, but that’s probably just due to my playing too many hours on the “default” controls :)
ah, sorry about that! I just pushed an update that might fix it; here are some steps to follow if you’d like to troubleshoot it with me:
- download the new gary.exe – does it work?
- if not, update your graphics drivers
- does the new gary.exe work now?
- if not, email me the log file (it should be at
%APPDATA%\Godot\app_userdata\gary\logs\godot.log
)
thank you! nice indeed.
pausing: true! but I like it how it is currently: the score changes color slightly after pausing, which strikes a nice balance – it makes it easy to tell if someone paused, without forcing them to play the intended way. (and here’s a longer version of these thoughts: https://pancelor.itch.io/make-ten/devlog/740875/v14-pause-indicator-deluxe-edition )
Apparently Godot 4 dropped support for GLES2, so your trick only works for Godot 3 projects. I’ll reconsider whether I keep using Godot 4 in the future – thanks for letting me know. There’s no easy way for me to make a build that works for you, unfortunately. (I would need to remake the game in Godot 3)
Here’s some links in case you, future-me, or anyone else reading this is interested:
- https://godotengine.org/article/about-godot4-vulkan-gles3-and-gles2/
- https://github.com/godotengine/godot-proposals/issues/10044
- https://forum.godotengine.org/t/will-godot-4-support-gles2/3408