I am in the planning phase of creating a role-playing shard, and have a few questions, if anyone would not mind indulging me. First off, I am utterly new to coding, though not to UO. I decided against RunUO as the learning curve is a bit steep, and also the fact that the current version would take quite a bit of editing to accomplish what I am aiming for. I am currently looking at POL, and have a server up and running. I find that eScript is remarkably easier to learn (at least for me), it is closer to the style I am looking for, and I have someone who is generously assisting me with scripting and getting everything set up. That said, I want to cover all of my bases.
Basically, what I am aiming for is a Pre-T2A or UO:R look and feel, but with only one facet (that looks like Trammel). I am as yet undecided as to whether the shard will be PvP, and if so, whether it will be consensual or faction based. I want this to be a sort of casual RP-enforced homage to the single player Ultima games, most specifically Ultimas IV and V (which were my favorites growing up), with some elements form earlier games.
I am trying to get a feel for how difficult implementing my vision would be using UOX3, in case POL does not work out, and also to see if maybe some of this has already been implemented somewhere, and available for use. I must admit that the documentation for UOX3 is impressive.
1. I want to remove some skills and add others, including further separating many of the weapons types, adding some additional magic systems, as well as a new harvesting skill (and a few others). I need somewhere around 50-54 skills total, but more would be nice, too.
My overall goal is to recreate the original eight classes, not through an actual class system, but rather through a Primary Skill system, whereby raising skills that are incompatible with one's Primary Skill will cause that skill to drop at a a 3 to 1 ratio, and vice versa. It is slightly more complicated than this, but that is the gist. I want a firm demarcation between casters and non-casters, as well as the various classes, but also want a measure of freedom for customization and for creating "class" combinations outside of the original eight. I want to prohibit casters from wearing heavy armor and using weapons other than staves and knives (except for Paladins), as well as prohibiting fighting classes from casting spells.
2. Regional resources: reagents, ores, woods, etc., as well as new resources.
3. Only race is human.
4. Fully functioning, aesthetically pleasing seasons, and a calendar of named months.
5. Only map is Britannia and Lost Lands. I also want to edit the map files a bit, but not drastically. I think WorldForge will work for this.
6. Anything that does not fit the original look of UO and feel will not be included (neons, other continents, many monsters and items, etc).
7. A Gypsy Card Reading Virtue Test for character creation. The same as used in the single player games starting with Ultima IV.
8. Preferably a return to the old AR system, as well as removing the automatic descriptions of items, though I suspect that this may be too much.
There is more, but those are the main points. Thanks in advance for any advice or information.
Considering creating a new shard, some questions (newbie)
Those ideas sound interesting.
I'm not versed in much coding, though I have delved slightly into C#, Assembly, Javascript, and others over the years, and I'd be interested in learning a bit more if you needed some help. I've been wanting to get involved in creating or contributing to a player-run shard for awhile now because I feel like it is such an exciting philosophical experiment (I'm finishing a double major in Philosophy and Latin). If you'd like some help or company learning things, or would like to bounce more ideas off of someone, I'd be willing to pitch in.
I'm not versed in much coding, though I have delved slightly into C#, Assembly, Javascript, and others over the years, and I'd be interested in learning a bit more if you needed some help. I've been wanting to get involved in creating or contributing to a player-run shard for awhile now because I feel like it is such an exciting philosophical experiment (I'm finishing a double major in Philosophy and Latin). If you'd like some help or company learning things, or would like to bounce more ideas off of someone, I'd be willing to pitch in.
- Xuri
- Site Admin
- Posts: 3704
- Joined: Mon Jun 02, 2003 9:11 am
- Location: Norway
- Has thanked: 48 times
- Been thanked: 8 times
- Contact:
Hiya, sorry for the slow reply. I'll try to respond to some of your concerns:
Doing custom skillgain-bonuses/losses can be done through the onSkillGain() JS event. Custom requirements for equipping armor/weapons is possible through the onEquip() JS event.
Custom logs not supported by default, but can be overridden through JS events (custom behaviour for doubleclicking an axe, for instance).
Custom other resources, maybe possible - depends on how you want them implemented.
Perhaps easier to use CentrED - which has the additional benefit of allowing multiple developers to work on the map at the same time!
Advanced Town Selection Script v1.0
First of all, be aware that removing, modifying and/or adding new skills require either a custom skill-menu (since the default one is hardcoded in the client), or modifications to the client itself. Assuming you're doing either of these two things, you can override any skill-usage in UOX3 with custom JavaScripts, and as such present to the players a different name for using those skills (even if they would still, internally in UOX3, have their original names). Adding new skills (as opposed to overwriting/modifying existing ones) will require updating the UOX3 source-code to handle skillchecks, skillgains/loss, etc - or a custom implementation of all this through JavaScript, with packethooks for detecting when new and unknown skills are attempted used from the client.Archaaz wrote:1. I want to remove some skills and add others, including further separating many of the weapons types, adding some additional magic systems, as well as a new harvesting skill (and a few others). I need somewhere around 50-54 skills total, but more would be nice, too.
My overall goal is to recreate the original eight classes, not through an actual class system, but rather through a Primary Skill system, whereby raising skills that are incompatible with one's Primary Skill will cause that skill to drop at a a 3 to 1 ratio, and vice versa. It is slightly more complicated than this, but that is the gist. I want a firm demarcation between casters and non-casters, as well as the various classes, but also want a measure of freedom for customization and for creating "class" combinations outside of the original eight. I want to prohibit casters from wearing heavy armor and using weapons other than staves and knives (except for Paladins), as well as prohibiting fighting classes from casting spells.
Doing custom skillgain-bonuses/losses can be done through the onSkillGain() JS event. Custom requirements for equipping armor/weapons is possible through the onEquip() JS event.
Custom ores can be defined (as few or as many as you want, with skill-requirements).Archaaz wrote:2. Regional resources: reagents, ores, woods, etc., as well as new resources.
Custom logs not supported by default, but can be overridden through JS events (custom behaviour for doubleclicking an axe, for instance).
Custom other resources, maybe possible - depends on how you want them implemented.
Possible - with some caveats. Gargoyles/Elves can be disabled by disabling the ML/SA clientfeatures (see UO client versions/expansions and compatibility with UOX3 for more details), though this might also cause the skills specific to those expansions to become unusable. If you want, you can create custom races (multiple different variations of humans, for instance) through UOX3's custom race system.Archaaz wrote:3. Only race is human.
Winter season tileset is incomplete, I believe, and hardcoded. So unless you manage to fix this in the client itself, winter season is going to be sketchy at best. You should (in theory) be able to create an automated season-system through the JS engine, though no-one has attempted to do so yet as far as I know. Possibly through checking and sending updates to players based on the onEnterRegion() and onLeaveRegion() events, though this gives me an idea for a new set of JS events that could trigger when the server updates the time/day-values stored in time.wsc... onDayEnd(), onMonthEnd(), onYearEnd() or some such? Hm.Archaaz wrote:4. Fully functioning, aesthetically pleasing seasons, and a calendar of named months.
Doing map-editing through WorldForge might work, if it's compatible with the version/size of the map you're trying to modify. Using WF for statics-editing is a bit harder with UOX3 these days (ironic, as it was made with UOX3 support in mind originally), as the worldfile format it saves out is ancient and the conversion-tool from old UOX3 worldfile format to "new" hasn't been updated in a while, which would mean you would have to go through a lot of loops to be able to convert from old to new format or vice versa... Example: Save statics to wsc in WF, run converter to convert to 0.95 format, download various old version of UOX3 to load & save new versions of this converted file until you reach a version of UOX3 that has a compatible worldfile format, etc.Archaaz wrote:5. Only map is Britannia and Lost Lands. I also want to edit the map files a bit, but not drastically. I think WorldForge will work for this.
Perhaps easier to use CentrED - which has the additional benefit of allowing multiple developers to work on the map at the same time!
Colors, monsters, items, locations are all completely customizable in UOX3 and you can include or exclude whichever ones you want.Archaaz wrote:6. Anything that does not fit the original look of UO and feel will not be included (neons, other continents, many monsters and items, etc).
As it's not possible (as far as I know) to override the default character creation process in the client, you would have to do a second character-creation process after the player has arrived in the client. This is doable through the onCreateDFN() JS event attached to the global script (scriptID 0), an example of which is available in the following script, which mimics the hardcoded character creation:Archaaz wrote:7. A Gypsy Card Reading Virtue Test for character creation. The same as used in the single player games starting with Ultima IV.
Advanced Town Selection Script v1.0
Resistances, detailed tooltips and more (weapon abilities, necros/palas/Malas map) can be disabled by disabling the AoS clientfeature.Archaaz wrote:8. Preferably a return to the old AR system, as well as removing the automatic descriptions of items, though I suspect that this may be too much.
-= Ho Eyo He Hum =-