Version 3 is now out! Sprites now have the correct dimensions with relation to camera distance.
Remember the game Zarch for the Acorn Archimedes? Or Virus for the Amiga system? Well, this is a graphical engine for making games that carry that 80s 3D nostalgia feel. Press Z for particles.
It has support for 3D polygons and particles.
Go to: https://github.com/tpnk-dev/zarchy-engine-pico8 for the documentation
Based on catatafish's zedwolf and freds72's Ghost Rally. Thanks for the pico-8 discord for helping me throughout the process.
Token count for the engine: around 3072
Token count for the terrain generator and memory decoder: 444
LIST OF MODDED GAMES
"PICOA RACE" (11-23-21) written by @hijongpark.
Genre: Classic Arcade Remake, Topview Rotating Shooter
The changes are:
- Increase ships to 9
- Change fire button to (O)
- Auto-fire (hold (O))
- Move with up arrow key
- Half-speed of original
You can find that HERE: https://www.lexaloffle.com/bbs/?tid=45449
"MONSTER EYE" (12-02-21) written by @hanswolo
Genre: Turn-based JRPG
The changes are:
- Increased speed of map navigation
You can find that HERE: https://www.lexaloffle.com/bbs/?pid=101256
This is a demake of Midway's only vector scan arcade game 'Omega race'.
Bounce around the arena and destroy all droids.
Since the original game had a spinner to rotate the ship, I added mouse control mode to rotate and aim as fast as spinner.
Due to resolution and cpu limitation the number of droids and mines are limited to 10 and 6.
Anti-aliased vectors by elice and freds72.
My entry for the TweetTweet Jam, a demake of the browser game Agario that fits in two tweets! Use the arrow keys to move the center dot. Touch smaller dots to eat them and become larger, but slower, and don't get eaten yourself. Source code below, just copy/paste into your PICO-8 code editor and the game will run.
p={}l=64x=61y=l::_::b=btn()r=rnd cls(7)a=all if(#p<4)add(p,{x=0,y=0,s=9}) z=(b\2%2-b%2)/p[1].s*3w=(b\8%2-b\4%2)/p[1].s*3if(p[1].x==0)x-=z y-=w for n in a(p)do if(n.s>l)run() if n!=p[1]then if n.s==9then n.s=r(10)+2c=1v=1if(r(2)<1)c=-1 if(t)v=-1 n.x=c*l n.y=v*l end while n.t==nil do for m in a(p)do t=r(2)<1if(t and m!=n)n.t=m end end [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=100660#p) |
Boulder Dash TTJ
My 7th annual #TweetTweetJam entry is: Boulder Dash TTJ 💎
An attempt to demake the classic Boulder Dash in just 560 chars, using NO art assets!
CONTROLS
- ⬆️⬇️⬅️➡️ = Move
FEATURES
- 🎲 RND Cave Levels
- 🔊 SFX
- 🍎 Dodgy Collision & Physics*
- 💎 Diamond Score
- ♻️ Auto-Restart on Death (and Win)
*(Alas, I could only fit in basic collision & gravity - so no object "spill over", no boulders pushing and no explosions - sorry! 😕)
GAME ORIG SOURCE CODE (560 chars)
s=mset g=mget x=2y=3t=0z=0k=0cls()?"웃◆●◆●\#5::",17,2 ?"\#4░\vh░",8,2,0 ?"🐱",17,0,5 memcpy(0,6^13,▤)::_::cls()s(x,y,0)a=x b=y p=btnp()a+=p\2%2-p%2b+=p\8%2-p\4%2c=g(a,b) if(c<4)x,y=a,b if(c==3)z+=1?"\aszx5e1" if(z>8)s(15,9) s(x,y,2)for i=0,239do v=16-i\16h=i%16if t<1then c=rnd{0,1,1,1,1,1,1,1,3,4} if(h<1or h>14or v<3or v>15)c=7 s(h,v-1,c)elseif t%3==0then c=g(h,v)d=g(h,v+1) if(c>2and c<5and d<1)s(h,v+1,c+2)s(h,v) if c>4and c<7then if d<1then s(h,v+1,c)s(h,v)elseif d==2then run()else s(h,v,c-2)end end end end map()?"\^w9◆"..z flip() if(x>14)run() t+=1goto _ |
I'm releasing my first Pico-8 game, Picotage!
Picotage! is heavily inspired by the Apple II game "Sabotage" which I played on a school computer in the early 1980s.
This is a very simple action game where the goal is simply to survive as long as you can. Shoot the helis before they drop soldiers, or shoot the soldier's chutes after they drop, or shoot the soldiers. But don't let the soldiers land and shoot at your base!
Use the arrow keys to change the angle of your gun. Left, Right, Up, and Down can be used.
Fire with the "Z" key. You can hold it down or fire in bursts.
You earn a Powerup every 5 levels. Use the "X" key to activate them. Powerups heal your base and give you much greater firepower for a short period.
About the soliders:
-Green soldiers are easy to kill.
-Red soldiers have shields and are hard to kill. If you let them land they will protect the troops behind them with their shields. Red soldiers don't fire as fast as green soldiers.
-Gray soldiers are just like green soldiers except they land very close to your base, making it very hard to shoot them.
Some minor nuances if you are trying to maximize your score:
-if you point straight up, most easily done by holding the "up" arrow, the bullets will eventually come down and hit your base, causing them to bounce and scatter. This can kill soldiers that land near your base, even when they are otherwise impossible to hit. This can save you a powerup once in awhile.
-if you tap the down arrow the cannon will nudge down a bit, which is useful for making small adjustments to hit soldiers on the ground.
-if you hold down the down arrow key the gun will move down unless it is pointing straight up, in which case the down arrow key won't do anything. The angle of the gun will change a bit faster if you hold down arrow as well as the left or right arrow keys. This can help you out in later levels.
Anything past level 30 is very good! Have fun!
I ran a game design class for Cub Scouts using PICO-8 a couple years ago for my oldest son's den and running another one for my youngest son in a month. For the first class I ran I registered as an educator and requested educational take home licenses. I reached out in various other ways as well. Not sure if it was a busy time for Zep but I never got a response. My educator registration is still showing "Application in Progress" after two years.
Does anyone know if educational licenses are still a thing? Is there another process I should go through?
So I'm new to Pico-8, and I've been studying tutorials on how to get things working. I've been trying to start develop a game state system based off of a tutorial. I've got a very minimal main menu setup with a sprite for a cursor, but for some reason my system that I attempted to replicate for the sake of testing from the tutorial identically just does not run a function, and my screen is just blank. Why wouldn't it be working? Any help would be really appreciated from a new and enthusiastic Pico-8 learner. The code is below:
function _init() cls() scene="menu" cursr_x=64 player={ x=0, y=0, } end function update() if scene=="menu" then update_menu() elseif scene=="game"then update_game() end end function draw() if scene=="menu"then draw_menu() elseif scene=="game"then draw_game() end end function draw_menu() cls() spr(12,20,20) spr(18,cursr_x,64) end function update_menu() --move cursor left if btn(⬅️) and cursr==64 then cursr_x=32 elseif btn(⬅️) and cursr==32 then cursr_x=96 elseif btn(⬅️) and cursr==96 then cursr_x=64 end --move cursor right if btn(➡️) and cursr==64 then cursr_x=96 elseif btn(➡️) and cursr==32 then cursr_x=64 elseif btn(➡️) and cursr==96 then cursr_x=32 end end |
it's the game snake, but 3D, in 552 bytes! this lil thing was made for TweetTweetJam 7.
moving: steer with left/right - steering is also how you move forward, because you are a snake
growing: eating olives is how you grow longer, because you are a snake
losing: touching your tail with your face is how you start over, because you are a snake in a video game
if you grow your tail so long that your framerate suddenly reduces to garbage: you win!
the code is nonsense, since it's a tweetjam, but here it is!
p={0,0,0,0}b=0a=0g=0h=0::_::cls(15)w=btn()w=w%2-w\2%2m=w*w*2a+=w*.015p[3]+=m*cos(a)p[4]+=m*sin(a)q=p [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=100576#p) |
Usage (requires keyboard): Type text including control codes (\n, \f, \^, #, and more) live in your terminal and see the result displayed on screen...
You could also just edit a print() statement in a dummy cart and reload... but there's something about being able to edit color/spacing/etc 'live', especially for codes like + and \^v that can take a lot of trial-and-error tweaking.
In the comments below I have a larger utility cart version of this that includes help, save/load/export, and so on. But this first post is trying to pack a subset of that into 560 characters for TweetTweetJam.
p.s. The tweetcart it doesn't quite support all the P8SCII codes (no \a, |, -, and likely more), but the full cart in the comments supports most of them (still not \a).