Page 3 of 3

Re: Reworks

Posted: Tue Dec 21, 2021 12:09 am
by garrbear758
Void wrote: Mon Dec 20, 2021 11:00 pm
Spyre wrote: Mon Dec 20, 2021 10:24 pm Currently there is three people with access to the character vaults. And, I am the only one that handles account related issues (minus Hoodoo when I am unavailable). Character rebuilds from one are a time consuming adventure for a single person to be doing. This has been mentioned before but to reiterate the time:
It means the process has to be automated to greater degree.

See my description of how "100% RCR" is handled on BGTSCC.
1. That's literally a different game, which, although similar to NWN1, has some major differences on capabilities and what can/can't be done.

2. They don't have our database system, or nearly 20 years of legacy code on top of it.

3. The XP is not in any way tied to your character on that server and can be transferred to any other new character on your CD key. This is literally a completely different system than what is being discussed here and is really not applicable or transferrable to what you're suggesting we do. What they have is more akin to the Guldorand level 14 start than it is to a rebuild.

Re: Reworks

Posted: Tue Dec 21, 2021 12:43 am
by Void
garrbear758 wrote: Tue Dec 21, 2021 12:09 am 1. That's literally a different game, which, although similar to NWN1, has some major differences on capabilities and what can/can't be done.

2. They don't have our database system, or nearly 20 years of legacy code on top of it.

3. The XP is not in any way tied to your character on that server and can be transferred to any other new character on your CD key. This is literally a completely different system than what is being discussed here and is really not applicable or transferrable to what you're suggesting we do. What they have is more akin to the Guldorand level 14 start than it is to a rebuild.
1. They're doing that through a database. Database support has been hacked into nwn2, they're using that. Implementation requires an additional field per cd-key, or table.
2. They have their own, which is calling sql statements through nwnscript.
3. It is not. You could add checks, if wanted. Same name, same alignment, same base class, stats no different than original, same gender, and so on. Those would be extra fields in database. Basically if you can store per-cdkey data, you can implement the same thing.

4. The reason for the suggstion is that it would be reducing workload. 30 mintues per person is not feasible with 150+ requests. The "BGTSCC" approach is a dumbest/simplest solution that is easy to implement. As the rebuild will be handled by the player. At maximum, however, it would be possible to script character file edits, and do precise automated editing. However, a difficulty of that would be higher, than hands off bgtscc approach.

Re: Reworks

Posted: Tue Dec 21, 2021 1:35 am
by garrbear758
Suggesting something that would take 100s of hours to properly implement, if even possible, isn't reducing workload, and again, youre using an example from a DIFFERENT GAME.

Re: Reworks

Posted: Tue Dec 21, 2021 1:48 am
by Void
garrbear758 wrote: Tue Dec 21, 2021 1:35 am Suggesting something that would take 100s of hours to properly implement, if even possible, isn't reducing workload, and again, youre using an example from a DIFFERENT GAME.
1. Uh... a database table and an equivalent of RCR bot would not take 100s hours to implement. THere's a reason of why I suggested the simple approach first.
2. This game shares a good chunk of scripting codebase with nwn1, to the point, IIRC of borrowed scripts from the first part. Same scripting language, and a lot of the identical functions. See NWN lexicon site for details. I would understand the objection if I used Quake 2 as an example. But in this case one game is predecessor of another, and they share a lot of things.

Basically, can you bind an int/string per cd key, query character name, race, alignment? Then you can implement the simple solution. Where a PC gets a token and that allows them to rebuild their character and manually level it.

Additionally my opinion has no weight. You're on the team, you decide what you do. It could be done this way, if someone attempted to address it.

Re: Reworks

Posted: Tue Dec 21, 2021 2:22 am
by Aelryn Bloodmoon
Void wrote: Tue Dec 21, 2021 1:48 am
garrbear758 wrote: Tue Dec 21, 2021 1:35 am Suggesting something that would take 100s of hours to properly implement, if even possible, isn't reducing workload, and again, youre using an example from a DIFFERENT GAME.
1. Uh... a database table and an equivalent of RCR bot would not take 100s hours to implement. THere's a reason of why I suggested the simple approach first.
2. This game shares a good chunk of scripting codebase with nwn1, to the point, IIRC of borrowed scripts from the first part. Same scripting language, and a lot of the identical functions. See NWN lexicon site for details. I would understand the objection if I used Quake 2 as an example. But in this case one game is predecessor of another, and they share a lot of things.

Basically, can you bind an int/string per cd key, query character name, race, alignment? Then you can implement the simple solution. Where a PC gets a token and that allows them to rebuild their character and manually level it.

Additionally my opinion has no weight. You're on the team, you decide what you do. It could be done this way, if someone attempted to address it.
Not to be snarky, but if it's as simple as you're suggesting and everyone else who writes code for Arelith is suggesting that it's very complex, then it sounds like you're in a good position to privately volunteer behind the scenes to add some amazing things to the server. I can theory-craft in my head all day about what should be possible, but I can't actually code in NWScript, so my theory-craft means nil unless I can put together a code sample to review and see how it interacts with the rest of Arelith's many systems.

I'm sure you could hypothetically write a conversation that allows a pc to select options that would add/remove feats/stats/skills after the character logged out, emulating a server-side leto. I'm also absolutely sure that if you matrix-downloaded NWscript into my brain I'd break everything a dozen times before I got something that was partially functional without completely destroying everything else on the server, up to and including corrupting everyone's inventory.

"If the code works, don't touch it."

When you're talking about 20 years of legacy code that has been fondly referred to as spaghetti, that you didn't cook, this suggestion is more of a rule until breaking it is absolutely necessary.

I agree that if a day came when the administration/staff would be okay with these kinds of things that it would have to be automated, somehow - in any reality where the only way feasibly possible is asking the team to handle it manually one player at a time, it's a completely unreasonable ask in terms of labor.

Which again, unless you're volunteering, sounds like that's about where we're at.

Re: Reworks

Posted: Tue Dec 21, 2021 2:52 am
by Void
Aelryn Bloodmoon wrote: Tue Dec 21, 2021 2:22 am Not to be snarky, but if it's as simple as you're suggesting and everyone else ...
Not to be snarky, but I do not understand the reaction received so far.

Did I ever mentioned that I'm a computer programmer?

What I suggested in a situation where somebody got screwed up build is to allow them to rebuild via equivalent of RCR bot process. The way BGTSCC does it.

1. They get token. (requires DM, yes, but it is fast)
2. They get ability to teleport to start area.
3. They talk to an npc there (to be added)
4. Npc remembers what they were (base stats, name, xp) and kills them. And stores the data in the database.
5. They start over with new character that is similar, talk to the npc
6. And if the new one character is similar to the old one, it grants them old amount xp they had.
7. So the player can now level manually.
8. Here you can implement an extra check. And upon attempt to enter, check, once more, if they're sufficiently similar to the character that was killed. And if you're not, not let them in.

Similar to guldorand start.

Absolutely not "100 hours" difficulty, doable, and would reduce processing time from 30 minutes per person, to several seconds to grant a token, past which point it is on them.

All it requires is ability to store persistent data to CDKey, which is already present on the server, because you store RPR this way.

By the way, character data on arelith appear to be stored in similar way way as on bgtscc meaning CDKey + Player Name, that's because if you recreate without waiting for reset, you'll be in death desert area, meaning it at least stores last position there.

You will not precisely surgicall adjust the character, but you'd let the affected party rebuild without asking Spyre to waste 30 minutes on that. How much you constrain them depends on you.

You need to hijack opening dialogue, door dialogue, and implement database record for pre-rebuild character data. That absolutely can be done...
-------
There's another way. A very advanced one. A parser for nwn character files written in C#, Python, C++ whatever, which would extract the data, parse, put it back. Now that one's complex, which is why I did not suggest it as a default way to do it. However, "hundreds of hours" implies a "thousand hours" dififculty, and thousand of hours is 25 work weeks, or 6.25 months. That implies, that a person, working full time 40 hour work week will not be able to finish it in a half a year. Which is not the case. There are libraries for parsing nwn files, by the way, that can be looked up at github. The games share some data formats (which is why they both can use same data extractors).

An option #1 is highly likely can be done with relative ease and is a simple approach to reduce workload for rebuilds. For option #2 you need a more skilled coder that may not be present, and it is unclear whether the approach would offer significant benefit than fairly simple rebuilding through a token. Like another person said, some people are willing to lose properties if that lets them recreate character, so that's a possibility as well.
-------

Re: Reworks

Posted: Tue Dec 21, 2021 3:09 am
by Drowboy
so like are you gonna do it or

Re: Reworks

Posted: Tue Dec 21, 2021 3:10 am
by Aelryn Bloodmoon
Void wrote: Tue Dec 21, 2021 2:52 am
Not to be snarky, but I do not understand the reaction received so far.
I'm really not aiming for snark, nor do I take any from your question; I'm attempting to illustrate to you that while you see it as simple, shy of plagiarizing the code from another server (which, again, isn't guaranteed not to burn the spaghetti on this one), the people who do code either seem to not agree, or feel they have other things they'd rather spend their time on.

I didn't say you were a programmer, but since all Arelith work is volunteer-based, unless someone volunteers (those on staff have expressed little interest in this project and all seem to be busy doing other things - 158 players per DM, jesus christ kill me now) if you want to see it, you're going to have to learn. You seem to know enough about the subject to make a foray into the attempt if it's important to you (a hell of a lot more than I do), and I'm genuine in my suggestion that you reach out and give it a go.

But re-iterating how simple it is without actually giving them a code sample to go off of probably isn't going to motivate them to do it any more than they already are(n't).

Re: Reworks

Posted: Tue Dec 21, 2021 3:22 am
by Party in the forest at midnight
It might not necessarily be that straightforward, due to how old the server is. I spoke to a dev about it before, the entire reason we don't have a system to redo level 1 right now is because it would require accounting for every single legacy race, class, special major reward, and so forth.

Do you know there are human subraces like "gypsy?" I only know about it because there's a really old character whose corpse says human gypsy when he dies. I have no idea what it actually means mechanically. But this is what I mean about tons of archaic stuff that you don't realize exists that has built up like a katamari over the last 20 years.

I have no idea if Arelith's database has a way of copy/pasting entries, or if it would have to apply a skin to a character in a way that would require defining what the skins are. As in, if you could specify the code to take the skin no matter what it is and then pasting it onto a new database entry with the same name, versus if you had to specify "this character is a dragon, they get dragon feats and attribute."

A solution might be to only write it to accept currently supported races if it does require specifying race details. That's assuming there's not other wonky stuff going on with the Gigaschatten engine that makes things more complex. But something even bigger is, someone is going to want to have to program it. And with the projects everyone is working on I think it's unreasonable for us to demand anyone to make anything.

This is why I was asking if it's possible. I know automating leto isn't because of all of the legacy stuff, but I have no idea if other database things are.

Re: Reworks

Posted: Tue Dec 21, 2021 4:00 am
by Party in the forest at midnight
Void wrote: Tue Dec 21, 2021 3:45 am What's more, I'm not on the contributors team. Meaning, if I heroically try to implement any feature and suggest it, it'll likely be shelved and remain unused. What's more hijacking login script and interacting with database requires codebase access. Which I do not have because I'm not a contributor. So I can't implement is, as I do not have the opening area and login script.
You could ask if they'd let you write it. From what I've seen it seems like the team is willing to take small projects to improve the server.

Re: Reworks

Posted: Tue Dec 21, 2021 4:03 am
by Spyre
What we have wanted to do is create a character readable page in the support panel that brings up the 3D character model similar to the character creation screen. And, then if you could do that - implement a portion to allow stat changes provided they have a unique code that is generated from a token granted on them and a chat command. This would allow them to freely adjust stats at level 2 (since level 1 deletes items on entry) and also feats.

Things are attainable. It's just a matter if people happen to have time or are motivated to do it.

Void's ideas are a great way to build a system - though you wouldn't need dialogue or an NPC to even do storing. You could do it through chat commands; however, we'd have to expand the DB and what it tracks. Because a lot of what is built into the character is not in the DB.

Re: Reworks

Posted: Tue Dec 21, 2021 11:56 am
by Wethrinea
As one who would really like to rebuild from level 1 given the (very positive) changes to Rangers, what bars me from doing that is not the loss of xp or hard 5% items, but things like notebooks, custom made items with neat descriptions and of course property.

If it was made legal to "mule" items that had significant RP value but little or no mechanical benefits, and it was possible to retain property, then I think few would mind starting from scratch to rebuild, without needing any DM assistance to transfer xp, gold or items.

Re: Reworks

Posted: Tue Dec 21, 2021 2:12 pm
by DM Monkey
There's two sides of this that in my opinion are very well balanced right now with thanks to both the dev team being considerate about what goes in, and the ability to -relevel.

On one side, I feel the same pain when one of my characters is hit by a change. Particularly to their core features, or when abilities become unfeasible due to numbers shifting. Usually I would try my best to adapt it, but that can't always work if the ability scores are off.

On the other side, the ability to -relevel is INCREDIBLE! It helps everyone for the most part overcome these issues, and it has only been available recently. For the longer-term players here, they'll remember how difficult it used to be to get changes done when mistakes were made or when things had gone wrong in the character build. This really solves most of the issues. To ask for more beyond this is a stretch.

At the end of the day, roleplay should be the focus of your character and time on Arelith. Builds/skills/getting the best numbers? Only a small portion of that adds to your roleplay. Your roleplay usually isn't ruined by a class update. A big part of roleplaying with other people is being able to adapt to changing situations as they play out. Nothing is forever on Arelith. Just try and apply the same adaptive nature in your experience here. If your story can't adapt, then it might be a sign that it is time to move on to a new story or try something else.

Re: Reworks

Posted: Tue Dec 21, 2021 4:35 pm
by Complex
Again, I just want to state that I appreciate the gestures of goodwill (like giving 11 Wisdom Paladins 1 dodge ac). I hope they continue to be a part of these changes and no more builds are left behind. Div Dex was just an example. It also happened with WMs when they got buffed and nerfed in a matter of months. The biggest example being LM WMs that ended up having 16 int for no real reason.

We are all here for the roleplay, but mechanical changes can be difficult to navigate because this is, after all, a videogame, and part of it are the mechanics. Sometimes, a lot of narrative tools come from them as well. It can be something as simple as “my character can scry” to “my character is a badass swordsman who can read scrolls and do cool arcane stuff”. It can be disappointing when one day you log in to find your character changed for reasons you can’t control, and it is even worst when you end up getting the short end of the stick.

I agree that rolling characters is good, but we should not see them as disposable. I appreciate the hard work and hope that one of these suggestions help us reach a middle ground. There is little point in arguing with one another so I do not want to encourage that. We all want the best for the server at the end of the day. It benefits us all.

Re: Reworks

Posted: Tue Dec 21, 2021 6:40 pm
by Watchful Glare
Void wrote: Tue Dec 21, 2021 1:48 am
garrbear758 wrote: Tue Dec 21, 2021 1:35 am Suggesting something that would take 100s of hours to properly implement, if even possible, isn't reducing workload, and again, youre using an example from a DIFFERENT GAME.
1. Uh... a database table and an equivalent of RCR bot would not take 100s hours to implement. THere's a reason of why I suggested the simple approach first.
2. This game shares a good chunk of scripting codebase with nwn1, to the point, IIRC of borrowed scripts from the first part. Same scripting language, and a lot of the identical functions. See NWN lexicon site for details. I would understand the objection if I used Quake 2 as an example. But in this case one game is predecessor of another, and they share a lot of things.

Basically, can you bind an int/string per cd key, query character name, race, alignment? Then you can implement the simple solution. Where a PC gets a token and that allows them to rebuild their character and manually level it.

Additionally my opinion has no weight. You're on the team, you decide what you do. It could be done this way, if someone attempted to address it.
Have you thought applying for the position of developer though? Perhaps they could use someone that can commit to doing that, if they want to, and we'd all benefit from it.