Log In  


PICOhaven 2 is a card-based tactical RPG / dungeon crawler inspired by my love of the board game Gloomhaven* (and less directly, of other 2D tactical turn-based games such as the GBA Fire Emblem and Into The Breach), and a sequel to PICOhaven from 2021.

It adopts a modified & simplified version of the mechanics from that board game, both to streamline solo play and to fit the platform constraints. It includes a campaign with 21 scenarios, 9 character levels with multiple upgrade paths, and various items that further modify gameplay and strategy.

*Note: This is just a free, solo-fan-made project and has no affiliation with Gloomhaven. If you like this type of game I recommend checking out the Gloomhaven family of board games for a lot of fun from multi-character cooperative play!

Cart #picohaven2-8 | 2023-11-08 | Code ▽ | Embed ▽ | No License
19

How To Play

Standard PICO8 controls: arrows/dpad, 🅾️ (z on keyboards) for most actions, and occasionally ❎ (x on keyboards) to undo/cancel. As a general UI note: the game shows your possible actions and the relevant buttons in blue at the bottom of the screen.

The game will also automatically save your progress every time you return to town, so you can close the game / browser and come back to it later on the same device.

If you've previously played PICOhaven 1, the interface and rules are similar enough that you can jump right in!

Given the tight code size constraints, I was unable to fit a detailed step by step tutorial into the game itself, so below is a brief "game manual" for someone new to the genre:

In Picohaven 2, you explore and fight your way through a series of scenarios / levels. In most of them, you need to defeat all enemies in all rooms (end your move on a doorway or arch to reveal the next room).

You start with a deck of 11 different action cards. Unlike some games, you do not randomly draw from it. Instead, you start with all 11 cards in hand, and each round you choose two of the cards in hand to play (which are then discarded).

Each type of enemy also has a small deck of preset action cards they randomly draw from. Once the cards are chosen, the round begins and the character with the lowest initiative number on the card they selected goes first.

Each following round, you'll choose another two cards from your hand, so your choices become more limited. However, you can also use a card as a default "attack 2" or "move 2" action rather than what's printed on it, to give yourself some more flexibility.

Once you've finished enough rounds to play through your deck, you reshuffle your discarded cards and start again with a full hand of cards to choose from, with one exception: you randomly burn one card each time you reshuffle, meaning it is not available for the rest of this scenario. Because of this, you only have a finite number of rounds to win a scenario before your deck runs out of cards and you become exhausted, meaning you return to town, heal up, and prepare to try again (note that all burned cards, used items, and lost health are restored after each scenario, success or failure, and you keep any gold or experience collected even if you fail a scenario and try again).

You are also exhausted if you are reduced to 0 health, except: if you still have cards in hand, you'll burn a random card from hand to dodge that killing blow and survive for another turn. Be warned: this reduces the number of rounds you have left until your deck runs out of cards, so you can't afford to do this too many times!

A few more powerful cards are burned whenever you play them, so you can only use them once per scenario (though if you select them for your turn but use a default move 2 / attack 2 instead of playing them, they are just discarded instead of burned, and you'll have another chance to use them after your next reshuffle).

You'll see periodic (optional) treasure around the world, ranging from gold dropped by enemies to mysterious chests. You'll only collect this treasure if you make an effort to end your turn on it, or use a card with the "loot nearby squares" action-- any treasure that's not collected by the end of the scenario is lost. (Thematically, imagine there are additional cowardly enemies lurking on the edge of each skirmish: once you defeat the last enemy in a scenario, they scoop up any remaining treasure and flee):

That summarizes the core gameplay. There are many additionl details you can probably learn as you play. However, if you want to know more now (or are coming back to this later after being confused about something in the game), read on...

More Detailed How-To-Play / Tips

Info Panels

The "enemy info" on the right side of the screen typically shows the action card each enemy type has drawn for the turn, but if you move the selection cursor over a specific enemy (which you can do during the "beginning of round inspect map" phase, or when actively playing an attack), you can see the remaining health of that specific enemy.

Also note that if you are selecting cards from your hand for the turn and can't remember the map layout or how close an enemy is, you can press "X" to review the map (this is also noted in the standard action prompt at the bottom of the screen).

Conditions and Buffs

The Wound condition can be applied by certain attack cards or modifiers. It causes the afflicted character to lose 1HP at the end of every round. A "heal" action removes the wound condition in addition to healing as normal.

The Stun condition causes the afflicted character to skip their next turn. This may happen during the current round, or next round (if stun is applied to a character that's already acted this round).

If you or an enemy have the Shield condition (either innately or from playing a card), all incoming attacks have their damage reduced by that amount. This does not apply to damage sources other than attacks...

Attack Modifier Cards

Whenever you attack, you draw a random "attack modifier card" that increases or decreases the damage. This deck begins the game with a balance of + and - modifiers, most of them "-1", "+0", or "+1":

As you level-up through the game, you'll be able to remove some of these modifiers and replace them with more powerful ones that increase the values or even add conditions to them, swaying randomness in your favor and making even your initial deck of action cards more powerful...

Message Log / Damage Animations

When you attack or are attacked, a red number indicating the actual damage dealt will briefly animate between attacker and target. If the number seems different than you expect, this may be because it includes any changes from attack modifier cards drawn and any Shield the target has-- the message log below the map gives you the full information. If the message log scrolls by too quickly, note that you can scroll back through it at the end of the turn to understand what happened.

XP / Leveling Up

You gain XP for winning scenarios, as well as for killing enemies and using burned cards, even if you fail the scenario. When you accrue enough to level up, you get to swap in one of two new cards to your deck, as well as upgrade your attack modifier deck.

Long Rest action

In the card selection screen, there is also a "REST" action. You generally don't need to use this, as whenever your hand runs out of cards, you automatically reshuffle your deck and burn a random card.

But this "long rest" action gives you the benefit of choosing which card to burn to ensure you redraw an important card you need for next turn, as well as providing a bit of healing and refreshing a few specific items.

Strategy Tips

This isn't comprehensive, but a few tips if you're finding this challenging:

  • Health is a precious resource: try to position yourself so that as few enemies as possible can hit you (since you can see what each enemy will be doing this round, if you move faster than them you may be able to end your turn just out of range of them, forcing them to waste their turn). Ranged attacks are also useful here.
  • Be cautious about using too many "burn on use" cards during the first half of a scenario-- they are powerful, but also reduce the size of your deck after the reshuffle, reducing the number of turns you have to win the scenario before you run out of cards.
  • When you select your two cards from hand for the round, the one you select first sets your initiative for the round (see the cues in the UI). Going faster than enemies is often useful, but depending on your positioning you can also strategically use slow initiatives to let enemies come to you, so you can hit them and then run out of range before the next round.
  • Each enemy type has their own group of behaviors: fast vs. slow initiative, melee vs. ranged attacks, high vs. low movement, and a few have unique more dangerous abilities. You can use knowledge of them over time to prioritize which ones to tackle first or to stay away from.
  • Enemies with shield reduce all your incoming attacks by that amount. Strategies against these can include high-value attacks, or other sources of damage (which bypass shield values): traps, pushing into objects, wounds.
  • It's possible to win the game with many different "builds" in terms of cards, upgrades, and items chosen, but some scenarios will be difficult if you remove too many of the move cards from your deck!

You can share your own strategy tips or ask for help here as well...

Notes for Gloomhaven players

Picohaven should feel conceptually familiar to you: there are many common mechanics, which leads to some similar tactical trade-offs.

However, there are a number of differences from the Gloomhaven game mechanics, some made in the interest of streamlining play (some choices are automated to reduce the number of user prompts), some made because I felt they led to better single-character gameplay or balance, and some made to simplify project scope / code size. As a Gloomhaven player you may come in with assumptions about mechanics for this game, so I'll list some main differences to be aware of:

  • Cards each have only one action rather than a "top" and "bottom", though you can still use cards as a default Move 2 or Attack 2 once each per turn. This combination does make it easier to have double-move or double-attack turns, but cards and level designs are balanced around this.
  • Stun and wound are the only conditions.
  • There is no advantage/disadvantage, curse, bless, or muddle (so there's no drawback to using ranged attacks on adjacent targets).
  • You still have an attack modifier deck, but enemies do not-- their damage is always what's shown on their action card for the turn. Also, your attack modifier deck's "critical miss" is a "/2" rather than a "*0" to slightly reduce variance.
  • All pushing attacks cause damage on collision with an obstacle or another enemy (inspired by a few Cragheart cards in Gloomhaven)-- the cards explain how they work in-game.
  • You will automatically burn a card to prevent fatal damage, but it is a random card from your hand (you cannot burn discarded cards to avoid damage).
  • You will automatically short rest when you drop below two cards in hand (and cannot choose to take damage to lose a different card).
  • You can choose to long rest, but must do it before you have fewer than two cards in hand (note: you can still long rest even if stunned)
  • All items are passively used-- they either provide a passive bonus, or automatically trigger on damage or some other condition (some are one-time use and some are refreshed on long rest).
  • When you open a door, that ends your move, but revealed enemies do not act until the next round.
  • There are no battle goals, enhancements, prosperity, reputation, new character class unlocks, and so on.
  • Enemy difficulty does not automatically scale with your level (that was less important as this is a simpler, more linear, single-character campaign)
  • The enemy movement AI is different, though it still follows a deterministic algorithm where enemies try to move into range and then attack, and can move through or around their allies as needed. One notable difference: enemies do not see traps and do not try to navigate around them, to make it somewhat easier to use traps to your advantage.

Despite these differences, many key concepts and strategies from the Gloomhaven family of board games are relevant, including:

  • Managing hand size, exhaustion, use of burn cards
  • Upgrading your action and attack modifier decks over time
  • Using tactical positioning and knowledge of enemy actions to avoid incoming damage
  • Strategic use of both fast and slow initiatives
  • Direct damage (traps, push) and wound vs. shielded enemies
  • Balancing the value of collecting loot for optional item upgrades vs. the risk of failing a scenario outright if you spend too much time doing that

Thanks & Source Code

  • To the small group of fans of PICOhaven 1 who left nice comments on it on the BBS or Reddit, such as "What an insane labor of love."
  • To @nephilim, xcw, and seppo for playtesting or useful feedback on early versions of the game, which led to various UI changes and some new gameplay features
  • To @gearfo and @hwd2002 who responded to my "call for remix / reinterpretations of PICOhaven 1 music". I ended up using a variant of @gearfo's composition as the music for PICOhaven 2 (I sadly ran out of space to include a major second theme song, as I ended up using 2/3 of the SFX memory to store binary game data...)
  • And to the entire PICO8 community (on the BBS, Reddit, and Discord)-- what a helpful, supportive group

Source Code + Development Documentation

The entire game is about 1800 lines of PICO-8 flavored Lua, plus the accompanying sprite, sound, and binary data (some data such as the story text is compressed and packed into unused nooks and crannies of the graphics and sound memory, for example)-- at one point I hit 8192/8192 tokens and 96% of the compressed size limit.

I had to aggressively minify the source code and strip all comments/whitespace (with the useful Shrinko-8 tool), but I plan to upload the original commented source code to: https://github.com/icegoat9/picohaven2. I'll probably wait until a month after release when I've had a chance to fix any bugs or make any updates that come up-- if you're interested in the source, feel free to remind me.

I also posted some light devlog-ish updates on Mastodon during development, but I'm still trying to figure out where to do that in the future-- I don't quite have the energy to keep up with mastodon, discord, the BBS, reddit, and twitter...

Release Log

  • Oct 31, v1.0a: release
  • Nov 8, v1.0b: fix an embarrassing crash bug that happens when you beat the final boss if you've never saved and reloaded the game (there was a 'how many times have you won the game?' variable I added late in development which only got initialized to 0 when loading a saved game, and in playtesting I always tested load/save during the campaign which masked it).
19


1

Yesss! So glad to see this. I hope to have some time to curl up with this new release this weekend.

Thank you for putting the time and effort into this sequel. If it's even half as good as the first PICOHaven, it'll be well worth a play.


Already obsessed with the Picohaven and now we have a sequel! Your games made me realize how much Gloomhaven is similar to the NDS game Advance Wars. Amazing work, sir! The one thing I miss is the capital letters, but that could just be me. The lower case trips me up when reading too much.


@Huwans Well thank you! Advance Wars is another one of my favorites from back in the day. Also, that's reasonable feedback about the font-- I did a small font survey of some people I know during development and preferences varied... I have a few tokens left so might be able to squeeze in a quick "turn off custom font" menu option since that's just a line of code or two, I'll take a look.


That pelt collecting sidequest is eating my lunch!


Heh. I added this cycle of grindable sidequests in during development, partly based on your feedback about PICOhaven 1 on the other thread--

But since enemy stats don't scale up as the player levels up (unlike the board game inspiration), I decided to make them fairly difficult for the player level you first unlock them at-- wouldn't want to make that cycle of extra xp+gold too easy... :)


Updated game cart, fixed crash bug with final boss in certain conditions

If you're reading this and downloaded the cart to play offline/on a handheld, you should download the new version of the cart (or if not, refresh your browser), some time before you get to the final boss (I won't spoil what that is here...). Progress is saved each time you return to "town" after a level, so you should be able to Continue from where you were.


Thanks @DavidSawyer, I beat my head against the resource limits wall for a bit but I'm fairly happy with what I was able to fit in. I'll be interested to hear how you like it as a game after you've had some time to play!

I'm also interested to get feedback on the overall difficulty balancing from anyone who's played it for a while (any input, @nephilim ?) to see if it's worth tweaking the base difficulty upward or downward in the future-- during earlier playtesting it felt like people were beating most scenarios on their first try so I bumped up the difficulty of several enemies and levels... but all of those playtesters had past experience with this type of game so I don't know if I shifted the baseline too far up. Hopefully the adjustable difficulty setting lets everyone configure their own challenge...


This version does seem considerably more difficult than the first game. Still enjoyable though!

It's good to hear that the side quests are deliberately hard because I was starting to wonder if I was missing something about the strategy. I don't see how it's even possible to complete that quest at my current advancement level – even ramping down to EASY mode, I still get killed while there are still several other units on the map. I was thinking, "Jeez, if I can't even beat the pelt-collecting side quest, I must not be nearly ready to move back into the main quest!"

Part of it might be the presentation. "Pelt collecting" doesn't sound, at first blush, that it would be a deadly, dangerous mission. People do that for a living, for instance, and presumably do that in the PicoHaven world, too. Maybe if it were called something like "Survive the Night!" or "The Feral Hunt", or call them something like "challenge quests" or something, it might set expectations better.


Thanks for the feedback, that's fair, I'll look at tweaking the naming / pre-level description text in the next release (and will probably also make the "Easier" setting scale down enemies a bit more-- it just scales enemy HP by some multiplier).

If you have a minute to share a Profile screenshot, I'm curious what level/XP/deck/items you're at, to check against when I hit it in playtesting (I also have a biased view of difficulty because I know every enemy's set of possible cards and initiatives, so I know ahead of time what they might do and when-- the HOWLing enemies are tricky unless you can eliminate one type of them early). A second side job / side quest should have unlocked at the same time, also challenging but in a different way.



[Please log in to post a comment]