Knucklebones



Controls
⬅️⬆️➡️⬇️ Move cursor ❎/X or 🅾️/Z Select
Rules
Each player has a 3x3 grid, organized into three columns. They take turns rolling a die and placing it into an open spot in their grid. If there is a matching die in their opponent's matching column, the opponent must remove all matching dice in that column. When one player's grid is full, the game is over and the player with the highest score is the winner.
Scoring
Each column is calculated separately, then added to the player's total score. If there are matching dice in the column, their values are added together and multiplied by the amount of matching dice.

I am working on compressing .p8 files.
That's all you need to know.
Currently it is only saving characters by only advancing tokens once.

As far as I know, every variable is returning as nil. That doesn't mean that it is. I cant get far enough into my game to figure out more
I am unsure what i did. I have gone through my code multiple times and i am just done currently. Any help or advice would be greatly appreciated.
[hidden]
-- game loop
function _init()
gamestart()
_upd=update_game()
_drw=draw_game()
end
function _update()
frm+=1
_upd()
end
function _draw()
_drw()
end
function gamestart()
frm=1
col=false
----------------
--menus
----------------
men_main={
items={"start game","controls"},
menx=10,
meny=10,
curx=2,
cury=10,
menoff=7
}
----------------
--player
----------------
p={
sp=1,
x=48,
xo=0,
y=40,
yo=0,
w=8,
h=8,
ymt=0,
spd=1,
flp=false,
dx=0,
dy=0,
--gravity/collision stuff
hbx1=1,
hbx2=6,
hby1=7,
hby2=1,
grv=0.2,
acc=0.5,
landed=false,
jumping=false,
running=false,
falling=false,
dashing=false,
rolling=false,
attacking=false,
itemgrab=false,
--animation (in sprite #)
frame=0,
anim_idle=1,
anim_walk={1,2,3,4},
anim_jf=5,
anim_atk={1,4,6},
anim_dashing=8,
anim_rolling={9,10,11,9},
anim_attacking=6,
anim_itemgrab=7,
--game stats
mhp=10,
chp=10,
atk=1,
def=1,
agi=1.1,--1.1 beacuse fucking math
}
inv={}
abilities={}
----------------
--tiles
----------------
--collision
t={--x1=l x2=r y1=t y2=b
wall={x1=4,x2=6,y1=0,y2=7},
floor={x1=0,x2=7,y1=4,y2=7}
}
end
-->8
-- updates
function update_game()
--player---------------------
-----------------------------
p.frame+=1
if p.frame==5 then
p.frame=1
end
if (btn(⬅️)) then
p.dx=-1
p.flp=true
p.running=true
elseif (btn(➡️)) then
p.dx=1
p.flp=false
p.running=true
else
p.dx=0
p.running=false
end
--collisions & gravity
local ly=p.y
p.dy+=p.grv
--check collision left and right
if p.dx<0 then
if collide_map(p,"left",0) then
p.dx=0
end
elseif p.dx>0 then
if collide_map(p,"right",0) then
p.dx=0
end
end
--jump
if btnp(⬆️)
and p.landed then
p.dy-=2
p.landed=false
end
--check collision up and down
if p.dy>0 then
p.falling=true
p.landed=false
p.jumping=false
if collide_map(p,"down",0) then
p.landed=true
p.falling=false
p.dy=0
p.y-=((p.y+p.h+1)%8)-1
end
elseif p.dy<0 then
p.jumping=true
if collide_map(p,"up",0) then
p.dy=0
end
end
p.x+=p.dx
p.y+=p.dy
--animation
if p.jumping or p.falling then
p.sp=p.anim_jf
elseif p.running then
if frm%5<=4 then
p.sp=p.anim_walk[p.frame]
end
elseif p.attacking then
p.sp=p.anim_attack
else --player idle
p.sp=1
end
end
function update_mm()
upd_menu(men_main)
end
-->8
-- draws
function draw_game()
cls()
map()
spr(p.sp,p.x,p.y,1,1,p.flp)
camera(p.x-60,p.y-60)
print(p.dx,1+p.x-59,1+p.y-59,8)
print(p.dy,9+p.x-59,1+p.y-59,8)
end
function draw_mm()
cls()
menutext(men_main.items,men_main.menx,men_main.meny,8)
drw_menucur(men_main)
end
-->8
--functions
function does_tile(flag,x,y) -- bool
tile=mget(x,y)
has_flag=fget(tile,flag)
return has_flag
end
function collide_map(obj,aim,flag)
--obj = table needs x,y,w,h
--aim = left,right,up,down
local x=obj.x local y=obj.y
local w=obj.w local h=obj.h
local x1=0 local y1=0
local x2=0 local y2=0
if aim=="left" then
x1=x-1 y1=y
x2=x y2=y+h-1
elseif aim=="right" then
x1=x+w-1 y1=y
x2=x+w y2=y+h-1
elseif aim=="up" then
x1=x+2 y1=y-1
x2=x+w-3 y2=y
elseif aim=="down" then
x1=x+2 y1=y+h
x2=x+w-3 y2=y+h
end
--pixels to tiles
x1/=8 y1/=8
x2/=8 y2/=8
if fget(mget(x1,y1), flag)
or fget(mget(x1,y2), flag)
or fget(mget(x2,y1), flag)
or fget(mget(x2,y2), flag) then
return true
else
return false
end
end
-->8
--menu
function startmenu(menutable)
end
function menutext(menutable,x,y,off)
for i=1, #menutable do
print(menutable[i],x,y+menutable.off*i)
end
end
function drw_menucur(menutable)
local x1 = menutable.curx-8
local y1 = menutable.cury-10
local x2 = x1+12
local y2 = y1+6
rectfill(x1,y1,x2,y2,7)
end
function upd_menu(menutable)
if btnp(⬆️) then
menutable.cury-=7
end
if btnp(⬇️) then
menutable.cury+=7
end
-- if btnp(❎) then menuacc(menutable)
-- if btnp(🅾️) then menuden(menutable)
end |

I've been trying for a day to figure this out and I can't. There's barely any information online about this. Although it feels like everyone knows it but me.
My idea is on initialize to run a nested for loop and add any enemies to a list. And in the update move them.
I did this and it worked! But it incremented in grids. There's no actual code of this since I deleted it, but I could easily reprogram it, if someone asks what the block was.
This game is a WIP prototype with a few known (but rarely game-breaking) bugs.
Progression is not persisting between sessions here on Lexaloffle, so I updated the game to unlock level select. I recommend trying to beat each level before progressing, but not everybody has time for that!
Concept
Spoiler alert: these billiards are not regular (and they certainly aren't perfect). I wanted to take the game of billiards, which I've always enjoyed both in real life and in video game form, and turn it on it's head a little. As you play through the 25 levels in this prototype, you will encounter more and more... irregularities.
Story
Bill Iards is a perfectly regular person. He is perfectly happy with his perfectly regular life. One day, a man in a suit knocks on his door, bringing news of the passing of his estranged Uncle Whiz. Bill had no recollection of such a relative, but in any case, Uncle Whiz had willed to him one item: a billiards table.

This is my second 3D game demo. But I am not finished it yet.
control:
common mode:
press ⬅️ to turn left
press ➡️ to turn right
press ⬆️ to move forward
press ⬇️ to move backward
press 🅾️ to shift to left
press ❎ to shift to mouse mode
mouse mode:(only available on splore)
use your mouse to turn around
press Key_S to shift to left
press Key_F to shift to right
press Key_E to move forward
press Key_D to move backward
press ❎ to shift to common mode
Done:
--basic raycasting
--textured wall
--static sprite
plan:
--animated sptite
--moving enemies
--shoot game
--dialogue
Bite-sized Celeste Classic mod.
Requires no tech.
Intermediate-Advanced difficulty. Designed with non-linearity in mind.
The character featured is Cash, designed by Lash sleeper. I do not own them.
This card was designed under 3 days for the artfight 2024 event.
v1.2 : Changed menu music (again)
v1.1 : Changed menu music
v1.0 : Initial release

Bomber for Picotron is an enthralling Flight simulator, where you can relive the battle of Poland, Ohio in the American Civil war, as one of the brave RAF pilots which fought in the battle of Poland, Ohio in the American United States of America North American American Civil War.
Vector Art: https://www.lexaloffle.com/bbs/?tid=141774
Font: https://www.lexaloffle.com/bbs/?tid=140803
(Piss: It is hard to win; you need to employ the same strategy used by John Earl Grey, captain of the RAF Squadron fighting in the battle of Poland, Ohio in the American Civil War)
(Piss Piss: Win + Loss screens for the battle of Poland, Ohio in the American Civil War do not work in the browser)

Is test of worm
Code
a={}
for i=1,20 do
b={}
b.x=64
b.y=64
add(a,b)
end
function _update()
if (btn(0)) a[1].x-=1 sfx(0)
if (btn(1)) a[1].x+=1 sfx(0)
if (btn(2)) a[1].y-=1 sfx(0)
if (btn(3)) a[1].y+=1 sfx(0)
for i=2,20 do
a[i].x=a[i].x*0.8+a[i-1].x*0.2
a[i].y=a[i].y*0.8+a[i-1].y*0.2
end
end
function _draw()
cls()
for z in all(a) do
spr(1,z.x,z.y)
end
end |
Hey everyone.
What year do you think Pico-8 would've been released if it was a real console that physically existed?
Late 80's? 90's? Before or after NES? Let's talk about this.
P.S. Another topic, would Pico-8 be a hand-held or a home console? Personally, I think
it'd be a cube-shaped home console, square-sided just like its display. Similar to GameCube but more "cuber" (with equal dimentions) and quite small in size. Regarding the colors, i think dark grey body with a red outline would look stylish. Like on the picture, but a different color.


This is a proof of concept! It's a platformer where you use buoyancy to gain altitude. The deeper you dive, the more altitude you gain when popping out of the water! Kinda like a floatie in the pool.
Use left and right to move. Press X to dive deeper (when submerged) and O to move upwards (also while submerged). On land, press O to jump. Try to collect all the gems.

Madeline is climbing Mount Celeste again, but this time she's brought a stepstool to help her reach new heights.
Featuring difficult stool-based tech, new sprites, remixed music, 23 levels, and a secret ending!
Controls
Arrow keys - Move
C/Z - Jump
X/V - Dash
Down+X to pick up a stool, and X to throw it.
Hold Down while throwing to place the stool gently instead.
Credits
- Original game by Maddy Thorson & Noel Berry
- Music is a remix of "First Steps" by Lena Raine
- Token sprite taken from newleste.p8
- Stool mechanic is inspired by True North by Meep
- Based on Evercore and Smoothleste
This thing has been in development for way too long. A large portion of it was procrastination, as I ran out of level ideas and I'd set the goal to have at least 24 levels. I think it turned out pretty cool though, and I can't wait to see what the speedrunners do to it :)






0 comments


