Search Results
Searched for posts by vasiliy in all forums

Showing results 271 - 280 out of 434 total
Modify your search
Posted by vasiliy, Jan 21 at 10:10 am
do you have troubles remembering which weapon category each weapon belongs to? i definitely do. i think i'll add that info to weapon description, because why not? it's easy to learn anyway, by wielding the weapon and look at your weapon stats ("@") — they are conveniently color-coded, with stats for current weapons being bright. so i can't see why i have to do all those extra actions just because i am dumb and cannot remember two dozen weapon kinds and their classes. with proprotional fonts, i have some extra space to spend anyway.
Posted by vasiliy, Jan 21 at 5:03 am
ah! i realised why GF generation failing! it is not about room placement, it is about populating the room with items (square script). sometimes the game generates living quarters not big enough to place all the beds there. that is, a living quarter of 3x5 size (including borders), for example. this leaves only 3 squares for beds, but `Times` can be as big as 6. of course, room generating code cannot place that much.

this is prolly some bug in my script copypasta: living quarters should never be that small, i guess.
Posted by vasiliy, Jan 21 at 4:46 am
oh. that commit is about generating bad items, actually. but there are changes in `level::MakeRoom()` — it doesn't have `ABORT()` anymore, and there are some new tile flags. i have to investigate the whole code: looks like i've missed a lot of improvements there.
Posted by vasiliy, Jan 21 at 4:32 am
red_kangaroo wrote
This doesn't happen in vanilla, but I think it has the "abandon and try again on failed dungeon generation" implemented. maybe try to steal the code from there?

See here: https://github.com/Attnam/ivan/pull/597
wow! thank you, i'll take a look. if Aquarius managed to untangle that code, i will definitely steal it!


red_kangaroo wrote
They are great in the early game, but fall off quickly afterwards. I think they are fine, because otherwise everyone will default to the "two attacks per round via dual-wielding" setup.
dunno, this may be the personal preference, but i feel that they are overpowered exactly in early game. no, really, i don't think that i could be sitting besides Jenny smoking a cigar and watching her hopeless attempts to bite me.

new shields will make people default to "shield and short sword" most of the time this way, because why choose something else? you're almost invincible with a shield in UT. ok, hedgehogs still bite, but…

dunno, i will prolly leave shields nerfed in k8ivan. that's why we have forks, after all — to allow everybody realise their visions!
Posted by vasiliy, Jan 21 at 1:23 am
i cannot stop thinking that the shields are overpowered with that change. like, i was fighting Jenny with oak shield, and she barely scratches me. she managed to hit me quite hard once, but most of the time she was harmless. i will prolly nerf the physical protection with `/2` at least. because with my current stats my physical resistense is 2, and shiled has 3, so i get 5. way too much. with `/2` the new total is `3`, which looks way more reasonable for me.
Posted by vasiliy, Jan 20 at 10:52 pm
and two screenshots, to make the thread less boring.

the first is "world teleport" wizard command, which will automatically teleport the player to the given worldmap location, revealing it if necessary. hidden locations are marked with orange.

and the second in improved IGOR — it allows moving things around, copy-pasting tiles, and even rudimentary tile editing (as shown on the screenshot).
Posted by vasiliy, Jan 20 at 10:42 pm
also, Goblin Fort level generation often fails. it struggles to put living quarters, and sometimes even forge room. for now i workarouned it by increasing level sizes a little — the crashes are still there, but they are less frequent. i also added `FailureIsNotFailure` flag to room definitions (creative name, i know), which indicates that failing to place this room should not lead to ABORT. this flag leaks memory, of course, and is prone to crashes itself, but meh… (it mostly works for rooms without monsters, and with little objects… and it works only sometimes.)

i know what exactly IVAN struggles to place because k8ivan records source file and line for all scripts, and prints which room script failed. the better solution would be something akin to worldmap generation: abandon current efforts, and start over, but i don't know how to properly implement that. i can throw exception instead of aborting, but at this time the level is in "half-backed" state, and i have absolutely no idea how to clean up the things.

i mean, ok, we can leave half-generated map alone and accept memory leaks (better than sudden crashes), yet at this stage we already have some entities created and registered in the game, without a way to properly unwind what we've done. at least i don't know the way.

saving and reloading the game (as an easy rewinding solution) is problematic too: at the time level generator is called, we are deep inside command handler, and have various pointers to objects lying around. they all will be invalidated on reload, leading to memory corruption and crashes.

if i'll ever find a way to properly unwind everything, this will not only make the game more stable, but will allow to better dungeon scripts testing. if we could rewind (or stop cleanly with half-generated level), we could show what the game already have (i.e. put the player there). so you'll be able to see how cramped the level is, what was generated so far, and so on. i believe that this will help with dungeon tweaking a lot.
Posted by vasiliy, Jan 20 at 10:58 am
by the way: Kaethos has 75% probability of science talk. and `BeTalkedTo()` is called only when science talk failed. as the player should came to liberate New Attnam with relatively high stats, it is quite hard to get the quest from him.

i believe that `BeTalkedTo()` should not be used for quests, healing, etc. we need a new method, like `truth QuestTalk()`, which will be called before trying a scitalk. currently this is workarounded with a hack: all quest NPCs have very low (or zero) scitalk probability — except Kaethos.

for now i lowered his scitalk probability to 25, but i don't like this solution at all.
Posted by vasiliy, Jan 20 at 8:28 am
added new shield code, and the game immediately spawned the zombie with broken meteoritic steel acid shield on UT1. now tell me again that the game is not sentient!
Posted by vasiliy, Jan 20 at 7:45 am
@red_kangaroo, wow! somehow i missed that part. thank you!

i ported most new dungeons now, and they seem to work. at least they don't crash the game outright, i consider this "working state".

in k8ivan, you have to give the scroll either to the necromancer, or to Petrus. (or to the emissary now.) i like it more this way. and the emissary will give the quest only of you haven't talked to Petrus yet. my idea is that there is That Main Quest most people will follow, but for those who are willing to explore Attnam first, there is a bonus (necromancer's quest). also, the player will prolly meet the emissary on his way to Petrus, and Aslona quest is a bonus for those who like to talk with people.

that is, i prefer the game to have more "hidden content". the player have to do something unusual (well… "something unusual" is IVAN motto anyway to find that the game is bigger than he thought. if i'll ever write "dungeon editor tool", i will prolly sneak more hidden quests in the same manner.