bubble

Changing Default Quests

Jul 04, 2020

Started to change some of the default quests. Uh oh...

Massive amounts of progress recently. All quests done, items placed and tested, dialgues finished and tested, mini-quests done…lots done.

Currently doing a final pass on all NPCs to add ‘ambient’ conversations that are not quest critical. However while doing so I started to muck about a bit with the original ‘default’ quests. Meaning their dialogue, and more specifically, the hiding places/locations of vanilla Ultima IV items.

Hey! I remember there was supposed to be a rune here! What gives?!

I started out with a plan to not touch any vanilla or ‘default’ aspects of the game/quests etc. However, I feel that the current size of the ‘mod’ necessitates some adjustment of default/vanilla settings.

Many of the towns and castles are now up to 5 levels high and low. With that vertical enhancement in place, its seems to behoove us to place some of the the important vanilla/default items somewhere along that vertical enhancement. It integrates the mod into the vanilla, and the vanilla into the mod, making them a more cohesive whole.

That is my basic feeling. However, I could be wrong. Maybe fiddling with these default aspects is the wrong route?

I’m not certain. Because more fooling with these default settings could lead me into changing default values such as mantras, words for the axiom etc. And at this point that seems like too much. But…would make the whole game new again to whoever played it. They would actually have to play it and rediscover everything, once again. That could be fun. Couldn’t it?

I have found the mantra of Valor!!

I am also thinking of cutting Random Encounters. It is going to be a lot of work, for a very tiny pay off. The average player might only ever experience a couple of them. They are going to be non-critical. And how many people, really, are going to play this? 5? 3? 1!?!?. If I drop them, I can see the completion of the mod/game on the horizon. In sight.

10 Comments

Fenyx4

RE: fiddling with the default/vanilla quest I’ve been torn on this on my own randomization project. Moving around items seems like a good thing. It would require people to re-engage with the game and not just go through the motions. But man… For some reason changing the mantras just feels wrong.

I find once I get a horse the random encounters cut down enough that it doesn’t bother me. But maybe you could, instead of cutting random encounters entirely, decrease their frequency? Perhaps even make it a sliding scale. Like if the player has all 8 parts of avatarhood then decrease the random encounters.

Cambragol

Hi Seth! Well there were days when I was leaning away from making it available, and just letting my kids use it. I think though, when it is done, I’ll be releasing it for the general public. That time can’t be too far away, but certainly months yet.

Fenyx4, your thinking on changing default quests mirrors my own exactly. I would like people to actually play the game, and not just use their memory or a walk-through to quickly grab all the runes and stones within minutes. But all the verbal quest items (mantras etc.) just seem a little sacrosanct to be fooling around with. I’m tempted though. At the moment I’ve only moved some of the runes, and only slightly at that. But you will need to re-engage with the game to figure out where they are. Stones should probably be moved a little too, as some of them don’t even have a specific location, but are just in a dungeon somewhere.

Random Encounters that I am contemplating cutting here are full-blown ‘towns’ that the player would encounter on the map, and would then never see again, similar to what is found in Fallout 1 and 2. So my main issue with them is the huge workload to make them, for relatively small payoff (if the player only has 3-4 random encounters in a 30000 move game).

I have reduced ‘encounters’ (with monsters) based on the Avatarhood or lack thereof, and other factors (such as having ‘sealed’ the dungeons). This is in and working now, and makes the last bit of the game less frustrating (when encounters are just an annoyance and your xp/levels are maxed out.

I’m very interested in your own randomization project. It is a great idea to help vets be able to re-engage or re-experience the original joy of the game. Any plan to randomize the map? I was going to double the size of the map for Trinity, to give it a fresh but familiar feel, but it was technically not feasible.

Fenyx4

I may add randomizing the mantras as an optional flag. But not have it as a default setting. Just, yeah, “sacrosanct” is a good word for it.

Whoa! I’m still working my way through all your blog posts so that Random Encounter is a MUCH bigger feature than I would have imagined. That sounds super cool. But definitely a lot of work for only a little payoff.

Reducing monster spawn/encounters is shiny. That’ll make late game less painful which will be doubly important since you are adding so much content.

First thing I tackled was randomizing the world map! Here’s an example; https://imgur.com/a/n35qUAd I’ve got the map, towns, shrines, dungeons, items on the surface all randomly placing. I’m working through all the repercussions of the map being randomized now. Like, if the Bell has been moved then the NPC giving the Bell’s location needs his text changed as well. LB has a bunch of text giving the locations of towns which needed updating.

Right now I’m working on moving where the daemons spawn when approaching the shrine of humility. But since the locations for that are buried in code (https://github.com/ergonomy-joe/u4-decompiled/blob/master/SRC/U4_MAP.C#L434) and not an array I’ve been having problems finding the offsets I need to edit. I’m hoping (as you saw in the issue I opened) I can compile ergonomy-joe’s code, change the above section of code, compile again and compare what bytes changed and then map that back to the original AVATAR.EXE. Wee!

(So far I’ve gotten away with not having to actually change code. But that day may come so being able to compile ergonomy-joe’s code will be useful for that.)

I’m still not happy with how the map randomization looks. It is close enough to how the original map is for me to work with but I need to go back to do a few passes on making it feel more like the original map.

What were the technical problems you ran into on doubling the map size? Oddly the U4 NES Randomizer (https://github.com/Gilmok/U4Rando) that inspired me to make one for DOS has a parameter to shrink the map which seemed odd to me.

Cambragol

That is a good solution for Mantras in your case. I probably won’t touch them, as it is just a step too far from my original intentions.

The random encounter is certainly a big and cool feature. But it has no constraints, and could massively delay actually finishing the game. Currently I have about 16 ‘camp’ encounters, with NPCs which play out as encounters with random people of Britannia, traveling between cities and shrines. I have support for multiple level encounters, where I could tell larger stories, but haven’t started any yet.

I checked out your randomized map. Very nice. The general shape and appearance are already quite good. Looking in there is still some tweaking needed for the algorithm, but I can see that it is going to work well already. Very very cool.

What about randomizing rune placement within towns? That seems a little tricky, what with the descriptive prose isolating many of their locations. Are you building some list of prose defined locations that the randomizer draws from?

The daemons spawn point is hard coded with this code:

/spawn demons on verity island?/ if( Party._x >= 0xe5 && Party._x < 0xea && Party._y >= 0xd4 && Party._y < 0xd9 ) C_27D9();

So maybe you can track down those hex values in the compiled binary?

Enlarging the map was only a half-hearted effort, which never succeeded, but the main issue I think, for me, was that it would mess up all the coordinates for everything, the sextant, and other code I had written. So I didn’t persevere. I just got a little stumped then moved on, as my heart wasn’t in it. I can’t remember the actual technical issue, but it was a complex bit of code. I am not a programmer/coder, so sometimes technical stuff/language is new/unknown to me.

I any case, keep the comments coming, as I have just veered off in certain directions without any brakes during development, as I had no/limited feedback to curtail/modulate my inclinations. So far though it seems my ideas might be mostly hearkening to your own inclinations. Which hopefully matches the inclination of other fans of U4 as well.

Fenyx4

Yeah, Random Encounters do sound awesome but the effort to reward ratio sounds way off. I’d rather other stuff get more polish and get the game sooner.

I haven’t started on randomizing towns yet. Trying to stay focused on making a randomized world map feature complete. But I have thought about it! I definitely need to randomize the rune locations (and items found in towns). Having predefined prose is a good idea. Maybe I could look at the town maps and select a group of predefined locations for each rune and then have predefined prose for each? How many predefined locations for each rune/item would be sufficient to keep players from memorizing the locations and trying them out directly instead of talking to NPCs? 8 feels appropriate but I dunno if I’ll be able to find that many! :)

Hrm, yeah, there’s probably dozens of places that have hard coded assumptions around the map being the size it is. Heck. It is 256x256. So coordinates are 2 bytes. Doubling it would mean all the coordinates need to be stored in 4 bytes which would change A LOT nitty gritty code.

U4 is the Ultima that turned me into an Ultima fan. So nice to have someone to talk to about it. :)

Cambragol

I’m pretty keen on polish too. I’ll definitely be devoting a lot of time once I’m ‘done’ to just polishing and bug squashing. I want all added code/content to at least meet the standards of the original. I’d like it to feel like a mod/addon that could have been made by Origin back in the 80s. I do have 12 or so random encounters mostly done, so maybe I could just keep those. They could also be modified later as a mod for the mod without needing to change any code.

Physically randomizing towns would be a tall order. And would certainly not mesh well with pre-defined prose for locations in each town. Maybe randomizing NPCs within the town would be better. I did a bit of that in Trinity. A certain number of default NPCs are now found on different levels of mult-level towns/castles.

How about dungeons? Plans to randomize those? Simple layouts, but the way certain room connect could make that a no-go. But locations of fountains, orbs, runes etc. within them is feasible. I was planning on tweaking a lot of those on a final pass, as I have noticed a lot of ‘walkthroughs’ take advantage of certain orbs and how to ‘game’ them to get a quick boost at the start of a game. Their locations could be changed without affecting the essence of the game at all.

U4 (and U5) were my introduction to gaming, so they have always held a revered place for me. Not many games have measured up to their impact on me over the years. Always happy to talk shop with another fan!

Happy to do it here, but maybe you should make a blog for your randomization project? I am certain there must be other fans out there interested in your progress. Though don’t get me wrong, chatting right here is totally fine. I have discovered here that there really are not that many folks into discussing U4 actually, so any conversation is good conversation.

Fenyx4

Good idea on the NPC moving. I’ll probably give that a try.

Definitely gonna randomize dungeons. I’m already familiar with some of the data structure for the dungeons maps. I wrote this for the wiki https://github.com/Fenyx4/ultima-mapper. Although that was a decade ago so I’m gonna have to relearn a lot. RG did a really good job making each dungeon have a different feel. So recreating that is gonna be hard. I feel like I should polish the world map a bit more before delving into more stuff.

Blog is a good idea. I’m also trying to be more active in the Ultima Dragon discord. Are you in there?

Cambragol

Randomizing dungeons would be awesome, though you will have to catalogue rooms which have to stay together in particular configurations, then work that into any mapping algorithms you make. Tall order, but likely worth it, as it would make much of the gameplay ‘new’. I just finished 3 dungeons that I built completely in a hex editor, so I am a little familiar with dungeons at the moment. But it fades quickly…a decade ago means you might as well be starting from scratch. Almost. Lord British certainly gave each dungeon a different feel, something I hope I can replicate.

Feel free to use this blog’s template wholesale if you want. I added in various features, mainly the comments, which is not easy to implement. There are a lot of other free ones on github that can be used quickly and easily. Setting up comments is a trick in any case though.

I’m only active on the internet, and not so much on closed communities. Forums I do. So, not active on Discord. Not a Dragon either. But I am here! And sometimes the Ultimacodex, though Facebook/Twitter has sucked the life out of places like that.

I’m watching all your progress via github, and that is neat.

Leave a Comment

Your email address will not be published. Required fields are marked *

Loading...