Log In  

Cart #foxum-0 | 2020-06-13 | Code ▽ | Embed ▽ | No License
18

The Story

The Princess of Carnia, imbued with magical powers, had kept the kingdom in a time of peace and prosperity for many years, shielding it from the outside influence of the evil Zards - an ancient order of mysterious wizards.

One night, the Zards attacked the kingdom by surprise, capturing the princess. They locked her in her chambers, tethered to magic orbs that exploited her magical energy to release chaos into the land. Species once again became prone to their carnal instincts, and even the dead rose from their tombs. The Zards scattered the keys to the tower throughout the world in order to deter her rescue.

One lone soldier, Foxum, an expert archer and hunter, has vowed to defeat the Zards, rescue the princess, and return Carnia to a time of order and prosperity...

Controls

Up/Down/Left/Right - Move
Z - Attack (hold for a 2-stage charge attack)
X - Action (Purchase Upgrades, Activate Portal, Tap to break free of spider webs)

P#78029 2020-06-13 12:37 ( Edited 2020-06-13 12:38)

2

38 deaths, 533 enemies vanquished, 11269 gems colleted.

Jesus F*CKING Christ, this was impossibly hard.

Look, the game is awesome, don't get me wrong. The comments that mean the most to me are the one who go through the game and find the great things and the bad ones, and also isn't afraid to point out those bad things so that everyone grows here in the community! So I'm going to give my two pennies here hahaha

(I'll make it hidden just so it doesn't flood the comment section)

I just think that the game is so, so, SO hard that it doesn't become enjoyable until you gather enough money to get the first couple of updgrades.
I think the beauty of Legend of Zelda is that from the moment you start the game, it looks sooo vast (and Foxum does this super well! A lot of diversity of enemies and terrains), that it looks like there's so much stuff to do, but the thing is: you feel like you can do it. From the moment you get your sword, you feel like you can get to the top of it all and rescue the princess. Of course, when you get deeper into the game you see that you need some upgrades, but you constantly upgrade within beating the dungeons. As in: purely through playing the game, you get more powerful.

So there's two things here:

Roxum feels incredibly frustrating and completely unbeatable at first. And really if you die the first couple of times and lose the coins you get at the first screen, it also looks incredibly grindy if you want to get 50 coins from 1 coin by each enemy. In top of that, since you die like 20 times just trying to understand everything. That sense of awe completely loses itself there.

And another thing: This may be just an opinion of mine, but I find buying upgrades really boring. I think it would be so much cooler if those caves that appear if you kill every enemy in some screens instead of giving you money, gave you the upgrades. That would be so cool! A little secret that gets you that much stronger and gives you more will to go through this mysterious place. That would give you space to get some consumables in there: potions and stuff (which goddamn would be useful).

Whew, sorry for the long post. This game is incredibly well made, has an awesome game feel, so much diversity, really cool map and finding the secret dungeons feels amazing as well.

But mate, J-E-S-U-S. This games crush you so hard right at the beggining! A game with so much hard work put into just gets dissipated in that frustration. Makes it really difficult to enjoy it.

I really hope I wasn't rude! I gave my best to finish the game and give some fair honest thoughts about it. It really does look like there was so much passion put into it.

Thank you so much for sharing your game!
Hope you're well!

P#78048 2020-06-14 01:02 ( Edited 2020-06-14 01:06)
2

Hey FlyingSmog, first of all let me thank you for playing through the game and frustrations. I really do appreciate the very genuine and thorough feedback here. I don't take it as rude at all. Please don't take my next comment as an excuse as I humbly accept that I am learning from this as well. This is my first game and it was more important for me to get it done and out than it was for me to get people to play test it and mess with the difficulty scale. I do agree it's hard in the beginning... very hard... too hard. I also agree with you about the upgrades. Hindsight is 20/20 but I just really wanted to make a game with purchased upgrades and dark souls rules. Now that I got that out of my system, here's to the next game. Seriously, thanks for playing and thanks for taking the time to review the game! Cheers!

P#78049 2020-06-14 01:43
1

Wow! This game is incredible and I'm amazed you actually managed to get Zelda onto Pico 8. I love the Zelda series so it's no surprise I be interested in this game.

Things I liked:

  • Warps double as checkpoints. Makes it easy to move around the map and having the upgrade shop at the spawn warp just makes things faster.
  • Open world. You can go anywhere, play any dungeon in any order. Which I did the top left dungeon half way (2nd one) and did the bottom right dungeon to get enough money for the weapon upgrade. Which made the top left dungeon easier.
  • Fair enemies. They have simple patterns that are easy to figure out. Good job on making them all act differently.
  • Overworld secrets. It's "no bombing the wall" zelda style but it achieves the same goal. It definitely made me kill everything on each screen to find them all (I think I found them all).
  • Dungeons don't respawn enemies. Might take some of the challenge out but I feel it was the right choice to prevent frustration.
  • It's a beautiful game. Nice theming the areas.

Things I didn't like:

  • Spiders are just cruel. Hardest enemy in the game because getting hit is worse than the damage or the 'final boss'. (Again, good job on the enemy design)
  • A few maps are little too hard because the sheer numbers of enemies in some of the rooms (looking at you 2nd to last room with 2 spiders and 3 exploding cats).
  • Biggest complaint I have is dying can be too punishing. I appreciate the Dark Souls death mechanic as a way to make death more meaningful. However since upgrading the character can only be done with money and that is not cheap. The only way I been able to upgrade at a decent pace is with the one time loot drops with lots of gems. That means that if the player dies with a fat stack of loot this can set the player back hard if they die again. This can be really frustrating to players who are not nearly as skilled. To the point where their only choice to recover is to grind which is not fun. I think this game could of skipped the whole shop altogether and just have those treasure rewards be replaced with the upgrades. Or an "easy" mode that allows the players to keep their gems or drop partial amounts on death like in Shovel Knight.
  • Extra Spicy difficulty: I tried playing this on my phone and it went about what you expected. I really don't recommend doing this unless you like dying a lot.

Despite my nitpicks I still enjoyed the challenge the game gave and I don't think I would played it as seriously without it. I had to be more mindful when to attack and when to move around. Personally I love this game and easily one of my favorite Pico8 games.

Anyways, here is my final score.

Tips for anyone playing. Spoilers obviously.

  • Try your best to not die. If your hp gets low, retreat, recover at the fountain, or at least die in a place that you can easily recover your gems. Your number 1 priority is to not lose any gems!
  • Best defense is a high offense. Try to get as much arrow upgrades you can. Sprinkle in hearts every 2 arrow upgrades and max 2 boots. Being able to kill enemies as quickly as possible is the secret to survival.
  • Don't go to the dungeons right away. You want a few upgrades which are easily done killing everything on each map in the light green forest area. This should get you enough upgrades your arrow to easily kill the enemies in the top right of the map.
  • The dungeon route that I find the easiest to complete is:
    3..1
    .5..
    4..2
  • Charging up your arrow before entering a new room can help take out enemies on the next screen.
P#78080 2020-06-14 19:08

CzarSquid thank you so much for your kind words, as well as your comprehensive review and analysis of Foxum! I am very glad you enjoyed it. My goal is to make games that I like to play. If I have fun playing them, then chances are that others will as well.

Difficulty is always a tough thing to measure and, if you can believe it, knowing this I toned it down quite a bit before I released it. The spiders are totally cruel but at least they didn't move as fast or web you for quite as long as I originally planned. :)

Getting a Zelda-like map into PICO-8 was tough but it's not nearly as large as Zelda. Foxum has a total of 131 rooms, while Zelda's overworld alone has 128. Still I had to struggle to get everything to fit and unfortunately the ending suffered for it. I learned so much from the process though so I don't plan on making the same mistakes over again.

Thanks again for playing, and I hope I can get your feedback on my next game. Cheers!

P#78086 2020-06-14 21:30
1

This is really well done. It was pretty difficult until I got some upgrades but I didn't think it was too crazy. And the music was nice. Great work!

My final result:

P#78088 2020-06-14 22:28

Thanks for playing, ToyCrab, I'm glad you enjoyed it!

P#78089 2020-06-14 23:35
2

I like the game I just get super confused when I look down + shoot and i look to the left : \

P#78091 2020-06-14 23:53

Hey SmellyFishstiks thanks for playing! Could you elaborate as to why it's confusing?

P#78094 2020-06-15 00:08 ( Edited 2020-06-15 00:20)
:: jeb
2

Phew, completed it!

This is really impressive! I concur that it's very difficult, but I like that the speed upgrades are worthwhile. Having level 3 boots made the spiders considerably more manageable.

I played through almost the entire game without realizing that you could charge the bow. I wandered around a while looking for a magic upgrade to defeat the ghosts >_<

... which also made me realize why the input seemed lagging to me. The shooting felt unresponsive, but I guess it's cause of the charging mechanic. I'd prefer some kind of system that shoots an arrow on button press instead of button release. You can still start charging after the initial arrow.

I took a glance at the cart and I see you're at the limits of what pico-8 can fit! How much time did you spend creating this game? Good job!

P#78112 2020-06-15 09:22

Hey jeb, thanks for playing! I do mention the 2-stage charge shot in the controls instructions. I was going to make a pdf manual, but instead I tried really hard to make the game as organic to learn as possible. The charge shot ended up being the one thing that had to be learned "by accident". There are 2 stages to it. If you let it go while charging you get a fast arrow that does a little more damage, and, as you discovered, charging it all the way is the only way to kill ghosts.

This is my first PICO-8 game, so including the learning curve this took me one month of part time work. I had a vision and knew what I was trying to make. My goal was to see how far I could take the engine with this type of game.

P#78117 2020-06-15 12:24
:: jeb

Yep, that's true, I just started playing without reading =)

The music is great, too.

P#78119 2020-06-15 14:15

Thanks! :)

P#78120 2020-06-15 14:29
1

Great game! It has a Zelda feel with the Dark Souls death-recovery mechanic. I like the nice touches like the teleportation points and the changes in the terrain. Great music too

P#78167 2020-06-16 21:33

Thanks for the compliment waynaul, that's exactly what I was going for. It took a lot of planning and reworking to get all of this into PICO-8 but it was well worth the struggle. Thanks for playing!

P#78172 2020-06-17 00:15

Hey, thanks for the game! I really enjoyed it. I don't have a lot to say that everyone else hasn't already said. I was lucky enough to never die while retrieving my money or else I might be a bit saltier :) I also agree that 2 spiders in a room (with other enemies no less) is a bit unfair, but everything else felt like fair difficulty. Very, very polished looking & fun to play!

P#78257 2020-06-19 04:22

Thanks for playing djmckay, I'm glad you enjoyed it in spite of the difficulty.

P#78283 2020-06-19 14:18
:: shy

I liked this game a lot! The exploration was satisfying and it felt BIG for a Pico-8 game, with clever checkpoints, secrets, and upgrades to help smooth out the learning curve. It's definitely challenging, and there are a few unintuitive mechanics that you have to get used to, but it's really solid and well designed overall. Just to mention a few, initially I thought bow upgrades gave you extra arrows, not extra damage (due to the numbers in the HUD). And I was also one of the people who didn't read the controls first, and had to ctrl-f "ghosts" to figure out you could charge your arrow shots. But despite a few hiccups, I had fun the entire time, and I think learning these quirks was just a part of the discovery process for me.

I ended up with 15 deaths, most of which were me running in to grab my gold (as a failsafe) and make a tiny amount of progress escaping, on a screen I was way underleveled for. Once you learn the tricks, though, this game is pretty manageable difficulty-wise. Like, just stand near an exit on any spider area, firing arrows constantly, and run away if you get webbed. It's easier to leave the room and come back than it is to recover from the webbing, especially after your bow is fully upgraded.

Anyway, this was an easy favorite from me. Looking forward to what you make next.

P#78804 2020-07-02 20:44
:: shy

Since you were looking for token/compressed code optimization before posting this game, too, here's a few tips for your future projects:

--replace this: (9 tokens)
omap={ ["bat"]={bat,0} }
--with this: (8 tokens, identical meaning, since all left-side names in a table are strings)
omap={ bat={bat,0} }

--replace the many table creator functions: (50 tokens)
local s={}
s.x,s.y,s.w,s.h,s.bg,s.sprite,s.label,s.awake,s.update,s.draw,s.interact,s.activate=args[1]+0,args[2]+0,1,1,true,37,"attack",awake_attack,update_interact,draw_merch,interact_merch,purchase_attack
return s
--with this: (46 tokens, identical if local s table is unused, & cleaner to use and read)
return {x=args[1]+0,y=args[2]+0,w=1,h=1,
 bg=true,sprite=37,label="attack",
 awake=awake_attack,
 update=update_interact,
 draw=draw_merch,
 interact=interact_merch,
 activate=purchase_attack}

Also, none of the diamond()/heart() function calls use explicit x y values, so you can remove args,x,y,and all zeroxy arguments, and just use 0,0 directly:

function diamondb() return diamond(1,anims.diamondb,8) end
function diamondg() return diamond(5,anims.diamondg,9) end
function diamondr() return diamond(10,anims.diamondr,10) end
function diamond(value,animset,sound)
 local d={x=0,y=0,w=1,h=1,bg=true,value=value,anim=animset[1],frame=1,
  update=update_interact,draw=draw_sprite,interact=pickup_diamond,sound=sound}
 d.ftime=d.anim[1][ftime]
 return d
end
--then replace all: {diamondb(zeroxy),diamondb(zeroxy),heart(zeroxy)}
--with this: {diamondb(),diamondb(),heart()}

The biggest issue for compressed size is that huge level string, though. I'm not sure if you manually coded it or used some kind of level exporter, but it would be worth writing a readable text->binary string converter cartridge with that level data string stored there, instead. Create an output string (with all whitespace and commas removed in advance) and use ord() to pull numbers from 0-255 out of each character in the final cartridge. This should give you huge compressed code reductions.

A good workflow for this would involve a foxumcompressor.p8 cartridge that uses printh(finalstring,"foxumlevels",true) somewhere after processing from raw string data to binary string data, and then a line like this in your final cartridge where the level data string used to be:

local rooms_string=#include foxumlevels.p8l


Anyway, hopefully all of that helps! There are other code optimizations you could make, but I think these ones are the most worth the hassle. I'm not sure what you had planned for the ending, but that empty update_end() function has me thinking it could have been something really special. I hope the code limits don't kill your creativity next time, it's my least-favorite part of the Pico-8 spec.

P#78806 2020-07-02 22:25

[Please log in to post a comment]

Follow Lexaloffle:        
Generated 2021-10-20 23:18:57 | 0.029s | Q:41