So, just to introduce myself really quick, I downloaded this from the Ubuntu software center this morning while looking for something fun to play. I know little about programming (I've dabbled in Python), but I do know what makes a game fun for me. That is, of course, the operative part - FOR ME. I don't intend the following critique of game mechanics to represent some sort of mandate.
Playtest of Flare:
#1, XP Critique
I like the basic XP levelling formula: NEW=OLD+LVL^2*100, but it seems like the XP gain formula should be XP=MONLEVEL^2
Problem is that levelling gets REALLY sluggish VERY fast. I expected that monsters would give you XP=MONLVL^2, but it's XP=MONLEVEL. This means that to get from Level 1 to Level 2, you need to kill 100 monster of your own level. To get from 2 to 3, you need to kill 200 monsters of your own level. From 3-4, it's 400 monsters of your own level. This creates a really scary, frustrating grind. I don't know how to change the XP formula, so I went ahead and squared all the levels by hand (in gedit), and modified all the random enemy groups in the map files to match. This made the levelling way more satisfactory (I always need to kill 100 enemies of my own level to gain one level), while providing decent rewards for killing above my level, and diminishing returns on low-level monsters. So far I think the only thing that this unbalances is the minotaur, who should probably be brought from Level 8 down to Level 6.
Obviously, it'd be way easier to just change the equation at the root of things.
#2, Bow Critique
I think I'd like to see bows moved to the main hand instead of off-hand. I tried doing this manually in the items.txt file, but found out that bows are completely broken when put into the main hand. I imagine this is much harder to change. It'd mean that one could use a bow and a shield at the same time, but one would no longer be able to dual-wield bows/wands or bows/swords. Not sure what people would rather see.
#3, Sword critique.
The damage on swords is almost identical to that of bows. If the damage is the same, but bows can be long range, it seems pointless to ever use a sword. Maybe multiplying all sword damage x1.5 or x2 would be appropriate? I'm about to edit the items file to do x2 and see if that's overkill.
Just some thoughts from a python n00b and veteran gamer.
I might even go for x2 on the low end of sword damage, x1.5 on the high end, so the basic dagger would be increased from 2-6 damage up to 4-9. Straight-up double damage is feeling a little overkill.
makrohn, I think that some of your ideas could definitely help balance. Right now I don't think we're terribly concerned about balance, since Flare is still basically a demo, but I think Clint is open to ideas.
As far as the XP equations are concerned, those would need to be changed in the source code, not the data. With the amount of content there is, really Flare is a game for up to level 8 or so. Anything past that is certainly a terrible grind.
As far as bows are concerned, I think the original Flare concept actually had additional items called bowshields and mageswords or something like that, so you could get all the benefits simultaneously. I'm pretty sure that idea was abandoned in favor of what we have today.
As far as melee damage is concerned, with those balance changes you made, you could create a new mod that overrides some of the items in items.txt and post it here for other people to try. Clint has said that if a mod is really well made, he'd probably merge it in. If you'd like help making a mod, I'd be happy to give some tips.
So I ended up just modifying the original items.txt file - but I could conceivably create my own file in /usr/share/games/flare/mods/makrohn/items.txt, and then add a line "makrohn" at the top of the list in ../mods.txt to make it take precedence, right?
One of my biggest questions was how to modify powers - I note that, for example, that Channel has a "base_damage=ment", as does Shock, and I'd probably mod my own game for Shock to do "base_damage=110%ment" or something. I'll poke around the forums further, too, to see what other options there are.
Thanks for the feedback makrohn!
The XP curve is temporary. It needs to be scaled based on the amount of content (and will be configurable).
I'll make bows configurable so they can be used in either hand or require both hands. Basically some of the equipment slots are a bit hardcoded, and instead we'll have configurable slot info (even adding more equipment slots).
I'm probably going to beef up melee weapons quite a bit next time I update the game data. And I'll give melee characters more powers to make them sturdy (e.g. lifesteal attacks).
Apologies for it not being very obvious how to edit powers. Items are slightly more straight-forward at least, but powers have lots of strange settings. Tutorial coming soon.
So I could use src/ files like PowerManager.h as a guide to seeing what attributes I can assign to various powers (or, in fact, src/*.h for anything from enemy attributes to quest attributes, etc?)
To change some of this on my own personal FLARE build, I think I see what I can change.
To let swords work with mental powers (and create a viable swordmage build), I could add a line in PowerManager.cpp, after line 130,
else if(infile.val=="true")powers[input_id].requires_physical_weapon=true;
Maybe?
To change the XP formula, I should be able to download the source from github, edit EnemyManager.cpp line 278 to change from:
stats->xp+=enemies[i]->stats.level;
to
stats->xp+=enemies[i]->stats.level**2;
makrohn,
For the enemy XP we'll make a new data element in StatBlock named xp_reward, then read that from the enemy definition files. Perhaps the default can still be the enemy's level. If you want to create this as an Issue on GitHub, I can probably get to it soon (tonight or sometime this weekend).
If you want swords to work with mental powers, that's going to be a bit more work. I think your suggestion wouldn't work (it would require having a sword + staff for all spells, which means you couldn't cast any spell). If you want a quick fix to allow all swords to also power spells, look here:
https://github.com/clintbellanger/flare/blob/master/src/MenuInventory.cpp#L607
Here we're recalculating StatBlock info based on equipped items. Copy lines 617-620 (setting Mental Weapon stats) and insert it under line 614 (so that Physical weapons also count as Mental weapons).
The permanent solution would be to add variables to item descriptions like damage_type_physical, damage_type_mental, damage_type_offense. And check these instead of the item requirements. Also, instead of items having a single requirement, there should probably be one for each stat. So you could have a weapon with multiple requirements e.g. a Spellsword might require Physical 3 and require Mental 3.
"I think your suggestion wouldn't work"
It's kind of you to call it a suggestion and not a guess!