Log In  
Follow
morningtoast

Long time hobby game developer, Hot Wheels racer and wrestling smark


Facebook so kindly reminded me that my PICO-8 journey started roughly 8 years ago with the PocketCHIP.

Yeah, yeah...the PocketCHIP didn't turn out to be a keeper but PICO-8 certainly was. Since PICO-8 came pre-installed with the PCHIP, I figured it would have a built-in audience constantly looking at new games (a la Playdate today) and that sounded better/easier to me than throwing games into the void. That dream didn't quite turn out but I'm thankful it brought P8 into my hobby sphere and has continued to be a fun way to fill time and live out some childhood dreams of making games for people to play.

Thanks to @zep for all the effort and making a fun platform to create, play, and share games. But more so to all the people in the P8 community over the years that helped me stay motivated and make games. From code to assets to theory and beyond, THANK YOU.

5
1 comment



Just read about PICO-8 games being supported by the new Antstream service!

https://www.timeextension.com/news/2024/08/ps1-net-yaroze-and-pico-8-games-are-coming-to-antstream

The PICO-8 part of the announcement in the video starts around 10:25. They talk about how 2 games are part of the service to start so it kinda sounds like Antstream will choose or curate which PICO8 games get onto the service? I dunno...and it's scant on details if it's running PICO8 somehow or if it's just "games that are made with PICO8" and they're using binaries or what. Dunno...hopefully we'll learn more.

But even then it sounds like Antstream will be another outlet where people can easily get to our games. Antstream looks to be a service on Xbox so that instantly lowers the barrier to play more games.

And congrats to Puzzles of Paladin and Manbomber for getting chosen as a launch title for the PICO8 inclusion.

10 comments



I'm trying to figure out the alternate colors a bit so I can use them in a game. I'm not trying to get all 32 colors available at once. I'm happy with having 16 but just want to adjust which 16 I have. From what I've read, it seems like this is possible.

I put the display pal() swaps at the top of the cart which does switch out colors. And it works when drawing and with sprites. Cool.

pal(3,129,1) -- blue129
pal(5,140,1) -- blue140
pal(6,135,1) -- yellow135
pal(11,137,1) -- orange137
pal(12,132,1) -- brown132
pal(14,128,1) -- brown128

So I have a sprite that is drawn with original blue12 and then on the screen it displays as brown132 because of the swap. I get that and it's working.

But I want to be able to display that same sprite again in a different color.
How do you do a swap on a swap?

-- this sprite is draw in blue12 and displays as brown132 = expected
spr(1,12,96)

-- how do i make the same sprite display as orange137

[ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=147717#p)
1
9 comments



Cart #steelhunter-0 | 2024-04-30 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
23

Can you take down the entire fleet?

The enemy has established a naval blockade and you're the only one that can open up supply lines. Use your mini-sub to destroy enemy ships and clear the blockade. Success will depend on a steady hand and perfect timing. But beware! There are also reported sightings of an experimental enemy sub!

  • Navigate tricky minefields
  • Tense periscope action!
  • Avoid depth charges raining from above
  • Damn the torpedoes!
  • Top secret submarine boss fight

Classic action

Controls

Arrows / D-Pad = Move submarine

[ Continue Reading.. ]

23
6 comments



No duh, right?

I've been making PICO8 games for 7 years now (doesn't feel that long) and the tokens and limits have just been part of the fun. Those restrictions can push our creativity into something better. That's the whole point and I love it.

My focus has always been on making the games for people playing on the P8 console in some fashion, whether on a PC or a handheld or whatever. And that audience is basically other P8 devs and gamers that know and appreciate the limitations.

Until now, Itch.io has mostly been an afterthought for my games. Basically just a nice way for people to play them all via the web...and you get some nice exposure bumps from the platform and so on.

Don't Dig Up the Dead it was the first time I put more conscious effort into the Itch.io versions of the game, whether that be the downloadable binaries or even just playing the web version for free. I've also put more effort into spreading the word about the game because I'm just proud of it and very happy with how it turned out. No shame. But with that push comes more feedback, which is always wonderful to receive...

[ Continue Reading.. ]

1
5 comments



I had only played with the AI-generation stuff without any real thought as to how I can actually benefit from it. But with the release of Don't Dig Up the Dead, I had a happy accident when using AI to generate some supporting art.

Don't Dig Up the Dead uses a mix of borrowed and original in-game assets. Music and sound came from some packs and some of the animation came from other games, but a large part of what you see is my own art and I'm proud that I was able to put something together that felt like it all belonged. There's enough of "me" in what people see that I'm not embarrassed to show it off.

I marched along making my game and got it to a very happy spot that I thought I was ready to release and be done. But then AI showed up. I took the bait like the rest of the world and started playing around with the art generation AI to see what it would do...just for fun without any real intent to use it for anything. But then I thought, "hey, I could use this to make art for my game." My game was done so this wasn't about generating pixels or sprites, just supporting material, like cover art and promotional stuff.

[ Continue Reading.. ]

4
4 comments



Cart #dontdig-1 | 2023-01-26 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
48

Every hole digs up a soul

You must find 3 magic relics to help rid the land of evil. Use the Find-O-Meter and your trusty shovel to search the forest. But if you dig up the dead you'll need to fight them off to stay alive, so pay attention to everything you unearth...it might just save your life.

  • Find more than 30 items scattered throughout a spooky forest
  • Challenging shmup action as you fight off the dead
  • Simple and rewarding inventory management
  • Secrets and riddles abound

 

Playing the game

For PICO8 owners: Play through Splore or by running load #dontdig from the PICO8 commandline.

Gamepad recommended for best experience.

  • D-Pad/Arrows: Move your character
  • B Button/Z: Action button. Hold down to dig and shoot.
  • A Button/X: Inventory
  • Start/P: Pause and settings
  • Read the manual to learn more (PDF)

[ Continue Reading.. ]

48
27 comments



I know there are available CRT filters for exporting web carts but is there anything for binary exports?

I have a hunch there isn't but never hurts to ask. :)

3 comments



I have an Anbernic RG351V and it's been running PICO8 wonderfully over the past year. It's my primary PICO8 console.

However, I just updated it to v0.2.5e and now when I launch PICO8 (which boots into Splore) I hear the boot music but no display on the screen. No combination of key presses seems to turn on the screen.

The RG351 uses the Raspberry Pi version of PICO8.

I've followed the same update instructions as I have for the past several versions.
https://retrogamecorps.com/2020/11/12/guide-pico-8-on-retro-handhelds/#351ELEC

Up until now, it's been great and just trying to figure something out...or learn what type of animal needs sacrificed to make it work.

I know this is a very device-specific question but figured I might not be alone. Any thoughts or insight is appreciated.

3 comments



I took a small leap into a multicart game - one cart for the title/intro, another for the main game - so 2 carts in total. I've never tried this before and didn't think much of it until I go to uploading it to the BSS so it will get into Splore any whatnot. This is new territory for me but I know it's something folks do all the time. The docs are not very clear on how to handle it for the BBS.

Here's what I think I have to do...

  1. Export the 2nd cart as a PNG: game_cart2.p8.png

  2. Upload game_cart2 first so it can get an ID from the BBS: #mygame2

  3. Once I have that ID, go into game_cart1 and add the load("#mygame2") call in the proper spot, in this case when the player press a button to start the game.

  4. Export game_cart1 as a PNG and upload that to the BBS as a full release game so it has a thread and everything else. This is the cart that will be the one people see in Splore and on the BBS...right?

So assuming those steps are correct, how do I upload a cart to the BBS without it getting a thread?

[ Continue Reading.. ]

1
8 comments



Cart #lastxmastree-0 | 2022-12-31 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA


Game jam entry: This game was created for the 2022 Toy Box Jam. This is game is not feature complete nor was it really playtested. It's a jam entry so take what you get :)

Grinches have destroyed all but one Christmas tree. You must help the elves save the last Christmas tree!

This is tower defense game where you can move blue tosser elves into any position while you also have to use the red scout elf to dig up snow and keep the tossers stocked with snowballs.

Controls

  • D-pad to move the red scout elf and blue tosser elves
  • When red scout, hold X button to move quicker under the snow
  • When red scout, press O button to dig up snow. When your snow is full, return it to the North Pole so it can be made into snowballs.

[ Continue Reading.. ]

1 comment



I've been hitting the PICO8 website for years now but just recently I noticed that the "Forum" link in the PICO8 site menu takes you to the Cartridges/Releases sub-forum and NOT the main forum...and that's not good.

Shouldn't the main menu link take you to the forum landing page?

I've just assumed that clicking the main menu link takes me to the starting point and I drill down from there...not that it has done some drilling for me already.

Now that I've paid attention to this, I'm seeing A TON of threads I never saw before that I'm interested in. One challenge forums have is duplicate and buried posts but if the site makes it hard to see all posts in the first place, it doesn't help.

This is the forum start page: https://www.lexaloffle.com/bbs/?cat=7

This is the where the "Forum" main menu link goes: https://www.lexaloffle.com/bbs/?cat=7#sub=2

1
3 comments



This might be too broad of a question...but how do you create and manage timelines for actors in your game?

A lot of my games involve waves of enemies coming onto the screen, a la shmups and runners. I've made several games at this point that need these types of timelines but I feel like I have to create a new system each game. I haven't come up with a method/process/flow that I feel is reusable and that bothers me :)

A common pattern I use is a delimited string that gets parsed into an array that outlines which actors should appear and when based on timing (spawn after X seconds). It works okay but that giant string often requires external tools to create and often ends being very specific for the game - which isn't bad per se, just clunky.

I guess I don't have a problem to solve here...just looking for insight as to how others handle it or have dealt with it in their own games.

13 comments



I've found that even with my small collection of gamepad/controllers being hooked up to various devices, that the default mappings on gamepads differ widely. It made it hard to me to know which button to label as which in my games.

So if you just plug in your gamepad and boot up PICO8, which buttons map to which keys?

Naturally, it's gonna vary but based on my own controllers and a very unscientific survey on Twitter, I've come to accept that the B button on a gamepad maps to Z on keyboard, and A button maps to X on keyboard.

Like so:

Obviously, you can remap the buttons and all that jazz but out of the box, this seems to be the common config. This is how my Buffalo gamepad is when plugged into my Windows machine...and gotta say, it makes sense. The B button is left of the A button, just like the Z key is left of the X key on my keyboard.

What have you found with your various controllers and gamepads? Maybe this thread can serve as an index of controllers and how they map to PICO8 by default. Just make sure to outline the brand of controller and the device you're using it with.

1
6 comments



I'm working on a bullet pattern function that shoots out bullets in a direction, at a speed, etc...nothing fancy and nothing new to me, all my games have bullets! BUT this time some bullets are magically moving mid-stream and I can't figure out why.

See here...

I've narrowed it down to happening when bullets from the line ahead of it get deleted from the table. When a bullet goes off screen, I'm removing it from the table so as to not get overloaded and so on. Normal stuff. But when that deletion happens, the next bullet in the table magically moves out of line yet all the rest follow orders.

If there are 15 bullets in every line, why would the 16th bullet move when the ones ahead of it get deleted? Is it something to do with table order? Or some process not happening due to deletion time?

It's like the addition math gets skipped at that moment. Very weird...but also something I'm sure that is very simple I'm overlooking. Lord knows I've spent way too much time on whittling this down the simplest version and I'm not sure how to refactor any more. A man can only bang his head so much :)

Any thoughts, insights, or suggestions are appreciated.

Code for the example above.

function add_bullet(x,y,a,s)
	local dx=cos(a)*s
	local dy=sin(a)*s
	add(bullets,{x=x,y=y,dx=dx,dy=dy})
end

function bullet_update()
	for k,o in pairs(bullets) do
		o.x+=o.dx
	  o.y+=o.dy

	  if o.x>130 or o.x<-5 or o.y>130 or o.y<-60 then del(bullets,o) end
	end
end

function bullet_draw()
	for k,o in pairs(bullets) do
	 rectfill(o.x,o.y,o.x+1,o.y+1,8)
	end
end

function _init()
	fr=0
	bullets={}
end

function _update60()
	bullet_update()
	fr+=1
	if fr==50 then -- this is here to repeating demo only
		for i=1,15 do
			add_bullet(120,10+3*i,.5,1)
		end	
		fr=0
	end
end

function _draw()
	cls()
	bullet_draw()
end
1
2 comments



There's been a lot of drama recently surrounding PICO-8 games being turned into NFTs and then being sold on the GameStop NFT market...all without permission from the creators. One of my games got caught up in the mix and it's a shitty scenario across the board.

Ars Technica published a feature this morning highlighting the whole ordeal. It's a good overview of the drama with interviews from @zep and other creators that had their games hijacked. Worth a read for everyone that makes games here and something to keep an eye out for in the future.

https://arstechnica.com/gaming/2022/08/indie-devs-outraged-by-unlicensed-game-sales-on-gamestops-nft-market/

Zep has been working hard deal with a lot of it and helping to get them off the GameStop market. Huge thanks to him for all his effort on this situation. It's not fun for anyone but he's certainly taken a lead role.

I've helped out where I could in regards to dealing with this problem but I chose not to get too involved otherwise. It's shitty that someone took my work and cashed in on it, but at the end of the day it's not taking any bread off of my table. I'm not going after legal action or anything that hardcore so I'm squarely on the "it's the principle of the thing" side of the coin.

This is not a thing and it will continue to be a thing, I'm guessing. Someone has proven you can turn our games into NFTs and cash in. Expect more and keep your eyes out.

10
8 comments



Cart #helitack-0 | 2022-07-20 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
13

Play above, search Splore for "helitack" or use LOAD #HELITACK from your PICO-8 commandline.

Only you can help...

Budgets are tight and staff is short so we're looking for volunteers to help keep our parks safe and beautiful.

Your job is to partol the park and rescue lost hikers and contain any forest fires that might get started. If you can keep things under control for 3 shifts, you can become a full-time helitack ranger.

Your helicopter is equipped with all the gear you need to get the job done. Stay focused, stay calm, and do your best.

We also recommend reading the handbook. It might just save a life.

[ Continue Reading.. ]

13
6 comments



Does anyone have an example of a horizontal directional compass in a game?

The type of compass that is just a strip and moves left/right as the character rotates on screen? So like facing .25 in rotation would be North and so on from there. I don't need waypoints indicated, just have the direction be in the middle when the character is facing that direction.

Example:

I'm working to figure it out as we speak but this time I remembered to poll the community before I do a bunch of work, lol.

I think my struggle is how to turn the rotation of the character in speed for the horizontal compass and so the compass letters line up when a cardinal direction is hit.

Any ideas to approach or pointers, tips, examples are appreciated.

3 comments



I put a completely unscientific research poll up on Twitter asking folks where they usually play PICO-8 games and the majority said they primarily play using the desktop client.

  • Desktop App: 56.7%
  • Desktop web browser: 23.3%
  • Phone web browser: 16.7%
  • Handheld App (non-phone): 3.3%

See the Twitter poll

I put up the poll because PICO-8 is in a unique spot where it can be played various ways on various platforms, and yet we're not able to design games to account for one or the other. This has always been a point of ponder for me and having this data helps me think about it better.

However, the audience that saw my tweet is probably regular PICO-8 players and devs anyway, so it's not the casual gaming public that most certainly plays through the web on Itch.io and whatnot. But, still interesting to see the results.

What does this tell us? I mean, not much, I guess, but to me it says the laptop/desktop is the device (and environment) where we're mostly playing. It's not on your phone or on a handheld like the RG351. It also means Splore is likely a primary source of access/finding of games. We might also be able to infer that the game is being seen on a rather larger display, not phone or handheld sized...so worry about sprites being "too small" could be less so.

[ Continue Reading.. ]

1
7 comments



I'm trying go back into my game Destructopillar to try add/remove some things but see I am at token limit. I've done some basic refactoring and stripping out unneeded functions that are now part of the core but it's not enough.

I was looking over the manual to see what functions are available now and was reminded about coroutines. The problem is, I never really understood how to apply coroutines. I get the concept and I think I understand the gains (like saving tokens), but just can't figure out where in the game it would benefit from coroutines, if at all.

Please check out the Destructopillar game below real quick, even just the first stage and you'll get the gist. Then please call out the places where you could see coroutines being useful.

I'm not looking for cart code analysis or digging into what's there right now. Just looking at the game on the surface...the actors, the actions, the scenes...would coroutines possibly make sense anywhere?

And the answer could really be they wouldn't help in this type of game. And that's okay...because I just don't know. I sense that coroutines could help and make things better and save me some token trouble but maybe not.

[ Continue Reading.. ]

4 comments





Top    Load More Posts ->