I'm looking into making Ultima IV more "playable" for people who haven't played it before. This topic got some blog attention a few months ago.
The classic U4 really does require a lot of external storage, where "external storage" is "paper notes developed over time." Modern players (like my son) don't grok this concept at all.
So I want to include a lot of this information within the game itself, including a note-taker. All of these things will be optional, of course, and can be turned on and off like our other game enhancements.
My proposals, in turn:
1. Mixing spells
The table we all wrote up (or find on websites now, or have memorized) should be built into the UI. When the player selects "Mix", the main window gets replaced by a table. Basically each row is a spell, and each columns are the reagents, with checkboxes or the like in the proper boxes.
When a player wants to mix up a new batch of spells, they don't need to specify the reagents. They just pick the spell, and how many they want.
Additional rows would show the reagent shops the player has found, and the price in each. They would also show the current inventory of reagents.
Additional columns would show the current quantity of mixtures, the MP needed for each spell once known, and (maybe) the places each spell can be cast.
Here is an example, that hopefully comes through in email. Try a non-proportional font if you have to.
| Skara Brae | 2 | 4 | 9 | 6 | 4 | 8 |
| Moonglow | 2 | 5 | 6 | 3 | 6 | 9 |
| | |Sul|Gin|Gar|Bld|Spd|Blk|Nit|Man+====+
| | |Ash|sng|lic|Mos|Slk|Prl|shd|drk| MP |
| Inventory | 30| 23| 60| 24| 99| 23| 0| 21| |
| | | | | | | | | | | |
|Awake | 6| | X | X | | | | | | 5 |
|Blink | 11| | | | X | X | | | | |
|Cure | 45| | X | X | | | | | | 5 |
|Dispel | 4| X | | X | | | X | | | |
|Energy Field | 0| X | | | X | | X | | | |
|Fireball | 12| X | | | | | X | | | |
|Gate | 0| X | | | | | X | | X | |
I've attached a screenshot of my current implementation. Colored text really helps.
1a) The Book of Wisdom suggests that the relative quantity matters in some spells, like Sleep requiring "a double portion of Spider Silk with some Ginseng." Either through trial-and-error or via being told by NPCs, players eventually learn that this is irrelevant. I suggest just skipping this step.
1b) Not all reagents mixes are known to the player when they start. IIRC the player doesn't know how to mix up Gate, Resurrect, or Undead. Perhaps these lines start blank, until the player discovers how to mix them from players or through his own trial-and-error. Where do I store this information?
Looking through the code, I think I need to make a new ViewMode (VIEW_MIXTURES) and (LAYOUT_MIXTURES), and then drawing text on the screen.
2. Talk journal
Almost everything that an NPC says should be logged in a searchable file, like this:
a strong paladin
I am the welcomer.
Yes, welcome to Trinsic city of honor.
Wisdom on the virtue of honor is found throughout this towne.
2a) I do not intend to remind people when they meet Joe that Larry said "ask Joe about the Gate spell." First, it would take some effort in coding. Second, I think that players should have to pay attention. No "!" will appear over an NPC's head.
2b) Players might want to flag some NPCs' conversations for layer, and sort them that way.
2c) Probably reveal to the player that each character has two prompts. If you haven't gotten both (and have tried "A") then there probably is something else this NPC can tell you.
2d) Not sure how to handle questions. Players might feel the need to answer both "yes" and "no" in order to complete this file, but doing so will often ding your humility. (Although there are certain places where you need to take this ding, like in Jhelom to get Lord Robert to tell you to ask Nostro about the rune.)
Every square that you see should go into a mapper. I'm not sure which window to display this in. Any non-permanent object (chests, NPCs, gates) will not be shown. Viewing through a gem does not count as seeing. But viewing from a balloon (or via X-ray, for Ultima 5 fans) does.
Should note the location of structures.
We also need a hi-res, zoomable version of the cloth map.
I have more ideas on concept than on execution here. I need to get my head wrapped around the event model and the graphics libraries. I'm not sure if scaling will be an issue. Maybe the user would prefer to have a local map replace the status window of the players.
4. Virtue chart
We all know it. We've memorized it. Important stuff is:
Class (Magic Ability?)
Dungeon, and Dungeon Location
Infinity runic letter
But how does it populate? Let the user edit it? Do it automatically when people tell us things? (We could auto-enter the Mantra if it's on the chart. Although no one ever tells you the mantra of humility.)