Reach depth 16 and retrieve the Wings of Yendor
Controls
(â—€)(â–¶)(â–¼) : Turn
(â–²) : Step forward / Attack / Interact
(X) : Open inventory
(O)/Z/C : Wait 1 turn
Into Ruins is a roguelike for the PICO-8 Fantasy Console.
There are no stairs. Jump down holes in the ground to make your way to the bottom. You will encounter natural cave formations, crumbling dungeon rooms, and terrifying creatures on your way.
There are no doors. Tread carefully or the creature in the next room might spot you. Light helps you explore more easily, but also reveals you to your foes. Fires can spread wildly through the environment, while glowing mushroom spores can mend your wounds.
There are no classes or character levels. Expand your abilities by finding magical items on your descent, and bring them to their full potential with Orbs of Power.
Each attempt is a new beginning — the different types of orbs, staves, cloaks and amulets will not be immediately recognizable to you. Some experimentation is required to identify them.
Credits
Into Ruins was created by Eric Billingsley. It was greatly inspired by Brogue by Brian Walker.
Thanks to FReDs72, Heracleum, James Edward Smith, morgan, Oli414, Sim, SlainteES, SmellyFishstiks and Waporwave for beta testing and feedback.
Technical Info
I figured some of you might be interested in some of the technical aspects of the game. This was my first foray into PICO-8 and Lua, and I learned a lot along the way -- from discovering with shock that variables are global by default after a week and a half of strange bugs, to trying to cram as much as possible into strings, and _ENV abuse to reduce token count.
How does it all fit?
Initially I thought I could fit everything into 1 cart, but partway through I realized that even if I could fit all the features I had planned in while respecting the token limit, the compressed character limit would be a problem.
The final version of the game is in 2 carts -- one for the title screen and text intro, and another for the main game. The title screen cart also puts a huge string containing most of the game's data (creature stat blocks, animation data, item stats, text descriptions) into the upper memory region, which is then read and parsed by the main cart. Because the title screen still displays the environment and character, there's a lot of similar code between the two carts, though a lot of things that were refactored to save tokens in the main cart are still in the title cart in their original form.
Even with these measures, the main cart still needed to be stripped of comments, newlines, and whitespace using shrinko8 to fit within the compressed character limit.
As far as tokens go, making almost everything in the game be the same type of object went a long way. Each object has a type (which is just its sprite number), and from that we can initialize its properties with a combination of default values and ones read from the huge string mentioned earlier. Having everything be intialized and accessed the same way means that each object has a lot of data it doesn't actually need, but we aren't strapped for Lua memory so that's okay! The upside is we can reuse code where appropriate, and make things interact more easily. To save tokens on accessing properties, I also made heavy use of the _ENV trick outlined by slainte here, and seleb's list of token optimizations was indispensible as well.
Level generation
The levels are generated using a couple different algorithms. Levels can contain natural caves, manmade dungeon rooms, or both. In either case, there is a variable called Entropy which ticks down as more of the level is generated.
Caves
Caves are made recursively using a type of random walk. From our current position, we try to generate another tile in a random neighbouring space. We then decide whether to recurse again from this position or backtrack -- this probability is based on the current entropy, so at the start we always continue, and by the end backtracking is more likely. Playing with the starting entropy and the amount it goes down by with each recursion allows us to achieve the right density and balance between narrow tunnels and wide open areas.
When choosing which tile to put in a new space, we consider the tile we are generating from. Each tile type has a corresponding section of the map data which defines 16 possibilities for the next tile, so we choose one at random from these. In a way this is like a Markov Chain, where the state is just based on the tile we are coming from. Holes, grass and other environmental features are all generated this way. The tile definition can also include an entity to generate, like a mushroom, brazier, chair or barrel.
With each recursion, there's a very small chance we switch to generating rooms.
Rooms
For rooms, we choose a random point on the map which will be contained in the room, and then random values for the room's width and height. The boundaries of the room are clamped to multiples of 2 or 4 to get them to lock together well and play nice with the rendering. We then create the floor and walls of the room, with one dimension being staggered to fit properly into the hex grid. Each room gets a random crumble value, which we use to decide if we should replace parts of the wall with different tiles (selected in the same way as in the cave generation).
After generating each room, there's a chance we switch to cave generation. Otherwise, we keep generating rooms at random positions until the entropy reaches 0. The rooms can overlap each other, and each time we generate one, a random openplan variable sets whether it should have walls on all sides, or try to merge with any overlapping rooms. In this way, we can get all kinds of interesting dungeon shapes just by combining rectangles.
Post-processing
Once the initial generation is complete, we analyze the level to find parts that are inaccessible, and then find a nearby position the player can get to and connect them in a straight line, either by building bridges or tunneling through walls. Then we recurse randomly through the level and fill out the contents of the manmade rooms, in the same way we did with the caves earlier.
There are a few more steps, like creating cave walls, ensuring there are exit holes, and running the code to connect areas again at various points. One interesting step is to replace cave walls which have walkable tiles both below and above them with a random tile, again sampled from the map data. This is actually the only way that stalagmites and mushrooms can be generated, and I think it makes their placement a bit more natural looking.
Spawning
With the environment generated, all that's left is to spawn creatures and items.
Creature spawn groups are again defined in the map, with each line corresponding to a different depth. We attempt 6 times to spawn a group of creatures, either choosing a group from the current depth or sometimes randomly from a greater one for a nasty surprise. We pick a random position, and try to spawn a creature there, and then move on to a to a neighbouring tile for the next one in the group. If it turns out the spawn point is invalid, we don't try again, just move on. This means some levels, especially smaller ones, will tend to have fewer creatures but that's okay -- it just adds variety!
Items are spawned in a similar way, with the depth just affecting how many we try to spawn (we attempt to spawn slightly more items on earlier depths than on later ones). For certain important orbs, we make extra spawn attempts if there haven't been enough of them generated yet over the course of the game based on the current depth.
Wrap-up
There's a lot of other things that I think could be interesting to write about, like the lighting, FOV algorithm, or various aspects of the AI, but for now I think this post is long enough. Let me know if there's anything you'd like to hear more about!
Into Ruins is also available on itch.io, and the unminified code is up on Github.
v1.07 changes (2024/05/05)
- Fixed victory animation not playing properly when attacking with rapier on final move
- Spear special attack now triggers when summoned blades, pushed objects, or teleporting enemies enter the guarded space
- Improved spore/fire interaction so that burned mushrooms or glowhorns now produce an expanding fireball when destroyed
- Fixed lit torch thrown at pink jelly only lighting one of the split jellies on fire
- Fixed lit torch thrown at an enemy flying over a pit not setting it on fire
- Fixed sleeping enemies pushed by a thrown orb of gravity not falling down pits or bumping into things properly
- Enemies pushed by a thrown orb of gravity now lose their turn
v1.06 changes (2023/06/22)
- Web player touch controls (itch & newgrounds only): removed ability to input a diagonal on the d-pad by pressing in between two directions.
- Web player touch controls (itch & newgrounds only): removed ability to input simultaneous X and O by pressing in between both buttons.
- Fixed cursor being off by 1 pixel vertically when aiming
- Adjusted aiming prompt text alignment
v1.05 Changes (2023/06/09)
- Added custom font
- Clearer text descriptions for Orbs of Gravity and Light
- Fixed searching enemies sometimes moving after spotting you
- Fixed orbs not activating when thrown at enemies flying over a hole
- Fixed Pink Jellies having the wrong icon when hit with an Orb of Data
v1.04 Changes (2023/03/08)
- Increased chance that a given spawned item will be a "fun" orb (fire, ice, teleport) -- other items will spawn slightly less often as a result
- Improved several movement animations (player & some enemies) that had incorrect timing
v1.03 Changes (2023/01/02)
- Increased chance of spawning a weapon or staff until at least one has been spawned
- Increased chance of spawning an uncursed wearable item until at least one has been spawned
- Flesh Horrors have a new unique ability...
- Frozen enemies no longer display "?" when switching to searching state
- Fixed player appearing not to die on game over screen when killed while being pushed down a pit with slofall active
- Fixed a visual glitch that would happen if you blinked to victory
- Fixed player not casting light until taking a step after descending while on fire
- Fixed creatures not casting light until next turn when they catch fire from being in light
- Fixed tiles not catching fire if a burning creature moves onto it and either dies or stops burning immediately after
- Fixed creatures with idle animations still animating while frozen
v1.02 Changes (2022/11/08)
- Improved fire animation (was intended to flip horizontally every 3 frames, but I accidentally broke this before release)
- Changed text description for Orb of Light for improved clarity
v1.01 Changes (2022/11/02)
- You can now pick up <important item> even if your inventory is full.
- Fix a rare bug where 2 Mirrorshards could teleport into the same space, with strange effects.
- Increase Mirrorshard HP from 6 to 8
Sooo good. Really impressive all around. I'm going to study and learn from the methods you employed here.
Beautiful game. This is my new obsession.
However, I gotta admit, half the time I have no idea what I'm looking at. Is that a hole or an unexplored region or the top of a different tile?
Thanks for all the kind words! Glad people are enjoying the game :)
@joealarson yeah, some of the tiles aren't the most readable, especially when you're in the dark. Some sacrifices were made in the name of aesthetics, and prioritizing the enemies/player being readable against the tileset. I think this is something you get used to as you play the game more and familiarize yourself with the tiles, and at least walking up to it and trying to move/interact doesn't cost too much.
I realize "amazing" has already been used several times to describe this, but I'll add another to the pile. The attention to detail, depth of gameplay, and overall presentation is indeed amazing. I've been playing roguelikes for about 25 years now, and this isn't only a great roguelike for PICO-8, it's a great roguelike period.
I wanted to finish the game before providing feedback, so I've been playing it quite a bit over the past couple days.
Brogue is easily my favorite roguelike from a gameplay perspective, and I love seeing its influence here. Every element (enemies, items, and terrain) is essentially unique and integral to the whole, and there are so many opportunities for emergent behavior. The bats that catch fire in light and start massive infernos are great. The braziers that can be knocked over to start a fire create interesting tactical situations. The weapons differing in how best to move in relation to enemies. My favorite bit along these lines is small, but I love it. Instead of healing directly, the goblin mystic heals allies with a healing cloud. I don't know if this was a conscious design decision or a byproduct of streamlining code, but it's great because it creates meaningful decisions. Kill the more dangerous enemy, or kill the one that was just healed? If I do the latter quickly enough, I can benefit from the healing cloud. So good.
Also, the little details are fantastic. The difference in the sound of footsteps depending on terrain (bones, grass, ice). The glow of orbs. Stepping on bones alerting nearby enemies. Staves of lightning briefly illuminating dark areas. It all combines to make the game feel like a cohesive, consistent whole.
And, of course, the graphics and animations are great. The terrain feels suitably dark and ruined, creating a great atmosphere. Each enemy already has its own character due to its behavior and sounds, but the animations reinforce this further.
I'm honestly not sure if I have any real criticism of the game. I do think the initial readability of some tiles is a valid criticism. For me, this went away after about a half-dozen plays, but I can understand that it might discourage some. I like the twist on cursed items, though the cloak is quite brutal. I like that each can be turned into an advantage of sorts, but the drawback of the cloak is such that I don't know how it could be used beneficially (I tried several times). I think the difficulty curve is close to perfect. It can be rough at the beginning (e.g. goblin archers and no mushroom on the first level) but seems fair more often than not. I've gotten the impression of a sharp increase in difficulty at level 14, but I've been that deep less than 10 times.
My first victory was melee-focused with some utility staves. +4 axe, cloak of wisdom +3, staff of blink +1, and staff of ice +1. The cloak recharging the staves every level was a huge contributor, but didn't feel overpowered. Becoming cornered was always a concern, because I couldn't escape via blink, and e.g. ogres could potentially kill me in one turn. I had one such very close call on D14, where an orb of teleport saved me. D16 was tricky, with a dragon in the way, but the staff of ice and a couple blinks made victory possible.
My second victory was almost all magic. I basically put all of the orbs of power into a staff of lightning, which ended up at +6. Anything more dangerous than a goblin or slime was dealt with from afar. Somewhere around D10, I found a cloak of wisdom. Otherwise, I just had a rapier and a slightly above average number of orbs of life. I thought I was done when a dragon ambushed me on D16, but alternating rounds of lightning and orbs of life were enough to defeat it.
Thanks for the game! Not only because it's great and I've gotten a lot of enjoyment out of it, but because it's an inspiration. I've been working on a traditional roguelike for PICO-8 for the past several months. I thought I was close to finished, but your game has made me realize what's possible and that I need to reconsider its general design and tighten up the gameplay.
@eduszesz Thanks, I'm happy you're liking it!
@binaryeye Thank you for your detailed feedback! I'm so happy the game clicked for you as somebody who has played lots of roguelikes and shares a love for Brogue.
I think the goblin mystic healing was mostly an intentional design decision, but it was more from the angle of visually communicating a heal to the player, since they would already be familiar with the spores. The code streamlining and additional tactical options were a nice side-effect though!
It is definitely possible to beat the game with the cursed cloak if you find the right items (it can even be a pretty powerful build), though the cursed items are meant to be a sort of extra challenge.
I've updated the game with a few small changes:
- You can now pick up <important item> even if your inventory is full.
- Fix a rare bug where 2 Mirrorshards could teleport into the same space, with strange effects.
- Increase Mirrorshard HP from 6 to 8
Well that just ended.
I feel like the game is very luck based. If you can find a weapon and staff on the first few levels, and don't accidently break an orb of fire while you're trying to figure out what you've picked up, then you've got a chance. But I suppose that's roguelikes.
But still I wonder if some load out could be scattered through the first two or 3 levels to insure you'll at least have something. There were a number of games where level 1 was just rats, and then others where I'm fighting goblins and dogs and I just have to restart.
Now that I know better how long I can stretch a light or gravity orb, I might not hold on to as many of them next time as I did in this run.
@joealarson Congrats, you've done it! Yeah the ending is sort of meant to take you by surprise the first time ;)
I agree there's a lot of variation in difficulty based on what items you find. In Brogue, this is partly addressed by having unlockable rooms which contain several items, of which you can only take one. I didn't have the tokens for something that complex so I tried to mitigate it by biasing item spawns towards the early depths a bit.
Another way of addressing it would be to make extra spawn attempts to ensure at least one (weapon or staff) and one (amulet or cloak) spawns in the early depths. I think this could work, but finding the tokens for it would be a challenge. The game does do something similar with some of the orbs if not enough of them have been spawned based on your current depth. It's a delicate balancing act to keep the game feeling fair and also interesting. Overall though I think I'm pretty happy with the current difficulty & variation -- I think it's good for some runs to be difficult even for a seasoned player.
In other news, I've released an update with a couple changes:
- Improved fire animation (was intended to flip horizontally every 3 frames, but I accidentally broke this before release)
- Changed text description for Orb of Light for improved clarity
like @binaryeye, I was trying to beat the game before I gushed about how great it is in every way. But that might take a while, because it seems like I might be bad:
As in the best roguelikes, dying is fun. I love the way this game lets you discover things. And how generous the game is with details and interactions. The technical write up looks very generous, too—looking forward to digging into that.
I've released another update! The biggest change here is more consistent item spawns (thanks for the feedback about that @joealarson) which means you should always have at least something to work with and more runs should be viable. I've also given a late-game enemy a new unique ability... (see spoilered gif below).
v1.03 Changes
- Increased chance of spawning a weapon or staff until at least one has been spawned
- Increased chance of spawning an uncursed wearable item until at least one has been spawned
- Flesh Horrors have a new unique ability...
- Frozen enemies no longer display "?" when switching to searching state
- Fixed player appearing not to die on game over screen when killed while being pushed down a pit with slofall active
- Fixed a visual glitch that would happen if you blinked to victory
- Fixed player not casting light until taking a step after descending while on fire
- Fixed creatures not casting light until next turn when they catch fire from being in light
- Fixed tiles not catching fire if a burning creature moves onto it and either dies or stops burning immediately after
- Fixed creatures with idle animations still animating while frozen
Really impressive. I enjoyed this a lot and even made a video for my channel:
Ahhh... Yet an other beautiful yet infuriatingly addictive roguelike...
suuuch a good game! I'm completely in awe of the excellent game design on this one, everything fits together in pure harmony! Would double star if I could
I published a small update that improves some movement animations and tweaks item spawn rates. The game will be a bit harder compared to v1.03, but I think it strikes a better balance after the weapon/staff/wearable spawn increases introduced in that version, and hopefully makes for more dynamic gameplay due to the increase in single use offensive/tactical orbs.
v1.04 Changes
- Increased chance that a given spawned item will be a "fun" orb (fire, ice, teleport) -- other items will spawn slightly less often as a result
- Improved several movement animations (player & some enemies) that had incorrect timing
I just died from fire damage one tile away from the Wings of Yendor.
guys, the wings of yendor are real, I found them.
fun things that happened along the way:
- accidentally chose "use" instead of "throw" with an Orb of Fire, igniting myself
- while standing on a wooden bridge, destroying it and dropping me to the next level
- while a couple monsters were on the bridge with me
- trapped many monsters behind a doorway chokepoint and rained magic attacks down on them
- monster at the front was a gel cube, so the doorway remained blocked as it died and split repeatedly
- expected a thrown Orb of Light to act as a flashbang, instead died next turn to a completely unfazed monster
- got challenged to duels with ogres and nope'd out of all of them with the Staff of Blink
I've released a mostly visual update featuring a new Tolkien-inspired font that better fits the mood of the game, along with some minor bug fixes. Enjoy!
v1.05 Changes
- Added custom font
- Clearer text descriptions for Orbs of Gravity and Light
- Fixed searching enemies sometimes moving after spotting you
- Fixed orbs not activating when thrown at enemies flying over a hole
- Fixed Pink Jellies having the wrong icon when hit with an Orb of Data
The game is unfortunately crashing on my retro handheld. Does someone have an idea how to fix that?
@aenerdji Sorry to hear! Which handheld / pico-8 version?
One thing I can think of is that since the game is in 2 carts, maybe one of them isn't up to date? Are you using splore to launch the game or launching a locally downloaded copy? Maybe try deleting the local cart in bbs/carts and re-downloading through splore.
I probably should have specified the cart version in my LOAD() call but I didn't so it will always try to grab the latest one, which could cause issues when running older versions of the intoruins cart that were downloaded from the BBS.
@ericb I am using the Milo Mini Plus with Onion OS v4.2.
I have read that there are issues with running games which are using multiple carts.
I am using the built in Fake-8 emulator for Pico-8. Most games are running well, except for those multiple cart games.
I've tried all games not working on my Miyoo Mini Plus on the Pico-8 console for Mac OS, without any issues.
Could you tell me how to install splore on Onion OS? I was unable to find a guide.
Thank you
Ahh, I don't know for sure but I don't think it's possible to natively run PICO-8 (and therefore SPLORE) on the Miyoo Mini. I've only tried on Anbernic devices that can run the rpi version natively.
You may still be able to get the game to work if you download the latest versions of both carts (#intoruins-5 and #intoruins_main-5) and place them in the same directory, but I've never tried running it in Fake-8 so not 100% sure. There might be some compatibility issues.
The latest carts can also be found in the github repo (https://github.com/Woflox/intoruins/tree/master/carts), if that's easier than downloading them from the BBS.
@ericb @aenerdji Unfortunately, FAKE-08 currently doesn't support Splore, but the developer has shown interest in implementing it into handhelds with Wifi capabilities. I've also tested Into Ruins (as well as other multicarts) on my Miyoo Plus at length with different cores, standalone versions, folders and other tests and haven't found a way to run it. Sadly, the only thing to do now is hope Splore gets implemented into FAKE-08, or now that the Plus has Wifi, maybe we can bug Zep about an Onion version of PICO-8 like the Anbernic handhelds... who knows? We'll just have to play the waiting game for now
I quite like the Spear's ability to attack enemies that move in front of you when you wait. But when a Goblin Mystic creates a Spectral Blade on the spot you are waiting to attack, the Spear doesn't attack the newly formed Spectral Blade. Is it possible to make the Spear attack in that situation?
That would make sense! It's an interaction I overlooked. I'll have to see if it's doable without inflating the token count because the game is right at the limit and already had a lot of token optimizations to make everything fit. There's a couple other interactions I'd like to improve (would be nice if burning mushrooms still spread spores instead of them being instantly consumed for example) so maybe I will try to update the game again at some point
I try to save up Orbs of Power and use them on the Wings of Yendor. I am more interested in this highscore than the actual stats the game collects.
How is it possible to do such an outstanding masterpiece within the
limitations of PICO-8? The details, the atmosphere, the balancing, the
satisfying and addictive experience.....
By far the best Adventure one could imagine.
Fine arts at top notch; thank you!
All this time and I am only now learning this was your first PICO-8 project. Thank you so much for documenting the process as well. This is really great.
@CFLAddLoader I've taken to doing various challenges for myself. I hadn't realized you could use Orbs of Power on the wings themselves, so that's a new fun one. I've gone for
-
most kills: 225 is my current PR
-
fastest play/least kills: 340 steps, 10 kills
-
beating the game with each weapon (torch, rapier, axe, spear, though hammer has been the hardest), as well as seeing how far I can max out any one weapon (I've gotten to a +12 on several occasions, usually finding a +5 and using all my Orbs of Power on it)
-
using each staff as my primary tool-of-choice (playing a mage with several buffed Staffs of Lightning and a modestly buffed Cloak/Amulet of Wisdom is a deadly combination; dragons' immunity to fire makes a fire-mage hard)
- obtaining the wings while wearing both the Vampire Cloak and the Amulet of Reckoning
All said, I love this little game—it's perfect for a little quick game-play, especially if I need to be interruptable (because it's turn-based). Except for those times I drop into a level with 6+ Ogres and get my posterior pounded into the ground.
@ericb In case you're up for a couple bugs I've encountered,
-
If you throw an Orb of Gravity at an enemy such that they get pushed over a ledge and should fall, they don't; and they can then step back on land on their next turn (I'd sacrificed an Orb of Gravity to shove an Ogre off the edge. It would have saved my bacon, but the next turn he walked back on land and beat my weakling to a pulp)
- Similarly, if you're next to the Wings (or anything else?) and get knocked back into them by either an Ogre or a Glowhorn, it doesn't collect, so you have to step off of them and then step back on them. This might be less of a bug/issue since I can come up with a justification—it might be hard for me to pick something up if I'd just been slammed backward.
But all said, I love all the little interactions in the game, things like throwing a weapon into a brazier to knock it over into an enemy and light them up (or into a patch of grass and light up a bunch of enemies), or luring a Goblin Warlock near a Bat so that when a Spectral Blade is spawned, it causes the Bat to go up in flames and ignite everything around; or luring a bat toward a mushroom blocked from its line-of-sight by some tall-grass, only to have it flap into the high-grass, exposing the light and causing it to ignite; or slamming a chair/barrel into an enemy to do damage at a distance; or lighting a bridge on fire to drop enemies into the abyss. So many delightful little touches. Thanks!
@Gumnos Thanks for the feedback and bug reports! I like the challenges you've been setting for yourself, that's really nice to hear about.
I was aware that you don't pick up items when pushed onto them but didn't bother spending tokens to fix it since, as you said, it can be justified. It's a bit awkward to step off and on again since there's no pick up button though.
As for the thrown orb of gravity pit bug, that's pretty bad! That's the main thing I intended for thrown orbs of gravity to be useful for, and I swear I tested it, but I must have broken it in one of the patches. Will need to take a look at some point.
@ericb: I just went and tested it early in the game and throwing an Orb of Gravity at a normal goblin worked as expected, shoving him over the edge and he went down. Now I'm wondering whether it's something special about Ogres or the geometry of the ledge I shoved the Ogre off. 🤔
i loved the game! Haven't finished it yet, but i'm definetly trying!
I found it to be weird that i can't play it offline in my R35S (ArkOS device). I really wanted to play it offline since wifi drains too much battery from my R35S :(
@laurorual I've updated the itch page with downloadable png carts that should work offline! Just download intoruins_offline_carts.zip and extract them somewhere where your device can find them. Load up intoruins.p8.png and it should all work fine as long as they're in the same folder.
The Splore version likely isn't working offline because the carts load each other and that's done through the BBS. Pico-8 does usually cache carts you've downloaded through Splore but I guess it doesn't know to check locally in this case.
@Gumnos Yes, I did a bit of testing after your reply but wasn't able to reproduce it so far. I did see an Ogre get pushed onto flame and then immediately step back without catching fire. So there are definitely still some bugs lurking around.
@CFLAddLoader I keep trying to achieve your Wings+3 but haven't been able to match you yet. Got a +2 today though :-)
@Gumnos Very nice. Yeah, you need to be absurdly lucky to get Wings+3. It took a very large number of games before I could get it.
I still play for fun every once in a while, but I am not trying to advance further. Because getting +4 would (on average) need many more retries than +3. And the only other way to do better would be to become a Dragon+3 slayer, which I don't really want to do.
Found what appears to be another small bug. If you have the rapier as your weapon and there's an enemy on the other side of the Wings, stepping into the Wings triggers damage to the enemy on the other side, and seems to prevent the
Anyways, despite the minor issue, it's still my all-time favorite Pico8 game. ☺
@Gumnos thanks for the kind words and the bug report! Funny coincidence, I also found this same bug a few weeks ago and @SmellyFishstiks reported it to me last week as well.
I'm going to try to find some time to work on a bugfix patch in the coming days which will hopefully fix this among some other things.
I've also been playing around with an Android version of the game, but I'm less sure about releasing this on the Play store because it's just a wrapper around the web player and thus doesn't handle suspend/resume properly -- your game gets reset if the app gets suspended. Not sure if there's a way around this aside from implementing autosave (don't have the tokens and not sure 64b is enough space for saving) or porting away from PICO-8 which is probably not feasible right now. If anyone knows of a way to save the complete execution state of PICO-8 or its web view, or knows some other solution let me know.
I've just released an update that fixes the bugs found above (along with some others), and incorporates the suggestion from @CFLAddLoader to improve the spear's special attack (thanks!)
I've also reworked the interaction between spores and fire so mushrooms & glowhorns make nice expanding fireballs when they are burned. Previously the mushroom's spores would get instantly consumed by fire and the glowhorn spores didn't coming out until after the fire was extinguished. There was also some weirdness that made spore/fire interaction dependent on the update order of the tiles. Now the behaviour is nice and consistent so you get pretty fireballs as seen here:
I'm hoping to get an Android version of the game out soon so keep an eye out for that!
v1.07 changes
- Fixed victory animation not playing properly when attacking with rapier on final move
- Spear special attack now triggers when summoned blades, pushed objects, or teleporting enemies enter the guarded space
- Improved spore/fire interaction so that burned mushrooms or glowhorns now produce an expanding fireball when destroyed
- Fixed lit torch thrown at pink jelly only lighting one of the split jellies on fire
- Fixed lit torch thrown at an enemy flying over a pit not setting it on fire
- Fixed sleeping enemies pushed by a thrown orb of gravity not falling down pits or bumping into things properly
- Enemies pushed by a thrown orb of gravity now lose their turn
[Please log in to post a comment]