|
Post by FunkySwerve on Aug 16, 2016 23:41:49 GMT
EHRAMAGHERD he's back! RUN. Welcome back. I'm a bit of a ghost lately as work still has me insanely busy, but things are still plugging along. Good to see an old face again. Funky
|
|
|
Post by FunkySwerve on Jun 24, 2016 7:35:06 GMT
I'll do a bit of digging tomorrow to try to figure out the issue, and get everyone sorted out. Thanks for the bug report.
Funky
|
|
|
Post by FunkySwerve on Apr 10, 2016 15:33:55 GMT
Thoughtful replies, all - thank you.
Woki, I didn't ignore the token idea - I did estimates for both with token and without when I responded to Poli. Either is a radical departure in terms of rarity. We could certain add an exchange in Ixion's convo that gave such a token at whatever cost, but I don't see the need. Especially when you consider the weapon rebalance and paragon feats granting parallel use at slightly lower ab. They are supposed to be really, really, really rare.
For our part, we will try to get out Mechanus ASAP, so that you can have a little variety in areas to collect XR tokens in.
Funky
|
|
|
Post by FunkySwerve on Apr 10, 2016 2:07:39 GMT
Either way, it seems the thread got the stamp of HASTY GREEDY BASTARDS! Despite me explicitly asking for opinions on pricing as a conversation starter. That makes me a bit sad; but not something that I didn't expect. As said before; will return to this thread in a few months if need be - perhaps people will suddenly be all about Limbo and EE drops before we know it. If that's what you gleaned from my post, I might as well have not posted. Please try to be a little less glib. When I post, I spend time thoughtfully responding to your concerns, and I am giving up time that would otherwise be spent on the mod, in the hopes of increasing player understanding of our development process, which in turn will hopefully improve the quality of suggestions. Responses like this tend to make me think my time is better spent on the mod. In your defense, I think Semner's post was a bit inflammatory, but practically speaking, your suggestion was seriously off the mark. If you want a little insight into my mindset, take a look at Burke's seminal work on classical conservativism. The Cliff Notes version is that large, sudden changes are fail. Burke actually predicted the failure of the French Revolution because it was a system shock. Burke suggests that large, sudden changes rebound and fail. His theories have surprising resonance with evolutionary biology, which tells us that species do not adapt well to large sudden changes (typically resulting in either extinction or evolution by bottleneck). Unless the dev team got something SERIOUSLY wrong (which is rare, but not impossible), you should be suggesting small, incremental edits. I learned early on that this bit of political theory/philosophy/biology has equal application to game design. Rubber-banding between extremes just makes a lot of extra work with very little actual improvement in game experience. I am a little confused by these numbers. It reads like 'the distributions suggested by players and going into effect soon' result in a decrease in probability? Which distribution is this? These ones here: highergroundpoa.proboards.com/thread/24533/out-100In point of fact, I went with your suggested distro on weapons, 10%. Actually, I went with more than that, since, while I asked players to force numbers to out-of-100, my method of assignment didn't allow that. The actual number for XRs, at present, is 10/93. Here's the function: int GetRandomLootType(int nRarity, int nLevel=RANDOMLOOT_AREA_LVL_ALL_URS) { string sSelect;
if (GetIsRandomLootTypeAvailable(RANDOMLOOT_TYPE_RACEBOOK, nRarity, nLevel)) sSelect += "1 1 "; if (GetIsRandomLootTypeAvailable(RANDOMLOOT_TYPE_CRAFTBOOK, nRarity, nLevel)) sSelect += "2 "; if (GetIsRandomLootTypeAvailable(RANDOMLOOT_TYPE_WEAPON, nRarity, nLevel)) { sSelect += "4 4 4 4 4 4 4 4 4 4 "; if (nRarity < RANDOMLOOT_AREA_LVL_OVER40) { /* we allow more weapon drops in early levels because less time spent there */ sSelect += "4 4 4 4 4 4 4 4 4 4 "; sSelect += "4 4 4 4 4 4 4 4 4 4 "; sSelect += "4 4 4 4 4 "; } } if (GetIsRandomLootTypeAvailable(RANDOMLOOT_TYPE_AMMOCONT, nRarity, nLevel)) { sSelect += "8 8 8 8 8 "; if (nRarity < RANDOMLOOT_AREA_LVL_OVER40) { /* we allow more ranged drops in early levels because less time spent there */ sSelect += "8 8 8 8 8 8 8 8 8 8 "; sSelect += "8 8 8 8 8 "; } } if (GetIsRandomLootTypeAvailable(RANDMOLOOT_TYPE_ARTIFACT, nRarity, nLevel)) sSelect += "32 "; if (GetIsRandomLootTypeAvailable(RANDOMLOOT_TYPE_CONSUMABLE, nRarity, nLevel)) sSelect += "128 "; if (GetIsRandomLootTypeAvailable(RANDOMLOOT_TYPE_HELM, nRarity, nLevel)) { sSelect += "256 256 256 256 256 "; sSelect += "256 256 "; } if (GetIsRandomLootTypeAvailable(RANDOMLOOT_TYPE_ARMOR, nRarity, nLevel)) { sSelect += "512 512 512 512 512 "; sSelect += "512 512 512 512 512 "; sSelect += "512 512 512 512 512 "; } if (GetIsRandomLootTypeAvailable(RANDOMLOOT_TYPE_BOOTS, nRarity, nLevel)) { sSelect += "1024 1024 1024 1024 1024 "; sSelect += "1024 1024 "; } if (GetIsRandomLootTypeAvailable(RANDOMLOOT_TYPE_BRACERS, nRarity, nLevel)) { sSelect += "2048 2048 2048 2048 2048 "; sSelect += "2048 2048 "; } if (GetIsRandomLootTypeAvailable(RANDOMLOOT_TYPE_AMULET, nRarity, nLevel)) { sSelect += "4096 4096 4096 4096 4096 "; sSelect += "4096 4096 "; } if (GetIsRandomLootTypeAvailable(RANDOMLOOT_TYPE_BELT, nRarity, nLevel)) { sSelect += "8192 8192 8192 8192 8192 "; sSelect += "88192 8192 "; } if (GetIsRandomLootTypeAvailable(RANDOMLOOT_TYPE_CLOAK, nRarity, nLevel)) { sSelect += "16384 16384 16384 16384 16384 "; sSelect += "16384 16384 "; } if (GetIsRandomLootTypeAvailable(RANDOMLOOT_TYPE_MOTE, nRarity, nLevel)) sSelect += "32768 32768 "; if (GetIsRandomLootTypeAvailable(RANDOMLOOT_TYPE_RING, nRarity, nLevel)) { sSelect += "65536 65536 65536 65536 65536 "; sSelect += "65536 65536 65536 65536 65536 "; } if (GetIsRandomLootTypeAvailable(RANDOMLOOT_TYPE_SHIELD, nRarity, nLevel)) { sSelect += "131072 131072 131072 131072 131072 "; sSelect += "131072 131072 131072 131072 131072 "; } if (GetIsRandomLootTypeAvailable(RANDOMLOOT_TYPE_TORCH, nRarity, nLevel)) sSelect += "262144 262144 "; if (GetIsRandomLootTypeAvailable(RANDOMLOOT_TYPE_CRAFT_GEM, nRarity, nLevel)) sSelect += "524288 ";
sSelect = GetStringLeft(sSelect, GetStringLength(sSelect)-1); string sReturn = GetRandomSubString(sSelect); return StringToInt(sReturn); }
Basically, if that type is available, I concatenate a bunch of substrings and pick one number type at random out of the result. Availabilities for XRs are as follows (still under the new system): int GetIsRandomLootTypeAvailable(int nType, int nRarity, int nLevel=RANDOMLOOT_AREA_LVL_ALL_URS) { switch (nRarity) { case RANDOMLOOT_RARITY_C: switch (nType) { case RANDOMLOOT_TYPE_HELM: case RANDOMLOOT_TYPE_ARMOR: case RANDOMLOOT_TYPE_BOOTS: case RANDOMLOOT_TYPE_BRACERS: case RANDOMLOOT_TYPE_AMULET: case RANDOMLOOT_TYPE_BELT: case RANDOMLOOT_TYPE_CLOAK: case RANDOMLOOT_TYPE_RING: case RANDOMLOOT_TYPE_SHIELD: return TRUE; default: return FALSE; }
case RANDOMLOOT_RARITY_UC: switch (nType) { case RANDOMLOOT_TYPE_HELM: return (GetSubString("123_56_______", (nLevel - 1), 1) != "_");//in these strings we treat 9 as all areas over 40, but for SELECT we must use 8 not 9 or higher case RANDOMLOOT_TYPE_ARMOR: return (GetSubString("12_4567890123", (nLevel - 1), 1) != "_"); case RANDOMLOOT_TYPE_BOOTS: case RANDOMLOOT_TYPE_BRACERS: case RANDOMLOOT_TYPE_AMULET: case RANDOMLOOT_TYPE_BELT: case RANDOMLOOT_TYPE_CLOAK: case RANDOMLOOT_TYPE_RING: case RANDOMLOOT_TYPE_SHIELD: return TRUE; case RANDOMLOOT_TYPE_CRAFT_GEM: return (GetSubString("1_3_5_7_90123", (nLevel - 1), 1) != "_");//craft gem 9 only availble in LL (but SELECT is again 8 not 9) case RANDOMLOOT_TYPE_AMMOCONT: return (GetSubString("_____6_______", (nLevel - 1), 1) != "_"); default: return FALSE; }
case RANDOMLOOT_RARITY_R: switch (nType) { case RANDOMLOOT_TYPE_HELM: case RANDOMLOOT_TYPE_ARMOR: case RANDOMLOOT_TYPE_BOOTS: case RANDOMLOOT_TYPE_BRACERS: case RANDOMLOOT_TYPE_AMULET: case RANDOMLOOT_TYPE_BELT: case RANDOMLOOT_TYPE_CLOAK: case RANDOMLOOT_TYPE_RING://LL add more here case RANDOMLOOT_TYPE_SHIELD: return TRUE; case RANDOMLOOT_TYPE_AMMOCONT: return (GetSubString("______78_____", (nLevel - 1), 1) != "_");//level 35 ammo containers are level 7, but we allow them at 8. SELECT 7 special check case RANDOMLOOT_TYPE_WEAPON: return (GetSubString("1__4_678_____", (nLevel - 1), 1) != "_");//level 35 weapons are level 7, but we allow them at 8. SELECT 7 special check case RANDOMLOOT_TYPE_TORCH: return (GetSubString("________90123", (nLevel - 1), 1) != "_");//torch only availble in LL (but SELECT is again 8 not 9) default: return FALSE; }
case RANDOMLOOT_RARITY_UR: if (nLevel < RANDOMLOOT_AREA_LVL_40) return FALSE; else if (nLevel < RANDOMLOOT_AREA_LVL_ALL_URS) {//this group should only SELECT rarity 4 AND RANDOMLOOT_TYPE_AREA_VARIANT type (& 16) switch (nType) { case RANDOMLOOT_TYPE_AMMOCONT: case RANDOMLOOT_TYPE_CONSUMABLE: case RANDOMLOOT_TYPE_HELM: case RANDOMLOOT_TYPE_ARMOR: case RANDOMLOOT_TYPE_BOOTS: case RANDOMLOOT_TYPE_BRACERS: case RANDOMLOOT_TYPE_AMULET: case RANDOMLOOT_TYPE_BELT: case RANDOMLOOT_TYPE_CLOAK: case RANDOMLOOT_TYPE_RING: case RANDOMLOOT_TYPE_SHIELD: return TRUE; default: return FALSE; } } else { switch (nType) { case RANDOMLOOT_TYPE_RACEBOOK: return (nLevel == 11 || nLevel == 12);//UR racebooks do not spawn in Hells or paragon areas case RANDOMLOOT_TYPE_WEAPON: case RANDOMLOOT_TYPE_TORCH://racebook, weapon, and torch only available in Loot int 10+ areas case RANDOMLOOT_TYPE_AMMOCONT: case RANDOMLOOT_TYPE_CONSUMABLE: case RANDOMLOOT_TYPE_HELM: case RANDOMLOOT_TYPE_ARMOR: case RANDOMLOOT_TYPE_BOOTS: case RANDOMLOOT_TYPE_BRACERS: case RANDOMLOOT_TYPE_AMULET: case RANDOMLOOT_TYPE_BELT: case RANDOMLOOT_TYPE_CLOAK: case RANDOMLOOT_TYPE_RING: case RANDOMLOOT_TYPE_SHIELD: return TRUE; default: return FALSE; } }
case RANDOMLOOT_RARITY_BUR: switch (nType) { case RANDOMLOOT_TYPE_RACEBOOK: case RANDOMLOOT_TYPE_CRAFTBOOK: case RANDMOLOOT_TYPE_ARTIFACT://only until demonweb pits and maze expansion case RANDOMLOOT_TYPE_AMMOCONT: case RANDOMLOOT_TYPE_CONSUMABLE: case RANDOMLOOT_TYPE_HELM: case RANDOMLOOT_TYPE_ARMOR: case RANDOMLOOT_TYPE_BOOTS: case RANDOMLOOT_TYPE_BRACERS: case RANDOMLOOT_TYPE_AMULET: case RANDOMLOOT_TYPE_BELT: case RANDOMLOOT_TYPE_CLOAK: case RANDOMLOOT_TYPE_RING: case RANDOMLOOT_TYPE_SHIELD: case RANDOMLOOT_TYPE_TORCH: return TRUE; default: return FALSE; }
case RANDOMLOOT_RARITY_XR: switch (nType) { case RANDOMLOOT_TYPE_RACEBOOK: case RANDOMLOOT_TYPE_WEAPON: case RANDOMLOOT_TYPE_HELM: case RANDOMLOOT_TYPE_ARMOR: case RANDOMLOOT_TYPE_BOOTS: case RANDOMLOOT_TYPE_BRACERS: case RANDOMLOOT_TYPE_AMULET: case RANDOMLOOT_TYPE_BELT: case RANDOMLOOT_TYPE_CLOAK: /* case RANDOMLOOT_TYPE_MOTE -commented out to return FALSE until motes fixed */ case RANDOMLOOT_TYPE_RING: case RANDOMLOOT_TYPE_SHIELD: case RANDOMLOOT_TYPE_TORCH: return TRUE; default: return FALSE; }
default: return FALSE; } return FALSE; }
Assuming I did my back of the napkin count correctly, 10/93 random XRs will be weapons. With respect to the old distros, sorry, I didn't spend enough time checking before posting. It's actually much lower than 15%, so more will wind up dropping. Here is the function: string GetRandomResrefLooteXtremelyRare(int nRaceBkSlots=6, int nWeaponSlots=15) {
string sRes; int nOtherCount;
SQLExecDirect("SELECT count(*) FROM randomloot WHERE rl_rarity = 6 AND rl_type & ~5"); if (SQLFetch() == SQL_ERROR) { WriteTimestampedLogEntry("LOOT ERROR : database unable to find loot table."); return ""; } else nOtherCount = StringToInt(SQLGetData(1));
int nRoll = Random(nOtherCount+nRaceBkSlots+nWeaponSlots); string sCheck;
if (nRoll < nRaceBkSlots) sCheck = "rl_type & " + IntToString(RANDOMLOOT_TYPE_RACEBOOK); else if (nRoll < (nRaceBkSlots+nWeaponSlots)) sCheck = "rl_type & " + IntToString(RANDOMLOOT_TYPE_WEAPON); else sCheck = "rl_type & ~5";
string sSQL = "SELECT rl_res FROM randomloot WHERE rl_rarity = 6 AND " + sCheck + " ORDER BY RAND() LIMIT 1";
SQLExecDirect(sSQL); if (SQLFetch() == SQL_ERROR) { WriteTimestampedLogEntry("LOOT ERROR : database unable to resolve XR loot pick."); return ""; } return SQLGetData(1); }
I was assuming (oops) 15/100, but nOthercount is actually 164 at the moment. That means current 'any weapon' droprate is actually 15/(2+15+164), or .08 (8 percent) of XRs. There are 46 weapon types. That makes current chances of a given XR weapon dropping from a 50 canopic expendature = 1/46 * 0.08287292817679558011049723756906, or 0.0018015853951477300024021138602. Under the new system, that will increase to 10/93 * 1/46, or 0.00233754090696587190275829827022. So, good news. Your chances of getting a specific weapon from spending 50 canopics are about to go up 29.7 percent, not down. Based on a rough approximation of your own suggestion, no less. You do realize that what you just posted is not in the same zip code as 'useless', I hope? Also note your identical use in the linked 'Out of 100' thread, with reference to another weapon set. Not smart, unless you want to be a) ignored, b) arrogant, and c) nearsighted (which, unfortunately, appears to be a widespread condition in this thread). Useful to you is not the same as 'useful', and neither is 'useful now' the same as 'useful ever.' On a more practical note, in the interests of gleaning data, what percentile of healers do you consider 'widespread'? Have you tried running with paragon levels capped? In fact, wouldn't such weapons be a non-lazy option, as they auto-hone to non-healers, requiring frequent swaps? Funky
|
|
|
Post by FunkySwerve on Apr 8, 2016 5:43:29 GMT
Great concept, but I think 100 is a bit too expensive. Perhaps just keep it at 50, in line with other XRs (which I already do think are too expensive) - like you said, you really would want a couple of these to put them to good use. Alternatively leave it at 100 (or perhaps 75?), but scrap the 'three damage category' tokens and leave it as just an 'any specific weapon' token. I think that too few players will have the 100s of Canopics required to create a decent server-wide pool of weapon tokens, so any 'weapon token economy' will be quite frail. Under the current distributions, you're proposing a change in rarity of xr weapons from roughly a chance of .3% (less than 1 percent, not three percent) given an investment of 50 tokens of getting a specific xr weapon, to a chance of either 33% or 100%. Under the distributions suggested by players and going into effect soon, the chance is roughly .23% (again, less than 1 percent, not twenty-three percent). Then factor in the latest weapon edits and paragon feats. Need I say more? Probably not, but I will. When you propose such a massive edit, you've already lost me. When you do so after a few weeks of playtime, based on little more than a feeling that they are 'too expensive', I have to think you haven't adequately considered your suggestion. XRs are actually not going to be the last weapons, as Semner suggested, but they will be close to par with them. You are suggesting that, by your own math, a player should be able to obtain the specific one they want in about 10 (or 30) hours of playtime. On top of that, the weapons are not even randomizable, which means that, once you have one, that's it. Nothing else to obtain that could outdo it, except set weapons, situationally. I'm not sure what timescale you imagine we are developing on, but these items are designed to carry the server forward for the better part of a decade. We don't have the development time - not even a fraction of it - necessary to do any more iterations of rarity, to say nothing of the massive development issues such a further rarity class would cause. I can empathize with the desire to obtain the perfect weapon now, but I hope that, after reading the foregoing, you can empathize with my strong desire to roll my eyes at reading this suggestion. I know you didn't intend it as disrespectful, but the valuation of our development time that your suggestion implies is unworkable. Also, if you want a chance to persuade the Team, you would do well to avoid referring to entire classes of weapons as 'useless'. Equally eyeroll-worthy, and completely without use in its own right as constructive criticism. We understand that some of you have been waiting for XRs for years, but we are not about to make design changes encompassing massive change (which is just poor development) based on impatience (again, poor development). Incremental change based on sound reasoning is the order of the day. We aren't ruling out changes to drop rate or purchase cost, but now is hardly the time. We will probably re-evaluate in a few months. Funky
|
|
|
Post by FunkySwerve on Mar 31, 2016 5:32:39 GMT
I think it's just the low server population. With so few people on now, it's a lot harder to bring together the elements that made impromptu endgame runs possible. This is my take as well, and is something we are actively working to change. We will also be introducing new lower-level content and loot, so all the fun isn't strictly endgame. Funky
|
|
|
HGWiki
Mar 26, 2016 15:03:19 GMT
Post by FunkySwerve on Mar 26, 2016 15:03:19 GMT
Great to see work on the Wiki resume. Thanks!
Funky
|
|
|
Post by FunkySwerve on Mar 26, 2016 5:05:32 GMT
So, good news. The person who was crashing our servers has been successfully stymied, thanks to acaos. In addition, we now have much more robust defense against similar attacks in the future, though I will not go into more detail than that. They have made a number of unsuccessful attempts to crash us since the fix, with no success.
We're fortunate to have such a gifted coder as acaos to defend us from these types of attacks. Unfortunately, that protection wasted a decent chunk of a day for him, so please thank him when you see him ingame, and consider donating to support the servers (donations go right to him these days, as he is hosting). We are also fortunate that the net impact was one evening of disruption and a few lost chests, which we will see corrected.
You can now play with a reasonable expectation of no externally-caused crashes, for now at least.
As for the crasher, DDoS attacks are a violation of federal law. We recorded the ips the attacks came from, and are in the process of making reports to the various providers - the main one of which was a VPN provider headquarter here in the US, in California. This was a sophisticated attack involving ips from numerous continents, making it a violation of international treaty, as well. We are taking every step available to hold them accountable. Should the attacker persist, the chances of prosecution will only increase, and we will pull every string available to make that happen.
Funky
|
|
|
Post by FunkySwerve on Mar 25, 2016 13:34:55 GMT
It needs to be pretty similar in dimensions to the one I linked.
I'm open to a design contest, any suggestions as to prizes?
Funky
|
|
|
Post by FunkySwerve on Mar 25, 2016 6:07:17 GMT
We believe we have a working fix in place. A big thank you to acaos is in order. The servers should be stable, save for 212 and 214, which have not yet reset with the fix because players were on them. Funky
|
|
|
Post by FunkySwerve on Mar 25, 2016 3:04:46 GMT
The crasher was logging in as different playernames, which likely caused a lot of the issues you are seeing. We're working to resolve the issue.
Funky
|
|
|
Post by FunkySwerve on Mar 24, 2016 19:11:04 GMT
Hi all, The website is back up at highergroundnwn.com! Unfortunately it is a bit out of date. We will be pushing edits to it, but as you can see, the old Vault links are broken as the Vault went down in 2014. There is a replacement vault, however, here: neverwintervault.net/. We need someone graphically inclined to make a new advertising picture similar to this one, so that I can get a new entry set up for us - an entry I can then link to on our website. Any takers? Thanks, Funky
|
|
|
Post by FunkySwerve on Mar 24, 2016 15:10:59 GMT
Hi Lynslayer,
Sounds great. I am pm'ing you a link to the builder's mod. Please respond to that pm with your email, and I will invite you on Slack (web based chat) to discuss further.
Thanks! Funky
|
|
|
Post by FunkySwerve on Mar 24, 2016 0:55:59 GMT
So, catchy title, right? Well, the post has a purpose, but first, an anecdote. I came to HG as a player in 2004. I was made a DM after a few months of play, partly because Rip ('Former Admin') wanted someone to work on the module, and thought my ideas about addressing some of its issues were promising. For my part, I loved the way the module played, and the openness of the community. I had played on a few mods where admins enforced rules very arbitrarily, often without warning. In one instance, I was running through an area and my items started disappearing, because the server op had apparently decided I had too many (items can contribute to server lag). On HG, by comparison, there was Encumbria. If you have more than a specified amount, code sent you somewhere to deal with the issue as you chose. It removed the arbitrariness, and empowered players. Higher Ground wasn't started by Rip, though it was on its way, ranked #8 or so on the Vault, back in 2004. It was based on another module, Path of Ascension, by the Ancient Warriors Guild. AW is a gaming guild, built by gamers for gamers. PoA was their NWN project, and it was probably the most copied NWN module out there at the time, and maybe ever (literally dozens of PoA servers with their own customizations). Because of its roots, it had a basic respect for the player. Players built it. Encumbria was their design. Because respect is something that appeals to people, and because I was not alone in experiencing the heavy-handed alternative, we naturally drew more players of like mind, and have continued to build on that legacy, with our own unique bent. AW tended to focus on respect as more of a two-way street. Take a look, for example, about their rules on disrespecting DMs (see link above). HG, by contrast, strives to keep rules to a bare minimum, so that people can relax and enjoy, and to replace rules with coding wherever possible. This approach relies on a more philosophical give-and-take: you get out what you put in. Put another way, we recognize that the server literally is its players. So, why had Rip picked up on the ideas I was putting out? Well, there were a lot of annoyances on the server. Broken mechanics, broken classes, broken spells, and even broken areas. You can get a sense of the state of things from this update posting. Vague recollections of me complaining about the fey kingdom (no, not The Feywild ) with the time dragon being inaccessible, or the Mother of all Dragons being inaccessible, come to mind. I didn't like certain things the way they were, and I had ideas about how to address those issues. Rip gave me the opportunity to implement those ideas, and we have worked to pay that forward ever since. Eventually, HG became the #1 server on the Vault. Lore-themed action servers were pretty popular, and we worked to keep the game properly balanced. High-magic, high-loot was a big draw early on, but it came with its share of problems. If you put lots of high-powered class abilities on items, you render those classes weak or redundant (see the 2005 update linked above, removing improved evasion and other feats from items). We adopted an approach to game balance informed by our approach to server management: keep everything on an even keel, and automate everything. While this may sound obvious, at the time, many servers were rewarding veteran players by doing hand-edits of their characters. Instead, HG went the route of Legendary Levels, and we never looked back. So, at the end of the day, what's the point? All of this was begun by players, accomplished by players, and continues on by the efforts of players. Players like you, gentle reader. The players who have been driving all of this in recent years simply don't have the time they once did. So, we are looking to the rest of you to help pick up some slack. There are a number of ways you can leave your fingerprints on the game. 1. Suggestions. While the idea of players suggesting things may seem obvious, you may have noticed that I'm pushing you for a bit more of late, when it comes to suggestions. Partly is my own lack of time (or laziness, if you prefer), and partly it is my desire to pass on some of the way of thinking outlined above, and how it bears on game design. What kind of suggestions? The kind that keep in mind the server as a whole, rather than a particular class or issue. Of course, most suggestions will involve a particular class or issue, but they should also consider how that suggestion would impact others. Naturally, this is easier the longer you've been playing and the more classes of characters you have in your stable, but sometimes fresh eyes have a welcome new perspective. Vets, hopefully you can be gracious in evaluating suggestions which are a little too enthusiastic about a particular build. The Team will provide what guidance we can, as we have been doing in the Set Loot Forum. 2. Area building. This is a prime example of player contribution. The most recent set of areas you have been enjoying were built by nataani, with minor assistance from the Team. That's right, he designed all eleven areas, using our Builder's Module. He also built the (still) forthcoming Father Llymic areas. He hasn't been around in years, but he has left his mark on the server permanently. If you have some time to spare and are willing to learn, we will be happy to set you on that path as well. Please message me or another Team member to get started. 3. Other assistance. We are always looking for people who can code, or contribute in other ways. Typically, we look for players who have been around a while, and understand the dynamics of HG, simply because there is a lot to take in. Please feel free to contact me or Acaos. Here, as well, we have a prime example of player contribution. Acaos joined the server in 2006, and quickly left his prints not just on HG, but on the entire NWN community, by developing a system of plugins called eXalt, which have allowed us to accomplish far more than ever before in tweaking the Neverwinter Nights engine, Aurora. Attempting to assemble a comprehensive list of player contributions to HG is at this point completely impossible. It is in no way an exaggeration to say that HG is its players. Not just in the touchy-feely, aw shucks pandering sort of way, but in the literal sense that this server would not exist for their innumerable contributions. What drew me to this this server, and keeps me coming back, is that it offers the unique opportunity to directly contribute in the shaping of the game. The point of this post is simply to ensure that you realize that same opportunity is open to all of you. As always, feel free to request an invite to the Slack channel we maintain. There is often a lively discussion going on there. Just pm me or Acaos your email, and you'll get an invite. Or ask other players - if they have been invited, they can invite others. Funky
|
|
|
Post by FunkySwerve on Mar 23, 2016 17:05:08 GMT
Now onto PDK ideas - I've quoted quite a handful from earlier attempts to address this issue: Thank you for posting them. They need the analysis to go with, however. What impact would the edits have on class balance serverwide? Does it actually increase build diversity? Throw power balance off? Let's take, by way of example, the proposed spell level edits. Suppose we let PDK count for: Paladin, Blackguard, Ranger, Assassin and Bard where class levels count for spells. What outcome? We need to look at builds for all those classes and see how they would be impacted. The most obvious question is: would there still be any reason NOT to take PDK for any of those classes? Is that reason strong enough to allow rationales for either build decision? On the one hand, we have added a few more insta-stand items, making me slightly more willing to increase uses of that for PDK. Too many, however, and suddenly it's 'must have'. Another potential problem: the suggestion for +120 CA for 5 turns, 2 per rest. Means PDK toons have little reason to take CA, and to a lesser extent their partymates. All-or-nothing edits like this are typically way over the top. Long story short: great suggestions, but they need a much more thorough thinking through. Don't make me chew your food for you. Funky
|
|