Cursed Sword
Story
There is a place deep in the wilds where worlds collide. Above a buried dimensional rift, priests of chaos built a temple to harness its power for themselves, delving ever nearer to the rift. But a foolish high priest entered the rift itself and returned wielding a sword he could neither sheathe nor cast away. The sword demanded blood and he slew his entire priesthood to sate the blade, lest it destroy him too. With no one left to sacrifice, the sword slew him in turn. The sword has since passed from host to host, wreaking destruction and death. And through cruel fate, the cursed sword now rests in your hand. Can you cast it back from whence it came, or will its curse claim you too?
About
Cursed Sword is a simple roguelike based on Krystman's game Porklike, and his youtube tutorial Pico-8 Hero.
How to play
- Goal: Find the stairs to get closer to the rift on Floor B12!
- Killer Sword: Your sword demands blood! Kill enemies for more ⧗, or your sword will drain your ♥ with every step!
- Combat: Enemies move when you move! Bump them to attack!
- Treasure: Bump chests and vases to see what's inside!
- Menu: Press (X) button to open a menu, (X) button to make a selection, and (O) button to go back!
- Keyboard Controls: (X) button = X, (O) button = Z/C
- Gems: The priests crafted magic gems that can be slotted into your sword. Open the inventory menu with (X) to equip them!
- Luck: Increase your luck to dodge more attacks, get better treasure, and more!
Credits:
Deepest thanks to Krystian Majewski of LazyDevs academy for the use of his game Porklike as an engine for this game. Much of the code of this game was designed by him, and I thank him especially for his ingenious level procedural generator, and the binary signature technique.
Thanks to Maddog22, who conceived many of the power gems and tested the game thoroughly. Thanks, MD!
The JSON parser program was designed by tylerneylon, adapted by feneric, which tylerneylon has released into the public domain. Feneric's adaptation of it is released under the GPL v3 license.
Some enemy artwork (tiles 192-203,208-213,224-31) licensed from Oryx Design Labs, www.oryxdesignlab.com. These designs are not released under this game's license, and Oryx Design Labs reserves all rights.
The rest, I suppose, was designed by me!
Dev Notes:
I wrote most of the code in this game while holding my newborn son, Leo. He is the co-producer of this game, as he made it impossible for me to move for long periods of time while I held him.
The code of this game is a Frankenstein mess, and it's because a lot of it is just hacking the engine developed by Krystman. I innovated a few things, but the problems with the code are mine, not his! In particular, if I could do it again, I would have followed Krystman's tutorial to the letter, and then gone back and start from scratch armed with what I learned. So, in short, my apologies for the code being substandard in places, that is my fault, not Krystman's. In particular, I regret the use of too many global variables to control logic flow, and too many big dumb if-then statements for state machines. My next game will be better!
One thing that is interestingly different from Porklike is the use of a JSON parser. I wanted this game to be data driven, and to have a really easy way of editing those data when a change was necessary. I think that worked out very well, and allowed for the gems to be procedurally generated in an object-oriented way.
Love the ways you updated the original mechanics from Porklike and took it in a new direction. I've played a lot of the Porklike mods/variations/homages and this is my favorite so far.
Thanks everyone! This was based on the Porklike tutorial! Porklike is a great game, with a great tutorial! Also, Porklike-like describes this game perfectly :)
I'll keep an eye out for when you release this, it is looking to be a great game!
Thank you! I have some more features in mind before I call it good!
Oh wait? It's gone gold now?
Fantastic, I love this take on Rogue! :D
I will admit though, I kinda wish it had a proper title screen, rather than just a Splash that vanishes in seconds.
Yeah, I can see that. My next roguelike, which I'm working on now, does have a cool title screen! With this game I wanted to do something that combined a title screen (that looked more like the label image) and a splash screen, but I ran out of sprite space. In the end I decided to opt for the splash screen.
Ah ha, so it was a memory constraint.
Fair enough, it's just that I wanted to make my own arcade cabinet with this game on it. Would've been cool with a title screen and possibly an attract screen. But there's limitations to what you can do on Pico8. Still, one of these days when I have the time that I can make for myself, the space, and the tools, I would totally build a Cursed Sword arcade machine! :D
That would be amazing! I'll see what I can do on the next update of the game for a title screen.
The limited steps feature was an interesting curveball, forces players to grab what they can and head to the next floor.
Thanks! The sword demanding blood was kind of my idea of how the game might distinguish itself from similar games. It's inspired by the Elric stories by Michael Moorcock.
@cjgib had a yt letsplayer on my game suggest something similar to the idea. Funny seeing it being done on another porklike-like. Small world ig haha
Fun, and the variety of items significantly adds to the replay value, despite the game being on the easy side for the genre (no Yggdrasil rage quits where you repeatedly die despite near optimal play...)
Small bug or imprecise label : doomshock doesn't multiply attack points from the upgrade rooms when HP below 50%.
Let me join the voices saying I love the game. It took me a little while to understand the blood mechanic, but once I did I managed to figure out a strategy that I'll detail in a following reply.
However, I wanted to complain about one upgrade, the Laser Sword. According to the description I though it would attack enemies that are one space away, which would be a boon for the parody problem (where you're one step away from an enemy and either need to move in and take a hit or run away and find a pot to smash or door to open to waste a turn so they let you get the first hit). However, in practice it only works when 2 enemies are lined up and then you hit them both. A lot less useful that way.
Also, I'm not sure what the Claromancer does at all. It says "Attack and enemy and see your prize".
Player guide for Cursed Sword:
Short version
- Learn to juke.
- Get in, get the gem, and get out. Repeat.
- Don't detour to kill enemies.
- Always be willing to juggle your loadout.
- DEF, DEF, DEF.
Juking the enemy
The first skill you need to learn, if you don't already know, is getting enemies to move into attack range for you so you get the first hit. I call this "juking the enemy". If there's 2 spaces between you and an enemy (remembering that no one moves in diagonals) then you can approach the enemy and they'll move into you and let you have the first hist. However, if there's one space between you and an enemy, they're going to hit you first when you move in, so instead you need to find a way to do an action without moving. This can include breaking a vase or opening a door. However, if that requires a lot of backtracking, you might just want to take the hit, as backtracking can be deadly in this game. However, I backtrack a lot, and that's rarely been a big problem.
There are of course enemies that don't move, and the only way to hit them is to take a hit. Often times I just avoid these ones.
Concerning smashing vases, in this game vases contain only 2 things: Extra hearts or hidden enemies. And as vases are an important part of juking it's often best to leave vases unbroken, unless you need the hearts. But remember when breaking pots that it might be a hidden enemy, so leave yourself room to escape sideways if you've got another enemy bearing down on you.
If you can't avoid being surrounded, take care of high level enemies first.
The blood counter in this game (the hourglass icon) may make you think you need to kill every enemy to keep it up. However, going out of your way to kill enemies will often time waste more blood that you gain. The best strategy is to head straight for where you think the exit is and just kill enemies along your way. The exit is not near the entrance, usually down a hallway that seems to lead nowhere.
On ever level there's a Gem that will give you a bonus. On every level it is usually worth a detour to find the gem on that level. The Gem is in a chest (the thing that doesn't look like a vase). So my strategy is head to the middle of the map, look for the chest, take the Gem, and get out, killing enemies along the way.
Which Gems should you equip? Once you've equipped gems there's no reason you can't unequip them. Even the first one you get you aren't married to.
- The best defense is a good offense, especially with good juking. Getting a bonus on your attack is first priority.
- The Witches eye is great for planning your moves where the enemies can't see you, but it doesn't need to be equipped all the time.
- Extra hearts can help you tank attacks.
- And if an enemy does get a hit off on you, counterpunch can assure that they won't get a second.
- The ability to randomly fill your hearts up is an imprecise lifesaver, but a life saver nonetheless.
But if you can't equip the gems you want, equip the gems you got. You're better off with something in your hilt than nothing.
When you get to the levels where you can upgrade one ability, choose DEF. This is the only place in the game where you can make those inevitable hits hurt less and can actually render some enemies harmless.
And that's it. Repeat until success.
If you find a demon heart, get a shield upgrade, and you can safely farm summoned monsters (don't kill the summoners and keep them in sight so they keep summoning. If you also have a pick, you can clear the walls and speed the farming process significantly) till you max out health at 99 and time at 999.
[Please log in to post a comment]