Log In  

BBS > Community Superblog
All | Following | GIFs | Off-site

Cart #penguin_snowdown_v1-0 | 2024-03-26 | Code ▽ | Embed ▽ | No License
15

Challenge your friends, your enemies, or the power of artificial penguin intelligence. Grab your controller and collect all of the fish, in a race against the clock. Dodge thermonuclear warheads, or fire your own in this fast-paced, action packed party game for up to two players.

15
2 comments


Cart #negokuraba-0 | 2024-03-26 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3


Simple pico paint programm i made for fun.
Move - UP DOWN RIGHT LEFT
Paint - X
Change Color - O

3
5 comments


Pattern Playground lets you select and modify the fill patterns and colours of various shapes in a set, see the rendered results, choose a combination that you like, and output its values to the console.

It helped me get a better grip on patterns while working on some other yet to be released project.

Instructions

Selection / Editing Contexts

  • Set (as in, a grouping of shapes) selector
  • Object (as in, shape) selector
  • Current object (base) colour selector
  • Pattern editor
  • Pattern on-bits colour vs. transparency toggle
  • Pattern on-bits colour selector

Controls

  • U/D/L/R to navigate across and within contexts
  • [X] to toggle/select
  • [Z] to print current set object patterns and colours to console

Sets

Mixed

Prairie

Mars

[ Continue Reading.. ]

7
0 comments


Cart #mezumadew-1 | 2024-03-27 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
6

WIP smashTV demake. Requires keyboard and mouse.

WASD movement, R to reload, LMB to shoot.

6
2 comments


Cart #niporadufu-1 | 2024-03-25 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

这是我做的乒乓球小游戏,加入了球拍惯性,增加了难度和趣味。
我想在2.0中加入一些新的功能,像加入可以增加球拍性能(加速度、大小、弹性、粘滞力等)的精灵,并且可以通过控制球撞击来获得,这样将更有趣。
不过现在的1.0版本中也可以在代码里修改 red.l 和 blue.l 的数值来修改球拍长度,或修改 red.spd 和 blue.spd 来修改球拍移动的加速度。

2
0 comments


Cart #unleashed-1 | 2024-03-25 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
29

Unleashed

Infinite runner where you play as a dog getting chased by its owner. The further you get without getting caught, and the more bones you collect along the way, the higher your score. As simple as that.

Demo

How to play

  • X/Z to jump
  • Up/Down arrows to move

About the game

This is the first game I make for this console, and its development has had quite a lot of changes of direction, so I am not super happy with the final result, let alone the code, which is a total mess. Nonetheless, this has been a super fun challenge that has made me appreciate how incredible this console is and how talented the developers making games for it are. Making this game was a blast!

29
8 comments


This is a game I've been coding for a bit, Linecraft! This is my first and biggest demake (though I've been working in other non-published projects before) so I'm very excited that other people will try it!
Also, I'll keep it updated, so if you find any bug, leave it down below on the comments! I'll check them out and fix them in the following versions.

The sounds and music were made by Munchkin (thank you :D) and the code and graphics were made by me.

Thanks to kallanreed for his tline rotation function I used for the splash text in the game.

And also thanks to Felice for their implementation of the OpenSimplex noise generator on PICO-8 that I used for the world generation in the game. The code may look a little different in my cart, but that's due to changes in development (back when I thought this game could be made in a single cart!).

[ Continue Reading.. ]

71
18 comments


Cart #ceaseless1-0 | 2024-03-22 | Code ▽ | Embed ▽ | No License
7

The blocks will fall forever. Run, wall-jump and climb as high as you can before you're crushed or trapped! Unlock more levels by reaching certain heights, and collect coins to unlock hats! Later levels introduce greater challenges and new block behaviors where you will need to develop unique strategies to succeed.

Try the first three levels to master your tower climbing in the free version!

Purchase and download the full version at itch.io!

The full version has 9 more levels and 16 more hats to unlock.

CONTROLS:

Keyboard:

  • arrow keys to run, climb, and change levels in the title menu
  • the 'Z' key to jump or start a level from the menu

[ Continue Reading.. ]

7
1 comment


Cart #murder_drones_virtual_training-3 | 2024-03-25 | Code ▽ | Embed ▽ | No License
17

This is a hard action-platformer fangame based on the Murder Drones indie animated series by GLITCH.

You play as a new disassembly drone that has to complete his training in a virtual environment.

Controls

  • Arrow keys to move.
  • [X] to flutter.
  • [C] to shoot and detonate rockets (when available).
  • [↓] to perform a dive maneuver.
  • [Enter] for additional options.

Credits

  • Autopawn (Discord: autopawn)
  • Remi Mixer (Discord: remimixer)
  • Crjönch (Discord: crjonch, Twitter: @Slimyappraisal)
  • Miszuk (Discord: miszukuwu)

[ Continue Reading.. ]

17
7 comments


Hi, I was experimenting with a way of making a multiplayer game on Pico-8 (on different cartriges to have more screen space).
So I was looking for a way to communicate from the cart to the host OS, I know it's possible to inject and retreive data on the web exports with javascript but I'm trying to find a way to do it localy .

I have tried that code:

cls()
i_channel=0x804
o_channel=0x805
input=''
output=''

function _update()
	local nb=0
	repeat
		nb=serial(i_channel,0x8000,0x1000)
		for i=0,nb do
			input..=chr(peek(0x8000+i))
		end
	until nb==0

	if (btnp(⬅️)) output..='⬅️' stdout('left ')
	if (btnp(➡️)) output..='➡️'	stdout('right ')
	if (btnp(⬆️)) output..='⬆️'	stdout('up ')
	if (btnp(⬇️)) output..='⬇️'	stdout('down ')
	if (btnp(🅾️)) output..='🅾️'	stdout('𝘰 ')
	if (btnp(❎)) output..='❎'	stdout('𝘹 ')
end

function _draw()
	print('\^rf'..output,2,2,7)
	print('\^rw'..input,66,2,13)
end

function stdout(str)
	for i,c in pairs(split(str,'')) do
		poke(0x9000+i-1,ord(c))
	end
	serial(o_channel,0x9000,#str) 
end

it uses the stdin and stdout of the cart to read and write into files when called like this:
> pico8 < input_file.txt > output_file.txt -run mycart.p8
The problem I ran into is that I can't use the same file for the input and output.

My best attempt was to use a pipeline to redirect the stdout of a cart to the stdin of another one like this:
> pico8 -run mycart.p8 | pico8 -run mycart.p8
The problem here is that a strange thing is happening, the first cart boots and works fine but the second one freezes until the first one is shutdown. Then it works as intended, I get the output from the first cart. But I am not able to make the to instances of the cart run at the same time and communicate.

Any idea how to pull it of ?

1
8 comments


If you use the command line to set the value of a variable and then attempt to select a pause menu option where menuitem's callback function returns true (that is, an option that's supposed to keep the menu open after selecting), the game crashes with the message "attempt to call upvalue '_superyield' (a nil value)"

1
0 comments


Cart #cmtn-0 | 2024-03-23 | Code ▽ | Embed ▽ | No License
6

This is a retexturing of Captain Neat-O in the Time Nexus by @paranoidcactus, done by my little brother. He wanted to show it off. Get to the final boss to see who it is! :)

6
1 comment


A tool to help with print debugging based on the Python package IceCream. There's already a Lua version of IceCream but it won't work with Pico-8/Picotron as far as I know. I've called it db for debug rather than ic but it's very similar in concept.

You can download the code here or copy/paste below:

db.lua [hidden]

----------------------------------------------------------------------------
-- print debugging based on IceCream for python
-- pico-8 lua version by jason delaat
do
   local ignore = {}
   local lookup = _ENV
   for k,_ in pairs(_ENV) do
      ignore[k] = true
   end
   local function format_arg(value, env)
      for k,v in pairs(lookup) do
         if v == value and not ignore[k] then
            return 'db: '..k..'='..tostr(v)
         end
      end
      return 'db: '..tostr(value)
   end

   local db_meta = {
      __call=function(self, value, log)
         if db.display and log then
            print(log)
         elseif db.display then
            print(format_arg(value))
         end
         return value
      end
   }
   db = {
      display = true,
      local_env = function(t)
         lookup = setmetatable(t or {}, {__index=_ENV})
         return lookup
      end,
      reset_env = function()
         lookup = _ENV
      end,
      wrap = function(f)
         local fn = sub(split(format_arg(f), '=')[1], 5)
         _ENV[fn] = function(...)
            local log = 'db: '..fn..'('
            local result = f(...)
            for a in all({...}) do
               log ..= tostr(a)..','
            end
            log = sub(log, 1, -2)
            log ..= ') --> '..tostr(result)
            return result, log
         end
      end
   }
   setmetatable(db, db_meta)
end
----------------------------------------------------------------------------

\

[ Continue Reading.. ]

1
0 comments


I get occasional crashes when using the new feature to remap the spritesheet to the extended memory. Can't reproduce reliably. But documented in this video at 15:38. No error message. Just a clean crash to the desktop. Using Windows 11 Pro.

6
1 comment


In version 0.2.6B merge_joysticks 2 doesn't work as described.

Expected behavior: Gamepad 0 and 1 would control one player (P0)

Actual behavior: Gamepad 0 controls two players (P0 and P1)

Documented in this video at timecode 32:11

4
0 comments


Cart #easygems-0 | 2024-03-22 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

just doing this post for splore bc i forgot to do it right lol
(that's how you can tell im new here)

2
2 comments


Hello everyone!
I bought PICO-8 some time ago but only recently decided to actually learn it.

One (of many) thing that got me a little confused is the order and speed execution.

The code below shows the text on screen:

function _update()
	cls()
	print("hello",64,64,11)
end

However, if I change the code as bellow, the text does not show anymore:

function _update()
	print("hello",64,64,11)
	cls()
end

What I got from this is: on the second code, since the last command being processed is the cls(), then the screen ends up 'blank'.

But what makes me confused is that I thought since pico-8 runs on an endless loop the cls() and print() will always be called one after another, so I don't understand why in one order the print() is the 'final' and in the other, the cls() is.

Can anyone help me understand this better?
I couldn't find anything that explained this behavior (maube because it's too basic, but since I'm new to this it doesn't make sense to me).

2 comments


Cart #picketpuzzle-10 | 2024-03-24 | Code ▽ | Embed ▽ | No License
35

Picket Puzzle

Trailer

The picket line swells as factory after factory walk out on strike. For the exploited and the oppressed of the world, this is the moment -- but time is short. The arms of the state are mobilizing to halt your advance. Can you lead the workers to victory?

As strike captain, you must learn how to overcome obstacles, deal with police blockades, seize government buildings, and win the army over to your side. Brute force will not work here, instead you must think clearly and creatively to succeed.

Once you've started on the road of revolution, there's no turning back!

Gameplay

Unique snake+sokoban puzzler with lots of clever mechanics in the mix:

  • Factories add workers to the picket line
  • Soldiers can be won over to your side, but only when surrounded
  • Police block your path unless you have enough workers to push them back
  • Radio Towers take control of the enemy troops - for just one step
  • ... and more!
  • 40 levels that challenge your creative puzzle solving skills.
  • Forgiving design: turn-based gameplay, play levels in any order, infinite undo.

Stuck or confused? Here's a manual explaining all the mechanics: https://docs.google.com/document/d/1-xpxwokgk4aULF7_pv95NIb4ZjaCMkbPgcJhC0xAQh8

35
8 comments


I've spent two hours fixing a nasty bug. The image above is essentially the bug I was trying to fix, except all the steps were spread in three functions, and took a good minute of playing on average before everything aligned just right (or just wrong depending on how you look at it) for it to seemingly randomly occur.
Can you figure out why t[2] is not 8 in the end ?

Hint : Lua arrays and # operator are cursed.

Ideally, I'd like the game to crash at t[i]=8 if possible. Anyone knows if you can add some sanity checks to all array accesses ?

1
6 comments


Cart #goat-2 | 2024-03-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
37

Goat is a curious, little goat (shocking) who lives peacefully in the mountains. One day, she had an accident and ended up landing on the top of a haunted tower. A tower that would try to kill her with all its means...

Help Goat to survive by charging rocks and trees and dodging dangerous spiky trees and fire balls. Watch out for Goat's stamina level (pink top bar) as she runs out of energy quickly. Recharge her batteries by picking up stamina balls. Use super power when you're in trouble or running out of energy.

Can you get to the end and save Goat?

Controls

  • Arrow keys: move & charge objects

[ Continue Reading.. ]

37
7 comments




Top    Load More Posts ->