Log In  

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

This is a simple command line interface for developing pico-8 carts.

I wanted something that didn't care where my pico-8 carts were stored,
and would interface nicely with different development tools.

Tested on Mac and Windows 10.

I've also included my vscode tasks.json which uses the CLI tools from hotkeys.

Its open source, so use as you like, or if you have an improvement feel free to send a PR!

Full details are here:
https://github.com/nicholaswagner/pico-tools

Or just check it out by running

 npm install -g pico-tools 

Cheers,

-N

1 comment


Hi everyone,

As exams get closer, for some reason I started getting interested in Pico-8 again (terrible timing), but as a total beginner to programming im not to sure where to start, even when I follow tutorials online I find myself understanding the code (at least how it applies to the rest of the program), but I never manage to really retain the information, sadly looking at source code only gets me so far, understanding a little but not a lot.

There seems to be a huge gap between knowing how to make a breakout clone, and being able to knowing enough tools to make your own game no matter how simple (within the limits of pico 8). That being said, im incredibly glad that there is such an enthusiastic community who is willing to make videos and fanzines that will teach new people how to use pico 8. Another issue is that as soon as I try to deviate from the tutorial I run into issues that I cannot seem to solve, and due to the nature of online teaching it's very difficult to get advice.

As a result I decided that to help me understand how to program I should really get to grips with the syntax. To do this ive set up a long question sheet which looks at the Pico-8 manual, and asks questions on the various parts. Then I use the internet and other resources to find the answers.

I've found it very useful, and I thought I might post it here for other beginners to use, I try to cover as much as possible with the questions, but most are very basic.

If you have any suggestions or amendments, or want to contribute to the more difficult questions, pleasure feel free to edit the list accordingly. I understand that the list doesnt teach you how to actually program and think likea computer, but I hope it goes some way to helping people know what the tools they have at their disposal.

1. What are the three key functions?
2. What do they do?
3. What are the buttons in numbers?
4. What is a function?
5. What is a type and assignment?
6. What is a number?
7. What is a string?
8. What is a Boolean?
9. What is a table?
10. What is an array?
11. What is a string?
12. What is a conditional in code.
a. What is the syntax?
13. What is a loop?
a. What is the syntax?
14. What is a local variable?
15. How is it used in a function?
16. What is indexing in programming?
17. What do they mean by 1-based indexing?
18. What notation can we use for an index that is a string?
19. What are the unary math operators?
a. What are these in code?
20. What is clipping?
a. What is the code for setting clipping in pico 8.
21. What code do I use to get or set the colour of a pixel at x and y.
22. What is the code I use to get or set the colour of a sprite sheet pixel?
a. What is a spritesheet?
23. What code do I use to get or set the value of a sprites flag?
a. What is a sprite flag.
b. What is the value (v) of a sprite flag?
c. What is the initial state of flags 0/7
d. What is the meaning of a sprite flag?
e. What is a bitfield?
24. How would you print a string?
25. How would you set the cursor position and carriage return margin in code?
a. What is a carriage return margin?
26. How would you set the default colour to be used by drawing functions?
a. What is drawing functions?
27. What does cls

[ Continue Reading.. ]

1
5 comments


Cart #52509 | 2018-05-07 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

I've submitted this cartridge to the WIP section because it is not finished, it does not have sound and it starts lagging like crazy after a minute. I would appreciate it if someone could tell me a way to store a table with the bullets and remove them once they are no longer visible. I have tried using the DEL() function, but it just changes a value into nil, which bugs the code.

How are the bullets stored in a table?

This is pretty much the way they are stored:

if btn(4) then
 -- storing the X so it stays there
 add(bullets, player_x)
 -- storing the Y, so it can be changed
 add(bullets, 100)
end

And this is how the table is read:

for i=1, #bullets do
 if i % 2 == 0 then

  -- change the y so that they go up
  bullets[i-1] -= 2

 end
end

[ Continue Reading.. ]

1
2 comments


Hi Community,

I new to pico8 (loving it) and beginner to programming - especially LUA.
So far, I've got a player moving in 4 directions (whoots) on TAB 00 and I'd like a menu function on TAB1.
I haven't quite got my head around the menu-screen yet (after making a right dog's dinner when trying to follow Light Bikesdescription

Would you suggest I create a function on TAB1 and callit it from _INIT on tab00?

I've searched online for a simple solution, but failed to find/understand it :(

Sorry if this seems basic - kinda like me really!

Thanks,
Roberto

1
11 comments



The demo cart for my tweening/easings library PICO-Tween.

You can see the thread for the library here: https://www.lexaloffle.com/bbs/?tid=31241

Alternately you can view the repository here: https://github.com/JoebRogers/PICO-Tween


The cart just demonstrates all the available easing functions provided with the library (all easing functions from the traditional Robert Penner easing libraries are ported).

Left Arrow and Right Arrow to cycle through the different easings.

Enjoy!

2
1 comment


Cart #52464 | 2018-05-06 | Code ▽ | Embed ▽ | No License

0 comments


Cart #52504 | 2018-05-07 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
97

Old Version

Cart #52440 | 2018-05-06 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
97

Pilot your state-of-the-art RAH-66 Comanche helicopter over once-peaceful tropical shores. Take on an endless barrage of enemies and leave their wreckage littering the voxel landscape.

The engine and overall game is inspired by the Comanche series from NovaLogic.
https://en.wikipedia.org/wiki/Comanche_(video_game_series)

Features:
--Voxel landscape engine (as seen in Tera Firma tech demo)
--Shaded 3D polygon enemies
--Seamless map
--Awful self-made music and sound effects

Controls:
z: Fire Missiles
x: Fire Mini Gun
tab: Enable Mouse Control (left button fires gun)

-ElectricGryphon

[ Continue Reading.. ]

97
20 comments


Hey guys, remember this?
https://www.lexaloffle.com/bbs/?tid=3266

Well I talked to Arnaud, and he gave me the green light to continue the fanzine since he's busy with his own projects right now. The topic for the fifth fanzine which was last voted for was micro-rpg, with sim being the runner up. If anyone is interested in writing articles, or if you previously sent articles or stuff to Arnaud, please send them to me.
My email is pablocortes28 at gmail dot com. People interested in writing articles should read the thread link I posted at the beginning. Any questions or doubts, please comment here.

10
18 comments


Cart #52548 | 2018-05-09 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

added:
black border on all tiles
scrolling background
slight level changes (still nothing thought out though)

fixed:
tiles deplete when pressing z, x, or attempting to move diagonally
goals don't reopen if you die after opening them

sorry if it is bad taste to update this thread so often, i am very excited to develop more for this platform!

post3:
thanks to kittenm4ster on the tip, levels now reload upon death.
also added:
goal now only opens when all droppable tiles are dropped
incredibly laggy background thing (can be enabled/disabled with z)

post2:
i've updated it with the crumbling tiles! however, i'm not sure how to reload the initial map when the player dies. i was thinking about writing a mapread() and mapwrite() function that scans the initial map and saves the x,y,v in a table with mget, and then use mset to rewrite it all on death. before i do that i want to make sure i'm not overlooking something simpler.

post1:
this is the beginning of a tile based puzzle game i'd like to make that i started today. i haven't programmed in a very long time but i'm pretty proud that i was able to get this to work so far. there are 3 dummy screens. the numbered tiles on screen 2 are going to be added as tiles that allow you to step on them a certain number of times before they disappear.

any pointers on how to make my code neater are greatly appreciated!

1
2 comments


Hey all!

I've recently worked on a couple of different libraries for the PICO-8, which are available on Github. I've posted them around on the subreddit and Discord server to good responses, however have held back from posting here until now!

So without further adieu..

PICO-Tween - Repository

PICO-Tween is a port of the easing functions developed by Robert Penner. This port was based on the Lua port by EmmanuelOga and optimised to suit the PICO-8 by refactoring to remove unnecessary tokens and making it compatible with the way the PICO-8 handles math functions.

It comes packaged with some various sourced and ported additional math functions to make some things work, such as asin and acos.

It comes with a pretty hefty token count if using every tween, at 2083 tokens, however on average each easing function is only around 40-60 tokens so can just be picked out and slotted in where appropriate along with any math dependencies.

It should come pretty easy to use, if you have any experience with tweens, particularly of the Penner variety, in any other language or framework. Here's a small code example that you can paste directly into a cart to see how to get set up with something basic like linear tween:

function linear(t, b, c, d)
  return c * t / d + b
end

local distance = 50
local duration = 1

function downFunc(v)
  return linear(v, 0, distance, duration)
end

function upFunc(v)
  return linear(v, distance, -distance, duration)
end

local easeProp = 0
local timeElapsed = 0
local currentFunc = downFunc
local lastTime = time()
local dt = 0

function _update()
  t = time()
  dt = t - lastTime
  lastTime = t
  timeElapsed += dt

  if timeElapsed > duration then
    timeElapsed = 0
    if currentFunc == downFunc then currentFunc = upFunc else currentFunc = downFunc end
  end

  easeProp = currentFunc(timeElapsed)
end

function _draw()
  rectfill(0, 0, 128, 128, 3)
  circfill(64, 40 + easeProp, 20, 15)
end

[ Continue Reading.. ]

2
0 comments


Cart #52430 | 2018-05-05 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

Gamekitty is a project I started back in September 2016. This little pixel cat has several poses, and it chooses the next pose randomly based on its current pose. The next pose has to have a good transition from the current one. This means the cat's state can be represented with something called a Markov chain.

I like to think of it as a little digital life roaming around the cart. Hope you like it!

P.S. I'm hoping to expand on the ideas I've prototyped here in Pikov (https://github.com/google/pikov) as a way to create a new kind of pixel art animation.

2
0 comments


Made a tiny game for the 158th onehourgamejam called Burnt!

Cart #52428 | 2018-05-05 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
2

You are Prof Howard and you are entering the danger zone. You need to find the three key cards and escape via the lift! Careful tho - don't get BURNT!

2
1 comment


Cart #52426 | 2018-05-05 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1


This was supposed to be a game for the one hour game jam, but I made a song instead!

1
1 comment


I bought Voxatron back around 2011 through the debut humble bundle, and the idea of playing it again suddenly came back to me today. I went to download the game again (I've changed PCs since then), but all I can find is an Alpha version (3.4) that doesn't include the story content that I definitely played through. Would I have to buy the game again? Is the one for sale even the full version? Most of the update information on this site is lacking dates, its somewhat confusing.

thanks in advance.

3 comments


Cart #52410 | 2018-05-05 | Code ▽ | Embed ▽ | No License

0 comments



The insidious rulers of Al-Sarmalabim have wronged you, and now it's time to get revenge!

Press Z to jump, press it again to smash into the ground, but careful not to fall or it's game over.
Press X to slice away at your enemies. Kill the blinking red one, but be sure to grab any loot you might find first, or you're not going to afford upgrades between levels.

Little game i made after messing with some casual dungeon random generation. No sound at all, sorry!

UPDATE: I've optimized the code enough to add a few suggestions from the comments!

16
20 comments


I've been using Pico-8 for about 3 weeks and I'm loving it, but one thing I cannot figure out is hitbox collision. I can handle normal collision fine with checking flags again the map, but if I have a player that is only 6x7 instead of 8x8, then it "collides" with other objects a couple pixels early. I've spent many hours trying to create my own hitbox solution but have had no luck as of yet. I've tried looking at other people's code but it looks way too complicated for me right now, I've only been using Pico-8 for a few weeks. Is there a relatively simple way to implement custom hitboxes? Thanks :)

5 comments


Cart #bubble_pond-0 | 2023-12-12 | Code ▽ | Embed ▽ | No License
29

Original bubble-pushing puzzle game!

Objective:
Cover the gray diagonal lines in each level with a small, medium, or large bubble (doesn't matter which size).

Controls:
Move: Arrow keys
Blow a bubble: Hold and release X key
Restart level: Hold Z key
Pause menu: Enter key

If you manage to beat the game, please post a screenshot with your "TOTAL BLOWN BUBBLES" score!

Also available at: https://trevorade.itch.io/bubble-pond

UPDATES
1.1:

  • Undo support with O / croak!
  • Faster lots-o-little-bubble creation!

0.6 - 1.0.1:


1.0.1:

  • Fixed some crashes associated with the menu.
  • Made resetting-via-croak less depressing.

1.0:

  • Implemented actual title screen.
  • Implemented bubble blown tracker per level.
  • Added special level selection screen when you beat the game. Shows how many bubbles blown per level. Shows total number of bubbles blown (try to get your count down!)
  • Moved level 10 to level 12 to better balance difficulty (I think)

0.9.9:

  • Levels complete! Added puzzles 20-25
  • New puzzle mechanic!
  • Toggle music from menu

0.9.1:

  • Slightly fancier dumb cartridge art!

0.9:

  • Dumb cartridge art!
  • New puzzle mechanic!
  • Added puzzles 14-20 using said new puzzle mechanic!
  • Restart level from pause menu
  • Clear progress from pause menu

0.8.1:

  • Hold Croak to restart level (useful for limited bubble levels)
  • Animate bubble growing/shoving

0.8:

  • Added puzzles 11-13
  • Redrew clouds

0.7:

  • Added puzzles 8-10
  • Made holding X not keep creating new bubbles

0.6:

  • Added a level select screen
  • Saved game progress to cartdata
  • Fixed some bubble pushing logic
  • Added a 7th puzzle

[ Continue Reading.. ]

29
46 comments


Here is my first PICO-8 try: a Sinclair ZX Spectrum 16K Ocean Transversion 1984 game clone.

ToDos, help needed:

  • splash screen based on the original game image. If you know how to do/convert it...

please help

Comments are welcome!

https://github.com/FleXoft/pico8-transversion

https://github.com/FleXoft/pico8-transversion/blob/master/tr.p8.png

Cheers,
_flex.


Cart #52377 | 2018-05-04 | Code ▽ | Embed ▽ | No License
1

[ Continue Reading.. ]

1
0 comments


Cart #52371 | 2018-05-04 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
1

Jungler is my first cart.

I've always been a fan of Konami's Jungler (an arcade game released in 1981) which has some very interesting mechanics I've never seen elsewhere and I felt it would make for a good port to the PICO-8. This game is somewhat based on the Konami game, with some minor tweaks (no fruit, enemies appear as eggs that you can eat and you grow when you eat eggs or enemies.)

Would love opinions and suggestions, and tweaks to balance/difficulty.

Some things I may tackle in the future:

  • Random maze generation (Jungler really benefits from "straightaways" and segments wider than 1.)
  • Animated attract screen.
  • Player-selected difficulty.
  • High score tracking.
  • Music (throbbing background music a-la Asteroids might be nice.)
  • Improved graphics/effects.
1
0 comments




Top    Load More Posts ->