[Open / Signup] One Room Round Robin 3 - Calling All Modders

Ask for help about creating mods and scripts for Grimrock 2 or share your tips, scripts, tools and assets with other modders here. Warning: forum contains spoilers!
minmay
Posts: 2770
Joined: Mon Sep 23, 2013 2:24 am

Re: [Open / Signup] One Room Round Robin 3 - Calling All Mod

Post by minmay »

Yep that's the latest version.
Grimrock 1 dungeon
Grimrock 2 resources
I no longer answer scripting questions in private messages. Please ask in a forum topic or this Discord server.
User avatar
AndakRainor
Posts: 674
Joined: Thu Nov 20, 2014 5:18 pm

Re: [Open / Signup] One Room Round Robin 3 - Calling All Mod

Post by AndakRainor »

minmay wrote:Weapons can still scale in other ways, like how you find better firearms as you progress in the mod. Otherwise it would be impossible to balance weapons with different cooldowns, or dual-wielding with non-dual-wielding, because those scale with stats at different rates too.
Ok, that also means firearms will be the worst choice for imported parties. (And/Or the best choice for level 1 parties...)
More generally, the lowest cooldown weapons will always win at high enough champions associated attributes, but I guess we can't do anything about that.
User avatar
Skuggasveinn
Posts: 561
Joined: Wed Sep 26, 2012 5:28 pm

Re: [Open / Signup] One Room Round Robin 3 - Calling All Mod

Post by Skuggasveinn »

ORRR3 - R040 is up on the dropbox.

Fixed some models, fixed that the Ivy climb doesn't check for dead or disabled party members.
Did not "fix" per say the weird teleporting thing going at one location since it seems to be a bug or at least misbehaving how stairs detect items. There are stairs at a lower elevation in this area and the party is standing directly above them, so every object that the party places in this square ends up at the stairs destination, this happens in all elevations above or below the stairs since the stairs object doesn't take elevation into account. (can be reproduced with ease inside a new dungeon).
So I redesigned the area so this won't be a problem. (party will never be in a position to place anything on that tile, I don't have the scripting skills to define a new stairs class that has the logic to take all into account.)

Best regards.
Skuggasveinn.
Link to all my LoG 2 assets on Nexus.
Link to all my LoG 1 assets on Nexus.
minmay
Posts: 2770
Joined: Mon Sep 23, 2013 2:24 am

Re: [Open / Signup] One Room Round Robin 3 - Calling All Mod

Post by minmay »

AndakRainor wrote:More generally, the lowest cooldown weapons will always win at high enough champions associated attributes, but I guess we can't do anything about that.
Exactly. Not to mention dual wielding and throwing.
Grimrock 1 dungeon
Grimrock 2 resources
I no longer answer scripting questions in private messages. Please ask in a forum topic or this Discord server.
minmay
Posts: 2770
Joined: Mon Sep 23, 2013 2:24 am

Re: [Open / Signup] One Room Round Robin 3 - Calling All Mod

Post by minmay »

I've been thinking more about solo (or duo, trio) characters and I don't think a straight XP modifier is going to work well. We all know that the experience costs for level 20+ are extreme but let me visualize just how weird the curve is even at lower levels. Here is a table of level requirements:

Code: Select all

Level 1:  0
Level 2:  1000           Δ 1000
Level 3:  3000           Δ 2000    ΔΔ 1000
Level 4:  6000           Δ 3000    ΔΔ 1000
Level 5:  10000          Δ 4000    ΔΔ 1000
Level 6:  15000          Δ 5000    ΔΔ 1000
Level 7:  21000          Δ 6000    ΔΔ 1000
Level 8:  28000          Δ 7000    ΔΔ 1000
Level 9:  36000          Δ 8000    ΔΔ 1000
Level 10: 45000          Δ 9000    ΔΔ 1000
Level 11: 55000          Δ 10000   ΔΔ 1000
Level 12: 75000          Δ 20000   ΔΔ 10000
Level 13: 100000         Δ 25000   ΔΔ 5000
Level 14: 150000         Δ 50000   ΔΔ 25000
Level 15: 200000         Δ 50000   ΔΔ 0
Level 16: 250000         Δ 50000   ΔΔ 0
Level 17: 300000         Δ 50000   ΔΔ 0
Level 18: 400000         Δ 100000  ΔΔ 50000
Level 19: 500000         Δ 100000  ΔΔ 0
Level 20: 1000000        Δ 500000  ΔΔ 400000
Level 21: 2000000        Δ 1000000 ΔΔ 500000
Level n:  1000000*(n-18) Δ 1000000 ΔΔ 0
Plotted:
ImageImageImage
This bizarre-looking second "derivative" demonstrates the problem. Before level 12, an exp_rate bonus is a somewhat smaller level bonus. (At 200 exp_rate, level 2 becomes a little under 3, level 4 becomes a little over 5, level 5 becomes a little under 7, level 7 becomes a little under 10; the +100% xp bonus is very roughly a +40% level bonus.) The curve of this bonus is a little weird, but only a little.
But as soon as we get to the point where the next level is 12, the value of exp_rate takes a sudden plunge, then it quickly happens again when the next level is 14, 18, 20, 21. You can straight up double incoming experience, and the advantage mostly vanishes when you reach level 20.
Furthermore, once you have a few skill points, the value of additional skill points drops sharply. The impact of the points getting a weapon skill to 5 (plus backstabbing), and the points to get your desired spells, is huge. The impact of the points you spend after that, tacking on a little extra damage or a little extra defense, is extremely small by comparison.
So you can give smaller-than-4 parties extra experience and extra skill points but it mainly helps them in the early game and has very little impact later. They will just hit their "soft cap" sooner - which is already lower than a full party's "soft cap" because the full party can use more attacks/spells at once due to having more cooldown slots.

Since we can draw over the builtin GUI, it's not very difficult to change the experience curve entirely. However that might be overkill and wouldn't change the skill point returns issue in any case. Perhaps level 19 or 20 being an effective cap is desirable.

In Grimrock 1's Toorum mode, sure, you got slightly more skill points and stats than a regular party, but the main things that made it not suck were 50% faster movement, 40% faster turns, and halved cooldowns. I think unique advantages like that are the only way to make solo/small parties feel good without totally overhauling the skill system. Of course an experience/level/skill point boost is better than nothing if you want to buff smaller parties.



UNRELATED: I just thought of a way to fix the custom "not enough energy" message: define a spell with a "valid" gesture that cannot actually be input by the player, like 121, and a manaCost of math.huge. When a champion tries to cast a spell pack spell with a variable energy cost, and they don't enough energy, return false from that onCastSpell hook but call champion:castSpell(121). Then you get the proper effects for casting a spell without enough energy.
Grimrock 1 dungeon
Grimrock 2 resources
I no longer answer scripting questions in private messages. Please ask in a forum topic or this Discord server.
User avatar
AndakRainor
Posts: 674
Joined: Thu Nov 20, 2014 5:18 pm

Re: [Open / Signup] One Room Round Robin 3 - Calling All Mod

Post by AndakRainor »

minmay wrote:Furthermore, once you have a few skill points, the value of additional skill points drops sharply. The impact of the points getting a weapon skill to 5 (plus backstabbing), and the points to get your desired spells, is huge. The impact of the points you spend after that, tacking on a little extra damage or a little extra defense, is extremely small by comparison.
So you can give smaller-than-4 parties extra experience and extra skill points but it mainly helps them in the early game and has very little impact later. They will just hit their "soft cap" sooner - which is already lower than a full party's "soft cap" because the full party can use more attacks/spells at once due to having more cooldown slots.
Also consider that a melee fighter who is also good with ranged weapons, spells and alchemy has more options to deal with specific fights. I don't know if we have fights like this in the mod, but melee can be dangerous in some situations for example (seen in many games!).

Another idea about this problem is to add some custom traits to the skill system (it has a lot of empty space...). Those traits could be designed with skills synergy in mind. For example, I have in my mod a trait at 3 fire magic skill points, granting a chance to cast a fireburst spell for free when attacking with a sword (and several similar traits in other skills). Maybe we could consider adding some things like that, it is easy to implement, not an overkill at all.
minmay wrote:Since we can draw over the builtin GUI, it's not very difficult to change the experience curve entirely. However that might be overkill and wouldn't change the skill point returns issue in any case. Perhaps level 19 or 20 being an effective cap is desirable.
That seems very complicated, and could feel weird with import champions option depending on the implementation. The simplest way I can think of for now would be a dynamic experience bonus for any party size, to smooth the curve.
minmay wrote:In Grimrock 1's Toorum mode, sure, you got slightly more skill points and stats than a regular party, but the main things that made it not suck were 50% faster movement, 40% faster turns, and halved cooldowns. I think unique advantages like that are the only way to make solo/small parties feel good without totally overhauling the skill system. Of course an experience/level/skill point boost is better than nothing if you want to buff smaller parties.
That could be fun, even in addition to the smoothed experience curve and new skills traits. Not very important note about it; Toorum is not faster because he is alone, but because he is Toorum :P (but who cares about that! You get it because the gods wanted it, that's the story :lol: )
Also, I am starting wondering if I could do something about the Osmosis spell for solo. It would be very cruel to keep it as it is currently, being the highest water magic spell. Any idea is welcome!
minmay wrote:UNRELATED: I just thought of a way to fix the custom "not enough energy" message: define a spell with a "valid" gesture that cannot actually be input by the player, like 121, and a manaCost of math.huge. When a champion tries to cast a spell pack spell with a variable energy cost, and they don't enough energy, return false from that onCastSpell hook but call champion:castSpell(121). Then you get the proper effects for casting a spell without enough energy.
I started working on the last shared files today (R040), your idea works well!
User avatar
Isaac
Posts: 3179
Joined: Fri Mar 02, 2012 10:02 pm

Re: [Open / Signup] One Room Round Robin 3 - Calling All Mod

Post by Isaac »

AndakRainor wrote: Toorum is not faster because he is alone, but because he is Toorum :P
Could be [is so]... But also, the LoG1 party are all chained at the hip to one another; and Toorum is not. ;)
SpoilerShow
Image
User avatar
AndakRainor
Posts: 674
Joined: Thu Nov 20, 2014 5:18 pm

Re: [Open / Signup] One Room Round Robin 3 - Calling All Mod

Post by AndakRainor »

Look at what Might has become; just a spell definition, a condition, and one array in spells_functions.script to store its data. Oh and now it reacts to attributes changes in one frame! Isn't it so much more beautiful ? :D

Code: Select all

defineCondition
{ name = "might",
  uiName = "Might",
  description = "Doubles strength, dexterity, vitality and willpower.",
  icon = 0,
  iconAtlas = "mod_assets/ext/spell_pack/conditions/might.tga",
  beneficial = true,
  harmful = false,
  tickInterval = 0,
  onStart = function(self, champion)
    local ordinal = champion:getOrdinal()
    for att,tab in pairs(spells_functions.script.might) do tab[ordinal] = champion:getCurrentStat(att) end
  end,
  onStop = function(self, champion)
    local ordinal = champion:getOrdinal()
    for att,tab in pairs(spells_functions.script.might) do tab[ordinal] = 0 end
  end,
  onRecomputeStats = function(self, champion)
    local ordinal = champion:getOrdinal()
    for att,tab in pairs(spells_functions.script.might) do champion:addStatModifier(att, tab[ordinal]) end
  end,
  onTick = function(self, champion)
    local ordinal = champion:getOrdinal()
    for att,tab in pairs(spells_functions.script.might) do tab[ordinal] = champion:getCurrentStat(att) - tab[ordinal] end
  end,
}
User avatar
AndakRainor
Posts: 674
Joined: Thu Nov 20, 2014 5:18 pm

Re: [Open / Signup] One Room Round Robin 3 - Calling All Mod

Post by AndakRainor »

Question about food: do you want an additional effect to one of the spells to reduce hunger, or not ? I know some of you don't like the limited food mechanic, that is why I ask...
User avatar
Isaac
Posts: 3179
Joined: Fri Mar 02, 2012 10:02 pm

Re: [Open / Signup] One Room Round Robin 3 - Calling All Mod

Post by Isaac »

I've seen a create food spell in dungeon crawlers. It doesn't need to spawn actual food items, and can just satiate the PCs.
Post Reply