A simple clicker game about growing flowers. Also my first complete Pico-8 game :)
Controls
Left-click - Almost everything
Right-click - Drop tool / Cancel flower placement
Made in about a week for Minigame a Month - April 2024 and Chill Devs: Chill Jam 8.
Also available on itch.io.
Using window{pauseable=false}
in fullscreen apps does not disable the ability to pause by hitting ENTER.
Steps to reproduce:
1) Boot Picotron.
2) Add this code to main.lua (as per the manual):
window{ pauseable=false } function _draw() cls() print(t()) end |
3) Run it.
4) Try to pause by hitting ENTER.
5) Watch in helpless grief as you continue to fail to pause, despite mashing ENTER over and over and over.
Oh yeah, and another thing I noticed. @zep, the Proggy demo is now kinda broken since you can't type anything in the editor window without it popping up the pause menu every time you hit ENTER. (I noticed when trying to use my Froggy app today and realized that would affect Proggy too.)
https://www.lexaloffle.com/bbs/?pid=47637#p
I can find all the other secrets but not the last newspaper
Can someone at least give me a hint?
Music and sound effects in Pico8.
Introduction
I started working on some projects and all that is left to do is to create the music and sound effects.
I watched some tutorials about getting started with making music in Pico8, took some notes and tried playing around in the music editor. I learned the basics of the editor and can find my way around it, I just get stuck trying to make music. This is the first time I'm making any kind of music so I'm quite new to all of this.
I just started learning about music theory to help me understand more about how to create music and or sound effects.
Beside following tutorials, taking notes, playing around in the music editor with both channels and trying to re-create some simple tunes and or sound effects of games (all 8bit).
I plan to learn about playing from ear in the future, after I feel more comfortable with my ability to write music in Pico8.
My questions
I saw people talk about how you can compare the notes in Pico8 to piano notes:
White notes | Black notes
"Z = C102_" | "S = CH105_"
"X = D102_" | "D = DH105_"
"C = E102_" | "G = FH105_" etc.
Would it help if I were to also learn about the basics of how the piano works or will music theory be enough with enough practice in Pico8?
Are there thing I might have forgotten about that I need to learn or are there things I don't need to learn in order to write music in Pico8?
If you have any advice please tell me.
resources
I have listed some of the rescources here that I have used.
- Gruber
- Nerdy Teacher
- Dylan Bennett
- Lexaloffle forums
Thank you
- OffensiveWare
Very much WIP using some of the graphical style/themes from Mint in a Vampire Survivors style game.
WIP has:
- 2 characters with different modifiers
- 6 weapons and 1 passive item. weapons and passives have level upgrade modifiers
- A wave spawner (but it spawns the same stuff every wave - need more mob types)
- Boss mobs drop a chest that will drop a random upgrade to an item in your inventory
- Standard mobs drop xp, hitting the target xp for the level triggers a shop where you are offered 3 items (with some weighting towards items you already own)
"O" button does everything.
TODO:
- refactor for performance, I think I can improve collision handling
- a proper map, thinking an infinite map like vampire survivors
- scaling of mobs with XP
- more items
- more enemy types
- probably refactor how I am doing classes, it's getting messy.
- bugs, probably lots of them
- everything else
Very early implementation of a weather feature in Picotron.
As Picotron's "fetch" is extremely limited, I deployed a very simple middleware on my own server (https://play.quee.org/?lat=0&long=0) to relay GPS coordinates between Picotron and Open Meteo (https://open-meteo.com).
GPS coordinates are obtained using ipapi (https://ipapi.co).
Kelvin Quee
Raycasting?
Controls:
- arrow keys to move
- mouse to look around it will eventually reach the border, you have to center the mouse again
- x for viewing map
- d for more detailed stats
about
After trying to make raycasting the wrong way, I came up with this method.
I really don't know if thats the correct way of doing it. My idea was to have rays being shot from the player, when they hit a wall the stop and draw a line in the center at the screen + index of the ray, also the further away the ray went, the smaller the line will be. So that make a pretty good illusion of 3d in a 2d space. You can poke around with the values like the field of vision, amount of samples taken (rays shot), the stretch of the screen and many other.
I know there is still so, so much yet to add in Picotron, but there are quite a few features PICO-8 has that would be so nice to also have in Picotron. I imagine a non-zero percentage of these are probably already on some official/unofficial/mental roadmap that @zep keeps for Picotron. Nevertheless, I thought I'd list some here just to get them "on paper" and not floating around in my head. Feel free to contribute your own items to this list.
Keep in mind, I have zero expectation that any of these ever actually get added, let alone added soon. So if you decide to contribute to this list, keep in mind the vibe here is more "ooh, that'd be neat if Picotron did this too" rather than "why doesn't Picotron have this feature?!"
EDIT: Wow! A lot of these got added in the latest version of Picotron! (v0.1.0h) I've updated the list below to indicate what's now been added to Picotron. Thanks, @zep! 🤩
- Having the option to show tab character indicators
- Alt-up and alt-down jumping you one function up or down at a time
This is an audio-visual representation of the harmonic series. The sine waves are in size and
frequency, integer ratios of 1,2,3,4,5,6,7,8, using bends to get as close to the exact tones as
possible. Every time the sine waves hit a peak or valley, they play the associated note in the
harmonic series and they oscillate in the same ratio.
Made by my son and me in about a week during that time I also taught him Lua.
My son is responsible on the level design that will make you suffer. (Suffer because you might reach a level in which the portal will actually kill you instead of teleport you and you will have to find another exit)
I consider the game very challanging.
There are 21 levels in this game. I was able to reach level 3 but my son has reached the end of the game countless times.
Special thanks to @matthughson for "advanced micro platformer" which we used.
Thanks Nerdy teachers for excellent tutorials.
And finally thanks Lazy devs for great tutorials.
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) |
The response to this has been pretty positive, so I'm throwing this demo up here on the forums.
This cart is a prototype for a point and click adventure with pre-rendered 3D graphics and a custom palette.
Included in this cart are elgopher's require module and snowkittykira's error explorer module
I have discovered a pretty frustrating bug related to header.lua, resume and menuitem()
Have a look:
It seems that trying to use a menuitem after editing ANYTHING using IMMEDIATE MODE Crashes pico-8 with the error ATTEMPT TO CALL UPVALUE "_SUPERYIELD" (A NIL VALUE)
.
It says its being called in FLIP()
, so lets look at header.lua...
You can see _SUPERYIELD()
being called if the pause menu is supposed to stay open. no problem here, right? WRONG!
All of these "special" functions, like _SUPERYIELD()
Are "Jettisoned" after they have done their jobs. that means they are all set to nil
, so the user isnt able to ruin the device. We can see this at the end of header.lua. Here we can see all the original functions being reset. They still work only in header.lua though, because theyve been set to local variables for use in the header only.
This game was made for the Minigame A Month April 2024 for theme Farming!
Gameplay:
Use your tools to manipulate the field, then harvest with as many points as you can.
⬅️⬇️⬆️➡️
❎: X
🅾️: C or Y/Z
When harvesting you move along in a straight line if you have the same veggies in that direction and stop before stepping on a different one.
Harvesting a veggie gives 1 point +1 for each previous same vegetable.
Combo and movement stops on a new vegetable in the direction, or upon turning into a new direction!
Tools
- Shovel: Let's you swap two rows or columns with each other.
- Pitchfork: moves row/colum left-right-up-down
- Bomb: Upon stepping on, it harvests all neighbouring tiles (replaces one where you move so it doesn't break cool lines)
- Watering can: Replaces a 3x3 area with a crop randomly selected from that area (weighted by occourance)
Seeds:
After completing a stage (or on pressing Enter) you can view the seed of the current page. Note that number down and share it with a friend. In the Load Field menu you can enter the seed and race on who can achieve more points on the same map, with the same tools!
Development:
You can read the devlogs and watch the full development VODS if you are intersted in things like that!
Devlog Articles
Hello. I was playing around with pods, and I noticed that create_diff isn't defined. here's the code (I'm 99% sure I didn't do something really stupid):
local a = {"a", "b", "c"} local b = {"a", "c", "d"} local pa = pod(a) print(pa) local pb = pod(b) print(pb) local pd = create_diff(pa, pb) print(pd) |
@zep was the function removed? it's in https://www.lexaloffle.com/dl/docs/picotron_pod.html#POD_Diffs, but maybe that's outdated.
EDIT: Never mind, it's called create_delta!