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).
I'm trying to use a breadth-first search on a grid for path finding. My code works for a grid of 7x7, and just barley for 8x8, but it runs out of memory at 9x9. I was just wondering if there was a way I could do things differently to keep the memory usage down.
function grid:findpath(src,dest) function buildpath(node) local path={} local current=node while current do add(path,current,1) current=current.parent end return path end local dirs={ {x=-1,y=0}, {x=1,y=0}, {x=0,y=-1}, {x=0,y=1} } src.parent=nil local queue={} local visited={} for y=1,grid_size do local row={} for x=1,grid_size do add(row,false) end add(visited,row) end add(queue,src) while #queue>0 do local node=deli(queue,1) visited[node.y][node.x]=true if node.x==dest.x and node.y==dest.y then return buildpath(node) end for dir in all(dirs) do local new_node={ parent=node, x=node.x+dir.x, [ [size=16][color=#ffaabb] [ Continue Reading.. ] [/color][/size] ](/bbs/?pid=100526#p) |