This is a very basic implementation of a genetic algorithm, partly inspired by this Code Bullet video, with a few additions to improve the evolution speed and reliability. It's nothing fancy, but I found it fun to experiment with, so I thought I'd share it.
Each "ant" has a DNA consisting of a list of directions to move each frame, which starts off completely random, but though the process of mutations and "natural selection" evolves into a path to reach the goal.
To improve the evolution speed and reliability, the ants are evolved gradually by giving each generation slightly longer to reach the goal. In addition, the mutations to the DNA are biased towards the end of the path, so more ants have a chance to explore the end of the path before they die.
Hey pico 8 community. I recently started making some demos and carts for myself and my friends. Although I have been struggling with collisions. Most tutorials use fget and mget. I want to use them, although I don't understand the parameters that are used.
I am not looking for a one size fits all code. I am just looking for a explanation for how they work, and what the parameters are used for and how they work in functions.
Thank you :D
-BEiNg139
Hi @zep!
pico8 0.2.6b / linux:
cls() if (false)?1 --hi print(2) print(3) |
expected output: 2 3
actual output: 3
Here's an altered version that works as expected:
cls() if (false)?1 print(2) print(3) |
(this prints 2 3
, as expected)
3 things seem required to trigger this bug:
- shorthand if
- shorthand print on the same line
- !! further text after the shorthand print (" --hi", in this example. but just a single trailing space triggers the bug too)
When these are all true, the next line seems to get scooped up into the shorthand line. This can include attaching an else
to the wrong if
, like in this more complicated example:
cls() if false then if (false)?1 --hi else print(2) print(3) end print(4) |
expected output: 2 3 4
actual output: 4
Title says it all.
I'm making a horizontal scrolling game with a map 32 screen wide and 1 screen tall, and with the player using extra colors different from the enemy colors. (enemies can't be over or under the player).
For this, I'm using screen rotation, but now I can't use print to display text any more as it appears rotated.
Has anyone already implemented a 90° rotated print function ?
Hi, I encountered a waveform corruption bug while trying to move SFX as part of a multi-composer collaboration project.
On version 0.2.6B
Reproduction steps:
1) Make a custom waveform in SFX 0
2) Make in SFX 1 make a sequence using SFX 0
3) Make in SFX 2 make a sequence using SFX 0
4) Move (cut and paste) SFX 0 to SFX 4
5) Move (cut and paste) SFX 1 to SFX 5
6) Move (cut and paste) SFX 2 to SFX 6
7) Check SFX 4, the data will be corrupted
It seems that this can happen with other combinations but this is the procedure that caused the bug to happen and is reproducible on a fresh cart.
The corruption seem to be an inversion of the sign of alternating sample of some sections of the wave
Xhive is a single stage retro Shoot 'em up. You control a spaceship across a procedurally generated scrolling level and try to destroy various enemies to get the highest score.
Mission
The origin of the hostile aliens has been found. Your job is to fly into the xeno hive with one of the best combat spaceship and kill everything.
Instructions
- If you shoot, you move slower.
- Colliding with the hive, aliens or their projectiles will damage your ship.
- After you leave the hive, an NG+ starts.
- Every run, the hive is procedurally generated.
Controls
- Move: Arrow Keys
Controls:
X to shoot
Z to use your strawberry bombs
Arrow keys to move
The only power-ups are the strawberries, nothing else is a power-up.
Story:
You are a space fighter who is currently fighting in the war of Andromeda. You were told to go to fight a battle against the evil aliens and you were told that people would be joining you to fight. But nobody showed up. You are all alone fighting 20 waves of evil aliens. Can you do it? Can you defeat the Gorthen and end it all?
Directions:
Shoot the enemies and don't get hit by them. You have 5 lives. If you lose all 5 you lose
collect the strawberries. Once you get 10, you get another life or, if you have more than one strawberry, you can use Z to shoot 3 bullets (this changes depending on what difficulty you have it on.) * the amount of strawberries that you have. These bullets do more damage and can destroy the enemy bullets. Doing this resets your strawberries to 0.
There are 20 waves.
Different modes/difficulties:
There are two modes: standard and endless.
Standard is just the normal game with 20 waves.
Endless is an endless amount of waves where every ten waves you fight the Gorthen.(the boss).
All of the enemies are completely random.
I know it's not that good but I don't know how else to do it. So if you have any suggestions, please tell me.
There are 4 difficulties: easy, normal, hard, and extreme.
The only things that change are the shooting frequency, the difficulty of the boss, the number of strawberries you need to get a new life, and how many bullets you shoot per strawberry.
If you choose extreme, Good Luck! :)
I hope you enjoy my first game!
Have fun!
New changes:
I added a menu where you can customize more stuff :)
Please give me feedback so I can make it better.
Credits:
The Gorthen was designed by Brody Vaine.
Lazy Devs for making the tutorial I followed to create this.
Music by Lazydevs.
Everything else is me.
We definitely need an option to download carts in splore. I bought this for my steam deck expecting the standalone app to be, well, standalone. I have to reboot my whole system to access the web browser and file explorer needed to download and add carts. It's very frustrating that such an essential feature was ignored. I doubt there's any chance for a refund, so I guess I'll just have to beg for features that should have been included from the start. Maybe if I'm lucky it'll be added in less than a year. It's only been 9 so far..
Maybe this is overly salty, but it's very frustrating that an implied feature isn't actually present when it's the whole reason I paid for the standalone app in the first place. Buyer beware I guess...
A bug fix version of mamono pico by @65c02
https://www.lexaloffle.com/bbs/?pid=128341
Fixed :
- crashing at end of levels
- impossible to win levels
- not dying when killed by a monster that would have made you level up
Remaining known bugs :
- you can mark a monster even after killing it, and this can disable showing the red number of the monster
- some rare crashes from menu after game over, unknown cause.
Done :
- damage is now the same as the original game
Todo :
- blank pause menu
- Remaining ennemy count in status bar
- timer
- high scores
- Max difficulty
- custom levels
- wraparoud
- mage (fireball chording)
About:
Zap-bot is an homage to the old Gameboy era cheap SBC (single board computer) handleds and their stupid little games, like the Classic and Brick Brick game!
This is a port of the shooter line filler game inside that. Your goal is to clear the lines for as long as you can last!
Controls:
Move with arrow keys left and right.
Shoot with X.
Brought to you by:
My awesome supporters over at Ko-fi! They allow me to pursue this niche hobby of mine! If you'd like more, consider hopping over to my Ko-fi page, where I share pixel art, game devlogs, postmortems, code rundowns, all that gamedev jazz! And if you can maybe drop in a coffee so I can make the next one faster!
Totsugeki is a celeste mod where you play as May from Guilty Gear.
Controls:
Arrow keys - Movement
Z/C - Jump
X - Totsugeki
Happy Birthday May!
Credits to Maddy Thorson and Noel Berry for the original Celeste Classic.
If you all don't care again I need help with object pickups in my game when you pickup an object (artifact) you get a score of 1 point. What I need to know is how to add a spawner for that object and how to make the player pick it up.
Many thanks.
BTW I tried to use a YouTube tutorial with no luck
--pickups function ipickups() pu={ x=63, y=50, act=true, } artifacts=0 end function upickups() if pu.act then if abs(px-pu.x)<=4 and abs(py-pu.y)<=4 then pu.act=false artifacts+=1 end end end function dpickups() if pu.act then spr(6,pu.x,pu.y,4,4) end print("artifacts: "..artifacts) end |
SEIZURE WARNING:
This game may potentially trigger seizures for people with photosensitive epilepsy. Viewer discretion is advised.
Controls:
Move: Arrow Keys
Shoot: X
Bomb: Z
Pause: Enter
NOTE: Shoot / Bomb buttons can be swapped in the Pause menu
Instructions:
- Defeat 30 waves of space pirates and recover the doubloons they leave behind.
- The ring around your ship indicates the range which will attract doubloons
- Destroying space pirates will increase your score multiplier. Letting a space pirate escape the area or taking damage will reset this multiplier to zero
- Collecting 100 doubloons will grant you a temporary shield which will absorb damage once without resetting your combo
a = {x=10, y=25} b = a b.x = 99 print(a.x) |
This prints 99
but I assumed it would print 10
.
I wrote code with a start table. Then I set a position table equal to the start table. I was hoping to update the position table but reset the position back to the start point at any time I wanted. I tested this out in php to make sure I wasn't crazy and it worked like I expected. I tried it out in strict Lua but it gave the result above. Why does Lua change the a
table when I only changed the b
? How do I deal with this?
Description
Penny the Pumpkin: Directors Cut takes you on a delightful platforming open-world metroidvania with light puzzles to solve. Guide Penny, our lovable pumpkin, as she collects 18 precious coins! Your progress is saved every time she grabs a coin or enters a new area.
Once you've collected all 18 coins, put your skills to the test by unlocking the thrilling speedrun mode! Note that saving is disabled in this mode, so it's all about your skill and reflexes. Can you beat the programmer's current record of 3:31.4? 🏆