Assuming you put Strive into /Applications/Games, run the following in Terminal:
chmod -R +x /Applications/Games/Strive-Conquest.app
sudo xattr -rd com.apple.quarantine /Applications/Games/Strive-Conquest.app
I love the new upgrade system! Fantastic addition!
Some thoughts after a couple playthroughs with it:
I think I figured it out!
TLDR: Effects (Buffs/Debuffs) seem to be breaking saves. (Ref: Version 0.3.1, MacOS 10.15.6)
DETAILS:
From my latest clean save (no edits/cheats):
1) Saved on Day 43 prior to heading out to dungeon
2) Cleared troubleshooting ("Wild Wolves") and quest dungeon ("The Distant Den") on Day 43
3) Looted Dungeon
4) Saved/Reloaded Game to work-around "Forget Dungeon" Bug on Day 44
5) "Forgot" Dungeon, Returned to Mansion
6) Upgraded: Rooms, Bedroom, and Tailor
7) Travelled to purchased dungeon ("The Red Cave") and saved game on Day 47
8) "Broken Combat" Bug encountered when attempting to start the dungeon. Quit the game to avoid being stuck in an automated loop for 5 minutes.
Now here's where it gets weird. The saves I took on Days 43 & 44, which worked previously and allowed combat afterwards, are now *also* broken retroactively somehow.
I looked at the logs, and noticed lots of errors tied to "eid" numbers. Looking at the save, they seemed associated with effects of various types ("Static","Temporary","Triggered", etc).
I removed everything with an EID from the main combat party in the save file, and it fixed the issue! So it's somehow tied to these EID effects.
Since most/all of these EID values are only referenced a single time in the save file. I searched the main program code, but it didn't turn up any references to them either. So I suspect these may be temporary buffs/debuffs applied to characters that are only stored in working memory. So long as you don't quit the app completely, they're preserved when you reload a save from the same application session.
It seems like the save file can accumulate a certain number of these before it breaks. I'm guessing there's a function that checks these effects before starting the player turn, and once it reaches a certain threshold, a safety mechanism in the Godot engine kicks in to prevent runaway recursion and kills that function. Some NPCs had at least 3 orphaned EIDs in each of their "Effect" arrays.
Since there's no reference to these EID objects in memory when you load right after opening the app, it seems like once orphaned, they won't ever get cleaned up; I'm guessing the cleanup process for EIDs is built into their object somehow -- maybe a countdown timer for some other killobject function/method?
(Edited to remove further speculation, since a fix may already have been committed for next release.)
Ran into a weird bug where I'm unable to fight back in combat at all. Whether I go to a dungeon, or a quest "looking for trouble" fight, the outcome is the same: the enemies attack forever without interruption until my party is wiped out.
Strangely, no "death" debuff is applied when the combat is over.
I've tried sending different party members, in case it's a bug tied to some specific class or stat, but it doesn't seem to matter.
Restarting/Reloading the game also had no effect.
This save used to work fine without any issues, but then this emerged around day 49 and MC is level 8-9.
Overall, I love the direction of the new UI! New classes, factor training, etc, all make character progression satisfying! Too many Other great things to call out individually, but overall, loving it!
Some critical observations/bugs, in no particular order:
- Selecting a travel destination is a bit clunky. Having to pick a destination then back out a level to pick travelers feels cumbersome.
- Awkward to deselect a social skill if you change your mind, or there are no valid targets. Would be nice to be able to simply click the same skill button again to unselect it (similar to how most other navigation UI elements work).
- Character Info/Details UI is also hard to get in and out of. Usually have to go to Gear to find the exit button. Also strange the “Confirm” button on the Details page doesn’t close the UI.
- The crafting menu sometimes only comes up partially, and requires choosing Smithing to proceed to actually choosing recipes to craft. (Seems like this can happen even if you don’t have a forge yet?)
- The crafting Return-on-investment is weak. (Thoughts on this below)
Suggestions/Discussion:
The resource system feels really flat right now. In my latest play through, I rushed the forest and mountains for wood/bones to create top-tier items before trying any dungeons out. Ended up OP, but also killed the fun. It would be nice if it mirrored the character progression curve, which is extremely cool right now.
Some thoughts:
- Limit Resource Types by Region. Ie. Farming is exclusive to the plains, lumber/hunting exclusive to the forest, stone/metals exclusive to the mountains, fishing exclusive to the ocean, and monster bits exclusive to the underground.
- Upgrades required to access higher tier resources. Ie. Forest initially only has wood, needs an upgrade to access magic wood; mountains initially only access stone, need an upgrade to access iron, etc. this would probably mean bringing the core resource regions closer to the plains?
- Building / Resource Upgrades require appropriately skilled followers. Ie upgrading forestry to get better wood requires at least one character with the Worker job, etc. Maybe only characters with the relevant skills can perform the upgrade job itself?
- Building / Resource Upgrades require “crafting exp” to level up. Ie. You need to create some amount of that crafting good, or harvest some amount if that resource, before the upgrade option appears.
- Update crafting ROI to match “real world” rules-of-thumb. Short versions:
Lowest quality goods are often worth less than their raw materials, since any random person could fashion a piece of junk. ;)
Each major quality tier improvement increases performance by approx 10%, and increases price by approx 10x. Example: Magic Wood should be around10x the price of Wood, and Iron Wood should be 100x the cost of Wood, roughly. (Current power scaling on items feels about right already)
Value-added markup is usually around 100% (or usually you charge 2x your costs). This applies at each stage of production: resource gatherers charge twice their collection costs per unit, manufacturers charge twice the raw material cost for wholesale, and merchants charge twice the wholesale cost to customers. End result is usually round 8x markup over original collection costs. Example: Raw Mithril Ore should be sold for roughly half the price you could sell a finished mithril sword. (This gets a bit weird when the only merchant in town is operating as both wholesaler and consumer retailer. Maybe each region lists different goods as wholesale vs retail? Local goods at wholesale prices, and imported goods at full retail (Ie 2x price)?)
Note: This would also add a large benefit to opening your own shop, and being able to charge markup (instead of paying it), but at the trade off of not having exact control of when goods sold. (Maybe a random total value of goods sell each period, and random items are selected from shop inventory?)
Here's the errors from the logs:
**ERROR**: Condition "err" is true. Returned: err At: modules/gdscript/gdscript.cpp:806:load_source_code() - Condition "err" is true. Returned: err **ERROR**: Cannot load source code from file 'res://assets/data/events//export_fighters_quest.gd'. At: modules/gdscript/gdscript.cpp:2244:load() - Condition "err != OK" is true. Returned: RES() **ERROR**: Failed loading resource: res://assets/data/events//export_fighters_quest.gd. At: core/io/resource_loader.cpp:278:_load() - Condition "found" is true. Returned: RES() **SCRIPT ERROR**: Attempt to call function 'new' in base 'null instance' on a null instance. At: res://files/scripts/globals.gd:663:_init() - Attempt to call function 'new' in base 'null instance' on a null instance. **ERROR**: Condition "_first != __null" is true. At: ./core/self_list.h:112:~List() - Condition "_first != __null" is true. **ERROR**: Condition "_first != __null" is true. At: ./core/self_list.h:112:~List() - Condition "_first != __null" is true. **WARNING**: ObjectDB Instances still exist! At: core/object.cpp:2071:cleanup() - ObjectDB Instances still exist! **ERROR**: Resources Still in use at Exit! At: core/resource.cpp:476:clear() - Resources Still in use at Exit!
Good idea, I'll try purging all of the application files and downloading again.
I found the error logs:
Godot Engine v3.2.1.stable.official - <a href="https://godotengine.org OpenGL">https://godotengine.org OpenGL</a> ES 2.0 Renderer: Intel(R) HD Graphics 6000 Registered camera FaceTime HD Camera with id 1 position 0 at index 0 **ERROR**: Condition "err" is true. Returned: err At: modules/gdscript/gdscript.cpp:806:load_source_code() - Condition "err" is true. Returned: err **ERROR**: Cannot load source code from file 'res://assets/data/events//export_fighters_quest.gd'. At: modules/gdscript/gdscript.cpp:2244:load() - Condition "err != OK" is true. Returned: RES() **ERROR**: Failed loading resource: res://assets/data/events//export_fighters_quest.gd. At: core/io/resource_loader.cpp:278:_load() - Condition "found" is true. Returned: RES() **SCRIPT ERROR**: Attempt to call function 'new' in base 'null instance' on a null instance. At: res://files/scripts/globals.gd:663:_init() - Attempt to call function 'new' in base 'null instance' on a null instance. **ERROR**: Condition "_first != __null" is true. At: ./core/self_list.h:112:~List() - Condition "_first != __null" is true. **ERROR**: Condition "_first != __null" is true. At: ./core/self_list.h:112:~List() - Condition "_first != __null" is true. **WARNING**: ObjectDB Instances still exist! At: core/object.cpp:2071:cleanup() - ObjectDB Instances still exist! **ERROR**: Resources Still in use at Exit! At: core/resource.cpp:476:clear() - Resources Still in use at Exit!
Update: Removing all files and reinstalling 0.2.0d did not fix it. :(
Starting with version 0.2.0, the text content in the UI has stopped rendering properly -- it looks like it's only displaying references:
The game itself still appears "playable", but without the text rendering, it's a little hard to know what's going on. ;)
Prior versions worked fine.
Tested on MacOS version 10.15.4 (ie latest version).