Log In  

BBS > Superblog
Posts: All | Following    GIFs: All | Postcarts    Off-site: Accounts

PUZZLE PUPPIES v1.1.0 UPDATE 6-11-2026: The "Sorry About the Permadeath" Update
Okay so. When I launched Puzzle Puppies I made a choice that a bunch of you politely let me know was a mistake: if you got stuck on a level, you lost your whole run and started over from level 1. I thought it was fun in a pseudoroguelike way. It was just annoying, my bad.

So the headline change in 1.1.0: PERMADEATH IS GONE. Fail a level and you can just retry it. There's also a proper level select on the main menu now, so you can jump back to any level you've reached. Your progress saves between sessions. Play how you want, the choice is yours :)

Mouse support (optional). PC and web players can now click tiles directly instead of fighting the cursor. It's off by default — flip it on from the pause menu once you start the game (hit Enter/P mid-game). Speedrunning is now an option, I guess? Mouse-driven play will be quite speedy!

Cursor controls got simpler. The old keyboard/controller movement tried to be clever about hopping between dogs and mostly just felt like a coin flip. Now it moves one tile at a time in the direction you press. Predictable. Boring. Good.

[ Continue Reading.. ]

1
0 comments


Cart #sehjzubu-0 | 2026-06-11 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

Cart #petinawipi-0 | 2026-06-11 | Code ▽ | Embed ▽ | No License

0 comments


Cart #reacttttt-0 | 2026-06-11 | Code ▽ | Embed ▽ | No License

0 comments


Cart #hellforce-0 | 2026-06-11 | Code ▽ | Embed ▽ | No License

0 comments


Cart #subho_test18723-0 | 2026-06-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

0 comments


Cart #dobihujoto-0 | 2026-06-03 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

HELL RIDER RELOADED

Just like the original Hell Rider… only meaner.

The robots are smarter, faster, and far less interested in your long-term survival. Every room is a deadly maze of flying shots, bad decisions, and rapidly shrinking safe spaces. If you enjoyed Hell Rider, welcome back. If you mastered it, prepare to be humbled.

STRATEGY

Use the rules of the mode to your advantage—but don’t get too comfortable. In Hell Rider Reloaded, every robot can keep its own shot in play. There is no shared limit anymore. As the levels advance, the screen can quickly fill with deadly fire from multiple directions at once.

[ Continue Reading.. ]

0 comments


Random interactive art done during the course I teach on Game Programming

Cart #interaktiv_meisterwek-0 | 2026-05-28 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

1
0 comments


Cart #coloriseverything-0 | 2026-05-28 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

0 comments


Cart #red_invasion-0 | 2026-05-28 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA

0 comments


Cart #summonersgambit-1 | 2026-05-27 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

Introduction

Are you willing to put your soul on the line to archive divine enlightenment.
You don´t know what forces can see the rift opened by your hand and what you might let into our world by your actions
only by staying in control of your impulses you shall be granted entrance into the Paleroma.
The entity who first answers your call is Lucy, DO NOT BE MEAN TO HER.

How to play

In summoners gambit your goal is to beat lucy in a game of Succlu, a game similar to the human game Blackjack.
The goal changes each round and the one closer wins, going over however will instantly loose the round.
Each round the summoner is given one item to use whenever, powerful tools to bend the demonic game to ones favor.

Credits

-the dialogue box is based on the code of :https://www.lexaloffle.com/bbs/?tid=28465, with some modifications on my end
-Gnostic History :https://www.youtube.com/watch?v=d0lvPrt3OFM
-and of course my lovely playtesters <3

1
0 comments


Cart #hungrybutt-0 | 2026-05-23 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3

my first game ever!

3
1 comment


This is just a basic mockup of my upcoming Sonic 1 PICO-8 port. I didn’t have ghz textures at this point, so the level is empty.

0 comments


Cart #iogame-0 | 2026-05-21 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

Io's Cosmic Orbit (A DOTA 2 Io Fangame)

[EN] This is a fast-paced arcade mini-game featuring Io (Wisp) from DOTA 2! Navigate through dangerous cosmic space, manipulate your guardian spirits, and survive against waves of enemies.
We've optimized the tutorial/early-game flow and buffed the mini-bosses for a greater challenge!

[CN] 这是一款基于 DOTA 2 英雄小精灵 (Io) 核心机制制作的快节奏像素街机同人游戏!在密集的攻势中灵活走位,操控你的幽魂法球,活下去!
新版本优化了新手流程,并强化了小 Boss 的挑战性与 AI 表现!

🎮 Controls / 游戏控制:

[ Continue Reading.. ]

1
0 comments


here have this for no apparent reason

0 comments


Cart #mama_duck_game-0 | 2026-05-17 | Code ▽ | Embed ▽ | No License
1

1
0 comments


TAB 1:

function _init()

init_game()

end

offset=0

function _update()

if state == "play" then
-- gameplay logic
if player_dead then state = "gameover" end
elseif state == "gameover" then
if btnp(4) then
-- restart game
_init()
state = "play"
end
end

if game_state=="wave_start" then
spawn_timer -=1
if (spawn_timer<=1) spawn_wave()
elseif game_state=="playing" then
if (enemies_left <0) game_state="intermission"
end

if game_state=="intermission" then
wave +=1
spawn_timer=1
game_state="wave_start"
spawn_wave()
end

offset=(offset+1)%128

update_enemies()

p.x=mid(0,p.x,120)
p.y=mid(0,p.y,120)

if (collision_happened) p.state="dead"

if p.state=="alive" then
if btn(⬅️) then
p.x -=1.5
elseif btn(➡️) then
p.x +=1.5
elseif btn(⬆️) then
p.y -=1.5
elseif btn(⬇️) then
p.y +=1.5
end
end

if btnp(4) then
sfx(0)
-- add new bullet to list
add(bullets, {
x=p.x +2,
y=p.y -2,
speed=2
})
end

for b in all(bullets) do
b.y -= b.speed -- move up
if b.y < 0 then del(bullets, b) end -- remove
end

end

function _draw()
cls()

if wave==nil then wave="1" end
print("wave: ",10,10,8)

camera(cam_x,cam_y)

map(0,0,0,0,128,64)

map(0,0, -offset,0,16,10)

map(0,0,128 -offset, 0,20,16)

draw_enemies()

for e in all(enemies) do
spr(e.spr,e.x,e.y)
end

if p.state=="alive" then
spr(p.sprite,p.x,p.y)
else
print("game over",50,60,8)
spr(17,p.x,p.y)
end

for b in all(bullets) do
rectfill(b.x,b.y,b.x+1,b.y+2,10)
end

end


TAB TWO:

function update_enemies()

for e in all(enemies) do

e.y += 1 -- move down

e.y -= 1 -- move up?

if (p.x < e.x) e.x -=.80
if (p.x > e.x) e.x +=.80
if (p.y < e.y) e.y -=.80
if (p.y > e.y) e.y +=.80

if(e.hp <= 0) then del(enemies, e) end

-- remove if off screen
if e.y > 128 then del(enemies, e) end

-- simple collision with player bullets
for b in all(bullets) do
  if abs(e.x - b.x) < 4 and abs(e.y - b.y) < 4 then
  		sfx(3)
  		e.hp -=1
    del(bullets, b)
  end
end

end

for en in all(enemies) do
for oen in all(enemies) do
if (oen != en) then
local dx,dy=oen.x-en.x,oen.y-en.y
local d=30
if abs(dx)<d and abs(dy)<d then
local a=atan2(dx,dy)
en.x-=cos(a)0.7
en.y-=sin(a)
0.7
end
end
end
end

for en in all(enemies) do
if check_collision(p, en) then
-- handle collision (e.g., game over, lose hp)
p.state=false
p.hp -=1
sfx(4)
game_state="over"
end
end

end


tab three:

function draw_enemies()

for e in all(enemies) do
spr(e.spr, e.x, e.y)
end

if game_state=="play_next_wave" then
if #enemies==0 then
wave_number +=1
spawn_wave()
end
end

end


tab four:

function init_game()

gamestate="play"

p={x=64,y=100, sprite=1, hp=10, state="alive"}

enemies={}

bullets={}

wave_number="1"
enemies_left=0
spawn_timer=5
game_state="wave_start"
game_over=false

end


tab five:

function check_collision(a,b)

return abs(a.x-b.x)<4 and abs(a.y-b.y)<4

end


tab six:

function spawn_wave()
for i=1, wave*1 do
add(enemies, {x=rnd(128), y=0, w=8, h=8, hp=5, spr=4})
enemies_left +=1
p.hp -=1
end
game_state="play_next_wave"
end

1 comment


A small grid based Fluid Simulation within pico-8.

Cart #fluidsimulation-0 | 2026-05-12 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

2
0 comments


function _init()
p={1,3,5,7}
p.x=64
p.y=64
p.sp=1
p.frame=0
p.timer=0
p.anim_speed=0.15

end

function _update()

local lx=px
local ly=py

if btn(⬅️) then
flip_sprite=true
p.x -=1
end

if btn(➡️) then
flip_sprite=false
p.x +=1
end

p.timer +=1
if p.timer > 6 then
p.timer=0
p.frame=(p.frame+1)%2
end

end

function _draw()
cls()
local current_sp=p.sp+(p.frame*2)
spr(current_sp,p.x,p.y,2,2,flip_sprite)
end

1 comment


Hi everyone,

This is my first post here—a bit of a "love letter" to PICO-8 and Picotron.

First of all, I want to say a huge thank you to @zep. I truly admire both the console and the workstation; they are such a pleasure to work with. However, the most important component is the community. This group's friendliness, coziness, and openness fuel so much interest and creativity.

I am constantly amazed by what people achieve within such limited environments. There are countless examples of PICO-8 projects that "shouldn't" be possible, yet they thrive through sheer creative thinking. Inspired by all of you, I’ve finally found the courage to start contributing back with my own projects, tools, and games.

Teaching with PICO-8

For the past year, I’ve been teaching programming to kids at a weekend school using PICO-8 as our primary platform. We’ve leaned heavily on the incredible tutorials by @Krystman, @NerdyTeachers, @MBoffin, @2darray, @Gruber, and many many others.

[ Continue Reading.. ]

3
1 comment


Cart #homibekdi-0 | 2026-05-07 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

It's a game where you tap your friend's cat on the butt. :)

2
2 comments




Top    Load More Posts ->