Log In  

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

Cart #picuno-1 | 2021-07-24 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
13

A simple UNO clone with some AI.

Z/Circle: Play card
X/Cross: Call UNO (on yourself defensively or on others offensively)

Arrows to move the cursor.
Press Up to move the cursor to the deck (so you can draw a card).

Revision 1 Bugfixes:

  • Fixed a bug where debug controls to draw cards without spending your turn were left in.
  • Fixed a bug where the game would crash if more than one AI player attempted to call UNO at the same time.
13
4 comments


*edit 2: 0.2.3 has a built-in way to do this with tostr

edit: see downthread for a better function

I was thinking about high scores in PICO-8 a while ago and it occurred to me that they'd make more sense as unsigned 32 bit integers than 16b.16b fixed point decimals. The easy part in that case is adding points - simply increment in units of 0x0.0001 instead of units of 1 - but if it's a high score, I'd also like to be able to display it.

Thus:

function tostr_u32(n)
	-- return n as a 32-bit uint
	-- 92 tokens, ~1/780 of a 30 FPS CPU per call
	-- " " as thousands divider

	-- calculate ones
	-- (0x.03e8 = 1000 * 0x0.0001)
	local s=tostr(shl(n%0x.03e8,16))
	if n>0 then
		n/=1000
	else
		-- if not-actually-a-sign-bit is set
		-- have to be a little tricksy

		-- splitting in half
		--  n&0x0.ffff lower
		--  lshr(n,16) upper
		-- upper half unit = 65 536
		-- so within thousands:
		local m=536*lshr(n,16)
		m+=n&0x0.ffff
		-- originally used
--		local m=536*lshr(n,16)+n&0x0.ffff
		-- but that returned wrong results
		s=tostr(shl(m%0x.03e8,16))
		-- and doing the division by
		-- 1000 in two steps:
		n=lshr(n,1)
		n/=500
	end

	while n~=0 do
		while #s%4~=3 do
			-- pad with zeros
			s="0"..s
		end
		s=tostr(shl(n%0x.03e8,16))
			.." "..s
		n/=1000
	end

	return s
end

I'm sure this could be minimized further and/or optimized further and/or made more general, but I'd be willing to use it as is so I figured I'd share.

4
15 comments


My game for Ludum Dare 47, a little puzzle game with a tline rotation effect.
I made the effect without any idea what I was doing with it, then scrambled to finish the puzzle part for the jam deadline...

Cart #pcc_ld47_chronometry-0 | 2020-10-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
7



7
5 comments


Cart #stridee-1 | 2020-10-09 | Code ▽ | Embed ▽ | No License

1 comment


Cart #crowded_dungeon_crawler-3 | 2021-11-11 | Code ▽ | Embed ▽ | No License
216

Controller/Keyboard

Mouse and Keyboard

Gameplay

Crowded Dungeon Crawler is a mix of puzzle and dungeon crawler. Your goal is to defeat enough enemies to open the door to the next level.

  • The TIME bar depletes as you play. Once it's empty it's game over. Attacking enemies and buying items will stop time for a few seconds.
  • Melee items require HP to be used. When attacking multiple enemies, only the strongest one in the group will damage you.
  • Magic items require MANA. Each item has a specific mana cost. If you don't have enough mana to cast an ability, you can hold the attack button to convert TIME into MANA.

[ Continue Reading.. ]

216
22 comments


Cart #gemdrop-2 | 2020-10-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
5

Gem Drop (beta)

Please let me know what you think! Feedback welcome.

Thanks!

5
4 comments


Hallo Pico People,

Loving it here. First post!

So i'm working on a 2D physics based collision engine.

...Imagine a whole bunch of polygons flying around, wrapped in AABBs (axis aligned bounding boxes)...

And I was wondering if this was a legit/efficient way to check if Two Edges/Line-Segments Intersect.

1. Treat them as AABBs and check if those overlap, is so keep the "resulting mini rectangle".
-->otherwise abort

2. Treat them as Linear-Functions (infinite strait lines) and check if they are parallel, if NOT determine the resulting "point of intersection"
--otherwise abort

3. check if the "point of intersection" is inside the "resulting mini rectangle".
--return that point, otherwise abort


--do segments intersect? if so where?

function segments(a,b)

 local r=overlap(to_rect(a),
                 to_rect(b))

 if(not r)return false                

 local pt=intersection(a,b)

[ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=82711#p)
7 comments


It's that time of year -- Halloween!

And that means... it's time for a spooky jam, pico-8 style!
No color limitations this time -- just monsters!

Monsters Are Cute Jam

What: a pico-8 Halloween jam for 2020

When: NOW through October 29th

How: I uh.. just make a game or pico8 toy?
Ohhh and add monster(s)! Cute or.. not so cute -- just gotta have a monster somewhere, somehow, some...when!

Please use the #macojam tag on twitter to share progress gifs, ideas, requests for collaboration, etc
Or you can post in this thread here on the lexaloffle forums!

10
9 comments


by Mot
Cart #mot_pool-23 | 2020-10-08 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
240

This is Mot's 8-Ball Pool, a little pool simulation inspired by 3D pool on the C64 and Amiga.
Shoot a round of pool against a friend, or one of the 7 different AI characters.

UI

The UI at the bottom of the screen shows how each player is progressing.
The player's name flashes when it is their turn.
The color they must sink is displayed next to their name, and the balls already sunk are displayed above.
A white ball indicates they have a free ball.

When player fouls, the reason for the foul is displayed in a scrolling message along the bottom of the screen.

[ Continue Reading.. ]

240
15 comments


How would I go about comparing numbers greater than 32,767?

I'm using @Felice's code from https://www.lexaloffle.com/bbs/?pid=22677:

function get_score_text(val)
	local s = ""
	local v = abs(val)
	while (v!=0) do
		s = shl(v % 0x0.000a, 16)..s
		v /= 10
	end
	if (val<0)  s = "-"..s

	if(s=="") then
		s="0"
	end

	return s 
end 

I'm saving the three highest scores to the cart data. Unfortunately, I'm struggling to solve how to determine if the user's current high score (stored as a string) is greater than one of the other three. I'm looking for a function along these lines:

function check_new_high_score()
    --high_scores = table of tables { 1 => (player_name), 2 => (player score) }
	for i=1,#high_scores do
		local raw_high_score = get_score_text(config.total_score)
		local raw_saved_score = high_scores[i][2]

		if(raw_high_score>raw_saved_score) then

[ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=82692#p)
4 comments


Cart #zenehereyo-3 | 2021-02-15 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
7

Rated as the worst Defender's clone on the Atari VCS 2600 console. Here's my remake of this one. Enjoy!

7
11 comments


I am trying to edit the config.txt file from /Users/myuser/Library/Application Support/pico-8, but it is overwritten every single time I exit out of pico-8. Does anybody know why this is?

I'm using PICO-8 v0.2.1b on OSX.

I have validated (multiple times) that pico-8 is NOT running when I edit the file. When I then start the application, the settings are still present in the config.txt (although my changes seem to be ignored) and then the file is overwritten with default values when I exit.

Thanks for any suggestions!

2 comments


Cart #neonspheres-4 | 2020-10-06 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
3

Help the factory sorting stuff.

Controls, left right, up X and C to jump

To do list :

  • destruction animation
  • scoring system
3
3 comments


Cart #tbufaguwu-1 | 2020-10-06 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

2
0 comments


Cart #chicxulub-0 | 2020-10-05 | Code ▽ | Embed ▽ | No License
4

4
1 comment


A short game about being not enough.

Warning:

includes flashing lights and screen shaking

Cart #not_enough_01-0 | 2020-10-05 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
20

TL;DR:

PICO-8 is amazing!

Ludum Dare Link

-

What a rush! I needed all those 72 hours to complete this. At about 40 minutes from the end, I had the game completed and for god’s sake, it worked and was ready.

It has been a lot since my last solo Ludum Dare (like 4 years probably) but I'm so happy that this is the game for my comeback. This time the theme was "Stuck in a loop", and the Ludum Dare 47 started a bit earlier, at midnight for me. I thought about this concept just a few hours after I went to bed, and I've fallen in love with it. I believe this truly resonates with how I feel and have felt and this is why I think I've managed to make it conveys those feelings to the player.​

[ Continue Reading.. ]

20
20 comments


Cart #besasoheme-0 | 2020-10-05 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
10

You are a satellite tasked with scanning a foreign planet. Travel through the data ring hotspots while avoiding the planet’s meteor showers, asteroid belts, and electric discharges.

Controls: Hold Z to fly in the inner ring and X to fly on the outer one. You orbit faster when you are closer to the planet and slower when you are further away. Use that to your advantage!

Made for Ludum Dare 47: Stuck in a loop
https://ldjam.com/events/ludum-dare/47/orbitrary

10
2 comments


Cart #superjumpguy-5 | 2020-10-26 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
8

Super Jump Guy is the hottest new platformer! With cutting-edge 8-bit graphics and challenging gameplay, you'll want to play it again... and again... and again...

"Wait a second... haven't I been here before...?"

Created in 72 hours for Ludum Dare 47.

CHANGELOG:

  • 2020/10/26: Further tweaks to the graphics and music
  • 2020/10/12: Minor graphics improvements, a couple of new SFX, and some back-end optimisations.

Previous versions:

Cart #superjumpguy-1 | 2020-10-12 | Code ▽ | Embed ▽ | No License
8

[ Continue Reading.. ]

8
5 comments


For {}

A programming puzzle block-pusher, 24 puzzles to solve!
On the map there are instructions that let up as they execute sequentially.
As you move, the program executes the next instruction.
Move the blocks to escape the programming loop!

Cart #zeyogagomo-0 | 2020-10-05 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
7

7
7 comments


Cart #stuck_in_the_sewers-6 | 2021-03-19 | Code ▽ | Embed ▽ | No License
153

Mr. Mouse wants to go to the beach in his vacation, but got stuck in a maze of pipes.
Help him find the exit!

New version with speedrunning stats and with 2 new unlockable characters, which have different gameplay rules: Mademouselle and Mousefredini.

Little puzzle game we made for Ludum Dare.

Julio Maass - Concept, Level Design, Music/SFX, Programming, Additional art
Bonevolt - Art, VFX programming, Story/Character design

153
13 comments




Top    Load More Posts ->