Log In  
Follow
sol

Cart #mushmkr-0 | 2021-04-24 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
14

introducing mushroom maker, the most convenient way to create and share your own custom mushroom! this is more of a toy than a game, but I hope you all enjoy it and have fun creating your own personalized mushrooms.

here's a few examples to show what is possible and hopefully spark your imagination:

posting the mushrooms you've made in this thread or elsewhere is more than encouraged, and ditto for any questions or feedback. likewise, I'm on twitter as sol_foxie if you wanna follow or contact me there! thanks for reading, and happy mushroom making!

14
4 comments



I was recently informed of a new bug in my old game, sybil's tail. after doing some research into it, I discovered the cause. I had a global variable set up that could be set at any time to cause the screen to "flash" once, on the next frame. presumably to conserve tokens, I wrote it like this:

flash=flash and rectfill(0,24,128,104,7)

this line calls rectfill if flash is true, and assigns the result of rectfill to flash. as long as rectfill returns a falsy value, we're good.

now. I understand this line will send me to coding hell. but it seems, as of 0.2.2c, rectfill and rect return 0, which is not a falsy value. if this is an intentional feature, I will own up to my sins, patch the game, and move on-- I'm not going to demand the API honor such a silly corner case. but given that circ and circfill still return nil, I suspect it is in fact a bug

if I could get a confirmation whether rectfill returning 0 is intended behavior, that'd be much appreciated. I may still patch the game, but if the problem isn't going to go away, I'd probably opt to do it sooner rather than later

5
1 comment



no, I'm not referring to giving the do in for loops and while loops a free pass. rather, I'm referring to the rarely-used naked do block. the primary function of the do block by itself is to arbitrarily introduce a new scope. for example, a code snippet I just wrote:

do
 local yclp=127-17*pizzapower
 clip(104,yclp,127,127)
end

this makes it clear to the reader that I do not intend to use yclp at any other point in the program. In this case, it becomes fairly obvious that I lifted an inline expression to its own line for clarity's sake. however, the do construct here eats up a token, making using it disadvantageous. considering that the do block's only real use has to do with usage of local variables, and the local keyword already has its cost annulled to encourage its use, I think it would make sense if there was a similar exception for the by-itself do block. what do all of you think?

3
7 comments



Cart #shifttrap-0 | 2020-03-18 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
105

After a freak laboratory accident, ninja-in-training Nina finds herself trapped in an alternate dimension where the walls shift each time she jumps. Now she must collect the scattered gears to fix this shattered world and escape! But with 32 challenging stages to outwit, that will be no easy task...

hey all!! sol here. it's been a while since my last game, but I haven't been resting on my laurels. this time around, I've made a puzzle-platformer with a focus on fast gameplay and a novel mechanic-- each time you press the jump button, the walls will shift between the foreground and background! you can also cling to walls and jump off of them to reach greater heights. I've built a lot of really tricky puzzles around this, so I hope y'all enjoy!

[ Continue Reading.. ]

105
33 comments



as a lot of us are brutally aware of, pico-8's limitations are very fun, but can also have a serious impact on code readability. one particularly nasty problem is that when saving tokens, descriptive names for constant values are one of the first things to go out the window. Up till now, this was an unavoidable problem. However, with the recent introduction of the INCLUDE directive, pico-8 now has a preprocessor and a model for how preprocessor directives should work. I'd like to propose a DEFINE directive for supporting simple text substitution.

for example, let's say we are doing a simple branch based on a cel value:

 local c=mget(x,y)
 if c==4 then
  ...
 elseif c==5 then
  ...
 end

it's impossible to even guess what this code does. but it's hard to argue that adding "local health_pickup=4" is worth the tokens.

instead, if we had a DEFINE directive, we could change the above to:

 #DEFINE health_pickup 4
 #DEFINE coin_pickup 5

[ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=73423#p)
5
34 comments



Cart #sybils_tail-3 | 2021-03-26 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA
122

Sybil's Tail is a tiny, 15-30 minute long platformer made for PICO-8. Run, jump, slide, grab, and toss your way through 6 bite-sized areas as you search for a mysterious meteorite that fell nearby!

hi there!! after 4 months of working on it, I've finally finished my first PICO-8 game, Sybil's Tail! this project was a lot of fun to work on, and getting everything to fit into the 32k of cart space required a lot of tricks to make things work right. a large reason it took so long was all the rewriting and compressing it took to get in all in there. but! the result is exactly the game I set out to make! I hope y'all enjoy exploring this little 8-bit world I've made.

it's also on itch here, which includes native exports, and the soundtrack. speaking of, I would like to extend special thanks to @kitorchid, who made the incredible cover art for the soundtrack, and @osmoru, whose adorable artwork formed the basis of the cartridge label design. In addition to those commissions, I also received wonderful artwork of Sybil from @MarziManed and @_pexl, who are both very cool artists that you should check out as well! And of course, I would like to thank all testers and of course my friends, without them none of this would have been possible.

[ Continue Reading.. ]

122
47 comments