It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
Hello. Some time ago I made editor for UW1, which I actually made because I wanted to randomize items (kinda like a roguelike). And after all it just became a full editor, but I dropped the randomization bit. Right now I got interested in this game again for some reason and thought to myself, I would really like that randomization right now, But I kind of don't want to program it just for myself. So I ask you a question : would you be interested in a program (let's say windows application) that randomizes items in UW1? Here, examples:
- Removes non quest items from maps and creates completely new items (weapons, armor, food) in random (but sensible) locations
- Randomizes rune locations
- Replaces mantras and adds notes that reveal those mantras
- Randomizes enemies too (and adds random loot to them).
- Most of this could be tweaked by couple of sliders that would change the scarcity of items
Hrm. That might actually be interesting, depending on how it was implemented. I'd have to actually explore the Abyss to find things again.
avatar
krokots: Hello. Some time ago I made editor for UW1, which I actually made because I wanted to randomize items (kinda like a roguelike). And after all it just became a full editor, but I dropped the randomization bit. Right now I got interested in this game again for some reason and thought to myself, I would really like that randomization right now, But I kind of don't want to program it just for myself. So I ask you a question : would you be interested in a program (let's say windows application) that randomizes items in UW1? Here, examples:
- Removes non quest items from maps and creates completely new items (weapons, armor, food) in random (but sensible) locations
- Randomizes rune locations
- Replaces mantras and adds notes that reveal those mantras
- Randomizes enemies too (and adds random loot to them).
- Most of this could be tweaked by couple of sliders that would change the scarcity of items
Absolutely! But I think there would need to be some metes and bounds, such as rune locations being randomized on the same floor, and not being able to find a breastplate of Unsurpassed Toughness on the first floor.

Having mantras randomized in a way where you are forced to unlock them before using them also makes much more sense.

It would also be nice if enemies respawned--particularly powerful ones that have a chance of dropping powerful items.
There actually exist randomizers for both the NES version of Ultima 4 and the SNES version of Ultima 6; you might consider checking them out.
avatar
krokots: - Removes non quest items from maps
You could also randomize quest items as well, as long as you have some logic to make sure that the game is still winnable.
Post edited October 12, 2021 by dtgreene
avatar
dtgreene: You could also randomize quest items as well, as long as you have some logic to make sure that the game is still winnable.
While this is possible, I feel like that would require *a lot* more programming and bug testing. Particularly for the Talismans...if you randomized how to get them to appear or which area you might need to search to obtain that item, then the clues would also need to be randomized in some way. That would be a mean feat...
avatar
dtgreene: You could also randomize quest items as well, as long as you have some logic to make sure that the game is still winnable.
avatar
bliznik: While this is possible, I feel like that would require *a lot* more programming and bug testing. Particularly for the Talismans...if you randomized how to get them to appear or which area you might need to search to obtain that item, then the clues would also need to be randomized in some way. That would be a mean feat...
Not necessarily.

The clues could point to the vanilla locations of the talismans, but remove the actual mention of talismans from the clues; the talismans could be anywhere, while the talisman locations could have anything that's compatible with the logic.

Having the clues point to the new location might be trickier. Having them mention what's found in the vanilla location wouldn't be quite as tricky, and would allow the player to decide if it's worth their time going to the vanilla talisman location.
avatar
dtgreene: The clues could point to the vanilla locations of the talismans, but remove the actual mention of talismans from the clues; the talismans could be anywhere, while the talisman locations could have anything that's compatible with the logic.

Having the clues point to the new location might be trickier. Having them mention what's found in the vanilla location wouldn't be quite as tricky, and would allow the player to decide if it's worth their time going to the vanilla talisman location.
Hmm, let's do a thought experiment.
Taper - This is from Zak. I'm unsure how you can shuffle this location without some major programming
Banner - This is given by Dorna. I'm also unsure how to shuffle this location without some major programming
Sword Hilt - This can be shuffled a bit...it can be changed to a different location in the tombs
Sword Blade - This can be shuffled a bit...it can be changed to a different location in the drained pond, or the pond could contain a separate randomized clue that points to different locations where the blade could be spawned
Ring - This appears only after you use the switches in a certain order. Again, I'm unsure how you can shuffle this location without some major programming
Shield - This is given by the golem. I'm unsure how you can shuffle this location without some major programming.
Book - This can be found in a hidden location that doesn't really have many hiding places. I'm unsure how you could shuffle this location very dramatically without some major programming.
Wine - This is revealed in a corner. I guess you could do some minor programming by randomizing the location of where the cup is revealed, and then correlating the hint to other corners (e.g. NE, SE, SW, NW)...I'm unsure how involved it would be to create other hidden locations in that chamber.
Cup - This is from playing the tune. I'm also unsure how to shuffle this location without some major programming.

So...out of the 8 Talismans, if the only thing you're doing is changing the location and some text in the game, I think you can shuffle...2 of them.

There are a lot of other quest items that are only provided by certain entities in the game, or are placed in particular set locations that have hints that lead to those locations. There may be a few, like the location of the Writ of Lorne, which may be shuffled for a bit, but for the most part, I feel like shuffling the location of quest items would require quite a bit of work.
Post edited October 12, 2021 by bliznik
avatar
bliznik: So...out of the 8 Talismans, if the only thing you're doing is changing the location and some text in the game, I think you can shuffle...2 of them.
The problem with shuffling the talismans is that you have to rewrite the entire quest lines. If you look at what happens to uncover each talisman, they are testing for the given characteristic.

The Shield of Valor might be the easiest, but you'd have to set up a whole new room and powerful monster, and rewrite some of the mage dialogue (and I think maybe the Knights have a reference to it too?). You'd also have to set some extra anti-cheese measures around your new room; there are some things that don't work in the golem's area (i don't recall what off-hand, just surprised when I ran into it and I'm guessing it is anti-cheese measures because it worked a little further away from the golem).

The Cup of Wonder (Spirituality) is more than just "play flute at X location". You have to learn the song (Cabirus enjoyed a spiritual song, said something would happen if you play it at a certain place), then you have to figure out the meaning behind a series of visions before you can use that meaning to work out the location to play the song!

Wine: You have to show compassion to a thief before being given the location of the wine.
avatar
bliznik: So...out of the 8 Talismans, if the only thing you're doing is changing the location and some text in the game, I think you can shuffle...2 of them.
avatar
Bookwyrm627: The problem with shuffling the talismans is that you have to rewrite the entire quest lines. If you look at what happens to uncover each talisman, they are testing for the given characteristic.

The Shield of Valor might be the easiest, but you'd have to set up a whole new room and powerful monster, and rewrite some of the mage dialogue (and I think maybe the Knights have a reference to it too?). You'd also have to set some extra anti-cheese measures around your new room; there are some things that don't work in the golem's area (i don't recall what off-hand, just surprised when I ran into it and I'm guessing it is anti-cheese measures because it worked a little further away from the golem).

The Cup of Wonder (Spirituality) is more than just "play flute at X location". You have to learn the song (Cabirus enjoyed a spiritual song, said something would happen if you play it at a certain place), then you have to figure out the meaning behind a series of visions before you can use that meaning to work out the location to play the song!

Wine: You have to show compassion to a thief before being given the location of the wine.
No, you don't have to do this.

Rather, the Shield of Valor might be in some random treasure chest somewhere (so you pretty much have to learn where all the chests are if you want to reliably clear the game in a reasonable amount of time). The quest that gives you the Shield of Valor would still give you something, but it (most likely) would not be the Shield of Valor. It might be another talisman or key item (but not something required to get to this point in the first place), it might be some really nice piece of equipment that isn't important story-wise, or it might be junk.

At least this is how it works in other randomizers I'm familiar with.
avatar
dtgreene: Rather, the Shield of Valor might be in some random treasure chest somewhere (so you pretty much have to learn where all the chests are if you want to reliably clear the game in a reasonable amount of time). The quest that gives you the Shield of Valor would still give you something, but it (most likely) would not be the Shield of Valor. It might be another talisman or key item (but not something required to get to this point in the first place), it might be some really nice piece of equipment that isn't important story-wise, or it might be junk.
Yes, but if the Shield of Valor is just in a random chest somewhere, then you wouldn't have overcome a quest of Valor to earn it...unless that quest was guarded by a particularly powerful Golem.

I mean, sure, there are ways to randomly distribute each of the 8 Talismans in random areas on each of the 8 floors of the game, but doing so doesn't show that you have the qualities to earn that Talisman.

Bookwyrm627 did make me think about the Cup of Wonder...I "wonder" how difficult it might be to change the notes that you need to play? If so...then that song could be randomized.

On that same note, I wonder how hard it might be to randomize the order that the Ring of Humility levers need to be pulled.

I also guess the _location_ of the Golem could be randomized in the labyrinth of the NE section where the book for Ranthru is found. But, that fundamentally changes the way the battle works, since then you don't have the "out of bounds" area if you cowardly jump off the ring before the fight is done.

So...there might be some minor programming ways to do this.
if i were looking at doing something like this, i'd ditch the built-in quests (and quest-contextual purposes of items) entirely. i would want to see randomized characters (some with barter or other services available, some hostile) of each humanoid race. randomize a quest objective (eg kill some boss, or maybe grab some item and take it to the heart of the abyss before the volcano erupts and kills the player in 6 days, or whatever) and distribute items (keys? something relevant to non-player characters?) and characters who the player has to talk to in random locations around the levels of the abyss.

make things configurable
- hostility of humanoids
- number and skill of enemies, like which spells they use, how fast they move?, their combat skills
- availability of equipment, gold, spell runes, etc
- objective, whether there is a time limit or not
- the economy, how much is available through barter with NPCs

as well, the terrain is based around a 64x64 grid on each level, so you should be able to randomize it, perhaps with predefined connectable modules.
avatar
pocococo: if i were looking at doing something like this, i'd ditch the built-in quests (and quest-contextual purposes of items) entirely. i would want to see randomized characters (some with barter or other services available, some hostile) of each humanoid race. randomize a quest objective (eg kill some boss, or maybe grab some item and take it to the heart of the abyss before the volcano erupts and kills the player in 6 days, or whatever) and distribute items (keys? something relevant to non-player characters?) and characters who the player has to talk to in random locations around the levels of the abyss.

make things configurable
- hostility of humanoids
- number and skill of enemies, like which spells they use, how fast they move?, their combat skills
- availability of equipment, gold, spell runes, etc
- objective, whether there is a time limit or not
- the economy, how much is available through barter with NPCs

as well, the terrain is based around a 64x64 grid on each level, so you should be able to randomize it, perhaps with predefined connectable modules.
Randomized characters : it depends on how much you would like them to be randomized. I could see a generic "trader" NPC that you can talk to and he'll trade random items with you. I could also see another generic NPC that wants a random item, and rewards you with something else (eg. a decent magical weapon, rune). But anything more is basically impossible to impement due to engine & conversation system limitations. I think (though I'm not sure and I would need to check it out) that you can also check player skills inside conversations - that would mean that we can add skill checks for something (eg. check if player has "lockpick" over 20 - that unlock some more conversation options with some generic "thief" NPC).

Number and skill of enemies... : this is easy, enemy stats are stored in a file and can be easly changed. I actually planned this as a feature for this app, you could simply change difficulty level from couple of presets.

Availability of equipment...: also this is what I planned to add : scarcity of food, light equiplement, etc. If set to rare or even none (no food in levels) you'd have to rely on bartering and killing for foor (or magic). It adds more to survival aspect of the game.

Time limit : no possibility of changing that (is within game code).

Map generation : is possible but within reason. We could split levels into zones that could be randomly picked from a pool of prefabs, and would be connected always at the same spot. Some zones are really easy to do (eg. mines - always the same size and it's basically a square on the map), others would be really difficult (parts of level 3 with water, or level 8 with lava, level 7 is very NPC-driven so it also needs to be reasonable).
i have developed this project

https://github.com/JohnGlassmyer/UltimaHacks

during which i have spent some time delving into and modifying the UW and UW2 executables. let me know if there might be any tweaks or additions to the executables that would be helpful to you.
avatar
pocococo: if i were looking at doing something like this, i'd ditch the built-in quests (and quest-contextual purposes of items) entirely. i would want to see randomized characters (some with barter or other services available, some hostile) of each humanoid race. randomize a quest objective (eg kill some boss, or maybe grab some item and take it to the heart of the abyss before the volcano erupts and kills the player in 6 days, or whatever) and distribute items (keys? something relevant to non-player characters?) and characters who the player has to talk to in random locations around the levels of the abyss.

make things configurable
- hostility of humanoids
- number and skill of enemies, like which spells they use, how fast they move?, their combat skills
- availability of equipment, gold, spell runes, etc
- objective, whether there is a time limit or not
- the economy, how much is available through barter with NPCs

as well, the terrain is based around a 64x64 grid on each level, so you should be able to randomize it, perhaps with predefined connectable modules.
avatar
krokots: Randomized characters : it depends on how much you would like them to be randomized. I could see a generic "trader" NPC that you can talk to and he'll trade random items with you. I could also see another generic NPC that wants a random item, and rewards you with something else (eg. a decent magical weapon, rune). But anything more is basically impossible to impement due to engine & conversation system limitations. I think (though I'm not sure and I would need to check it out) that you can also check player skills inside conversations - that would mean that we can add skill checks for something (eg. check if player has "lockpick" over 20 - that unlock some more conversation options with some generic "thief" NPC).

Number and skill of enemies... : this is easy, enemy stats are stored in a file and can be easly changed. I actually planned this as a feature for this app, you could simply change difficulty level from couple of presets.

Availability of equipment...: also this is what I planned to add : scarcity of food, light equiplement, etc. If set to rare or even none (no food in levels) you'd have to rely on bartering and killing for foor (or magic). It adds more to survival aspect of the game.

Time limit : no possibility of changing that (is within game code).

Map generation : is possible but within reason. We could split levels into zones that could be randomly picked from a pool of prefabs, and would be connected always at the same spot. Some zones are really easy to do (eg. mines - always the same size and it's basically a square on the map), others would be really difficult (parts of level 3 with water, or level 8 with lava, level 7 is very NPC-driven so it also needs to be reasonable).
An UW Randomizer would be cool!

You should swing by The UltimaSpeedruns discord. There are already U4 NES, U4 DOS and U6 SNES Randomizers. It'd be great to add another! https://discord.gg/xbn2p9NP
krokots is the code for your editor somewhere?

In case you don't get to writing the randomizer I could see getting to it some year... If I ever finish the U4 DOS one to my satisfaction.