A 2-player pong variant with lasers
Left and right change laser color
-Red speeds the ball up
-Orange slows the ball down
-Yellow changes the ball's y-direction
-Green changes the ball's x-direction
Catching a laser with your paddle will increase your ammo by 1
If player 1 wants to use a keyboard and player 2 wants to use a controller, then you must launch PICO-8 with the following command
<PICO-8 path> -joystick 1 |
This is my first PICO-8 project.
I just wanted to get familiar with LUA, and to create a platformer framework that just felt good to run, jump and fall about.
I'm quite happy with the core code, but I feel like things maybe got a little scrappy around the collision detection and movement functions. I can't really be bother to refactor right now, but I feel like it may be possible to clean it up a little at some point. It gives me something to improve on in any case.
All feedback welcome. :)

Changes:
- Physics enhancement. Side to side is more slippery.
- Floating points. Wow. Yikes. I don't want to talk about it.
It's a balloon trip remake!
Tentative release, there's a lot more to be done, but it's stable.
Controls:
Left/Right to strafe
Up/Square to "jump"
Mash up/square to gain velocity
Avoid the mines and last as long as you can
old:
[hidden]



This is something that has been impossible for me to do - until now.
I always wanted to try and make what years ago I labeled as a "Scatter Maze."
That is, a screen full of random lines but done in such a way that all points could be reached around them.
Back on the Apple ][, I used horizontal and vertical lines intersecting each other, but at the time (I was 12) my brain couldn't fathom how to make certain it was possible to draw these lines and guarantee a path around them.
So - the monsters would hit the wall and start chewing. :) So - once you fought the monster, you could use the hole he munched through the wall to get you to get to the other parts of the dungeon. Not the best solution, but it worked.
Later I realized it could be done but I would need a VERY fast fill routine to even come close to exploring this idea.
And - here it is. No, it's not very fast but it's fast enough. Guaranteed to always leave a path to all points despite the random placement of walls. I set it so all vectors appear on a tight grid. If you want the freedom of all points and any size walls, just change the program to reflect this.
Interesting to watch, might even be useful for someone building a rather chaotic dungeon or something.
And with that, bedtime. Hope you like it !


When I started working in PICO, I was aware of a command called FILLP() and thought surely that was the method for painting on a screen to fill in polygonal shapes or other areas.
Now I am understanding, no, there -IS- no fill routine or PAINT as it might be called in BASIC for PICO.
FILLP() just creates a fill pattern for the standard draw routines.

Hands down, was there some competition or other where the fastest paint routine with the smallest code ever - was there one for PICO ?
And if so who did it and what was their code and method of achievement ? Or do you know of one yourself ?



Back when my Father was alive, we always dutifully went to church at All Saints every Sunday.
Something I had always been interested about churches is the incredible stained-glass windows they had to let pretty light come in from outside sunlight.
Only when visiting Mexico and entering the churches in that country did I manage to see something that truly caught my eye.
Some of the pieces in those churches were not depicting any scene from biblical history, no, they were just circular cut glass with scattered points of light in them. And scattered very lovely I might add. Almost as if someone had painted a simple night sky that was suddenly illuminated with mirrors and bright beautiful colors.
Getting back home I realized it should be possible to create a similar effect in QBasic, of stained-glass windows. There weren't any people in them, animals, or other items. They were just - scattered light, with just enough darkness to make you appreciate the pinpoints of beauty.
Now clearly this effect looks a whole lot better with tiny colorful dots on a resolution of 640x480, however, 128x128 will have to suffice for now.
Hold (X) to rapidly fill the screen with new points.
As with my earlier entries, likely the source code for this particular "Screen Teaser" could be optimized as well.
Fudge the numbers if you like and see if you can find a pleasing pattern that looks good all around. Share your findings if you want.
Back in the days of the demo scenes, circa 1980 and 1990, rotating palettes was the way to go to make a graphic impression.
It was used for everything from showing twinkling stars in space games, waterfalls in adventure games and platformers, and the occasional hot fire or lava. It was also used to create some incredible fading effects.
I remember writing the introduction code for S1 in QBasic. I used 16-colors to fade a B&W picture from one to another using both OR and XOR to have one true picture fade on top of another as ALPHA did not yet exist - though it was emulated with clever palette arrangements.
I saw this effect originally in a Commodore Amiga game called, "The Killing Game Show."
Play LOUD and FULL SCREEN for best effect. :)
https://youtu.be/mLZoYUgilkI?t=87
Watching them fade one screen to another flawlessly got my mind working and thinking about how they did that.
Now in this next video, watch carefully how they fade one text on top of another. Remember, there was no ALPHA or alpha transparency at this time of computer development. It was all done through clever manipulation of OR and XOR images in a 16-color palette overlaying on top of one another and changing only the brightness levels mathematically and logically.
https://youtu.be/mLZoYUgilkI?t=438
It was the first time I had ever seen anything like this and I worked tirelessly for hours experimenting in QBasic with palette manipulation until I was able to reproduce it myself. What a feeling when I finally was able to reproduce the same incredible effect ! Good times.
Limited to 16-colors in PICO, however, this particular Kaleidoscope is not nearly as pretty as the one I wrote so many years ago. You still get the color chase though.
The one I wrote in Flash is where I had the vectors "chase" down a new color from the 64-million color palette. Pretty indeed.
You can see an Online and crude FLASH version I wrote of this HERE to compare the two:
https://www.newgrounds.com/portal/view/145350/review_page/8
So why am I not programming in flash today ?
Because it was an absolutely royal pain in the ... assuredly, trust me, it was very difficult to write code in. And sadly, I am understanding that FLASH is now all but vanished today. It is a forgotten medium, though I still have my thousands of downloaded Flash games, videos, and experiments.
PICO though is much easier to program and I am definitely enjoying the very high speed it has when it comes to both number crunching and generating interesting effects by updating thousands of pixels per second.
Likely, you are too.
Please enjoy, Kaleidoscope. And yes, I have no doubt the code could be thoroughly optimized today.
Back in the day when the Macintosh computer was all the rage, I seethed with envy when comparing it to the lowly DOS and IBM-pc QBasic 1.0 programming language I had at the time.
But there was one effect the Macintosh could do that always got me twitching, and that was the very interesting and unique way you could click on an icon and it would show "afterburner" rectangular trails of it changing from the size of an icon to the window it presented.
Now I'm fairly good with math but I'm not always good about how to get a particular result in a small amount of calculations - as can definitely be seen here.
Yet as I'm going through my archives, I'm poking through and looking at all kinds of old code I wrote. I'm especially looking for, "Professor Twist's Tome." a text adventure I wrote back when I was in High School.
If I can find it, I will definitely present it here in PICO.
Until then, enjoy MacZoom, and yes - please - by all means - optimize the FLIP out of it ! :D
Generates a random star system on load. Sometimes it generates one without a nebula at all so you may need to Cmd/Ctrl+R to reset if that happens.
My first Pico 8 cart on the BBS. This is a cart that generates a procgen starfield with nebulae, that you can scroll through (256x256 pixel size).
The big technical achievement is the nebula. I used fractal noise with smoothing to generate the data, where every point is a 2x2 pixel area. After that I stored every row of colors as runs containing the byte length for that color and the color data. When drawing the screen I go through the runs of color, using memset to fill in the pixels which makes the dithering pretty easy, doing two rows of pixels on screen at the same time by flipping the pattern for odd numbered rows.
The really tricky part was the scrolling, particularly in the X direction, because the patterns break if the camera X coordinate is odd and not even. To fix that I draw it as if it were 1 pixel to the left with the pattern flipped, then take the last 2x2 pixel area for a run, and copy the next run's right side pattern into the right side of the 2x2 area. That fixes the one pixel offset without too much of a performance penalty. I didn't fix artifacts along the edges of the screen and instead just lazy draw a black rectangle over it.
I also used a monochrome hue ramp for this because it lets me do some other cool effects, like the blinking stars. The little one pixel stars also dim when they go behind the nebula, and dim more when behind the purple sections.
Finally I wanted to add random noise like described in the linked article, but with scrolling I couldn't really forego cls(). What I wound up doing was trying to add a few random points every frame to a table, and only keeping the last 200, removing the oldest at the start of the table first, as well as removing any that are offscreen.





We've all been there. Trying out some boffo new game and just being so green and jealous of the awesome music in it.
Well if you didn't know I'm actually pretty good at music and writing custom database software. How will this help you ? If you or someone can point me or direct me to a utility that can take MIDI and break it out to a text file, I will definitely see myself to making everyone a utility that can take this raw MIDI .TXT file and convert it straight to binary import MUSIC for Pico-8.
They both share similar methods of playback. MIDI uses onboard instruments to play their notes and PICO uses the same, but with a rather conservative list of instruments - a conversion could be and can be made.
And no, I'm no slouch at this sort of thing. Years ago there was a company called "American Church Lists."
My job there was to write a database that would keep track of all the churches in the world. The data they had stored originally was a real hectic mess. I was to write a program to organize that data and put it in a neat format where it could be easily output on the printer and used for mailing out religion-based advertisements.
So ... help me find (I know it's out there) that nice utility to convert any .MID to a .TXT file and I'll write a program to convert that for direct PICO playing. I know I can do this, I've seen the SOUND and MUSIC format of PICO. It's not so bad if you look just at the straight hexadecimal data.
And something we do NOT have lacking in the world is MIDI music. Myself alone I know I have pretty close to 11,000 if you add up all the ones from my MIDI directories that are ripped from video games, cartoon/anime themes, show tunes, movie tunes, the legendary music of Final Fantasy, everything from Squaresoft, every possible gaming platform, and other original tunes, I think you can see we will never run out of good music - ever.
And I'd like to help in that ...


NEW BUILD:
an #AGBIC jam entry based on a cart of the same title.
still unfinished, this description is a placeholder as well.
missing Dr. Mario/Yoshi's Cookie-like cutscenes, title screen & music, but still very playable.
features finished:
- options screen
- some music
- complete 1P/2P gameplay
features missing:
- cutscenes
- title screen
(CC) 2018 Adrian Makes Games.

A demo by Jumalauta. Participated in the demo compo at the JML 18 years anniversary demoparty, won first place.
Might not work properly with Chrome, there may be some sync errors and glitches. Should work consistently with Edge. Cart works just fine in the PICO-8 application itself, of course.
UPDATE: Now fixed for 0.1.12! Which means it won't run correctly in older versions anymore, since it depends on time() for sync.










Uncompressed Source Code: https://paste.ee/p/5KOG5 (warning: it's pretty gross)




Late last year (2017) I started work on a port of Super Mario Bros [NES] to Pico-8. The goal was to be authentic as possible to the original game, while working within the Pico-8 limitations. Something like Super Mario Bros Deluxe [GBC] (https://www.mariowiki.com/Super_Mario_Bros._Deluxe).
In the end I was able to get 1-1 and 1-2 mostly complete before starting to hit serious memory limits which make it seem near impossible to ship the full game.










A remake of the classic computer puzzle game LaserTank for PICO-8, for the Demake jam.
Includes a hand-picked collection of 50 levels from the original game. I think I'll have to make a multicart version to include more levels.
I haven't implemented all the physcis quirks (bugs) of the original game, but I don't think any of the included levels rely on them to be solved. At least I hope not.



