Holder of Place
Find your followers in the darkness and slay the dragon consuming the world.
In a long dead kingdom, a young dragon has unleashed a primordial gloom that swallows anything it touches. Your quarry lies now in the heart of the kingdom; Can you endure the monsters that lurk and halt the spread of the dark?
Gather your companions. Hold tight your faith. Acquire new strengths and venture into the endless night.
- Fast paced auto-battler gameplay
- Recruit from 70+ unique followers and trinkets
- Explore the ruins of a dark science-fantasy world
- More features and updates yet to come
If you encounter any bugs or have any feedback, please post it in the comments!
Updated | 7 days ago |
Status | In development |
Platforms | HTML5, Windows |
Rating | Rated 4.9 out of 5 stars (61 total ratings) |
Authors | Zitta, VM, Jamie Zhang |
Genre | Card Game, Strategy |
Made with | Unity |
Tags | Atmospheric, autobattler, Fantasy, Indie, Mouse only, Roguelike, Sci-fi, Singleplayer |
Download
Download
HolderOfPlace_Win_V14.5.zip 132 MB
Development log
- December Update7 days ago
- Endless Mode Hotfix27 days ago
- Endless Mode Update36 days ago
- Notes on "followers attacking simultaneously" bug44 days ago
- Balance Patch & Future Plans!61 days ago
- Post-launch Hotfix!73 days ago
Comments
Log in with itch.io to leave a comment.
i would love if this game haved a version for mobile :)
Me: this build is pretty strong I'll probably get to the next hunt
The post dragon Maze on his way to destroy my build.
Found a bug:
Sculptur didn't summon any scuptures for some reason. I don't quite remember the circumstances, but I had no other supporters when I bought it, and I had an Artificer rerolled to trigger adjacent follower start-of-combat effeccts twice.
Edit: I've disabled it again. There was no obvious answer, but I've rerolled a combat trait again, so that might be it no matter the outcome.
Refiner doesn’t activate stingers ability when it does damage to it. Is this intentional?
At later levels even though the monsters have > 10k helath the moment it take any damage it reverts to 9999. no sure if that is intended
Huh that's weird...I'll investigate
to be fair my attack is also limited to 9999, so it is impossible to beat pass 200 if my attack is capped.
Speculation: what is the cultist follower a cultist of? It's not a cultist of the dragon, otherwise they wouldn't join us, so are they a cultist to the same thing the supplicants and emmisary's are, but then why doesn't the cultist have the pink coloring?
Bug report: Artificer does not work with Stranger, it plays the animation but does not apply the buff
Ah that could be the case; I'll investigate
forgot to mention I replaced my artifacer with stranger and it played the animation but not the buff
It seems a support follower would block the dancer ability.
Yes. That's intended behavior: support follower are also followers, so they'll still be triggered by dancer to attack while they can't.
If you copy the dancer ability to the support follower, it should no longer block your dancer chain.
(At least in a previous version. Haven't tested it in the most recent version.)
Here are a few confusing descriptions I stumbled upon.
I think I noticed a few more, but I forgot to take notes …
(a) "after surviving combat"
(b) stat potions in shop
When selecting the item, next to the item's description the small description for "additional trait" is shown.
This can be confusing for beginners since it can be interpreted as "this potion will take/replace the additional trait slot" which would be really bad in most cases.
(c) swarming aspect
The trait's description is different from the description of the shop item.
Thoughts:
Bug regarding "At the start of combat, Summon another identical hound" on non-hounds (Stranger, fractured aspect)
Tested example: Hound + Swarming Stranger (with hound trait)
Thoughts:
Great game so far!
Here are a few suggestions. There is nothing really original, but perhaps it still helps.
QoL features
These are aimed mainly to make longer runs as well as finding/reporting/debugging bugs faster, easier and more fun.
1. Speedup: Options to skip animations (via buttons)
2. Replay last combat (during normal run)
3a. Replay mode (selected from main menu)
3b. Sandbox mode (selected from main menu)
4. Display more information during combat
5. Preview of modified stats/abilities in shop
6a. Visual stacking of (almost) identical followers
6b. Rearrange visual space
7. Visual indicator for state of "once per battle" abilities
Man, this game is so elegantly designed. The only thing I ended up wanting as a player was a re-roll option in the campsite. Can definitely see how that would be difficult to implement though. Amazing work!
How do the algorithm figure out what card to spawn in the shop? Is there a way to manipulate the spawn rates somehow.
That's a secret. But generally it'll choose followers that's closer to your current faith
just a tip:each follower only appear once you have atleast the same amount as the cost of the follower (like beekepeer that is 10 cost) so you could technically pay something to reduce the amount of faith you have to manipulate the spawn rate it wont work really well with 14/18 cost followers.(its what i think,and it work really well)
BUG: Adaptive Familiar next to another Adaptive Familiar doesn’t get stats, when the first adaptive familiar gets stats from an adjacent follower.
Yes. Sadly familiar will not trigger other familiars. Technical constraint.
That sounds interesting. Can you roughly explain the cause of that constraint, as I’m also interested in developing card game rogue-likes.
How familiar works is that whenever a status (e.g. a buff that gives +1/+1) is given to an adjacent follower, a hidden status on the said follower will then transfer a copy of that status to familiar. However, the status being transfered can't remember what's going on before the transfer. Therefore, if we let a status being able to be transfered multiple time, it'll result in an infinite loop of 2 familiars transferring to same status to each other (since the status can't remember that the prior incarnation of itself has already being transfered to one of the familiar). So we just make it so that a transfered status can't be transfered again.
I’ve not even considered the possibility of an infinite loop. Every follower could remember from whom he’s gotten stats within “A stat propagation iteration” and not gain stats, when he has already gotten stats from that follower this iteration. That would in my example lead to the following:
Yes, except that that's not how status works in this game at all. To get into more details, almost all interactions in the game is done through "signals", and each follower will have a bunch of "status" to interact with those signals. Each signal is consisting of a signal type, whatever object reference required from that signal type, and a bunch of float variable. for example, a signal can be something like "deal 3 damage" or "gain +1/+1"; "deal 3 damage" signal will have the signal type of "damage" with variable "damage = 3"; "gain +1/+1" signal will have the signal type of "create status", with a reference to a generic stat status, and variable "AddDamage = 1; AddLife = 1". Each status can be more complicated; some status will passively modify a follower's stats or have interaction with specific signals, like the status "this follower will gain double stats"; How signal and status works in action is: when a follower receive the "gain +1/+1" signal, the signal will inform all status on that follower of the signal's existence, and if the follower has the "this follower will gain double stats" status, the status will then modify the "AddDamage = 1; AddLife = 1" variables of the signal to "AddDamage = 2; AddLife = 2"; after that, the signal will execute its proper function to add a new generic stat status to the follower, and modify the new status base on the AddDamage and AddLife variables; maybe the follower also have a status that says "deal 3 random damage on stats gain" status, in which case, when the status is aware of the "gain +1/+1" signal, it will send another signal "deal 3 random damage" to the same follower, which will then go through this entire process again.
How familiar works is that it'll create a special "adjacent stat status link" status to all followers before the start of combat. This adjacent stat status link is a status that, whenever the source follower receives a "create status" signal, the status will check whether the "create status" signal is creating a stat status, whether the "create status" signal can be interacted by status (whether it has "IgnoreTrigger = 1"), whether the source follower is adjacent to the follower that created the status link (the caster, which, in this case, should be a familiar), and whether the caster is alive. If all conditions are met, the status link will then force another copy of the status are to be created by "create status" signal to the caster. And here's the problem. If the status link then create a new "create status" signal and send it to the caster, then that new signal will also go through the same process. That means that if 2 familiars each have created a status link on each other, then familiar 1 will gain a stat status and send "create status" signal to familiar 2, which will go through the same process and end up sending a copy of the same "create status" signal to familiar 1. To avoid this, the "create status" signal sent from familiar 1 to familiar 2 will need to include the information that "this signal is created by a status link from familiar 1, and therefore should not trigger any other status link that are created by familiar 1", which is really troublesome to implement because signals are coded to only carry float variables and not extra reference to objects. What we end up doing is to just mark the new create status signal with "IgnoreTrigger", making it unable to interact with other status link status.
I guess this is just a really complicated way to say that yes, such a propagation iteration does make sense in a vacuum, but it doesn't really work with the process of how all signals and status are processed in this game. To make familiar being able to trigger other familiar, we'll need to change how signal or status are coded, which is just a bit over-scoped at the moment.
There's a couple of bugs with the Mirroring Raven (deal 4 random damage when a follower gains faith):
I don't know if these interactions may be intended, but they should probably all work given they're nothing special. Except the "gain 1 more faith" unit (after all one might argue it just increases the faith gain) but I think that one especially should work since it's pretty bad.
Another notion on endless mode: I'm not sure how good it is to have random Doppelgangers, Barricades, Firework Masters, and Black Knights in there. They're hard counters to certain strategies (e.g. hyper-buffing a single unit) which leads to fewer strategies being viable there, exactly the reason why you hesitated implementing endless in the first place. I'd rather see enemy units with a lot of stats in the first place, and from there focus on softer effects like multiple attacks, revives, or not taking more than 25% of their HP in one hit.
These raven interactions are all intended. How it works is that everything that happened simultaneously are considered the same effect. Therefore initiate + emissary will only proc raven once, while Initiate + obelisk will proc raven twice. Huntress and lightkeeper follows the same rule. I made it this way so that trigger effects will be easier to balance and for player to predict, but I guess if this rule turns out to be unintuitive for too many people, the alternative will be to have them based on numeric value (like deal 2 random damage for each point of faith gained)
I agree with the comments on endless mode. My intention is not to just brick some builds completely, but rather that player will need to identify and mitigate the weakness of their build rather than keep using the same strategy. It is probably a good idea to have some endless mode exclusive mobs with weaker version of those hunt mechanics.
Especially with Emissary, that interaction is actually not literal to the wording. As Emissary says "whenever faith is gained by another follower, gain 1 faith", which suggests that the Emissary is the one gaining faith (and thus should trigger Raven again). So as you've intended, the Emissary's wording should change to "when another follower gains faith, that amount is increased by 1". Although personally I'd recommend Emissary to be its own instance and trigger Raven an extra time since it's sort of a really subpar unit as long as Supplicant isn't nerfed and also doesn't scale well in general.
Overall though, I'd probably carefully recommend to make separate instances their own triggers. As it stands, triggers are unintuitive and also don't prevent abuse, as one effect still works while just one or two others don't. It's just a knowledge check, plus a bit more RNG involved.
On top of that the units in question don't really scale as well. They are harder to scale multiplicatively than just a stat-based strategy and they don't scale at all with stats gained inbetween rounds. Compare that to an Adaptive Familiar next to another Adaptive unit together with some permabuffs and you can easily gain +8+8 per round or more.
Ultimately, as far as balancing concerns go, I think you might actually be able to achieve the opposite with some clever wording. In permitting multiple triggers by default, you can then easily nerf overtuned units by making those triggers happen only "once per attack", or instead of being two separate effects, you can make the second effect increase the value of the first one, etc.
On endless, I also just noticed another soft-nerf option, which would be to put most of the special units in one of the first two spots so countered builds have the chance to kill them quickly. Except the Barricade, which should obviously be further towards the end.
Familiar trait does not triggered when another Familiar stats got boosted, is that intended or a bug?
Mostly technical constraint, but maybe also balance (?)
I got the card to apply the trait of the next recruited follower and then recruited the Draggon, but their trait was not applied to the fractured supplicant.
Yes. Unfortunately dragoon's trait don't work with fracturing due to how traits are coded. Essentially, dragoon will change their intrinsic trait into the first aspect their given, so their original intrinsic trait can't be an additional trait itself.
Sculter only summon 1 sculpture when i have 3 support (include him)
yes. Unfortunately the original sculptor is just too op and require too little investment. Now sculptor'll always summon 1 sculpture but it'll have more stats with more support; and we added beekeeper for the mass summon archetype.
i have a ideia for sculptor:instead of making the summon gain +1/+3 for every support,make him summon everytime a follower dies with a 0/5 sculpture(0/+2 for each support)that only works for the first 3 killed followers
Hmmm. I feel like that is probably too complicated as a single trait since it'll need to have a cap. There's probably some design space for summon on friendly death tho...
adjucator first attack didnt attacked the last follower instead just attacked on the front(dont know it it supossed the first attack to be in the front or is just a bug)
yep that's a bug
after 160, there is no shop and all encounters got was 2 veriants of firework master.
201 is drakknight but i can't pass it without crashing the game lol.
I already loved the other prototype, I couldn't believe I would like this one so much more, but here I am, putting hours and hours on it. One of my favourite card games (those are cards, right?), and my favourite auto battler for sure.
I just wish I could activate x4 / x8 speed, because I'd really like to just test a huge amount of comps and strategies in less time (the beginning of the game, and the "travels" between depths feel a little sluggish).
yeah game speed is way too slow still.
I'm trying to make a absurd Hound build that I'll call Bring Dudes.
Prospector Obelisk
Vanguard Hound
Mirroring Hound
HellHound Hound
Mirroring Hound
Incarnator
Adaptive whatever that dude name is, that gets 1+/2+ for every dead unit (2+ Artificer'd)
Familiar Crow
Physically probable, but statistically impossible.
Although it would be nice to have a like challenge run where you can build multiple parts of your team. Instead of just leaving after you buy one item.
i realy appreciate that such good game is free and playable in the browser
Im suprised how well this game is made because there is so much good strats and game is very replayable
i have just a tiny suggetion:make a list of what followers/aspects you have encoutered so far through the playthroughs.
it would help remember what followers/aspects are in the game.
So, lore speculation, what are we, the player? The "core health" mechanic is rather esoteric, and the fact that we can't fight is also strange. plus, the fact all of our followers revive on death after each excision, even though the only other way to do that is with a Incarnator and even that can't fully restore someones health. and also I should mention that our followers are extremely loyal and don't seem to mind being killed or replaced. none of it made sense of me, until I remebered that the Adjudicator of the Hunt called us a "traitor". So, basically, my theory is that we are a boss monster that enthralls other followers, like the Fireworks Master or the False Sun, and we have abadoned the dragon to maraude across these wastes. Maybe we're like a "Core of False Hope".
on a unrelated note, It would be cool if there was a small random chance that instead of the normal encounter you'd fight your team from a previous run at that depth, with a "core" at the back that has zero attack and health equal to your core health from the last run.
I finally made the ultimate build with scaling and stupid amounts of damage. The number is too big and it crashed. Just a suggestion but i dont think crow needs to display more than 100 arrows, just cut off the loop after 100 count.
Nice one :).
tried the desktop version instead of the web version, it crashed. Will be waiting for the update =).
how is this even posible? I cant imagine build that have that much stats
I got to lvl 180, then manually exited the game (with still 3 core health remaining and strength to do another cca 10 levels I think). Combats got quite lengthy:
- Although Crow is much faster than in previous versions, it still took few minutes to resolve attack 5k.
- Since lvl cca 160, enemies stopped to scale exponentially...why?
- Also shops stopped appearing after lvl cca 160...I was still looking for one specific follower :).
Except the last lengthy levels, it was very enjoyable run :).
Appreciate the report! That's a lot of things going wrong and I have no idea why any of them are happening...but also I'm kinda surprised the game didn't just explode at that depth.
2 core health(from 50-106)
vanguard speaker(i will explain if asked)
mirroring speaker
seeking obelisk
mirroring beekeeper
incubating hound
charging reaper(75/78)
charging familiar(102/103)
seeking incarnator(wanted to put mirroring aspect into this)
;lost on depth 106 by hobgoblin,this first was gonna be a faith build but after it was leaning towards a summon build turning into a mix of faith/summon build (only got incarnator on deapth 90)
there where sometimes though where hound was incubating more than it should when near obelisk it was making 6 summons(4 tentancles and 2 hounds)but sometimes it would spawn a "extra" tentacle for some reason.
Thanks for at great game, and great update with endless mode :)
I experienced that the game just stopped at lvl 122. I had a summon heavy build but it seemed to have worked fine on other floors and I don's see anything particular that happened to have triggered a complete freeze of the game (played it just in the browser).
The game was just frozen at this point and more attacks happened. It was still possible to click toggle buttons (2x speed, and pause, but they did not do anything).
This was the comp, The first dog, was adapted with the bee keeper, the gate with summon 1/1 copy, and the last dog adapted with trigger all on death effects. (the remainder were just double stats)
If I remember correctly the time it froze it was only going through the first revive cycle, and in previous battles it had managed at least two. Of course it was slow looping trough all the dead bees at time, but this time it just completely stopped attacking.
Noted; appreciated the reported. Yeah there is possibly a bug related to having too many followers created and destroyed throughout a run, but I have yet to identify it...
got to 71 depth without Incarnator. I think there should be a no-incarnator infinite challenge
Hopefully reliquary will be able to fulfill the role of this kind of challenges...
just barelly did better with a 73.
why my mirroring familiar only get one of the stat buffs?
Yes. Currently familiar can't trigger each other. It's mostly a technical constraint.
just a ideia for a aspect:defensive aspect take -1 damage from all sources of damage(cost:10)
ideia for enemys:every depth has a chance to have a enemy with a random trait.
just a question do you pretend to put other languages or just stick with as it is?
my summon build: (depth:94) from left to right
mirroring flagbearer;
mirroring beekeeper(2/5);
incubating hound(1/8);
leading hound;
adaptive familar;
adaptive reclaimer;
and two incarnator; :) (forgot to printi)
i losed cuz mazed appeared and shuffled my troops
just one question:there was a moment(other run) where hound was supposed to gain stat from the flabearer but it gained nothing was it caused it losed -2 attack from other troop?
Yes. Chaser can lower someone's attack damage to below 0.
Hi, I got some additional feedback:
- When I have Aspiring Prospector, its attack boost at the start of the combat doesn't increase attack of non-adjacent Familiars - but Prospector should be adjacent to all, so he should boost all Familiars I think.
- When I have a Crow with high attack (4300, see screenshot), random damage dealing becomes extremely slow (like 2-3 arrows / second), and the game is unplayable. I suggest changing the mechanics of random damage dealing, for example like this: There can be maximum of 30 (or choose other quantity) arrows from one source. Damage of these arrows will be be approximately [Attack/30] (their sum will be Crow attack). For example if Crow attack is 40, first 10 arrows will do 2 damage and next 20 arrows will do 1 damage. If attack is 300, there will be 30 arrows with 10 damage. For attack <= 30 nothing changes.
Edit: With this change there can be an imbalance with that enemy which takes only one damage at a time - crow won't be so effective against it.
yeah i did a run with crown too(300 dmg) and it takes a while even in low amount of damages worse when with the follower that let the next follower attack in its place.
Very cool autobattler