I guess, what I'm wondering about is twofold...
Do you think rollback netcode can be implemented in a cart without consuming a ton of it's resources... and do you think a cart with that level of netplay (within the remaining resources) has an audience it would appeal to? Granted, this is major feature-creep territory for any project scaled to P8 in the first place, but again, that's why it's a theoretical discussion...
I am doing a little project here and decided to show how the results are going.
The project will be called pico 4 and will run on pico 8. It will have an audio editor (16 audios, eaach one with a length of 8 notes, 16 notes and 16 volumes), a sprite editor (4 colors palette, 16 sprites, 4x4 pixels and a 32x32 screen), a map editor (32x32 tiles) and a code editor (256 tokens, each one fitting on exactly 1 byte). In the end you get 961 bytes in a cartridge and with a little 63 bytes of save (mainly for highscores) it results in 1 kilo byte cartidges.
The objective is to do a mini-console where you can do a minigame in les than 2 hours.
Will be possible to use it in any pico 8 port using of virtual keyboards and some type of external saving (thinking in some type of special qr code or something).
And every editor will be written on the bto language (successive letters of asm) the language I am ending now.
Here the first interpreter. (You need to put the code inside the cart code (last lines inside quotes) 'cause I didn't end the code editor yet lol)
A demake of the classic minesweeper.
The game cartridge is just 1024 bytes -- see https://gist.github.com/pancelor/a3aadc5e8cdf809cf0a4972ac9598433 for some lightly commented source code
RULES / CONTROLS:
- left click to reveal a tile
- if you hit a mine, you lose
- revealed tiles will show a number, telling how many of their 8 neighbors are mines
- right click to flag a tile
- reveal all non-mine tiles to win!
- click the smiley face to restart
TIPS
- left click + right click (simultaneous) to auto-reveal neighbors, if the number of nearby flags matches the number on the tile you clicked
- mines left and a timer are displayed in the top corners
I'm trying to make a block-coding program, but I need to store a reference to a variable. As in, whenever you try and get a value of something, it returns the variable. If there's no way to do this, then I have other ideas. Anyway, heres what I got:
block = { func = print params = { x, 63, 63, 7 } } |
However, it just assumes the current value of x
rather that storing a reference to it. How would I go about doing this?
Hi everyone
Having an issue with PICO-8 not starting on Raspberry Pi 3, clean install of Pi OS (64-bit) based on Debian Bullseye.
Followed this article:
https://magpi.raspberrypi.com/articles/pico-8-raspberry-pi-starter-guide
but after downloading and unzipping, nothing happens after running pico8 executable, using both options ("Execute" or "Execute in Terminal"). Also tried the same with earlier versions of PICO-8, but no luck.
Any ideas?
Hello. As I did not see a comprehensive help for the online edition of Pico-8, I thought I would write up my own.
This document covers not only how to code and program in the online edition but goes over the really important stuff like saving your code to your own computer and publishing your cart in Lexaloffle for others to play. You do not need the purchased version to do these things.
Now you can either READ what I have here or download the ZIP file that contains it for easier offline reading.
To download this document go HERE:
https://www.mediafire.com/file/1opl4349bdvrdw1/Pico-8+Educational+Edition+Survival+Guide.zip/file
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ P i c o - 8 E d u c a t i o n a l E d i t i o n S u r v i v a l G u i d e Written by dw817 (10-08-22) Standard 🏠 Pico-8 License ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Hello there ! This document is best read in Notepad using the Lucida Console typeface. As my own resolution here is 1280x720 I recommend a font size of 19. Let's get started. As you may already be aware there is an Educational Edition of Pico-8 online. Now while this may serve as a great educational engine for teachers it also means YOU get a chance to program in Pico-8 and publish your carts - for free ! To start off on the right foot, first off go to this web-address: https://www.pico-8-edu.com/ If you don't want to type that manually, using your mouse triple-click that address above, then press CTRL+C. Then in your internet browser, tap ALT-D followed by CTRL+V and then ENTER. And there you are ! You are in the editor. Right now when the screen is black the way it is, you are in immediate mode. You can test this by typing out the following: print 3*4 Always follow every command by the ENTER key. 12 Well, you didn't need a computer for that. :) However the immediate mode is useful if you are using global variables in coding. for instance you could type: print a And unlike other BASIC languages you will NOT get zero but [NIL]. This just means the variable has not yet been defined. And be aware undefined variables cannot have numbers or string characters added to them. To define the variable is simple. Type out: a=25 Now the previous command: print a 25 Here is something a little tricky. Pico-8 does number comparisons a little different than regular BASIC so you will need something like THIS for a comparison: if a==25 then print"match!" end Notice two things. First off you had to type two "=" instead of one and there is end on the end of that line. Anytime you use IF, FOR, WHILE, or FUNCTION, it must always be followed by END. Okay but this document is not going to cover all the differences of Pico-8 to BASIC nor any more programming commands. I just wanted to get you warmed up. For more information programming in Pico-8, go HERE: https://www.lexaloffle.com/dl/docs/pico-8_manual.html No, we're here to learn the best way to navigate, program, and post your carts from this version of Pico-8 that is online. From here press the [ESC] key once and see that you are in the main editor. Try out this simple code: cls() print("hello world.") To run it you can press [ESC] again to return back to immediate mode and type out RUN or just press CTRL+R and there is your program. So what are the differences between purchased Pico-8 and this edition ? Well for one there is no SPLORE. Splore is a great thing. In purchased Pico-8 you can type S or SPLORE and ENTER and be brought up into a kind of gallery where you can see the highest rated and newest carts and play them direct from Pico-8 without ever having to touch the internet browser. You can download the games, save them to your hard-drive, favorite them and of course bring up your favorite list later on what you'd like to load and play. This online version of Pico-8 does not have that, however, you can still download carts. First off let's see what the carts look like Online so we know the filename to load them back in Pico-8. Try out this cart. Go to this web address in your internet browser. https://www.lexaloffle.com/bbs/?pid=115379 Look to the text just beneath the snapshot of the cart and you will see in small text: Cart #mystar-2 | 2022-08-12 | Code ▼ | Embed ▼ | Forks ▼ | License: CC4-BY-NC-SA What you are interested in is the far left where it say, "mystar." That is the name of the cart itself so returning back to Pico-8 in immediate mode (black screen you remember) type: load #mystar Give it a moment. And it's loaded ! Now press the [ESC] key to see the source-code. It's all there. Now you can either use the MOUSE to navigate or here are a few control keystrokes besides CTRL+R to run your code. These are for when you are in the source-code editor, the dark blue background Arrow keys will navigate your code. CTRL+A ... Will select ALL of your code. CTRL+B ... Will REM or UNREM this single line. CTRL+C ... Will copy the selection to clipboard. CTRL+D ... Will DUPLICATE this line one below. CTRL+E or END .. will move the cursor to the end of the line. CTRL+F ... Will search for a string in the code. CTRL+I or CTRL+L .. Will jump to that line number. CTRL+J ... Will enter and leave Hiragana mode. CTRL+K ... Will enter and leave Katakana mode. CTRL+M ... Will turn sound on or off. CTRL+P ... Will enter and leave PUNY font mode. CTRL+R ... Of course will RUN your code. CTRL+S ... Will save to your virtual online HD your program. CTRL+U ... Will show you HELP for that command when your cursor is on it. CTRL+V ... Will paste from clipboard into Pico-8. CTRL+Y ... Will redo anything you UNDID. CTRL+Z ... Will UNDO the last thing you did. (This does not undo UNDO) CTRL+1 ... Will pick up the current line and move up swapping with code. CTRL+2 ... Will pick up the current line and move down swapping with code. CTRL+6 ... Will capture the current screen and let you save it as a .PNG. CTRL+7 ... Will capture the current screen as the start-up picture for this cart. CTRL+8 ... Will enter recording VIDEO mode. CTRL+9 ... Will stop recording VIDEO and let you save it. CTRL+- ... (minus) Will decrease the current volume. CTRL+= ... (equals) Will increase the current volume. CTRL+LF .. (Left) Will move the cursor to the previous word in this line. CTRL+RT .. (Right) Will move the cursor to the next word in this line. CTRL+UP or CTRL+Home .. Will move the cursor to the top of your code. CTRL+DN or CTRL+End ... Will move the cursor to the bottom of your code. Be aware there are no function keys nor should you use them for Pico-8 when you are running it online as you are now. Press SHIFT key followed by a letter A-Z for special symbols. Otherwise type your code as normal. Be aware that pasting anything uppercase or lowercase into Pico-8 will always appear as uppercase - unless you turn on PUNY font mode first. If Puny font mode is on then pasting anything uppercase into the Pico-8 sourcecode editor will appear lowercase and pasting anything lowercase will appear uppercase. - - - The Sprite Editor. Use your mouse and click the icon to the right of the () above to enter the Sprite Editor. Mouse usage: Use the mouse to navigate the 8x8 field. Press CTRL+G to turn the grid on if that will help you. Click with the left mouse button any of the colors to the right to color in that single pixel for the 8x8 field to the left. Use the mouse roller to change from editing a 1x1 tile to 2x2 to 4x4 to 8x8. You can also use the keys, "<" and ">" requiring shift to press. To change all of one color in a sprite to another (not fill), select the color you want to change by left-clicking on it from the color to the right. Then holding down the CTRL key, click the color to the left on the sprite you wish to replace its pixels with. Here are some useful keystrokes. "-" and "=" or "A" and "Z" or "Q" and "W" ... Will move the sprite selection from left to right wrapping up and down. "_" and "+" ... Essentially shift "-" and "=" or "A" and "Z" (with shift) will move the sprite selection from up to down. Arrow keys ... Scroll this sprite Up, Down, Left, and Right. Image will wrap around boundaries. "F" or "H" ... will FLIP the image along an X-axis. "R" ... will ROTATE the sprite counter-clockwise by 90-degrees. "V" ... will FLIP the image along a Y-axis. CTRL+C ... Copy this sprite to clipboard. CTRL+V ... Paste from the clipboard to this sprite. CTRL+X ... CUT this sprite to clipboard. Shift-Backspace ... erase this sprite. If 2x2, 4x4, or 8x8, will also erase these tiles additionally. For more details on sprite editing, go HERE: https://www.lexaloffle.com/dl/docs/pico-8_manual.html#Sprite_Editor . . . Now using the mouse click on the icon two spaces to the right of the [] that looks like bricks. This is the map editor. I rarely use the map editor so for more details, go HERE: https://www.lexaloffle.com/dl/docs/pico-8_manual.html#Map_Editor . . . Use the mouse click on the icon three spaces to the right of the [] that looks like a right facing triangle ◄. This is the SFX editor. for more details go HERE: https://www.lexaloffle.com/dl/docs/pico-8_manual.html#SFX_Editor . . . Use the mouse click on the icon four spaces to the right of the [] that looks like a musical note ♪. This is the MUSIC editor. For more details go HERE: https://www.lexaloffle.com/dl/docs/pico-8_manual.html#Music_Editor OKAY, we have covered quite a bit ! Let's go over some of the differences now of Pico-8 purchased and this online edition. The "hard-drive" this version uses is virtual and is stored in your browser's data. Meaning if you are running Firefox for instance and then bring up Google Chrome, it will not have the same contents of your files. Therefore you are strongly encouraged to save off your work. If you want to save both a copy to the virtual hard-drive as well as an external file, in immediate mode (black screen), type: save program Where "program" is the name of the program you are saving. It will be saved both to the virtual hard-drive as well as a filebox will appear giving you a chance to save it off to your own files. If you want to only save to your own hard-drive (not virtual), type save . And only the filebox will appear. To load your work back later from the same browser and virtual hard-drive, just type: load program To load from your own personally saved file, type: load followed by nothing else except the [ENTER] key. . . . Publishing your cart. First off, run your cart and while it is running or if you have a bootup screen ready, get it to that position and press CTRL+7 to save off your current screen as the boot image. In immediate mode (black screen you remember), carefully type this out: save @clip That "@" is the AT key, basically shift 2 on most keyboards. Once you have done that your entire cart with sprites, maps, sfx, and music have all been converted and ready to be transferred via the clipboard as your NEW ONLINE CART. Go HERE to post a new cartridge in Lexaloffle: https://www.lexaloffle.com/bbs/edit.php?cat=7&sub=2&new_post=1 If you want to go the fancy route of posting your cart, from here select Add Cartridge and follow the instructions there. If not, right there in the white space press CTRL+V. A massive binary insert will be produced, your cart in fact. Press [ENTER] twice. Then leave instructions or describe what it is your cart is about. Click PREVIEW to see your message and cart exactly as they will appear. If you are satisfied with your work, select PUBLISH instead, and you are done ! And there you have it ! A bit of a survival guide into using Zep's free edition of Pico-8. If you have any questions, feel free to write me either in Lexaloffle in the comments below, Or write me privately on my own website HERE: http://www.writerscafe.org/dw817 You may need to create an account first if you choose this route. Hope This Helps ! |
Controls
⬅️➡️⬆️⬇️ to move
❎ to shoot
🅾️ to doot
Rules
"Shoot" all of the enemies to progress through 10 waves.
"Doot"s, (green ⟡), power up your ship. The more doots you have the faster you progress. BUT doots run out, so if you want to retain the effects find and use more.
Behind The Scenes
Two weeks ago today, I started work on "Shoot Em' Doot Em". It had been for the better part of a year that I didn't even think about game dev. But one restless night I felt compelled to check pico8 twitter. I refused, believing, "If I start again it will end up exactly the same." Finally I gave in and typed '#pico8' into twitter. What I saw instantly inspired me to try out game dev again.
Picoku
Sit back and drop blocks
Controls
- Select block: ⬅️➡️⬆️⬇️
- Move block: ⬅️➡️⬆️⬇️
- Drop block: ❎
Filled-up rows, columns, and 3x3 squares increase the score.
Credits
Inspiration by Tripledot Studios Limited: Woodoku
Image print trick by dw817: thread
Feedback, playtesting, colors by Dani
Rest by my
Behind the scenes
I now work with people who design and code UIs, so I thought this would be a fun project to help me understand them better. Also, I spent a lot of time on gameboy tetris as a kid, and kind of always wanted to do something similar myself.
Hello.
I am working on an interesting project at the moment yet I need SPLIT() to work correctly for digits and ignore character divisions that are not part of a set. Let me explain.
If you have:
a="12345678" b=split(a,"3") c=b[1] cls() ?c |
You get a nice "12" which is correct
If you try:
a="12345678" b=split(a,"") c=b[1] cls() ?c |
You get "1" which is interesting cause it means you can separate a string by individual characters this way.
But what about split() for something that is not there ?
HERE IS THE PROBLEM !
a="12345678" b=split(a,"z") c=b[1] cls() ?c |
You get this crazy # of 24910 !
Where the heck did that come from ? I can understand it doing the string but there is no "9" even in my pattern !
Comments ?
Balancing work and family is hard, especially when you own a corner shop. It feels like you get a new customer every 10 seconds! Plus, my young daughter doesn’t help. I love her, but she needs a lot of help. Then there’s my family back in India… how much can I afford to support them?
There’s always so much to do every day: stocking, serving customers, cleaning up mess, helping my daughter with homework… I try and keep customers happy, but there’s only so much you can do. I just have to try my best.
Made for LD51! https://ldjam.com/events/ludum-dare/51/groceries-please
A hint: you need to be in front of the shelves to stock them.
I've been messing/hobbying around with Pico 8 for about a year now. I love the limitations, and the old school coding feel. I grew up using the TRS-80 and the Apple II computers, and those are the feelings I get when using the software. With that said, it has always been a bit disappointing to me that I can't get a full screen 16:9 aspect ratio that's "pixel perfect" in Pico-8, and 4:3 and 5:4 aspect ratios are in short supply. I even started a little project (unfinished) to try and integrate Pico 8 with another program using the GPIO interface to run something side by side like a HUD of sorts with the unused space, and repurposed an old 1366 x 768 TV to allow me to get the 128x128 screen to pixel perfect full screen with the 768 height at 6x scaling, or width with the TV vertical, and leaving 598 pixels to the side, top, or bottom of the Pico 8 window for my "hud" of sorts. That said, two ideas came to me that might be something I'd like to see implemented, or get feedback on whether one of both them can be "done already" with some trickery that is at this point not obvious to me.