Demo of PUMA industrial robot kinematics.
The user can move the Tool Center Point (TCP) and the robot will follow.
The demo operates in three modes:
- Camera mode (rotate the camera)
- Motion mode (move the TCP)
- Rotation mode (rotate the TCP)
The inverse kinematic (IK) problem is the problem of calculating such joint angles that the robot TCP takes the proper position and orientation.
Years ago I had written a QBasic program for Gina in Taiwan. In it, it imploded the map of Texas along with a greeting. When you ran it, it had the pixels come from all sides of the screen to implode the image I put in there.
Now you can do the same thing in Pico-8 !
Create any picture you want, call initexplosion() then explosion(1,flag) Flag to 1 if you want to skip seeing the explosion and only want to calculate for it. Then you are ready. Now call explosion(-1,0) to see the neat implosion effect of the image you put in there.
I first off wanted to let you know that I was just experimenting recording some .GIFs in PICO when I noted that the last .GIF I made was 6.49mb in size.
I loaded this up in VirtualDUB to check each frame in it, to make sure it looked alright, and then tried saving it back as an EXPORT .GIF to compare filesizes.
The filesize THEN was only 209k ! A 97% reduction !
I compared both. None miss frames, none have any distortion. They are the same EXCEPT that VirtualDUB has some massive compression going on there !
So ... Zep, someone, anyone ? the .GIF saver in current PICO-8 can definitely be optimized. No doubt about it. VirtualDUB was written 19-years ago - so it's not something new.
I can't upload the 6.49mb GIF in comparison here, says the filesize is too big.
Here is the 209k GIF though so you can see it's not missing anything. There's definitely good compression going on there !
I guess the good news is I've introduced a program (VirtualDUB) that will let users now save .GIFs of their cart directly in the BBS that can exceed well into minutes as they are so small in filesize as they are 3% the size of their original - and have the ability to edit out frames they don't want included in the presentation .GIF.
VirtualDUB is 100% Freeware and you can find it HERE:
HOPE THIS HELPS !
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.
number of songs: 9
number of music patterns: 33
number of SFX: 63
non-empty map tiles: 3180
sprite animation frames: 99 (computed at runtime)
bg animation pixels: 60
number of object types: 25
number of in-game objects: 734
code size prior to data interleaving: 19435 bytes
in other words! for PICO-8, it's a big game. sometime I'd like to write a blog post about all the tricks I did to squeeze everything in there, but for now, I'm just happy to finally have it out here. hope y'all enjoy it!
Hi, my name is Chase, but you can call me Cheez...or even Scorch for that matter.
I am a musician who hopes to learn how to develop for the Pico-8. I've been making music since 2014, but didn't really take off until 2016. It's been great.
I also suffer from anxiety and I tend to get nervous and stuff. So, yeah.
I hope to have fun with you all though.
Hi everyone. During the 3rd GameShell Game Jam, I and my friends made a tiny puzzle game named SHIFT, and it is also the theme of the game jam. We spent about four to five days in all making the mechanism, levels, and the music.
The game combined the Sokoban mechanism with "shift", which you can move into the wall area when your shift ability is enabled. Your goal is to move onto the tile which looks like a teleporter or something. The current version features 16 levels. None of us are experienced game dev, so this game may feel a little bit weird, but I hope you could enjoy playing it.
O to toggle the shift ability.
X to undo.
You could restart the level in the pause menu.
The indicator on the left up corner of the screen shows that if the shift ability is enabled, and the number shows your remain shift count.
so this is the basic working version of a space shooter by Indy aged 7; more versions with added bits to come!!
arrow buttons to fly, c button to shoot
when game is over, press enter and select restartcart to try again
I don't think anyone will seriously read this, I'm a nobody and I never blog here.
However, it's a tad frustrating that there seems to be an overabundance of Celeste mods within the normal places to release carts which makes me wonder if maybe Pico8 BBS needs a section just for game mods?
I think it would help fix a little of the clutter. I look at what appears to be a new game then after I get into the thread, I find out it's a mod of a game I already played.
It's just something I was thinking about and there's no place on the forum to speak to this so I figured I'd just mention it into the air for it to disappear forever. :)
After some time, it's finally completed.
Introducing Hollow Night!
I made 9 more levels instead of 10, but I'm sure the difficulty
will make up for it lol. Basically the point of this mod/Skull Land
is to teach you tech and things about the objects in Celeste.
If I have more level ideas that are this hard, I'm going to make
a whole new mod.
Without further a do, hope you enjoy :).
I ported Shenzhen Solitaire to PICO-8. I made this a while ago but have only just now gotten around to posting it. It should handle all cases correctly, but please let me know if you run into any bugs.
I am not musically inclined at all, so if someone would like to help by translating the music to PICO-8 that'd be awesome.
Z: select/move card(s), press dragon buttons
X: swap between free cells and table
Left/Right: move cursor (wraps around screen)
Up/Down: grab multiple cards (if able)
Rules can be found here: https://shenzhen-io.fandom.com/wiki/Shenzhen_Solitaire
Years ago computers had very little memory. I am reminded of the Apple ][ computer which although having 2-HIRES graphic pages each 8192-bytes in size with a resolution of 280x192 B&W pixels, you only had about 16k of RAM space if you used both of them for your program.
The original method was to plot an image on one page while viewing the other, then swap the two so you were always plotting on one while viewing the other. Yet this technique cost two HIRES pages of memory.
So a new method was adopted to handle plotting sprites and graphics over existing static images, and that method was called XOR.
On the Apple for instance you could plot a shape with XOR dots, that is for every pre-existing black dot you plotted on, it would appear white. Likewise if you plotted on a previously existing white dot, the plotting color for your dot would be black.
To erase the shape you would repeat the drawing exactly which would also recover the background beneath it - and this method only required the use of one HIRES page instead of the need for two so you could program in an additional 8192-bytes of code for your program, critical to many video-games that many years ago.
XOR also does some interesting graphic effects. If you XPLOT a line and then plot ANOTHER XOR LINE almost exactly like it but at a slightly different angle you can an interesting kind of warped box effect or flower as you see here.
Now as you cannot XPLOT a LINE in Pico-8, I wrote a routine to do just that for you called PLINE using coordinate arguments the same as LINE()(x1,y1,x2,y2).
So this cart is twofold, not only do you get a lovely mathematical flower but you can use this small coded PLINE() routine for your own works to have one target chase another, perhaps for your opponent to fire a shot at you despite where they are on the screen, or even just to simply draw a line changing color mid-step as you go.
It's up to you !
I am trying to do a simple game of pong for class and am having trouble. I have got the ball and the paddle. Now I am having trouble making the 2 collide. I am trying to get the ball to turn a different color when collided with the paddle.
I am also having trouble coding to get my paddle to stop when it hits the end of the screen so it does not disappear. Any advice would be much appreciated. I have attached my code so far that I have been working on. Thank you
ball_x = 3
x_speed = 1
ball_y = 15
y_speed = 1
ball_round = 3
col = 7
buttpress = false
if btn(0) then speed =-5 end
if btn(1) then speed+=5 end
if not (buttpress) then
speed = speed/1.7
ball_y = ball_y+y_speed
ball_x = ball_x+x_speed
if ball_x > 127
then x_speed = -2
if ball_x < 0
then x_speed = 2
if ball_y > 127
then y_speed = -2
if ball_y < 0
then y_speed = 2
rect( x, y, x+8, y+1, 8)
You are the god of this planet, unfortunately your powers are limited to the control of gravity in this patch of the galaxy. Do everything in your might to keep the planet at temperatures that can sustain organic life. To guide you, the habitable zone of each system is shown in green on the playing field.
Remark: the solar systems are auto-generated from the seed given at the start of the game. I tried to make it so all generated solar systems have a good starting position, but if you encounter a particularly bad system just restart with a different seed.
Also: After hitting start in the menu, the game may take a while to actually start. The calculation of the habitable zone is not very optimized and takes a while, so just be patient, there's nothing wrong with your browser. ;)
up/down - Zoom in/out
left/right - increase/decrease force of gravity
x - turn gravity on/off
up/down - change active menu items
left/right - change value of active item
x - press button
Hey everyone, a few days ago I posted here in the WIP section a basic gravity simulation. At that point I wasn't sure if I'd progress much further on that, but since I'm on holiday at the moment, I actually got the time to sit down and turn it into an actual small game.
The goal is simple: keep the planet at temperatures where organic lifeforms can thrive for as long as possible. If your planet gets too cold or too hot, you fail and the game will tell you how long your planet survived.
To give orientation, the habitable zone of the solar system (where you essentially receive as much power as you're emitting and thus your temperature should stay stable) is calculated dynamically at the beginning of each game and plotted via green points. Keep the planet outside of the habitable zone and your planet will slowly cool down, keep the planet too close to the stars and it will heat up.
There are two main UI elements:
The slider in the bottom indicates the current strength of gravity via the red indicator. Left means low gravitational constant, right means high gravitational constant. It also doubles as an indicator whether gravity is active at all or not (gravity can be toggled via x), if the planet reacts to gravity then there is a blue background, if not then not.
- The "thermometer" in the bottom right indicates the current temperature of the planet. If it goes all the way to the bottom, or all the way to the top, you lose. To the left of the thermometer, there's a second scale that shows your current heat up/ cooldown rate. If the red indicator is at the green position, you're essentially keeping your current temperature, if it goes below, you're cooling down and if it goes above you're heating up.
Additionally, the planet itself also kinda acts as a UI element, as it will change color based on how cold/hot it is.
In case you're curious: the "ideal temperature" in green is within the code calculated as 300 Kelvin (approx 27°C, no idea how many Fahrenheits, sorry), you lose if the planet gets hotter then 375 Kelvin (102°C, so basically the point where the water on the planet would boil away) or colder then 225 Kelvin (-48°C, no real reason why exactly at this temperature, I just wanted it to be symmetrical on both sides).
Credit to MBoffin who inspired me to write this, mostly so I myself could prove that I understood seldom used Pico-8 command set of COROUTINES such as COCREATE(), CORESUME(), and YIELD().
If you just want the source without the sound effects, that can be found HERE:
-- dw817's very simple -- cocreate() program function main() ------------->> cls() init=0 repeat -- if press (x) or this is the -- first time to run, -- prepare for being able to -- call function "act" as a -- co-creation if btnp(5) or init==0 then init=1 -- make a pointer for the -- cocreation function "act" go=cocreate(act) sfx(0) -- low pitch end -- if press (o) then call -- routine here to plot three -- circles, one at a time, and -- one for each press if btnp(4) then coresume(go) end -- update screen flip() until forever end --<<----------------------- -- three circles, click (o) -- three times to see all three function act() circfill(10,10,10,5) sfx(1) -- high pitch -- each time yield is used, -- the position of where the -- program is in the function -- is recorded and the function -- exits yield() -- the second time you press -- (o) the function will start -- here, not at the beginning circfill(20,10,10,6) sfx(1) -- high pitch yield() -- as above, this function -- starts here on a 3rd press circfill(30,10,10,7) sfx(1) -- high pitch yield() -- there is nothing more here -- so pressing (o) a 4th or -- more does nothing. -- you must call cocreate() -- again in order to reset -- this function to start -- running the 3-circles again end main()
HOPE THIS HELPS !
Wandering carelessly through space you get swallowed by b'Ah, the semi-sentient semi-cybernetic semi-grumpy semi-planetoid! Now fight your way to its other end (there's one)!
Still in need of some polish here and there but (hope)fully playable, so here it is!