Faehen
Created by SkizzaltixZaxali.
News
- 1 10 08: Faehen is officially abandoned.
- 5 04 07: Faehen 0.4 is released.
- 3 21 07: Faehen 0.2 is released.
- 3 18 07: Faehen 0.1 is released.
Download
Faehen 0.4 is available on the ToME module server.
Description
Faehen is an RPG module where the player learns skills (excepting a few 'quest' skills and the ones they start out with) by using Elemental Essences. Once a skill is learned, it can be increased via the normal ToME method. Only three kinds of Essences (Earth, Water, and Wind) are available to the player by killing normal monsters, however, others are available by merging Essences together. The table of Elements is as follows:
Earth: Basic Element.
Wind: Basic Element.
Water: Basic Element.
Plant: Earth, Water.
Fire: Plant, Wind.
Desert: Earth, Wind.
Ice: Water, Wind.
Lightning: Fire, Wind.
Metal: Earth, Fire.
Light: Lightning, Fire.
Dark: Ice, Metal.
You can merge any Essence with any other Essence by 'u'sing either one, provided the two will create another Essence when merged.
The player starts out with only basic knowledge of combat, and must use Metal Essences to learn the weapon-specific skills and defense. The other Essences grant spells. Most armor and weapons cannot be used without either a specific Mastery skill or the Defense skill. Better armor and weapons are harder to wield, and there are some pieces of equipment that require the Magic skill instead.
The Essence system is complete and bug free! Ecstasy!
Known Bugs
- Can't have a dungeon be NO_GENO without it being SAVE_LEVEL.
- Most of the towns are broken.
Fixed
- When entering the Rat cave, the game crashes.
- When transitioning from one town to another, the player is placed in strange locations.
Fixed in DV
- Broken dialogues
Discussion
NerdanelVampire: The "U" command doesn't work for me. I only get Type '?' for help. Also, I'm not able to see quests with ctrl-Q. (Is this because I don't use Rogue keys?)
SkizzaltixZaxali: Ack! Where does it tell you to use the 'U' key? I changed it to the 'u' key. Sorry about that. ctrl-q doesn't work for me, either--I don't know how to get it to
NerdanelVampire: The starting parchment tells you to use "U". (Of course I wasn't able to read it in-game...) Also when you examine an essence it tells you to use "U". I tried "u" too. The message that produces with essences is: "It's just an amulet." Now that you mention it, I see that I'm able to read the starting parchment with "u", though.
- Knwledge menu(and quest) have been luaified in alpha14, take a look at ToME's scripts/display.lua, you d'ont need most of it, jsut the few lines relevant for quests
SkizzaltixZaxali: Okay, thanks. I've added the quest menu and changed all the 'U' instructions to 'u'. About the Essence--Try playing a little further, and maybe you'll be able to do something with it
NerdanelVampire: I've played up to the point where I'd killed the necromancer and gotten the metal essence. I still wasn't able to make the essences do anything, at least in 0.1.0.
SkizzaltixZaxali: Did you talk to the Official again? NerdanelVampire: No. I couldn't see the quest list, so I was a bit lost at the time. Now I'm back home with my 64-bit computer and I can't play anything on the T-Engine except god-mode Bone to Be Wild before a version is released that fixes the 64-bit bugs, so I can't continue that game for a while...
SkizzaltixZaxali: Ah, okay. Yeah, I guess it is pretty confusing without the quest log. I've fixed it, though, and also I'm planning to stick in a few townspeople who'll tell you what to do if you forget.
Sirrocco: tried playing for a bit, but I'm thinking it's still a bit too raw for my tastes. Incidentally, I tried to use the "S" menu to switch to running, and it started throwing errors. Also, had a map-change error at one point that dumped me into an inescapable section of woods. That may be an engine bug. Also, going into the Dark Hole caused the "crash and die" bug that Dragonball got the workaround to a few revs back.
SkizzaltixZaxali: ...Ah yes. Going into the Rat Cave will cause the thing to crash, and I don't know why or what I can do about it, however you can just load your saved game and you'll be inside the cave. I don't know how to fix the weird thing when switching from town to town. The only way out is to wizard yourself back onto the path, unfortunately. Ah. What I really want to do is just get rid of the whole movement mode thing, but if I remember correctly, last time I tried it gave errors in the engine. Oh well, let's see if I can get this to work...
Sirrocco: the town-switching error sounds almost exactly like the bug (introduced in alpha14) that Bucketman found a way to work around in Dragonball T. The rat cave error likewise sounds like a bug-patched-in-DBT. I think the patch was to take out all of the odd names for stairwells. Also, enemies are able to cross deep water even when the main character is not. Also, it looks like you're reusing map files for houses. After I explored a bunch of houses, I came back to the northwestern townlet, and started exploring houses there, only to find that I already had them mapped. Also, am I confused? It looks like there are two sentient weapons available in the early early early game - one for rogues and one for necromancers. How does this make sense? Also, it seems like the essence system is really the centerpiece of this particular game (well, that and the easy static sentient weapons) but it sees like metal is the only type that has anything to offer to non-mages, and once you've got four of those, you're done. Also, for those who are mages, I'm thinking that your magic menu is going to wind up extremely full.
SkizzaltixZaxali: Okay, I'll see what I can do about the stairwell names. Sentient weapons? What do they do? How are they good? Really, to play this game, you need to know at least some magic, otherwise you'll be hopelessly underpowered. If you want to play as a non-mage character, I suggest you go for support spells early on like Earth Saber, Wind Saber, Water Saber, Fire Saber, Fury, Slow, Speed up, Ply, Exorcise, Melancholy, etc.
Sirrocco: both the rat fang and the necromancer's staff are sentient. That's the situation when the weapon has an experience total and a level. As you fight, the weapon gains experience along with you, improving plusses and gaining new powers. Assuming you can avoid any crippling flags, sentient weapons have the potential to become *very* powerful.
SkizzaltixZaxali: I see. In that case, I'll make it so the Rat Fang and the Bone Staff aren't sentient. Thanks!
BucketMan: I think the relevant bugs are: BugReport802 and BugReport763. For the rat cave, try adding four or five doors in a random corner someplace and see if it loads ok. (Look at Rosshi's house in DBT for an example.) As to the town problem, the relevant workaround in DBT can be found in scipts/dbtstuff.lua. Look for hook.MOVE_PRE and you'll find a great big page-and-a-half if-then block that handles teleports when crossing map borders. Since Faehen doesn't have a map-wrap though, you probably only need one condition with variables, not a page and a half of hard-coded ones.
SkizzaltixZaxali: Thanks, BucketMan. I've added nine doors to the Rat cave and it no longer crashes on entering. However, if I'm correct the MOVE_PRE patch requires me to have another if then thing for every wilderness x, y the player can go into? Faehen has enough places and the list is growing that I really don't want to do that, especially as DarkGod said he thinks he can fix it. Unfortunately, this makes it impossible to play a non-wizard character...
BucketMan: Agreed, I'm sure alpha15 will resolve it, but if you're impatient, you wouldn't have to do it the way DBT does. Again, rather than have a separate if-then condition for every possible direction out of every single location, just replace if with a generic set that would handle all locations. Again, no map-wrap in Faehen, so 'where to go' should always be consistent. Instead of assigning a hard, fixed value to player.wilderness_y and player.wilderness_x like DBT, simply increment/subtract 1 from the current value (whatever it is) so regardless of where the player is now, when he crosses a map border, he'll end up in the adjacent one. (Remembering to check for the extreme map edges, so you don't end up off the map.) It's only as complicated in DBT because you don't always end up in the adjacent map. If you exit north out of the northern part of earth, instead of ending up in the nextmost northern sector: (player.wilderness_y - 1) you instead end up in the sector two south of it: (player.wilderness_y + 2). But, as you say, you can always just wait for alpha 15. That should be even simpler.
SkizzaltixZaxali: Hm... Okay, I think I'll check it out. And sorry about misspelling your name there... Somehow, I forgot to type two letters... I had just given the code a quick glance, and I guess I confused myself as to how it works. Also, do you know if I can make it so when one unique monster shows up, two other unique monsters always show up in the same place?
BucketMan: No worries. I almost didn't fix it, but I figured I'd humor my ego. :P As to uniques...it could be done in any of several ways depending on how you want to go about it. I vaguely remember discussion of a monster ON_MAKE hook Nerdanel had requested, similar to ON_MAKE for items, but I don't actually see it in the hook list, so I'm not sure if it made it in or not. You might try adding ON_MAKE to a monster definition and see if it works. If not, assuming these monsters are not SPECIAL_GENE (in which case you would just place them all yourself) probably the easiest way to do it would be to hook into HOOK_NEW_MONSTER_POST. Whenever a monster is created, check to see if it's the one that has buddies, and if so, spawn the appropriate buddies. A few comments:
- Be careful to avoid recursive loops (you don't want to generate a monster that generates itself ad infinitum)
place_named_monster and place_named_monster_near() cannot place uniques without taking an extra step. See dball.place_monster() in DBT for an example.
Be aware that situations can exist which cause place_named_monster() to fail. For example, if the original monster spawns on an isolated terrain FEAT with no suitably 'open' space nearby, you may have a tough time generating monsters in that area.
SkizzaltixZaxali: Well, I think I can do the NEW_MONSTER_POST one. What I want is to have it so when one of the three Elemental Heirs is spawned, the other to come with it, so I can just have a flag for each fo them and then a flag for all three
SkizzaltixZaxali: Does anyone here know if it would be possible to have a cinematic happen where the player can't do anything (Except, say, press space to cycle forward a turn) and monsters will perform a set of actions, the terrain surrounding the play changes, etc. I could do the monster behaviour via some custom AIs, right? But what about the rest?
BucketMan: Preventing player actions is fairly trivial. Create a paralysis-like timed effect, manually drain energy, or just make a script that doesn't end until the cinematic is done. But preventing the player from acting isn't really the problem. It's timing. To do a proper cinematic, you need to be able to tell a script to wait and do nothing for a while. And, if you could do that, there would be no need to worry about player actions at all. Simply run your cinematic script, and manually move things around as you like. The problem is creating a delay so that the actions are slow enough that the player can see them. You could periodically require prompts. That would work, though it wouldn't exactly make for smooth visuals. Or you could try having your script loop some sort of time-consuming nonsense to eat up cpu cycles, but here you run into all sorts of problems of trying to figure out how much nonsense corresponds to how much real time, something that will be completely machine dependant. If you want to experiment with this, you might take a look at Dragonball T, in particular the "text cinematic" that occurs when Shenron is summoned, and the lightning distortion that occurs when Trunks appears early. Both make use of time-delay-like effects. Just be careful. What looks ok on your system might take thirty seconds between frames on someone else's.
SkizzaltixZaxali: I decided to go with having little "text interludes", because it's easier. And this way, now that 0.4 is on the server with one such interlude, you guys and can tell me just how overblown my descriptions are
NerdanelVampire: I played Faehen until to the point where I was done with the crab quest and could not find a continuation in the plot. Some comments.
- Many monsters above the first level are awfully tough and the reward doesn't scale to that. I'm singling out two of the most obnoxious, but in general too-high AC and deadly attacks are common. (Rat Fang is a massive difference, by the way.)
- The level 2 poacher shoots an arrow every turn and although his aim isn't great, he can instakill a lower level character if he hits. He is likely to kill the player if he catches one in the open. The monster description says he shoots an arrow once in 5 turns but that's a lie. Perhaps his AI should be SPELL_AND_MOVE instead of SPELLCASTER and his arrow damage should be a bit lower.
- The level 2 serpent has a lot of hp and appears to have AC in the clouds. (Does agility being 30 count into that?) I can be level 9, armed with the Rat Fang, and still hit a serpent 5% of the time. Okay, so perhaps I didn't min-max my stats properly, but I want to be able to cast spells sometimes too. Dust devil works really well against serpents, but you won't be able to cast spells when you start to meet level 2 monsters.
- All equipment should have a text about which skill they need and at what level.
- The crab cave was very tedious with the unhittable monsters (meaning everyone except the actual crabs) and me not being able to cast spells until near the end. I had to resort to stair scumming in which I would pop in, do a few whacks at a serpent or a vile dirge, miss 95% of the time while getting hit in turn 95% of the time, and pop out again to rest. Rinse and repeat a hundred times or so.
- Getting essences wasn't a problem. Getting the skill points to take advantage of them was.
- There is more than one NPC in the game who has a typo in QUEST_STATUS_* (I can't remember if it was TAKEN or UNTAKEN or both) so that STATUS reads STAUTS.
- I would often find myself dumpint points into things and getting no apparent results. The effect of one extra point or even several in things like strength or agility or weaponmastery isn't obvious at all. I found that I had to raise my speed stat to 20 to get my actual displayed speed from +1 to +2.
- There is something wonky going on with the C screen damage. If I'm only wielding the Rat Fang it says I'm doing nil damage. If I'm wielding an ordinary dagger or both Rat Fang and the dagger it lists only the dagger's damage without bonuses. If I'm wielding Rat Fang in the a hand my shown to-hit and to-dam bonuses take Rat Fang's pluses into account but not if I were wielding Rat Fang in the b hand.
- As you know, many towns are broken.
SkizzaltixZaxali: Thank you for your (Incredibly quick) feedback
- Did you go back to Crendest? The story so far ends there.
- The broken dialogs are fixed in DV.
- Poachers... Are a problem. I tried spell and move a while ago, and they didn't ever want to cast spells. But what you say is true, I had a level 50 (Wizard) character who lost half of his 600 hitpoints to one before he could kill it, but then his stats were all ~12 and he was armed with a cloth shirt and dagger.
- Serpents only have 15 hp, and not too much agility. What is your speed? I've found the easiest starting build is a water element Zaxali or Naga with maxed agility, speed, and finally strength, and then putting most of my skill points into agility and speed.
- I'm trying to get a balance between it being way too easy to get magic and way too hard. Right now it's too hard, I think I'll make monsters give a little more exp.
- Faehen doesn't really use the General Speed bonus as much as other mods do. I've never had it higher than +3, and I always go for the extreme-speed build (Water element Naga). On the other hand, it might help if I explained how the combat works. When you attack a monster, your chance to hit is (your speed plus 1d10) against (the monster's agility + 1d10), and vice versa for when a monster attacks you. Get your agility up to 25, and Animated corpses, Compounds, and Rats will almost never hit you. Get it up to 30, and Bats and Serpents will almost never hit you, and things like Dirges and Skeletons will have a hard time of it. It occurs to me that there is no real explaination of this anywhere--More things I need to do to the character sheet screen.
I was going to do that three months ago, and then I forgot. Thank you for reminding me
- Again, what is your speed? You really need to pour into it to get through there. But then again, I should lower the agility and speed of the Serpents and Dirges, that place isn't supposed to be as hard as it is. By the way, do you know if there's a way to stop the Collosus Crab from summoning more minions after a while? How hard did you find him to beat? I find him quite hard, but mostly because my build can't take the hits his crabs and serpents dish out.
- I'm still not quite sure what I should do about the combat data stuff. For now, it's broken, but I'll work on it. I wasn't aware of just how crazy it was about artifacts in different hands, thanks for pointing that out.
- I guess I'd better stop procrastinating over finishing those maps.
ToME Wiki