Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

Incline Dark Heart of Uukrul Discussion Thread

TigerKnee

Arcane
Joined
Feb 24, 2012
Messages
1,920
I did love everything up until...

... I defeated Uukrul. Up until that point the game was both challenging in its tactical combat encounters and its puzzles. Once Uukrul was defeated though, you are thrown up against a nightmare of a puzzle while the tactical combat goes away. Since I enjoy tactical combat way more than I do puzzles, the final portion was a bit of a letdown for me.
Same thing here.

Well, I do enjoy puzzles too, but I like a nice balance of fighty and solvey, and I think up until that part, DHoU strikes the balance perfectly. Most RPGs fall way too much into the "too much combat" category, but the final part for me goes the other way.
 
Joined
Aug 10, 2012
Messages
5,894
For the the only strike against Uukrul is the lack of sound, especially music. It would be great if it had a kickass MT32 soundtrack or something.

Otherwise I think it's the most criminally overlooked RPG of the classic era.
 

Monstrous Bat

Cipher
Joined
Dec 30, 2011
Messages
638
I did love everything up until...

... I defeated Uukrul. Up until that point the game was both challenging in its tactical combat encounters and its puzzles. Once Uukrul was defeated though, you are thrown up against a nightmare of a puzzle while the tactical combat goes away. Since I enjoy tactical combat way more than I do puzzles, the final portion was a bit of a letdown for me.

Still a great game that deserves a lot more praise and attention than it got. The definition of a forgotten gem.
I dunno, I also throughly enjoyed solving the final dungeon, and I'm a person who normally hate trial-and-error puzzles. Then again, I never felt that DHoU combat was that good, though is certainly not terrible.
 

octavius

Arcane
Patron
Joined
Aug 4, 2007
Messages
19,217
Location
Bjørgvin
I thought the combat was pretty good. As far as top down turn based combat goes SSI's Gold Box and some of their pre GB games are definitely better among the DOS era CRPGs. The combat does has some flaws though, like no missile attacks and only 1 movement point for player characters.

Few CRPGs have managed to combine a decent combat engine with excellent level design and puzzles like Uukrul did.
 
Last edited:

TigerKnee

Arcane
Joined
Feb 24, 2012
Messages
1,920
Yeah, count me in on the "combat is pretty good" department compared to its competition at its time.

Though I don't really consider no Missile Attacks and only 1 movement per turn a flaw. Uukrul's battlefields are really small unlike GB's. That + "you can move diagonally but only attack in non-diagonal directions", it sort of works out in a way where it makes you think about using your two melee characters to block off enemies in a way while also maximizing your damage output that GB doesn't really do (IMO you're better off just casting crowd control spells in GB if you don't want enemies next to your mages). I think missile attacks (that aren't magical in nature which has resource management tied to it) would take away from that dynamic.
 

vanshilar

Educated
Joined
Jun 10, 2014
Messages
17
Some quick things:

* So far yeah I haven't been able to figure out when headgear increases mana (virtue/psychic point) regen, even though ASchultz's walkthrough on GameFAQs mentions it. I haven't found if there's any canonical place (i.e. game manual, in-game text, etc.) that mentions it though. Kinda not sure about this.
* Resting in higher-level sanctuaries do increase the mana regen, however, it seems like the regen rate is higher in general in the higher-level areas. For example, resting in URSHAS (the 6th temple) is roughly twice the rate as resting in URTAS (the first temple), but then just killing time outside of URSHAS (searching in place) also gave about twice the rate of killing time outside URTAS. So even though I'll need to collect a lot more data on this, right now I'm speculating that resting in temple gives you about 3x the mana regen rate compared to being outside, but your regen rate outside also increases as you go to harder areas. This was all tested with my level 8 party, so it's not a matter of being lower level characters. If you found yourself always out of mana points early on, this may be why.
* A post on Abandonia mentioned that HxD (the hex editor I use) is also capable of reading the memory from programs like Doxbox, via its "open RAM" option. I tried it out and it works fine, so I can now read the memory of the game while it's running just like I read the data files. The problem is that it's all just a bunch of numbers and it's hard to figure out what's going on. I've been able to find where some of the monster data is stored during a fight though, such as each monster's current HP and max HP. Also, I think I've found where the game stores what it reads from MONSTERS.TBL during combat, so hopefully eventually I can link the combat parameters (such as monster HP) with the MONSTERS.TBL data. That's speculative at this point though; the only thing I can read from MONSTERS.TBL at this point are the monster names, and that's only because they're mostly written out in regular text strings.
* One thing I have noticed about looking at the memory during combat though is that the monster health bar is not just a straight proportion of the monster's remaining HP. For example, you might take off 7% of the monster's HP but the bar will show it as 84% health remaining, rather than 93%, even though in memory it has 93% of its max HP. I'm not sure what the formula is yet though, I'll work it out when I start collecting some combat statistics down the line.
* I'm running a script right now to go through all the possible character generation questions and record the resulting stats. The script will take a while to run though, but once I crunch it out hopefully I'll be able to determine what are the best ways to answer the questions if you're looking for the highest strength, etc. There's 192 possibilities for the paladin, so it's gonna take a while.
* After the script is done I'll probably use it to create the "best" party and start a new game with it, and play through that new game while reading the memory and save game files to try to figure out what's actually going on. Obviously this is a longer term project, but with it I'll hopefully be able to map out the save file locations (and maybe the checksum) and hopefully things like how do the rings work, in terms of how the game determines when you're ready for the next ring, or how the experience decreasing as you do more fights work.
 

TigerKnee

Arcane
Joined
Feb 24, 2012
Messages
1,920
Whoa, you keep delivering the goods. Thumbs up.

Incidentally, perhaps you can figure out the effects of stats too once you learn how to edit save files? For example, set Strength to 5, take a few swings at an enemy and look at the damage, then set Strength to 30, see if there's a huge difference, then try intermissions... stuff like that.

edit: Also, does Sagaris say anything when you identify the Mage Hat about increased Mana Regen?
If there's really nothing that points to it, maybe it's one of those times where internet rumours become "fact" because there's no way to confirm the fact and information on the game is scarce.
 

vanshilar

Educated
Joined
Jun 10, 2014
Messages
17
So it'll take a while to copy down all the stats screenshots. But what I see so far for the different classes from flipping through them:

Fighter: out of the 84 options, assuming max out str then vit, you should choose 1-1-2-2 for 14 str, 7 int, 6 pie, 9 dex, 10 vit
Paladin: out of the 192 options, assuming max out str then vit, you should choose 1-1-2-1 for 14 str, 6 int, 6 pie, 9 dex, 11 vit
Priest: out of the 88 options, assuming max out pie then vit, you should choose 3-2-1-2 for 7 str, 9 int, 14 pie, 5 dex, 7 vit
Magician: out of the 96 options, assuming max out int then vit, you should choose 3-1-3-2 for 7 str, 14 int, 8 pie, 5 dex, 12 vit

I'm actually not sure what's the best secondary stat for the classes. For example, I used vitality, but the manual says vitality helps withstand wounds and diseases; I'm not sure if it affects your max hp for example (it does in AD&D but may not here -- I haven't paid attention to max hp yet). One could argue that piety ("chance of withstanding attacks by undead characters) or dexterity ("determines reaction speed and agility in combat") are more important, or even strength for the mana guys (for more melee damage and encumbrance, assuming it affects those things). Right now because we don't really know how the stats work, we don't really know which ones are more important, other than the primary stat for each class.

Let me know if there are any wrong numbers or if you found any better ones, since I'm typing this up by hand (and reading screenshots manually) so there may be errors.

I guess now I'll create a party with these stats, and then start looking at combat (trying to figure out monster stats by reading memory during combat, how the exp you get decreases with more fights by reading save file of before/after combat) and spells (how the game keeps track of whether or not you should get another ring based on what you've casted, by reading save file of before/after combat and spells).

Once I can level up I'll see if strength affects encumbrance, intelligence/piety affects max mana points (I don't think so, I think it's 7*level for priest and 10*level for magician, but going to check it), and vitality affects max hp. I'll also see if the sub-class specializations (such as guard/berserk/warrior for fighter) affects anything such as which stats you get when leveling up.
 
Last edited:

vanshilar

Educated
Joined
Jun 10, 2014
Messages
17
Okay so this is the stats for each of the possible options for each class. I originally had things color-coded to make it more readable, but I couldn't figure out how to get this forum to simultaneously 1) use an equal-width font (like courier), 2) have multiple spaces between characters, and 3) use color. Instead, I put notes on the right for if you're looking for different primary and secondary (and sometimes tertiary for tie-breakers) stats.

Anyway, I marked out which options are dominated. Dominated (in this case, Pareto dominance) means that there is another option that is better so you should never choose this option. "Better" means that another option has at least the same stats in all 5 stats, and at least one of the stats is strictly higher. This means that this option should never be chosen because there is another option that will be at least as good in everything, but also has at least one that's better. If you don't understand all that it's fine, just know that if the last column shows a "1", then you should not choose it, because there's another option that'll be better. Dominates cuts down on the number of options that you should consider. In this case, you should only consider the options where the last column is "0".

Hopefully I got the math right on this, let me know if you notice anything wrong. The stats were grabbed via code from screenshots from a script that went through all the different options automatically, but it's always possible that I coded something wrong, especially when I was sorting the different columns to look for the highest stats.

For the fighter:

Code:
Q1 Q2 Q3 Q4 St In Pi De Vi Dom High Stats
 1  1  1  1 14  5  5 10  9  0  High str, then dex
 1  1  1  2 14  6  7  9 10  0  High str, then pie or vit
 1  1  2  1 14  5  5 10  9  0  High str, then dex
 1  1  2  2 14  7  6  9 10  0
 1  1  3  1 14  5  5 10  7  1
 1  1  3  2 14  6  6  9  8  1
 1  2  1  1 14  5  6  9  9  1
 1  2  1  2 13  7  9  8 10  0
 1  2  2  1 14  7  5  9  9  1
 1  2  2  2 13  9  8  8 10  0
 1  2  3  1 14  5  5  9  7  1
 1  2  3  2 13  7  8  8  8  1
 1  3  1  1 13  6  5 11  9  1
 1  3  1  2 12  8  8 10 10  0
 1  3  2  1 13  8  5 11  9  0
 1  3  2  2 12 10  7 10 10  0
 1  3  3  1 13  6  5 11  7  1
 1  3  3  2 12  8  7 10  8  1
 2  1  1  1 14  7  5  8  7  1
 2  1  1  2 13  9  7  7  8  1
 2  1  2  1 14  9  5  8  7  0  High str, then int
 2  1  2  2 13 11  6  7  8  0
 2  1  3  1 14  7  5  8  5  1
 2  1  3  2 13  9  6  7  6  1
 2  2  1  1 13  9  6  7  7  1
 2  2  1  2 12 11  9  6  8  0
 2  2  2  1 13 11  5  7  7  1
 2  2  2  2 12 13  8  6  8  0
 2  2  3  1 13  9  5  7  5  1
 2  2  3  2 12 11  8  6  6  1
 2  3  1  1 12 10  5  9  7  1
 2  3  1  2 11 12  8  8  8  0
 2  3  2  1 12 12  5  9  7  0
 2  3  2  2 11 14  7  8  8  0  High int
 2  3  3  1 12 10  5  9  5  1
 2  3  3  2 11 12  7  8  6  1
 3  1  1  1 12  6  5 11  8  1
 3  1  1  2 11  8  8 10  9  1
 3  1  2  1 12  8  5 11  7  1
 3  1  2  2 11 10  8 10  8  0
 3  1  3  1 12  8  5 11  7  1
 3  1  3  2 11 10  6 10  8  1
 3  1  4  1 12  6  5 12  6  0
 3  1  4  2 11  8  6 11  7  1
 3  2  1  1 11  8  7 11  8  0
 3  2  1  2 10 10 10 10  9  0
 3  2  2  1 11 10  7 11  7  0
 3  2  2  2 10 12 10 10  8  0
 3  2  3  1 11 10  5 11  7  1
 3  2  3  2 10 12  8 10  8  1
 3  2  4  1 11  8  5 12  6  0
 3  2  4  2 10 10  8 11  7  0
 3  3  1  1 10  9  6 12  8  0
 3  3  1  2  9 11  9 11  9  0
 3  3  2  1 10 11  6 12  7  0
 3  3  2  2  9 13  9 11  8  0
 3  3  3  1 10 11  5 12  7  1
 3  3  3  2  9 13  7 11  8  1
 3  3  4  1 10  9  5 13  6  0  High dex
 3  3  4  2  9 11  7 12  7  0
 4  1  1  1 13  5  8  9 10  0
 4  1  1  2 12  6 11  8 11  0  High vit, then str
 4  1  2  1 13  5  8  9  9  1
 4  1  2  2 12  7 11  8 10  0
 4  1  3  1 13  5  6  9  9  1
 4  1  3  2 12  7  9  8 10  1
 4  1  4  1 13  5  6 10  8  0
 4  1  4  2 12  6  9  9  9  1
 4  2  1  1 12  5 10  9 10  0
 4  2  1  2 11  7 13  8 11  0  High pie, then vit; high vit, then pie
 4  2  2  1 12  7 10  9  9  0
 4  2  2  2 11  9 13  8 10  0  High pie, then int
 4  2  3  1 12  7  8  9  9  1
 4  2  3  2 11  9 11  8 10  1
 4  2  4  1 12  5  8 10  8  1
 4  2  4  2 11  7 11  9  9  0
 4  3  1  1 11  6  9 10 10  0
 4  3  1  2 10  8 12  9 11  0  High vit, then int or dex
 4  3  2  1 11  8  9 10  9  0
 4  3  2  2 10 10 12  9 10  0
 4  3  3  1 11  8  7 10  9  1
 4  3  3  2 10 10 10  9 10  1
 4  3  4  1 11  6  7 11  8  1
 4  3  4  2 10  8 10 10  9  1

For the paladin:

Code:
Q1 Q2 Q3 Q4 St In Pi De Vi Dom High Stats
 1  1  1  1 13  6  8  9 11  0
 1  1  1  2 13  8  6 10 10  1
 1  1  1  3 13  8  6  9 10  1
 1  1  2  1 14  6  6  9 11  0 High str, then vit
 1  1  2  2 14  8  5 10 10  0
 1  1  2  3 14  8  5  9 10  1
 1  1  3  1 13  6  7 10 10  1
 1  1  3  2 13  8  5 11  9  1
 1  1  3  3 13  8  5 10  9  1
 1  1  4  1 13  8  7 10 10  0
 1  1  4  2 13 10  5 11  9  0
 1  1  4  3 13 10  5 10  9  1
 1  2  1  1 14  5  7 10 10  0 High str, then pie
 1  2  1  2 14  6  5 11  9  1
 1  2  1  3 14  6  5 10  9  1
 1  2  2  1 14  5  6 10 10  1
 1  2  2  2 14  6  5 11  9  1
 1  2  2  3 14  6  5 10  9  1
 1  2  3  1 14  5  6 11  9  1
 1  2  3  2 14  6  5 12  8  1
 1  2  3  3 14  6  5 11  8  1
 1  2  4  1 14  6  6 11  9  0
 1  2  4  2 14  8  5 12  8  0 High str, then dex then int
 1  2  4  3 14  8  5 11  8  1
 1  3  1  1 14  6  5 10 10  1
 1  3  1  2 14  6  5 11 10  0
 1  3  1  3 12  5  5 11 11  0
 1  3  1  4 13  6  5 10  9  1
 1  3  2  1 14  6  5 11  9  1
 1  3  2  2 14  6  5 12  9  0 High str, then dex then vit
 1  3  2  3 12  5  5 12 10  1
 1  3  2  4 13  6  5 11  8  1
 1  3  3  1 13  8  5 11 10  1
 1  3  3  2 13  8  5 12 10  0
 1  3  3  3 11  7  5 12 11  0
 1  3  3  4 12  8  5 11  9  1
 1  4  1  1 14  7  5  9  9  1
 1  4  1  2 14  7  5 10  9  1
 1  4  1  3 12  6  5 10 10  1
 1  4  1  4 13  7  5  9  8  1
 1  4  2  1 14  7  6 10  8  1
 1  4  2  2 14  7  6 11  8  0
 1  4  2  3 12  6  5 11  9  1
 1  4  2  4 13  7  5 10  7  1
 1  4  3  1 13  9  5 10  9  1
 1  4  3  2 13  9  5 11  9  1
 1  4  3  3 11  8  5 11 10  1
 1  4  3  4 12  9  5 10  8  1
 2  1  1  1 12 10  8  7  9  0
 2  1  1  2 12 12  6  8  8  1
 2  1  1  3 12 12  6  7  8  1
 2  1  2  1 13 10  6  7  9  0
 2  1  2  2 13 12  5  8  8  0
 2  1  2  3 13 12  5  7  8  1
 2  1  3  1 12 10  7  8  8  1
 2  1  3  2 12 12  5  9  7  1
 2  1  3  3 12 12  5  8  7  1
 2  1  4  1 12 12  7  8  8  0
 2  1  4  2 12 14  5  9  7  0 High int
 2  1  4  3 12 14  5  8  7  1
 2  2  1  1 13  8  7  8  8  1
 2  2  1  2 13 10  5  9  7  1
 2  2  1  3 13 10  5  8  7  1
 2  2  2  1 14  8  6  8  8  0
 2  2  2  2 14 10  5  9  7  0 High str, then int
 2  2  2  3 14 10  5  8  7  1
 2  2  3  1 13  8  6  9  7  1
 2  2  3  2 13 10  5 10  6  1
 2  2  3  3 13 10  5  9  6  1
 2  2  4  1 13 10  6  9  7  0
 2  2  4  2 13 12  5 10  6  0
 2  2  4  3 13 12  5  9  6  1
 2  3  1  1 13 10  5  8  8  1
 2  3  1  2 13 10  5  9  8  1
 2  3  1  3 11  9  5  9  9  1
 2  3  1  4 12 10  5  8  7  1
 2  3  2  1 13 10  5  9  7  1
 2  3  2  2 13 10  5 10  7  1
 2  3  2  3 11  9  5 10  8  1
 2  3  2  4 12 10  5  9  6  1
 2  3  3  1 12 12  5  9  8  1
 2  3  3  2 12 12  5 10  8  0
 2  3  3  3 10 11  5 10  9  1
 2  3  3  4 11 12  5  9  7  1
 2  4  1  1 13 11  5  7  7  1
 2  4  1  2 13 11  5  8  7  1
 2  4  1  3 11 10  5  8  8  1
 2  4  1  4 12 11  5  7  6  1
 2  4  2  1 13 11  6  8  6  1
 2  4  2  2 13 11  6  9  6  0
 2  4  2  3 11 10  5  9  7  1
 2  4  2  4 12 11  5  8  5  1
 2  4  3  1 12 13  5  8  7  1
 2  4  3  2 12 13  5  9  7  1
 2  4  3  3 10 12  5  9  8  1
 2  4  3  4 11 13  5  8  6  1
 3  1  1  1 10  9  9 10 10  1
 3  1  1  2 10 11  7 11  9  1
 3  1  1  3 10 11  7 10  9  1
 3  1  2  1 11  9  7 10 10  1
 3  1  2  2 11 11  5 11  9  0
 3  1  2  3 11 11  5 10  9  1
 3  1  3  1 10  9  8 11  9  1
 3  1  3  2 10 11  6 12  8  1
 3  1  3  3 10 11  6 11  8  1
 3  1  4  1 10 11  8 11  9  0
 3  1  4  2 10 13  6 12  8  0
 3  1  4  3 10 13  6 11  8  1
 3  2  1  1 11  7  8 11  9  1
 3  2  1  2 11  9  6 12  8  1
 3  2  1  3 11  9  6 11  8  1
 3  2  2  1 12  7  6 11  9  1
 3  2  2  2 12  9  5 12  8  0
 3  2  2  3 12  9  5 11  8  1
 3  2  3  1 11  7  7 12  8  1
 3  2  3  2 11  9  5 13  7  1
 3  2  3  3 11  9  5 12  7  1
 3  2  4  1 11  9  7 12  8  0
 3  2  4  2 11 11  5 13  7  0 High dex, then str then int; high dex, then int then str
 3  2  4  3 11 11  5 12  7  1
 3  3  1  1 11  9  5 11  9  1
 3  3  1  2 11  9  5 12  9  0
 3  3  1  3  9  8  5 12 10  1
 3  3  1  4 10  9  5 11  8  1
 3  3  2  1 11  9  6 12  8  1
 3  3  2  2 11  9  6 13  8  0 High dex, then pie; high dex, then str then pie or vit
 3  3  2  3  9  8  5 13  9  1
 3  3  2  4 10  9  5 12  7  1
 3  3  3  1 10 11  5 12  9  1
 3  3  3  2 10 11  5 13  9  0 High dex, then int then vit
 3  3  3  3  8 10  5 13 10  0 High dex, then vit
 3  3  3  4  9 11  5 12  8  1
 3  4  1  1 11 10  6 10  8  1
 3  4  1  2 11 10  6 11  8  0
 3  4  1  3  9  9  5 11  9  1
 3  4  1  4 10 10  5 10  7  1
 3  4  2  1 11 10  7 11  7  1
 3  4  2  2 11 10  7 12  7  0
 3  4  2  3  9  9  6 12  8  1
 3  4  2  4 10 10  6 11  6  1
 3  4  3  1 10 12  6 11  8  1
 3  4  3  2 10 12  6 12  8  1
 3  4  3  3  8 11  5 12  9  1
 3  4  3  4  9 12  5 11  7  1
 4  1  1  1 11  6 12  8 12  0 High pie; high vit, then pie
 4  1  1  2 11  8 10  9 11  1
 4  1  1  3 11  8 10  8 11  1
 4  1  2  1 12  6 10  8 12  0 High vit, then str
 4  1  2  2 12  8  8  9 11  0
 4  1  2  3 12  8  8  8 11  1
 4  1  3  1 11  6 11  9 11  1
 4  1  3  2 11  8  9 10 10  1
 4  1  3  3 11  8  9  9 10  1
 4  1  4  1 11  8 11  9 11  0
 4  1  4  2 11 10  9 10 10  0
 4  1  4  3 11 10  9  9 10  1
 4  2  1  1 12  5 11  9 11  0
 4  2  1  2 12  6  9 10 10  1
 4  2  1  3 12  6  9  9 10  1
 4  2  2  1 13  5  9  9 11  0
 4  2  2  2 13  6  7 10 10  1
 4  2  2  3 13  6  7  9 10  1
 4  2  3  1 12  5 10 10 10  1
 4  2  3  2 12  6  8 11  9  1
 4  2  3  3 12  6  8 10  9  1
 4  2  4  1 12  6 10 10 10  0
 4  2  4  2 12  8  8 11  9  0
 4  2  4  3 12  8  8 10  9  1
 4  3  1  1 12  6  8  9 11  1
 4  3  1  2 12  6  8 10 11  0
 4  3  1  3 10  5  7 10 12  0
 4  3  1  4 11  6  7  9 10  1
 4  3  2  1 12  6  9 10 10  1
 4  3  2  2 12  6  9 11 10  0
 4  3  2  3 10  5  8 11 11  1
 4  3  2  4 11  6  8 10  9  1
 4  3  3  1 11  8  8 10 11  1
 4  3  3  2 11  8  8 11 11  0
 4  3  3  3  9  7  7 11 12  0 High vit, then int or dex
 4  3  3  4 10  8  7 10 10  1
 4  4  1  1 12  7  9  8 10  1
 4  4  1  2 12  7  9  9 10  0
 4  4  1  3 10  6  8  9 11  1
 4  4  1  4 11  7  8  8  9  1
 4  4  2  1 12  7 10  9  9  1
 4  4  2  2 12  7 10 10  9  0
 4  4  2  3 10  6  9 10 10  1
 4  4  2  4 11  7  9  9  8  1
 4  4  3  1 11  9  9  9 10  1
 4  4  3  2 11  9  9 10 10  1
 4  4  3  3  9  8  8 10 11  1
 4  4  3  4 10  9  8  9  9  1

For the priest:

Code:
Q1 Q2 Q3 Q4 St In Pi De Vi Dom High Stats
 1  1  1  1  9  7 10 12  8  0
 1  1  1  2 10  5 13 10  6  0
 1  1  1  3  9  6 10 12  7  1
 1  1  1  4  9  8  9 11  8  0
 1  1  2  1  9  6  8 12  9  0
 1  1  2  2 10  5 11 10  7  0
 1  1  2  3  9  5  8 12  8  1
 1  1  2  4  9  7  7 11  9  0
 1  2  1  1  7  8 12 10  7  1
 1  2  1  2  8  6 14  8  5  1
 1  2  1  3  7  7 12 10  6  1
 1  2  1  4  7  9 11  9  7  1
 1  2  2  1  7  6 10 10  8  1
 1  2  2  2  8  5 13  8  6  1
 1  2  2  3  7  5 10 10  7  1
 1  2  2  4  7  7  9  9  8  1
 1  3  1  1  9 10 10 12  6  0
 1  3  1  2  8  7 12 10  5  1
 1  3  1  3  8  7 12 11  6  0
 1  3  2  1  9  8  9 13  7  0 High dex
 1  3  2  2  8  5 11 11  6  1
 1  3  2  3  8  5 11 12  7  0
 2  1  1  1 11  7 11  9  8  0
 2  1  1  2 12  5 14  7  6  0 High str, then pie; high pie, then str
 2  1  1  3 11  6 11  9  7  1
 2  1  1  4 11  8 10  8  8  0
 2  1  2  1 11  6  9  9  9  0
 2  1  2  2 12  5 12  7  7  0 High str, then vit
 2  1  2  3 11  5  9  9  8  1
 2  1  2  4 11  7  8  8  9  0
 2  2  1  1  9  8 13  7  7  1
 2  2  1  2 10  6 14  5  5  0
 2  2  1  3  9  7 13  7  6  1
 2  2  1  4  9  9 12  6  7  0
 2  2  2  1  9  6 11  7  8  1
 2  2  2  2 10  5 14  5  6  1
 2  2  2  3  9  5 11  7  7  1
 2  2  2  4  9  7 10  6  8  1
 2  3  1  1 11 10 11  9  6  0
 2  3  1  2 10  7 13  7  5  1
 2  3  1  3 10  7 13  8  6  0
 2  3  2  1 11  8 10 10  7  0
 2  3  2  2 10  5 12  8  6  1
 2  3  2  3 10  5 12  9  7  0
 3  1  1  1  8 10 10  9 10  0
 3  1  1  2  9  8 13  7  8  0
 3  1  1  3  8  9 10  9  9  1
 3  1  1  4  8 11  9  8 10  0
 3  1  2  1  8  8  8  9 11  0 High vit, then pie or dex
 3  1  2  2  9  6 11  7  9  0
 3  1  2  3  8  7  8  9 10  1
 3  1  2  4  8  9  7  8 11  0 High vit, then int
 3  2  1  1  6 11 12  7  9  0
 3  2  1  2  7  9 14  5  7  0 High pie, then vit
 3  2  1  3  6 10 12  7  8  1
 3  2  1  4  6 12 11  6  9  0
 3  2  2  1  6  9 10  7 10  1
 3  2  2  2  7  7 13  5  8  1
 3  2  2  3  6  8 10  7  9  1
 3  2  2  4  6 10  9  6 10  1
 3  3  1  1  8 13 10  9  8  0
 3  3  1  2  7 10 12  7  7  1
 3  3  1  3  7 10 12  8  8  1
 3  3  2  1  8 11  9 10  9  0
 3  3  2  2  7  8 11  8  8  1
 3  3  2  3  7  8 11  9  9  0
 4  1  1  1  7 12 12 10  8  0
 4  1  1  2  8 10 14  8  6  0
 4  1  1  3  7 11 12 10  7  1
 4  1  1  4  7 13 11  9  8  0
 4  1  2  1  7 10 10 10  9  0
 4  1  2  2  8  8 13  8  7  0
 4  1  2  3  7  9 10 10  8  1
 4  1  2  4  7 11  9  9  9  1
 4  2  1  1  5 13 13  8  7  0
 4  2  1  2  6 11 14  6  5  1
 4  2  1  3  5 12 13  8  6  1
 4  2  1  4  5 14 12  7  7  0 High int, then vit
 4  2  2  1  5 11 12  8  8  1
 4  2  2  2  6  9 14  6  6  1
 4  2  2  3  5 10 12  8  7  1
 4  2  2  4  5 12 11  7  8  1
 4  3  1  1  7 14 12 10  6  0 High int, then str or dex
 4  3  1  2  6 12 14  8  5  1
 4  3  1  3  6 12 14  9  6  0 High pie, then int; high pie, then dex
 4  3  2  1  7 13 11 11  7  0
 4  3  2  2  6 10 13  9  6  1
 4  3  2  3  6 10 13 10  7  0

For the magician:
Code:
Q1 Q2 Q3 Q4 St In Pi De Vi Dom High Stats
 1  1  1  1  7 14  5 10  6  1
 1  1  1  2  6 14  5  9  7  1
 1  1  1  3  5 14  6 10  6  1
 1  1  1  4  6 14  5 11  5  1
 1  1  2  1  6 14  6  8  9  0
 1  1  2  2  5 14  7  7 10  0
 1  1  2  3  5 14  8  8  9  0
 1  1  2  4  5 14  7  9  8  1
 1  2  1  1  9 13  5 10  5  1
 1  2  1  2  8 13  6  9  6  1
 1  2  1  3  7 13  7 10  5  1
 1  2  1  4  8 13  6 11  5  1
 1  2  2  1  8 12  7  8  7  0
 1  2  2  2  7 12  8  7  8  1
 1  2  2  3  6 12  9  8  7  0
 1  2  2  4  7 12  8  9  6  0
 1  3  1  1  8 14  5 11  5  1
 1  3  1  2  7 14  5 10  6  1
 1  3  1  3  6 14  6 11  5  1
 1  3  1  4  7 14  5 12  5  1
 1  3  2  1  7 14  5  9  8  1
 1  3  2  2  6 14  6  8  9  0
 1  3  2  3  5 14  7  9  8  1
 1  3  2  4  6 14  6 10  7  1
 2  1  1  1  8 14  8  7  6  0
 2  1  1  2  7 14  9  6  7  0
 2  1  1  3  6 14 10  7  6  0 High int, then pie
 2  1  1  4  7 14  9  8  5  0
 2  1  2  1  7 13 10  5  9  0
 2  1  2  2  6 13 11  5 10  0
 2  1  2  3  5 13 12  5  9  0
 2  1  2  4  6 13 11  6  8  0
 2  2  1  1 10 12  9  7  5  0
 2  2  1  2  9 12 10  6  6  0
 2  2  1  3  8 12 11  7  5  0
 2  2  1  4  9 12 10  8  5  0
 2  2  2  1  9 11 11  5  7  0
 2  2  2  2  8 11 12  5  8  0
 2  2  2  3  7 11 13  5  7  0 High pie
 2  2  2  4  8 11 12  6  6  0
 2  3  1  1  9 14  7  8  5  0
 2  3  1  2  8 14  8  7  6  0
 2  3  1  3  7 14  9  8  5  0
 2  3  1  4  8 14  8  9  5  0
 2  3  2  1  8 13  9  6  8  0
 2  3  2  2  7 13 10  5  9  0
 2  3  2  3  6 13 11  6  8  0
 2  3  2  4  7 13 10  7  7  0
 3  1  1  1  8 12  7  7 11  0
 3  1  1  2  7 12  8  6 12  0 High vit, then dex
 3  1  1  3  6 12  9  7 11  0
 3  1  1  4  7 12  8  8 10  0
 3  1  2  1 10 14  7  5 10  0
 3  1  2  2  9 14  8  5 11  0
 3  1  2  3  8 14  9  5 10  0
 3  1  2  4  9 14  8  6  9  0
 3  1  3  1  8 14  7  5 11  1
 3  1  3  2  7 14  8  5 12  0 High int, then vit; high vit, then int
 3  1  3  3  6 14  9  5 11  0
 3  1  3  4  7 14  8  6 10  0
 3  2  1  1  9 13  5  6 10  0
 3  2  1  2  8 13  6  5 11  1
 3  2  1  3  7 13  7  6 10  1
 3  2  1  4  8 13  6  7  9  0
 3  2  2  1 11 14  5  5  9  0 High str; high int, then str
 3  2  2  2 10 14  6  5 10  1
 3  2  2  3  9 14  7  5  9  1
 3  2  2  4 10 14  6  6  8  0
 3  2  3  1  9 14  5  5 10  1
 3  2  3  2  8 14  6  5 11  1
 3  2  3  3  7 14  7  5 10  1
 3  2  3  4  8 14  6  6  9  1
 4  1  1  1  6 12  6 13  8  0
 4  1  1  2  5 12  7 12  9  0
 4  1  1  3  5 12  8 13  8  0
 4  1  1  4  5 12  7 14  7  0 High dex
 4  1  2  1  8 14  6 11  7  0
 4  1  2  2  7 14  7 10  8  0
 4  1  2  3  6 14  8 11  7  0
 4  1  2  4  7 14  7 12  6  0 High int, then dex then str
 4  1  3  1  6 14  6 11  8  0
 4  1  3  2  5 14  7 10  9  0
 4  1  3  3  5 14  8 11  8  0
 4  1  3  4  5 14  7 12  7  0 High int, then dex then vit
 4  2  1  1  7 13  5 12  7  0
 4  2  1  2  6 13  5 11  8  1
 4  2  1  3  5 13  6 12  7  1
 4  2  1  4  6 13  5 13  6  0
 4  2  2  1  9 14  5 10  6  0
 4  2  2  2  8 14  5  9  7  1
 4  2  2  3  7 14  6 10  6  1
 4  2  2  4  8 14  5 11  5  1
 4  2  3  1  7 14  5 10  7  1
 4  2  3  2  6 14  5  9  8  1
 4  2  3  3  5 14  6 10  7  1
 4  2  3  4  6 14  5 11  6  1
 

Monstrous Bat

Cipher
Joined
Dec 30, 2011
Messages
638
Someone should give vanshilar a ":obviously: 2014 newfag" title. You know, similiar to the one Deuce Traveler got. :love::salute:
I thought the combat was pretty good. As far as top down turn based combat goes only SSI's Gold Box and some of their pre GB games are definitely better among the DOS era CRPGs. The combat does has some flaws though, like no missile attacks and only 1 movement point for player characters.

Few CRPGs have managed to combine a decent combat engine with excellent level design and puzzles like Uukrul did.
Well, the combat engine isn't half bad, but like many CRPGs, the combat got kinda repetitive in the late game, where the party has grown so powerful that very few things could pose a threat.
 

vanshilar

Educated
Joined
Jun 10, 2014
Messages
17
Here's the experience needed to get each of the rings for the priest and magician.

I thought somewhere along the line that your rings depend on which spells you used more frequently. Maybe it's still the case, so let me know if you get a different ring (or in a different order) than what's listed here. However, I was able to get the rings by experience alone.

I basically tested by using HxD to modify the experience in memory, as well the bytes encoding what spells the character currently has and how many times I've leveled up. It's possible that other data encodes which ring the magician should get for example on leveling up, which I didn't check for.

Code:
Ring           Ufthu  Drutho Golthur Fshofth    Fire   Frost Protect Healing Knowledge
Iron (Fe)          0     900       0    2600       0     300    1700       0       0
Copper (Cu)      300    8000    1700   14000     900    5900   14000    4100    2600
Silver (Ag)     5900   32000   10500   52000    8000   26000   40000   10500   19500
Gold (Au)      26000  100000   40000  147000   52000   82000  147000   32000   66000
Platinum (Pt)  82000  250000  120000  350000  177000  210000  300000  100000  120000
Crystal (Xt)  210000  460000  300000  480000  350000  460000  390000  440000  250000

The values are in the latter part of SPELLS.TBL, in little endian, decimal form:

Code:
   300    900   1700   2600   4100
  5900   8000  10500  14000  19500
 26000  32000  40000  52000  66000
 82000 100000 120000 147000 177000
210000 250000 300000 350000 390000
440000 460000 470000 480000 490000

The experience for the priest is just the first 4 columns, except shifted downward (so one level easier) for Ufthu and Golthur because you start off at Iron for them. For the magician, it's not in order; I don't know where the game stores this information (which discipline the magician should advance in on leveling). If one of them depends on which spells were used, the magician is the more likely one. Or it might be that I was mistaken about the spells used affecting which ring you get on leveling up and the experience alone is what determines it.

SPELLS.TBL also encodes other information about each spell, which I'm still working on figuring out. The first byte is the length of the spell's name, bytes 2 to 12 are the spell's name, bytes 13 and 14 encode the level of the spell (Iron to Crystal), the spell's mana cost, and which god or discipline the spell belongs to, at least for the magician. (The numbers are somewhat different for the priest, which I haven't figured out). I don't know yet what bytes 15 and 16 do. Hopefully the undecoded portions will have something interesting like say the chance of success for prayers or something, but that's speculation at this point.

I guess I'll start looking at monsters in combat next, or maybe leveling up, seeing as how I can change the experience at will.
 
Last edited:

Biznatch Haderach

Barely Literate
Joined
Jun 14, 2014
Messages
3
I can remember the Computer Gaming World review of this and how it always made their top ten lists, but I never saw it in the store I used to go to.

Spell descriptions are simply amazing. Looks like it had some of the elements I liked in the Magic Candle, where you don't know exactly what is what until you have put some effort into things.

If there's anything I'd like to see kickstarted, it would have to be a graphically updated but faithful version of this game. It would be even more awesome since I have not played it, whereas with the Ultimas and nearly everything else of worth I have played it so much I just can't force myself to make another runthrough.

Thanks for making this nice thread, I had forgotten this game even existed until you reminded me.
 

vanshilar

Educated
Joined
Jun 10, 2014
Messages
17
Okay so I figured out how the monster HP bar works. It's relatively unimportant in the grand scheme of things but at least it's one of those things to know.

Basically, the HP bar is 38 pixels wide. It decreases in chunks of 2 pixels wide, so there's 19 increments. The rightmost increment will always be present, even if the monster has 0 HP. For the remaining 18 increments, it will display the proportion of HP remaining, rounding down (truncating). By this I mean that even if the monster only lost 1 HP out of 10000 HP, the first increment will disappear.

So basically, the number of pixels that it will display is:

2 + 2 * truncate(18 * current HP / max HP)

I was hoping to be able to match up the monster data with what's in MONSTERS.TBL, but I couldn't find a match. That is, the data that's loaded into memory about monsters doesn't line up with any section of the file as far as I can tell, other than the names. I also didn't notice monster stats in the sense of monster Str, Int, etc., the way it's coded in Gold Box games like Curse of the Azure Bonds. So in the end, it may just be a collection of observed monster HP (which is a range) for the different monsters, since that's what I've been able to find in the memory so far.

For leveling it turns out that your specialization (i.e. warrior, berserk, or guard if you're a fighter) does affect leveling up, but I'm still building up the data for it (only a few samples). But for example, if you have 18 Str after leveling up, you'll get 41 added to your encumbrance if you're a warrior, 42 if you're a berserk, and 40 if you're a guard. So aim for Berserk if you're looking for high encumbrance. Unfortunately, it's random as to your character stats (Str, Int, etc.) increasing on a level up, and the amount of HP that you get seems to depend not only on your stats but also on your level (you get more HP at the later levels even with the same vitality) and is also randomized; this is why it'll take a lot of data to work out how this works.

If there's anything I'd like to see kickstarted, it would have to be a graphically updated but faithful version of this game. It would be even more awesome since I have not played it, whereas with the Ultimas and nearly everything else of worth I have played it so much I just can't force myself to make another runthrough.

I'm not sure what you have in mind. Do you mean for someone to code up a new game that has same/similar gameplay, monsters, puzzles, etc. as Uukrul? In that case it's difficult to get it done properly because we still don't know most of how the game mechanics actually work -- things like how Strength affects your weapon damage or how the game determines whether or not a god listens to your priest when invoking.

If you're talking about taking the current game and then just figuring out how the graphics are encoded (which may not be that difficult, I've done it for Master of Orion before) and modify those files, then it will be more straightforward and likely, but how much graphics you can change will be limited. For example, there would likely be limitations on the size of the sprites (the same limitations as what you have currently) resolution of the screen, etc. However, the improvement would be that you wouldn't have to work under the limited file sizes of the time, i.e. you could have more complex graphics (in the sense of more colors or complicated patterns). If they're restricted to the same size, however, it limits how fancy the items and stuff will look.

I think it raises another issue, though: Is it the graphics that attract people to a game, versus other factors such as gameplay, NPC interaction, combat, etc.? What is the "business case" so to speak of putting effort into an Uukrul with updated graphics?
 

vanshilar

Educated
Joined
Jun 10, 2014
Messages
17
Oh if you're really looking for Uukrul with updated graphics, apparently somebody did make one using RPG Maker:

http://elcrom.com/uukrul/

No idea if it actually plays anything like the original, heh.
 

Deuce Traveler

2012 Newfag
Patron
Joined
May 11, 2012
Messages
2,902
Location
Okinawa, Japan
Grab the Codex by the pussy Divinity: Original Sin Torment: Tides of Numenera Shadorwun: Hong Kong Pathfinder: Kingmaker Steve gets a Kidney but I don't even get a tag. Pathfinder: Wrath I'm very into cock and ball torture
I didn't mind this:

screenshot_2_shop.png


Or this...

screenshot_3_ini.png


Even though the art actually takes away from the imaginative descriptions. However, they replaced the tactical 2D combat for this:

screenshot_6_fight.png


I agree with the above Pelsia...:retarded:

At least the creator's dark heart was in the right place. I think it is hard to create a 2D game in RPG Maker, though I have read that some have tried using battles on a world map similar to the Shining Force series.
 

TigerKnee

Arcane
Joined
Feb 24, 2012
Messages
1,920
There are scripts for tactical battles in RPGMaker, I've seen them.

That being said, something I realized recently and I kind of wonder why I didn't earlier is that the battlefields in Uukrul is actually based off the room you are actually fighting in. I was so used to JRPGs having the "completely different dimension portals" battles that I just assumed it worked the same way. That's probably something an RPGMaker script probably would have a hard time accomplishing.
 

vanshilar

Educated
Joined
Jun 10, 2014
Messages
17
Okay so this is about leveling up for the fighter. The conclusions are:

* Your max encumbrance increase depends on the specialization (Berserk, Warrior, or Guard) and the strength (including any gains while leveling). For the Berserk, it is 6 + 2*str, while for the Warrior, it is 5 + 2*str, and for the Guard, it is 4 + 2*str. If you're a Berserk, your strength was 15, and it increases to 16, then the max encumbrance will increase by 6 + 2*16 = 38. So you should go for the Berserk during party creation for the highest max encumbrance.

* Your max HP increase does NOT depend on your vitality. I got the same amounts of HP for the warrior whether I started with 5 or 20 vitality. Indeed, I started with 5 in all stats, so it also rules out the other stats. It also doesn't depend on the specialization; all 3 had similar gains. So I don't really know what vitality does; usually (i.e. AD&D) it increases your HP, but not for this game.

* Kinda mentioned in the manual, but you can only get up to 20 stat when leveling. Whether or not you increase in each stat is rolled individually, i.e. having 20 in a stat does not increase your chance of the other stats increasing. It is simply "wasted" so to speak, although for example it's good to get strength up early on so you can get a high max encumbrance, since they'll accumulate.

* For the Warrior, based on 5150 samples, the probability of each stat increasing and how many stat increases you'll get on average from level 1 to level 15 (14 level-ups) are:

Code:
Stat %chance @Lvl15
Str  45.19%  +6.3272
Int  29.38%  +4.1132
Pie  29.19%  +4.0868
Dex  29.16%  +4.0821
Vit  52.58%  +7.3616

I still have to go back and see how likely it is for the other specializations. Basically, I wrote a script so that each sample started at level 1 with 5 in each stat, then it took a screenshot at level 1 and at each level up to 15 of the character screen. In this case I took 5150 samples but that was overkill (77250 screenshots), I think for the others it'll generally be around 300 or so samples. (I took a lot of samples because I was expecting to do a vitality to max HP analysis, but that wasn't needed.)

* The max HP increase seems to depend on level, and not the specialization nor the vitality. The average gains were:

Code:
Lvl Berserk Warrior Guard   Warrior5  StDev
2   15.8714 15.9857 16.0450 15.9759   2.302
3   23.8057 24.2200 23.9425 23.9965   4.008
4   31.6914 31.6857 32.2075 32.0889   5.698
5   39.9486 39.9200 39.8100 40.0134   7.238
6   47.1029 48.0800 47.0950 48.0806   8.980
7   56.0029 55.4543 56.1050 56.0485  10.601
8   63.8171 64.6486 65.2850 63.7371  12.278
9   58.6514 59.6743 61.1925 59.9031  11.313
10  63.4143 64.2486 63.6650 64.1680  12.244
11  67.2343 68.9429 67.6675 67.9462  12.959
12  70.3686 72.9371 73.3300 72.2647  13.632
13  75.6029 76.8771 76.8400 75.8744  14.767
14  79.3400 80.8600 80.1675 80.1093  15.395
15  83.8029 84.1914 84.1275 84.0148  16.377
Tests   350     350     400    5150

The columns are the specializations, with 20 vitality, while "Warrior5" was the Warrior starting with 5 vitality at level 1, and "StDev" was the standard deviation in the HP gains per level for the Warrior5 data set. The bottom row is the number of samples for each data set.

Based on this, it seems like the formula for the max HP increase is:

Code:
Lvl   2    3    4    5    6    7    8    9   10   11   12   13   14   15
Dice 8d3  8d5  8d7  8d9 8d11 8d13 8d15 8d14 8d15 8d16 8d17 8d18 8d19 8d20

That's just my speculation because it fits the averages and standard deviations though. Note that yes, there is a kink between getting to level 8 and getting to level 9.

Next I guess I'll do the same thing for the other classes, as well as see if the other fighter specializations gain stats differently than the Warrior.
 

Deuce Traveler

2012 Newfag
Patron
Joined
May 11, 2012
Messages
2,902
Location
Okinawa, Japan
Grab the Codex by the pussy Divinity: Original Sin Torment: Tides of Numenera Shadorwun: Hong Kong Pathfinder: Kingmaker Steve gets a Kidney but I don't even get a tag. Pathfinder: Wrath I'm very into cock and ball torture
Do you think it is possible that Vitality is used to reduce physical damage taken or effects the chance to avoid certain effects like poison?
 

Crooked Bee

(no longer) a wide-wandering bee
Patron
Joined
Jan 27, 2010
Messages
15,048
Location
In quarantine
Codex 2013 Codex 2014 PC RPG Website of the Year, 2015 Codex 2016 - The Age of Grimoire MCA Serpent in the Staglands Dead State Divinity: Original Sin Project: Eternity Torment: Tides of Numenera Wasteland 2 Shadorwun: Hong Kong Divinity: Original Sin 2 BattleTech Pillars of Eternity 2: Deadfire
Your dissection of the game is pretty impressive. Once you're done, I'll be happy to link your posts to Martin Buis (unless he's lurking this thread already - you never know!). Who knows, he might be interested in this, or maybe even have some comments.
 

Jack Dandy

Arcane
Joined
Feb 10, 2013
Messages
3,039
Location
Israel
Divinity: Original Sin 2
Remind me, who has the rights for the original game? Or is it some state of copyright limbo?
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom