

Rogue Abyss
Explore an endless labyrinth of ever increasing difficulty. Stay alive, amass treasure, and power up while avoiding monsters and traps around every corner.
Controls
Default control scheme:
Up - Walk forward
Down - Walk backwards
Left - Walk left
Right - Walk right
X - Turn left
O - Turn right
Optional mouse turning on desktop
Alternate control scheme: (Selectable in the pause menu)
Up - Walk forward
Down - Walk backwards
Left - Turn left
Right - Turn right
X - Walk left
O - Walk right
Credits
Developed by Kevin Hammer
3D engine: Mot's Wolf3D Engine https://www.lexaloffle.com/bbs/?tid=41315
.jpg)




I am struggling to wrap my head around creating a function to search though a table for matching positions and then replacing the matching value with a new value.
The idea is for a simple racing game. Every time an obstacle/car leaves the screen it is deleted from the table and new obstacle/car is generated with a new position.
The new position is randomly picked from a list of pre-chosen positions. But this means that there are occasions where the obstacles/cars overlap because they have randomly picked the same positions as an existing obstacle/car already in the table of obstacles.
My rough concept of the idea runs like this...
- Create obstacle table
- Create new obstacle
- Check if obstacle table is empty - add new obstacle
- If not empty
-- Loop through table of obstacles and compare x/y pos values
-- If a match is found(overlap) then change the x/y pos of the new
obstacle BEFORE adding it to the table
-- Maybe loop again to perform another check???



This is a little tool I created to assign students to discussion groups. The avatars for the students are generated programmatically. It has a few limitations:
- There are only 4 possible groups
- The roster is limited to 24 students or fewer (the names of more wouldn't really fit on the screen)
- Names should be 5 characters or less to avoid overlapping.
To adapt it for your own use there are a couple of changes you would have to make in tab 6 (roster):
- Change the variable 'class_name' to your class name
- Change the variable 'year' to the current name
- Edit names in the table 'roster' with your students' names
Note: global leaderboard not yet available
Take the cursed dagger, use its power to dispatch the horrors from this hellish place, score the best time!
Note: this is not an official Devils Daggers port for PICO8 but a fan game using Sorath's game universe.

How to play
- Default controls: ESDF + mouse
- Fire: left mouse button
- Jump: space
Local stats icons:
number of jewels collected
number of daggers fired
hit ratio
obituary message










Hello world,
I'm brand new to coding and Pico 8. I have created a sprite and figured out how to get it to move, and even flip when he changes directions. I have a second sprite that makes it look like he is taking a step.
My main problem is I can't figure out how to get it to swap between these 2 frames when you move him around. Whenever you press up, down, left or right, I want him to take a step (switch between the 2 frames).
Can anyone point me toward a resource to help me figure it out?
Thanks in advance


.jpg)


Description
I spent a few weeks following the Lazy Dev's tutorial and made this game. "Red" is a shoot 'em up game with a Rogue-like vibe, drawing inspiration from titles such as "Vampire Survivors", "Judgement Silversword", and "Elemental Master." I'm considering expanding the content to develop a more formal game, but I'm not pretty sure about the mechanics. Please tell me what you think. Thank you!
Controls
(O)(X) - Switch Directions / Confirm
Upgrades
Bullet - Basic weapon
Sword - Melee weapon, that can slash enemies' bullet
Rocket - Fire two missiles
Stars - Middle-range weapon
Shield - Protect bullets and enemies





I realized that stat()
is basically a peek()
analogue for system status registers.
To my knowledge, there is currently no functionality attached to the second arg onwards.
Would it be a good idea to let stat(index, n)
return an n-tuple just like peek(addr, n)
does?
It'd allow simplifications like this:
_update60() -- mouse stats _mx,_my,_mb=stat(32,3) -- or keep a fifo list of the last second's worth of mouse stats: deli(_m,#m) ins(_m,1,{stat(32,3)}) print(_m[16][3]) -- print the buttons 0.25 seconds ago -- or take a snapshot of all stat() values at the start of _update() -- (probably silly but you can imagine subsets being useful) _statshot={stat(1,255)} end _init() -- fifo used above _m={} for i=1,60 do _m[i]=0 end end |
Seems like a simple little QoL thing, I hope?




Working on a unicorn game for my daughter. I'm very new to programming. Pico-8 finally put it all together for me in a way that I can understand.
To-do:
- Screen refresh
- Make rainbow trailing instead of permanent
- Make rainbow solid
- Enemies
- Encircling enemies turns them into friendlies
- Two player
My brain is pretty burnt out from getting this far, but I'm pleased with the results.

This software product was made for https://itch.io/jam/picostevemo and is based on the 2001 science fiction horror novel Dreamcatcher by American writer Stephen King.





For the past several months I've been working on a full port of the original Super Mario Bros. for Pico-8. Just today, I was working on implementing level checkpoints, and a few hours after stopping work on the prototype and putting my laptop to sleep, I came back to it. As happens sometimes, Windows went through a lengthy update process, and after it ended I attempted to bring up the file, and this did not work. On investigation, I found that the file now took 102KB, and was unloadable. I then attempted to load it using Notepad++, but all I saw was a tremendously long single line of blank spaces that read "nul" when I highlighted them.
If anyone knows of any methods for recovering .p8 files that have become corrupted, I would greatly appreciate any advice. I have been saving the prototype using the same file name for a long time, and the most recent alternate version I have is from 3 months ago, and it would require a great deal of time and work to rebuild.


SHOCK-A-DOODLE

MEET DANNY DOODLE
He was always ambitious and diligent, always eager to satisfy his superiors, never sloppy and never not willing to run the extra mile to fulfill every new task with the highest level of precise focus and unwavering dedication. Danny Doodle had put all of his eggs in one basket. He believed in the system, believed in SusCorp Inc. and knew that his big break had to be imminent. He believed in it for 25 years.
Today he has decided to wake up. He won't lose any more feathers over a stupid company that doesn't appreciate him and probably sees him as nothing more than just another cock in their machine. It's time to run. It's time to exit through the Shock Factory and hopefully not get fried on the way out. It's time to get back to the henhouse and show the whole world what this rooster is capable of.





Credits:
Game: Me
Music: Gruber Music ('space' of pico-8 tunes volume 1)
Extra info: Itch.io Page

Hi friends, looks like exciting changes are coming soon. I guess this might be the last song I make before 0.2.6 is out so this is my send-off to Pico-8 audio as we knew it. See u on the other side! 🙂





Entry for 20 Second Game Jam 2023.
The zombie horde approaches! Use your archery skills and overpowered fire arrows to defend your town. Keep your distance from the marauding undead and avoid damaging the buildings. Oh, and try not to set yourself on fire!
Edit: Unlock unlimited mode when you score 350 in 20 seconds!
Keyboard controls
arrow keys player movement
x hold and release to fire arrow
z start/continue


Hi friends,
Here's the OST for @freds72's upcoming release, Demi Daggers. Trying to recreate the complex sound design of Devil Daggers and its OST in Pico-8 was a massive challenge. I hope I did it justice, and I hope you enjoy it!
"II"
Originally composed by Sorath
"III"


Hi!
New user here, still trying to find my feet. I have a starter project where I'm trying to draw a Crokinole table, which is a circular board with a circle of pins halfway from the centre to the outer edge.
I have a function that I'm calling from _Init() to set up the pins at the start of the game:
function init_pins(a) --Pins are in a circle, so we init the pins with a number to say how many there are --then figure out based on how many what the angle is between them if they're spaced --equally angle_between_pins=1/a --Now, for each pin, we call the add pin functionality for i=1,a do add(pin,{ --We want the angle from 12 o'clock to this pin specifically pin_angle=angle_between_pins*i, print(pin_angle,16*i,8,3), x=sin(pin_angle)*boardradius/2, y=cos(pin_angle)*boardradius/2, draw=function(self) circfill(self.x,self.y,8,6) end, }) end end |
I am confused as hell, because while trying to debug this, that print(pin_angle) just returns a load of null values. But if I replace print(pin_angle) with print(angle_between_pins*i) (the exact thing I just just pin_angle to) then I get the values I'm expecting. Something about putting those angles into a variable within the table entry is setting it to null.

