Just outside a small town in the land of Welgaea is a gigantic tower, reaching into the heavens, filled with deadly monsters unlike any others in the world. The tiny witch Tofu Muffin (who is neither tofu nor a muffin) just wants to help people, and she's happened upon a town with a request. Legend has it the tower has a magical artifact in it that will help ward off the monsters threatening the city, but nobody knows if the legends are true, or if the tower even has a top! Tofu's going to have to collect cards, level up, and explore a randomly generated tower to see if the legends are true.

Honestly I just want people to play and enjoy the game, but donations are more than welcome! As is feedback! I'd love to continue tweeking and adding content based on what the players want!

I don't have the capacity to test (or really do much OS-specific support) the OSX and Linux versions, I've just got what Construct gives me. Also, Firefox doesn't have great HTML 5 support, so if you're seeing a lot of slowdown you may want to either download it or try a different browser.

1.2.2: Anniversary update! Added a new card available as a 50% drop from chests on floor 50. Also made it easier to level up, especially leveling up cards far below your level.

1.1.1a: Got it to work smoothly on mobile, yeah! Play it on yo phones! Also got it to display WAY more smoothly in the browser here on Itch, no more jaggies! Fair warning the buttons are very tiny, so it's not as easy as I'd like to hit them accurately.

1.1.1: Bug fixed where you could play a card on top of another card. Bug fixed where holding the arrow keys didn't move you continuously. Bug fix to remove extra executables when the program closes.

1.1.0: Touch/mobile support added. Button added on lists to skip to the top/bottom of lists. Flat exp increase. mid-game cards balanced. Two new cards added: Return card which will return a monster card from the field to your hand, available from chests like the other item cards, and a monster card which is a reward for defeating the overpowering presence.

1.0.4: Tweeks: Help tab now opens with a click. Arrows move you as well as WASD. Text changed on the Life Up card. Bugs fixed: Can no longer select invisible menu options. Life Up card can no longer be used on cards in your hand. Dialogue showing cards collected from chests now correctly shows card stats. New feature: Trap card now displays AND DISARMS all traps on the floor.

1.0.2: Fixed a diagonal movement glitch, added keyboard controls that make more sense and do more (mouse is still required) and added a "help" tab on the battle menu that should explain a lot of things people were confused/didn't know about!

-Naka

Download

Download NowName your own price

Click download now to get access to the following files:

TofuWin.zip 145 MB
TofuOSX.zip 197 MB
TofuLinux.zip 143 MB

Comments

Log in with itch.io to leave a comment.

(2 edits)

Please remove the note about Firefox from the description. The game runs great in Firefox.

Also, all of my yes to having a cute freckled WoC as the protagonist. "Freckled" and "WoC" are things that protagonists should be more often.

Solid 9/10. It starts out slow and boring, and kind of confusing (like why the f#$% can't I put more than one card down!?), but I decided to give the game the benefit of the doubt, because I know Naka is an intelligent guy, and I wanted to see his vision unfold.

...7 hours and 150 cards later and I'm on the 60th floor of the dungeon.

This game is HARD. And it gets very grindy after you break into the 40th floor. Very grindy. I don't think it's right to give my summoner only +1 EXP for killing a monster that one-shotted 30+ cards of mine. Such a powerful monster demands a much greater reward, and it's out of proportion with the previous floors, which built up experience fairly quickly. It took me most of those 7 hours just to break the 60th floor, and when I finally did, I had to sneak past two "overwhelming forces" in a row on floors 58 and 59; it's like the game literally didn't want me to get to floor 60. That was ridiculous. Like, if you haven't fought an overwhelming force (they're orange instead of white) yet, don't even bother. Your only hope is to stealth your way around them. If you get in a fight with them, you're dead. Try to run, they'll one-shot you even at full health. Try to fight, and you'll exhaust your entire deck before you've even taken off a quarter of its health. They're impossible to beat unless you're WAY over-leveled for the floor you're on. Like, if you can break floor 60, then you can probably beat the rare overwhelming force enemy on the first 20 floors, and you might burn out half of your stock just doing THAT. That's how OP they are. So naturally, when you're going for a floor break, seeing the message "You sense an overwhelming force" is going to make you utter the word "shit", because you know that you only have one chance to MAYBE stealth your way past them, and if you get caught, you're fucked. One of my failed break-60 attempts ended because an overwhelming force spawned RIGHT NEXT TO ME.

What sucks the most (more than getting spawn camped by the most OP enemy in the game) is when you get Pac-man'd, i.e. fuckin' inky and blinky decide it'll be funny to corner you and gangrape you, one-shotting two cards every turn, and since you only draw one card at a time (instead of replenishing your hand to 5 cards regardless of your current card count, like a normal card game--remember that yugioh episode where yugi lost because he ran out of cards due to a peculiar rule regarding post-turn drawing? Neither do I), that means that two monsters cornering not only disallows you from stepping back to strategically take a hit in place of your cards, but you get to watch your field continually shrink as the game's broken mechanics and overpowered monsters fuck you in the ass until you're out of cards on the field and they two-shot your summoner (this is only further exacerbated if you're unfortunate to run into an excess of non-monster cards). Normally, it's a simple race against time to kill one of them before they overwhelm you, but on the higher floors, you might as well just give up, because it takes a million hits to kill one enemy. Died more times to that than anything else. Needs some serious re-balancing.

And the inventory management system is shit. It's just shit. Look, man, if you have 100+ cards, clicking those arrows to scroll becomes a huge pain in the ass pretty quickly. I end up spending 20+ minutes powering up cards and adding new cards to the deck just because I have to sit there clicking that scroll arrow for a million years.  There are a lot of simple improvements that could make it much easier. Keyboard controls, page up/down buttons to scroll 9 items at a time, the ability to swap cards from your inventory into your deck en-masse instead of having to click every single card followed by the swap button individually, and the ability to "lock" the left-clicked card in the power-up menu, so I don't have to go back and forth to nearly the top and nearly the bottom over and over again, which is EXCRUCIATING and reminds me of Earthbound's clunky item shop UI. Those are four things that would significantly improve inventory management. and I REALLY think it's necessary, because the current system doesn't scale well at all. I'm having this much trouble managing a little over a hundred cards. Imagine how horrible it'd be to manage a thousand cards. Maybe I want to REALLY stock up to raid a dungeon and force my way to the next 20 floors through overwhelming numbers (seeing as they'll just one-shot my cards anyway, unless they have 500+ HP). Not a viable option with the current inventory management system.

Also, the music is extremely loud and not that good. The second part is highly subjective, yes, but I ended up muting the tab after about half an hour because the loop was getting annoying. But above all, the volume needs to be fixed.

And although the artstyle has this "deviantart" look to it, it's actually kinda charming, and grows on you after a while.

Aside from that, the game is surprisingly fun. I usually hate card games in the vein of hearthstone/yugioh, but the fact that I can look at all of those flaws, and rant this much, and still give this a 9, pretty much sums it up.

Fix those issues and buddy, you've got yourself a spot on my mental "favorite games" list.

(3 edits)

Just out of curiosity, is it possible to transfer the save file from the browser version to the desktop version? I'd like to play it off-browser if possible, but not if I have to re-do all of that work again...


Update: Upon further investigation, I've found that this game uses IndexedDB to store its data, in a database named "localforage" (ha-ha), so I started up the desktop version, built the starter deck, saved, closed the game, and then ran `sudo updatedb` followed by `locate indexeddb`, noting that all indexeddb entries on my filesystem contain "indexeddb.leveldb" at the end of the directory name for the given database. I found two directories of interest:


1. /home/braden/.config/chromium/Default/IndexedDB/https_v6p9d9t4.ssl.hwcdn.net_0.indexeddb.leveldb

2. /home/braden/.config/Dungeon/Default/IndexedDB/chrome-extension_hdafelngejkamllnafekfdmkffiafpjk_0.indexeddb.leveldb

So to test if #2 was the desktop version (why it didn't store in .config/Tofu Tower, I have no idea) by backing up the contents and deleting it, then restarting the desktop game.  I confirmed and then attempted to copy the browser data, but the game didn't accept it and also went to a new game, so I restored the backup. Evidently, there is some sort of "security" in the indexeddb, which I find kinda retarded but eh, if you need to protect the integrity of your cookies, I get it. For the purposes of a game, though, this is useless and it probably should have just used localStorage.


At this point: I see two potential solutions


1. You make an import/export feature for save data so that the user doesn't have to be an I.T. expert to transfer the data. One easy way would be to store the variables to be saved in an object and JSON.stringify() it, when when importing data, JSON.parse() it.

2. I find a way to edit an IndexedDB in a way that doesn't get rejected by the game, so that I can manually copy over the key/value pairs shown in my chrome dev tools.

I would strongly prefer the first solution.


Update 2: solution 2 is not working at all. The file 000003.log, which contains the actual save data, is formatted in some esoteric binary format that not only does my OS not recognize, but I can't even find software to deal with this format. Inspecting it in a hex editor just reveals obnoxious patterns that are seemingly designed to make it annoying to edit manually.


So an in-game solution for backing up and restoring saves is definitely necessary. Please consider adding one.

I wish this was downloadable. i don't like web games.

It is! Though you can play it in browser, there should be a download link below the description.

:O i think i just assumed there wasn't one since. i don't think downloads are common on the same page as where you play a browser game XD

Hey Naka, what is the max level for Tofu and the cards?

I have played this for a bit, I like it. Only a few things though, I grabbed a card with only 1 attack and 1 hp, but I have yet to level her so maybe she has some surprise? Also, the orange F.O.E monster with the strong presence has no data even after I beat her, the exp she gave was low too it felt. Other than that it's strangely addictive once you learn how to min-max the cards. I'm only level 21 and made it past the star stage and ended up back at the tower 1st floor setting, I left afterwards to level more cards. The game is very interesting and underrated.

Thank you! The 1/1 card you got for being the orange FOE does have a surprise in store! It'll probably be a long time before it shows its true power though, so maybe just hold onto it for later. The orange FOE should also have had some data shown up. I think it's at the bottom of the list?

Oh! I see it now thanks doh ><

I've got the card with me because I feel like it has some secret, but for now I've found that weaker cards once leveled a ton hold more power than the stronger cards I have, I use those cards as my "tanks" while I try to use the lower star cards as heavy hitters and fodder. Funny thing about the orange monster, I was actually about to give up until I noticed that my strong cards was at the bottom of my deck, I ended up winning by using all of my fodder (low level cards) to weaken it, then my heavy hitters high level cards all came near the end of my deck, it was a state of the art lucky random moment. I walked out with under 50 hp and one card with about 4 hp left.

Will gladly donate to the mighty Naka. Looks fun :)

Love the way the game looks. I plan to donate here soon.

great!!!! so cute!!