People have been asking how I managed to fit a multiplayer game into the space of two tweets (560 chars) for TweetTweetJam5, so I thought I'd write a mini tutorial to explain the process!
We'll cover:
- Stuff you need (such as javascript libraries, and where to get them)
- How pico-8 talks to the outside world (General Purpose Input Output - GPIO - memory)
- How to have a conversation between pico-8, the web browser running a pico-8 cart, and a database server
- How to implement multiplayer that allows users to play against 'replays' or 'ghosts' of previous players (which is rather cool and under-explored territory imo)
We won't cover:
- Server-side coding such as would be required for concurrent multiplayer gaming like, er, Counterstrike or something (do people still play Counterstrike?)
- Setting up a specific online database to hold your replay data - I use FatFractal http://fatfractal.com, but I am sure there are loads of options these days. Anything that can be accessed from client-side Javascript will do just fine.
🐤🌃 Canary
Late #pico8 game in ~513 bytes for Tweet Tweet Jam 5
Fly like a canary through procedural mine shaft without bumping your little head 🦺🔦
Who's the biggest fish?
Controls:
- arrow keys: move
- x: restart
This was my entry to TweetTweetJam 5; check it out on the jam page here if you like. Also, I wrote a short blog post about it here!
And clearly, a tweetcart needs to be tweeted: here it is
On the last evening of #tweettweetjam I was playing around with free body motion, made a prototype... it evolved into a ~1000 character toy... and I managed to squeeze it down to 560 just before the deadline. The math is buggy when paths get too close to centers, but I sort of like the look so I didn't even try to "fix" it...
Arrow keys move the attractor, 🅾️/Z switches control, ❎/X resizes.
The Atari 2600 gave me a lot of silly memories.
Unfortunately, there were no characters to spare for realistic wood paneling texture.
This isn't my most impressive cart ever, but I had fun with it.
Code follows:
f=rectfill cls()f(0,1,0,3,6)pset(1,2,8)f(2,0,3,4)f(2,2,5,3)f(6,1,7,2)memcpy(0,24576,512)poke(24364,3)w=64y=8d=0r=64s=0p={}h=-9m=w::_::cls(12)b=btn()y+=b\8%2-b\4%2pal(6,5+d%2) ?s,1,1,7 f(0,50,w,w,3)y=mid(0,y,32)spr(0,8,y,1,1,1)h-=.5d-=1if(d<0)d,r=r,max(r-1,9)add(p,{x=w,y=rnd(36)}) pal(8,2)for i in all(p)do i.x-=1x,z=i.x,i.y spr(0,x,z-2) if(x<-8)del(p,i) if(x==32)q=pget(12,z)f(x,z,0,z,9) end if(h<-8)h=w+rnd(32)g="⌂" [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=84103#p) |
This is my attempt to convert the 1978 Super Star Trek game to PICO-8. This early example of a turn-based space strategy game has been written in 1974 by Bob Leedom and was published in the 1978 book BASIC COMPUTER GAMES edited by David Ahl. After that, it was ported, converted, and enhanced many times, but I think nobody tried to make a PICO-8 version.
It's a text-only game, commands are entered on the console, so converting it to PICO-8 required several changes, but I tried to keep the original gameplay intact.
I would really love to know what you think about it. Let me know your feedback, suggestions, critics, and so on. Btw, this is my first PICO-8 game, so be patient.
If you already know Super Star Trek, playing my PICO-8 version should be quite straightforward. If you don't, below you can find a quick tutorial.
My First Tweetcart: The Bouncing DVD Logo!
Here's the code if you'd like to see it with 276 characters (256 without name).
--dvd --by calverin x=64y=48d={-1,1}o=7c={}r=rnd e=r(d)f=r(d)v=ovalfill for i=1,15do add(c,i)end::_:: flip()cls()x+=e y+=f a=x+1b=x-1g=y+1h=y-1if(b==0or a==118)e*=-1o=r(c) if(h==24or g==104)f*=-1o=r(c) ?'dvd',b,h,o ?'"',x+10,y+8 v(x-2,y+8,x+10,y+4,o)v(x+2,y+5,x+6,y+7,0)goto _ |
A couple of carts for #tweettweetjam 5 that fit in 560 chars or less.
Cosmic Painter
L/R to rotate
O to accelereate
X to paint
Comets
Just avoid the comets for as long as you can! My best is 49
Crashing into the score kills you.
So, I decided to finally get Puppy Linux for my Raspberry Pi...and tested Pico-8 on it.
Conclusion: the dyn executable works, but not the main one. Not really sure why though since Raspup is based around Raspbian/RaspPiOS packages and stuff.
Still works though. Still works.
Tested with Raspup 8.2.1 btw. Forgot to mention that.
The Pico Mermaid
Use (X) to control the Pico Mermaid as she fetches pearls from the bottom of the sea back to the surface. Avoid the piranhas that will swim faster and faster as the mermaid retrieves more pearls.
This is my entry into Tweet Tweet Jam 5 and so the code fits into 560 characters (two tweets).
Features:
- Single-button controls (X)
- Animated and multi-colour pixel art sprites*
- air and water physics*
- Two particle systems*
- Difficulty ramp*
- Score effect*
- Death effect*
- start animation*
- current score and high score display*
- in-game instructions*
(* kinda)
Here's the code:
P=pset::A::x=64y=0v=-9t=0w=127e=0d=.6s=0for z=0,29do [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=84034#p) |
Disconnecting then reconnecting a controller twice will break the controller support.
On handled devices it mean that PICO-8 will effectively lock the device if you put it it sleep mode twice in the same session.
I reproduced this behavior successfully on the windows, linux and raspberry pi versions.
A harder-than-sub-2™ CELESTE mod.
Custom 1-bit graphics and levels of outraging difficulty.
Check out CELESTE Classic Glossary for "help".
GLHF.
Version 2 : replaced a right facing spike by a left facing spike in -200.