Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Is Sphere a good choice for my (tentative) project?
Author Message
Archaaz
Journeyman
*

Posts: 98
Likes Given: 12
Likes Received: 4 in 4 posts
Joined: Aug 2013
Reputation: 1



Post: #1
Is Sphere a good choice for my (tentative) project?
I have a (very) tentative idea for a shard, and am searching for the best possible emulator match, if I decide to go through with it. I have been researching various emulators, and posted on a few forums last year. At this point, esp. with SotA in the works, and with the plethora of unpopulated shards out there, I am even less sure about this idea than when I first formed it a couple of years ago.

Thus far, I like the way RunUO works and runs, but the learning curve (for a non-programmer such as myself), is rather steep with C#. So far POL seems like a decent fit; the language is not quite as difficult to manipulate, and there are quite a few pre-made scripts. I downloaded it and tinkered with it a bit, but nothing serious yet.

I read through the ten chapters of the Sphere programming tutorial, though my eyes glazed over about halfway through, and I will need to read it several more times. It seems fairly straightforward and well explained, and everyone here seems very helpful. I also pursued the script section and found a few that would fit my project quite well.

So, to the point, without going into great detail here, I hope to create an RP-centric (and probably enforced, to a degree, though casual) shard based on, and a sort of homage to, the lore of the Ultima series (up to Ultima V). I have a lot of (I think) original ideas, but want to start small for now. Much of my project is centered around a certain, personal aesthetic and approach which will not appeal to the vast majority of UO players for various reasons, more to hard core Ultima fans and RPers. I definitely do not want to do what has already been done.

First things first. How difficult would it be to create a basic shard with a Pre-T2A, T2A, or UO:R (with only one facet) look and feel, using only the original map of Britannia, decorate it, and spawn it, mostly OSI style? It does not have to be perfect, but the vast majority of things added after these eras are not compatible with my project. Just a basic foundation from which to start.

Secondly, how versatile is Sphere? Can skills be removed, altered and added? Can certain skills be made to lower as others are raised? How good is the A.I. for PvE (though I hope to implement some sort of factional PvP system as well)?

Sorry so long, and thanks in advance to anyone who took the time to read through it, much less answer.
08-25-2013 04:17 PM
Find all posts by this user Like Post Quote this message in a reply
Mordaunt
Super Moderator
****

Posts: 1,237
Likes Given: 26
Likes Received: 55 in 43 posts
Joined: Mar 2012
Reputation: 35



Post: #2
RE: Is Sphere a good choice for my (tentative) project?
It is super easy to turn off features from the various expansions with just a few minor changes in the hex values in there sphere.ini here:

Code:
// FeatureT2A, used to control T2A expansion features ( default 03 )
// FEATURE_T2A_UPDATE           01 // Monster and Lost lands
// FEATURE_T2A_CHAT             02 // In game chat
FeatureT2A = 03

// FeatureLBR, used to control LBR expansion features ( default 0 )
// FEATURE_LBR_UPDATE           01 // Lbr Monsters
// FEATURE_LBR_SOUND            02 // MP3 instead of MIDI
FeatureLBR = 01

// FeatureAOS, used to control AOS expansion features ( default 0 )
// FEATURE_AOS_UPDATE_A         01 // AOS Monsters, Map
// FEATURE_AOS_UPDATE_B         02 // Tooltip, Fightbook, Necro/paladin on creation, Single/Six char selection screen, Skills, Newer spellbook support
// FEATURE_AOS_POPUP            04 // PopUp Menus
// FEATURE_AOS_DAMAGE           08
FeatureAOS = 01|02|04|06

// FeatureSE, used to control SE expansion features ( default 0 )
// FEATURE_SE_UPDATE            01 // Basic SE features
// FEATURE_SE_NINJASAM          02 // Ninja and Samurai
FeatureSE = 01|02

// FeatureML, used to control ML expansion features ( default 0 )
// FEATURE_ML_UPDATE            01 // Basic ML features
// FEATURE_ML_NINTHAGE          02 // Unlocks ninth age house designer items
FeatureML = 03

// FeatureKR, used to control KR expansion features ( default 0 ) (still not complete but usable)
// FEATURE_KR_UPDATE_A          01 // Basic KR features
// FEATURE_KR_UPDATE_B          02 // Basic KR features
FeatureKR = 03

// FeatureSA, used to control SA expansion features ( default 0 )
// FEATURE_SA_UPDATE            01 // Unlocks gargoyle character creation and housing items
// FEATURE_SA_MOVEMENT          02 // Activates new movement packets (not good)
FeatureSA = 03

// FeatureExtra, used to control misc expansion features ( default 0 )
// FEATURE_EXTRA_GOTHIC         01 // Unlocks gothic house designer items
// FEATURE_EXTRA_RUSTIC         02 // Unlocks rustic age house designer items
FeatureExtra = 03

If any of those uncommented feature lines in each section are set to 0, then those features are deactivated.

Skills can be affected simply enough whether your adding to them, altering them, removing them or making a new one:

http://wiki.sphere.torfo.org/index.php/M...own_Skills

NPC AI pretty much depends on how much you put into it as to what you get out, obviously NPC's have a basic AI, but with some work you can make them really interesting.

There's really not much you can't do in sphere with some scripts, the only limitation is you imagination and your scripting skill, and we have people here who can help with the latter.

[Image: 2nis46r.jpg]
08-25-2013 10:00 PM
Visit this user's website Find all posts by this user Like Post Quote this message in a reply
Archaaz
Journeyman
*

Posts: 98
Likes Given: 12
Likes Received: 4 in 4 posts
Joined: Aug 2013
Reputation: 1



Post: #3
RE: Is Sphere a good choice for my (tentative) project?
That is fantastic! Thanks for the prompt response. This may be what I have been searching for, though I need to familiarize myself more with coding. I am guessing, as with POL, that when you download the software, the world is empty. I noticed there is a script for decorating the world in the script section. Is it possible to just insert this into the code? Is there a similar one for spawning NPCs and monsters, or must this be done manually with nodes and such?
08-26-2013 12:12 AM
Find all posts by this user Like Post Quote this message in a reply
darksun84
Sir Spamalot
****

Posts: 1,687
Likes Given: 246
Likes Received: 162 in 151 posts
Joined: Mar 2012
Reputation: 35



Post: #4
RE: Is Sphere a good choice for my (tentative) project?
In the scripts/add-on/ folder there is a worldsave.rar with spawns etc ( i never tested it)
08-26-2013 12:15 AM
Find all posts by this user Like Post Quote this message in a reply
RanXerox
Master
**

Posts: 550
Likes Given: 1
Likes Received: 12 in 9 posts
Joined: Dec 2010
Reputation: 19



Post: #5
RE: Is Sphere a good choice for my (tentative) project?
My suggestion is that, as you discover them, write down your very specific requirements. For example, saying "Pre-T2A, T2A, or UO:R (with only one facet) look and feel" has a lot of broad connotation... so narrow that down as specifically as you can. Then collect all those requirements in one document/wiki so that when you start building it out, it can be referenced.

My final word of advice is: Requirements are not just a statement of system behavior, they should also be explained as to why they are a requirement, and whose requirement they are.... this is very helpful when you discover limitations and need to decide whether that requirement should be (or can be) changed or not. Don't hesitate to add "limitations" to the list of requirements.... for example, maybe something is impossible to do (perhaps because the client software doesn't handle things that way) so including that detail as a requirement, imposed on you by the client software will help so you don't forget about it.

Once you start building the shard, you should link the implementation back to the requirements so you know where they got implemented. You should write a test case for your requirements to ensure you know how to prove they are working, and you should ultimately have a test plan to be able to run through all the tests in a reasonable amount of time.

So:

1. requirements (with details on whose it is, what is is about, and a link to where in the code it was implemented)
2. implementation (with details on which code files were used to implement the requirement, linked to a test case to prove it works)
3. test case (with explanation on what steps to follow to test the implementation and therefore the requirement)
4. test plan (a guide to step by step through all the test cases in a efficient way)

My suggestion is to store all this information in a wiki so its easy to collaborate on and manage
08-26-2013 02:41 AM
Find all posts by this user Like Post Quote this message in a reply
Archaaz
Journeyman
*

Posts: 98
Likes Given: 12
Likes Received: 4 in 4 posts
Joined: Aug 2013
Reputation: 1



Post: #6
RE: Is Sphere a good choice for my (tentative) project?
(08-26-2013 12:15 AM)darksun84 Wrote:  In the scripts/add-on/ folder there is a worldsave.rar with spawns etc ( i never tested it)

Thank you very much. I will check it out (when I get that far...still pretty new to it all...Smile. Great info here, though.
08-26-2013 02:42 AM
Find all posts by this user Like Post Quote this message in a reply
Mordaunt
Super Moderator
****

Posts: 1,237
Likes Given: 26
Likes Received: 55 in 43 posts
Joined: Mar 2012
Reputation: 35



Post: #7
RE: Is Sphere a good choice for my (tentative) project?
Sphere and spherescripting is probably the easiest to pick up if you don't have any programming knowledge.
If you have other questions we also have an IRC room (click chat at the top of the page) which often has people in that can help.

[Image: 2nis46r.jpg]
08-26-2013 04:40 AM
Visit this user's website Find all posts by this user Like Post Quote this message in a reply
Rattlehead
Master
**

Posts: 290
Likes Given: 3
Likes Received: 8 in 6 posts
Joined: Jun 2012
Reputation: 8



Post: #8
RE: Is Sphere a good choice for my (tentative) project?
i would like to add a couple things

i started scripting in sphere 10 years ago (or more) and at that time i had no programming knowledge at all, not even a spec, so i learned it, from the original taran tutorial, spent a couple hours a day for a couple weeks, picked up on it pretty quick

so after a while, the sphere devs released the MySQL features, which instantly gave me something else to learn, SQL is different from most other programming languages (at the time i didnt know this tho) and went and read everything i could about SQL

long story short i now know HTML, PHP, MySQL/MSSQL, Javascript, ASM and have mastered most of them i am familiar with C++ and C# yet i still use sphere and sphere only, as the possibilities are endless with sphere, even tho C# is a full featured programming language, it cant hold a candle to spherescript, and i believe its becus spherescript was written specifically for UO unlike C# thats a general language for thousand of other things. i havent found anything i couldnt do with sphere yet, anything and everything i came up with, i have been able to implement, and if it wasnt for sphere i would still be a noob with no programming skills at all Tongue

[Image: matts_siggy.gif]
08-26-2013 06:26 AM
Find all posts by this user Like Post Quote this message in a reply
Archaaz
Journeyman
*

Posts: 98
Likes Given: 12
Likes Received: 4 in 4 posts
Joined: Aug 2013
Reputation: 1



Post: #9
RE: Is Sphere a good choice for my (tentative) project?
(08-26-2013 02:41 AM)RanXerox Wrote:  My suggestion is that, as you discover them, write down your very specific requirements. For example, saying "Pre-T2A, T2A, or UO:R (with only one facet) look and feel" has a lot of broad connotation... so narrow that down as specifically as you can. Then collect all those requirements in one document/wiki so that when you start building it out, it can be referenced.

An excellent suggestion. I was a bit vague in my initial post, and I actually did create a wiki last year, detailing in pretty specific terms what I am hoping for in various areas. I have been editing it since I reconsidered the project a few weeks ago, and also since I have refreshed my experience of the game via a few free shards, which spawned a few new ideas (and maybe killed others). I am still refining my design, and including it on the wiki, but I have a fairly firm idea of how I wish various systems to work.

I agree that my definition of era is a bit vague, and is more an issue of aesthetic than application (a matter of a certain graphical style, mostly graphics and items that do not fit my vision, which I am likewise detailing). As far as the actual mechanics of each era, I need to look more into it, as much as possible, as I played T2A way back in 1998-99, prior quit to UO:R, and have only played various free shards on and off over the last few years. Basically, I know what I want to do, but am not certain what is the best way to go about it.

Quote:My final word of advice is: Requirements are not just a statement of system behavior, they should also be explained as to why they are a requirement, and whose requirement they are.... this is very helpful when you discover limitations and need to decide whether that requirement should be (or can be) changed or not. Don't hesitate to add "limitations" to the list of requirements.... for example, maybe something is impossible to do (perhaps because the client software doesn't handle things that way) so including that detail as a requirement, imposed on you by the client software will help so you don't forget about it.

I have done this as well, though not much in the way of actual technical aspects yet, as I am not a programmer. I was working with POL before, and included various notes on where certain information is stored, certain systems that will work for the shard, commands, etc., including links, as well as a growing list of artwork and items that are incompatible with my vision. If I am to change to Sphere I will need to create a new section to deal specifically with the way Sphere handles things.

I began the wiki with a general outline page as my mission statement, with a section on each feature/system I wish to implement, why I want them, and how they fit in with the overall theme, which I am likewise condensing into a separate, easily digestible mission statement. I tend to start out with "if possible," on most descriptions (save for things I am certain can be, or have been implemented). I likewise linked many of these more detailed systems/features to individual pages on each subject.

Your post has inspired me to further refine these, and to clean up the wiki a bit more, particularly the bits related to POL. I also prioritized my system/feature list, first priority being getting a basic foundation and world set up that I can work ad experiment with, and come to understand. Most POL script packages are so customized, and contain so many features that I do not like, that it is difficult for someone with my lack of knowledge to weed through it and decide what to keep and what to toss. With Sphere is seems easier to turn features on and off.

Quote:Once you start building the shard, you should link the implementation back to the requirements so you know where they got implemented. You should write a test case for your requirements to ensure you know how to prove they are working, and you should ultimately have a test plan to be able to run through all the tests in a reasonable amount of time.

So:

1. requirements (with details on whose it is, what is is about, and a link to where in the code it was implemented)
2. implementation (with details on which code files were used to implement the requirement, linked to a test case to prove it works)
3. test case (with explanation on what steps to follow to test the implementation and therefore the requirement)
4. test plan (a guide to step by step through all the test cases in a efficient way)

My suggestion is to store all this information in a wiki so its easy to collaborate on and manage.

This is excellent advice as well. If I do embark upon this, I can see that it is going to be quite the task. I quite agree that detailed documentation is of enormous importance. Thanks or the advice!

(08-26-2013 04:40 AM)Mordaunt Wrote:  Sphere and spherescripting is probably the easiest to pick up if you don't have any programming knowledge.
If you have other questions we also have an IRC room (click chat at the top of the page) which often has people in that can help.

From what I have seen so far, I quite agree. Thanks for the information. I am sure I will be visiting the forums and IRC quite bit as (if) my project progresses.

(08-26-2013 06:26 AM)Rattlehead Wrote:  i would like to add a couple things

i started scripting in sphere 10 years ago (or more) and at that time i had no programming knowledge at all, not even a spec, so i learned it, from the original taran tutorial, spent a couple hours a day for a couple weeks, picked up on it pretty quick

so after a while, the sphere devs released the MySQL features, which instantly gave me something else to learn, SQL is different from most other programming languages (at the time i didnt know this tho) and went and read everything i could about SQL

long story short i now know HTML, PHP, MySQL/MSSQL, Javascript, ASM and have mastered most of them i am familiar with C++ and C# yet i still use sphere and sphere only, as the possibilities are endless with sphere, even tho C# is a full featured programming language, it cant hold a candle to spherescript, and i believe its becus spherescript was written specifically for UO unlike C# thats a general language for thousand of other things. i havent found anything i couldnt do with sphere yet, anything and everything i came up with, i have been able to implement, and if it wasnt for sphere i would still be a noob with no programming skills at all Tongue

So Spherescript and SQL different languages, but can both be used in Sphere? I am reading up on the MySQL tutorial. Thanks for the info. Can you point me to any other good tutorials?
(This post was last modified: 08-26-2013 02:30 PM by Archaaz.)
08-26-2013 02:10 PM
Find all posts by this user Like Post Quote this message in a reply
Post Reply 


Forum Jump:


User(s) browsing this thread: 1 Guest(s)