1. AI Roguelite
  2. News

AI Roguelite News

Level scaling + some fixes

[h2]Level Scaling[/h2]

Implemented level scaling, which is configurable when starting new games. When you enter a new area, the NPCs and enemies which spawn are capped to approximately X levels higher or lower than you, where X is the configurable “level difference cap”. As well, events and effects which would’ve used the area level are now calculated using the level-scaling-adjusted area level.

It is not retroactive to older saves. If you want to manually edit your old save to use this feature: First load the game and save it again, which triggers saving the default values for the new fields. Then go into my_save.txt and edit both instances of “lvlDiffCap” to the desired number greater than or equal to 0 (the lower the number, the more intense the level scaling).

[h2]General Improvements[/h2]
  • Removed quest minimum level requirement because it doesn’t make sense with Locations V2. This is just a stopgap measure until a more comprehensive quest overhaul is implemented in the future.
  • Fixed bug where http calls weren’t parallelized as well as they could’ve been. The speeds of Sapphire and Silver cloud gen are now significantly improved.
  • Image gen: Player’s image is now generated before everything else.
  • Edit region name/description: Right click a region in the map to edit its name or description.
  • Fixed Wombo image gen issue which would happen about 0.1% to 20% of the time depending on your computer, where the generated image wouldn’t appear in the game.
  • Improved display of saves in loading menu (includes player name and level scaling amount, if available).
  • Undo point is now added when creating one’s own recipe

Some fixes

  • Fixed Generic exception when venturing outside region from a non-top-level location
  • Hopefully-probably fixed an issue affecting only international users with numbering systems that use a comma as a decimal. New saves should be fixed now. Unfortunately, the fix is not retroactive and the old affected saves can't be saved. Sorry for the inconvenience and I will try to prevent similar issues from happening again.
  • Fixed map bug for mouse dragging speed when on non-1080p resolutions
  • Tooltip now avoids displaying images in exploration view if using "Focused" mode where images are already big
  • Added better warning messages about using deprecated options. Chat/instruct style is also assumed/mandatory when using Kobold horde, Oobabooga/OpenAI API, and Kobold API.
  • Fixed squashed player portrait in inventory view
  • UI improvement: Text input finally auto-focuses now if selecting an NPC to talk to via dropdown or the "Talk" option.
  • Changed "Redo image" menu for exploration image to only pop up when right clicking to avoid misclicks.

Locations V2

When this game first launched in early 2022, the locations system was designed to work well with the technology available at the time. But how times have since changed. The ability of today’s LLMs to accurately follow instructions, rather than just completing text naively, has paved the way for a more immersive way to generate the game universe.

Under the new locations mechanic, the universe’s major locations are generated from the start of the game. It also uses the AI to determine where a new location should go, if one is encountered during the game.

Your map is now an actual 2D map rather than a tree view. On a high level, you will see regions, which denote the major areas of the world. Within each region lies multiple locations. As long as a location is within range of your walking distance, you may visit it or any of its sublocations. Additionally, you may choose to explore any point of empty space, which will turn it into a new location in that region. You can also explore beyond the known regions to spawn more regions.

To give a better sense of space and simulate long journies, traveling somewhere beyond your current top-level location now triggers a story turn.

If you wish to explore more of any particular location, click the blue question mark to spawn additional sublocations.

[h3]Misc:[/h3]

  • Fixed issue affecting all cloud services where randomly about 5-10% of requests would get dropped
  • Added cheat code: “freemove 1” (turn it off with "freemove 0" or by reloading the save). This bypasses the walking distance requirement as well as the story turn when traveling via the map.
  • Fixed farming when using NovelAI

2 followers + NPC health bars

[h2]Main[/h2]
  • You may now have up to 2 followers
  • NPCs and followers now have health bars and can be healed or injured

[h2]Misc[/h2]
  • Improved SummaryCeption defaults across the board, to raise context window and improve the amount of story the LLM can remember. Increased defaults are more pronounced for sapphire/silver subscribers due to the increased token limit that can be worked with.
  • NPC deduping: When a new character matches the name of an existing one from another location, they are teleported in from that location instead of created anew
  • Reduced chance of item and new character false positive via a tweak to the event check prompting technique
  • "[character] has died" is now added to the story if an NPC dies, to encourage the AI not to continue as if they were alive in case it was not apparent from the story
  • Current enemy learned name: You can now also learn the name of the current enemy
  • Former name in parentheses: For some prompts, in which character names are included but character descriptions aren't, the former description prior to the learned name will be included so the LLM has some idea of what they are
  • Fixed follower bug: Fixed at least some cases of follower reaching a weird state where it was still in your follower UI but no longer actually a follower. Please report the bug if it keeps happening
  • Steam cloud saves: Steam cloud saves should now be enabled by default. They can be disabled via Steam

Sapphire Overhaul, Player name/pronouns, and more

[h2]Sapphire overhaul[/h2]

[h3]New model[/h3]
Sapphire users have all been upgraded to Gemini due to its superior storytelling abilities. Compared to ChatGPT, I feel it has more depth, better plot development, and more realistic character responses. It was so good that for the first time in my life I felt emotionally invested in the characters’ outcomes.

For non-storytelling (event checks, entity generation etc), it uses a combination of Gemini or ChatGPT depending on which model performed better during testing.

In case some are wondering about the future of non-subscribing users, note that this technology improves rapidly and becomes cheaper over time. For example, today’s Free Cloud is actually almost as good as Sapphire when it first launched (apart from the speed).

[h3]New options[/h3]
The Sapphire model now has two modes. Default for more creative and realistic plot development (with auto NSFW fallback if the model refused to generate), and NSFW-friendly if you want to have more control and literal interpretation of your actions.

[h2]Prompt overhauls[/h2]
Several prompts have been revised to improve storytelling and event checks across all models. The biggest difference is you may notice a reduced incidence of story turns which end with your action without describing what happens next.

[h2]Configurable generated length[/h2]
The length of generated text is now moddable and model-dependent, under the model-config directory (e.g. “2-3 sentences” or “couple paragraphs”). So far only Default vs Gemini are supported (Gemini obeys the length recommendation more strictly). Please note there's still a token limit on the output per turn, but this phrase can influence how soon into the generated text things start "happening", as well as the probability of a plot twist.

[h2]Player name and pronouns[/h2]
You may now optionally specify your name and pronouns, when making a new game. The story prompt will take them into account.

[h2]NPC pronouns[/h2]
I finally prompt engineered the LLM’s to produce descriptions of NPCs that include gendered pronouns “he” or “she”, rather than describing every single person as “they”. Fun fact: I thought this task would take 5 minutes, but it actually took almost a whole day.

[h2]Talk to enemy, Charisma revision[/h2]
Due to popular abhorrence of talking to people “sheepishly” and “awkwardly” (as well as my own annoyance at my own mechanic), I’ve raised the minimum roll outcome of talking to NPCs to minor success. This means no more “awkwardly” talking to NPCs (unless of course you’ve enabled crit failures for simple tasks in the option menu).

At the same time, you are now allowed to talk to the current enemy you're facing. When talking to an enemy you have no such “minimum roll outcome” allowance, and get stricter punishments when you fail, which means Charisma is still an important stat.

[h2]Cheat codes[/h2]
The console view (opened via ~) now includes a text input. The supported cheat codes are:
  • reg - Restore all health and survival bars
  • lvl - Gain 1 level
  • item [item name] - Gives you an item with that name with rarity based on the default loot probability table
  • item[number 1-5] [item name] - Gives you an item of that name, with the number dictating the rarity level, 1 being Common and 5 being Legendary. NOTE: No space between item and the number. Example usage: item2 Longsword
  • gold [number] - Gives you that amount of gold
  • abil [ability name] - Grants you a learned ability with that name
  • roll [a number 0 to 3] - Sets an override for all roll checks at the specified number, with 0 being critical failure and 3 being critical success. This is reset when you reload the save or restart the game.

[h2]Improvement for open-ended turns[/h2]
Instead of tacking on your text as the verbatim part of the story, open-ended now allows you to instruct the LLM in a free-form manner. This makes for a better gaming experience because it doesn’t require you to be a great writer to achieve great outcomes.

[h2]Misc[/h2]
  • The game now makes a backup save before saving, in case the save file becomes corrupted due to a crash
  • Charm logic (tweaks inspired by a gripping story by Gemini in which a friend became possessed):
    • If an enemy was defeated, charmed, and
    • not* injured, it’s considered charmed instead of defeated
    • If an enemy has any NPC history or history summary, charm bypasses its plot armor
  • Fixed chatgpt too tolerant of item similarity