Year of the Dragon NPC Temporarily Disabled

popejubal

Avatar of Jell-O
EDIT:
It always feels weird to me when I end up preaching patience and recognizing that MMO updates come bundled with bugs being a fact of life. I mean, I use to be one of the people who'd post angrily about down time and bugs.
Not everyone has to have high expectations. If everyone had high expectations, then people and companies who underperform and underdeliver wouldn't make any money and that would mean a whole lot of people would be out of a job. So I guess it's good that some people have low expectations.

I'm pretty laid back and understanding about an awful lot of things. I'm less understanding when companies don't do real unit testing (not even bringing up regression testing...)

The bug with the gift NPC dragon was brought up years ago in connection with the DDO store and it was never fixed *for years* even though it enabled players to buy expansions that they already owned, wasting their DDO points and money. We tell them about these major bugs and they get ignored. There are even people who let them know the details of the duping bugs - which are pretty much all derivatives of the same glitch. Still, duping keeps coming up again and again because SSG doesn't go back and test for the various duping possibilities each time they make a new update. And it absolutely wrecks the game economy.
 

DDO Gaming

Well-known member
EDIT:
It always feels weird to me when I end up preaching patience and recognizing that MMO updates come bundled with bugs being a fact of life. I mean, I use to be one of the people who'd post angrily about down time and bugs.
the problem is simple folks: coding is too easy. By contrast just imagine a group of people coming together and saying "hey we're gonna build a car from first principles".

And because coding is so easy, we've become maybe addicted to regular updates. By contast...if tesla has to make one update to their car software, its makes national news.
 

DDO Gaming

Well-known member
this is why I wonder about the motivation to keep pumping out new content instead of focusing on making the existing gaming system more stable etc
 

Shardrena

Well-known member
"Coding is too easy", says someone who I'm betting has never even tried to write computer code. It's not as easy as you are assuming. It's not just a matter of just changing a value in a database or flipping a switch. Even if any two sections of code are working fine on their own, they may interact in weird ways. And figuring out why it's doing that may not be easy. While working to learn coding and make a basic initial game, I coded a cube (stand in for eventual enemy model) to move from Point A to point B, turn 45 degrees left, reset, then 45 degrees right before resetting for "searching the area", then move back to Point A and do another turn left/turn right search.

In testing, the movement/search code and animation worked just fine.

Next I added a 'vision cone' and code to cause the cube (without the patrol code) to use it's ranged attack on the player if the player entered that vision cone. On it's own, this too worked fine in testing.

Finally I combined everything and tested it. And for reasons I couldn't figure out, once the player entered the vision cone the stand-in for an enemy would run off to a random tree on the map (never the same one twice) and start attacking the tree. The trees had no hit box, and didn't even have collision yet. They were just static art assets at that point.

I haven't even started figuring out how to create a UI element yet. Looked at a few examples, and it made my eyes water and brain hurt. I couldn't even begin to figure out what the code was actually doing.

This was using Unity, and C+ for coding. I don't know what programing language the people at SSG use, but I know they use their in-house built engine and development tools. I'm not going to assume writing any of the game's code was "easy", because I know better. Making a single simple script? Kind of easy, even a novice can probably do it. Getting it to play nice with even one or two other scripts? Now it starts getting complicated, and the slightest mistake can break things in ways which can take hours or days to track down the cause. Adding new code to an already existing hodgepodge of scripts, systems, and everything? Yeah, when something breaks due to unexpected interactions that may take you a while to figure out what the actual problem is.
 

DDO Gaming

Well-known member
"Coding is too easy", says someone who I'm betting has never even tried to write computer code. It's not as easy as you are assuming. It's not just a matter of just changing a value in a database or flipping a switch. Even if any two sections of code are working fine on their own, they may interact in weird ways. And figuring out why it's doing that may not be easy. While working to learn coding and make a basic initial game, I coded a cube (stand in for eventual enemy model) to move from Point A to point B, turn 45 degrees left, reset, then 45 degrees right before resetting for "searching the area", then move back to Point A and do another turn left/turn right search.
So you're trying to differentiate between:
1. writing code
2. achieving a predefined objective via code

Hence I said "writing code is easy" because it is. However engineering code to achieve a predefined objective is an entirely different concept
 

Shardrena

Well-known member
Writing code is part and parcel of achieving a predefined goal. The two are not separate at all. Getting one singular goal met with stand alone code? Might take some work, especially for a novice, but easy. Not "very easy", but easy enough with a good tutorial. But the more systems and sections of code you start layering on each other, the more complicated it gets, and the harder it is to figure out where exactly the problem is. And after all this time, DDO's code likely resembles spaghetti more then anything coherent. Even worse, the DDO Store, adventure pack unlocks, and the Marketplace, and expansion unlocks are all tacked on systems. When the game launched there was no such thing as the DDO Store or Marketplace. There was no VIP vs Free/Premium access to adventure packs, because there were no adventure packs. There was only subscribers who had access to everything in the game, and non-subscribers who couldn't play the game at all.

While working on the C+ coding tutorials Unity provides I apparently made a mistake with a piece of code. It literally took me days of pouring over just that one section to figure out where I had made a mistake, and what the mistake was. Then once I'd figured that out it took an hour or so of trial and error to fix the problem code so it actually did do what I wanted it to do. And that was only six, maybe seven, lines of code in a single system.

By claiming "writing code is very easy" you're absolutely disregarding just how hard it actually is, and why skilled programmers are always in such high demand.

EDIT
So you're aware, that "walk between these two points and look both ways" patrol code? That took me 3 days of working on it, testing the code, then going back through to figure out what the problem was. It was only once that part was working that I started working on the "detect the player and attack" bit, and that too took several days to get working properly. Only for the entire thing to break in strange ways once everything was combined.
 
Last edited:

Wanfanel

Active member
"Coding is too easy", says someone who I'm betting has never even tried to write computer code. It's not as easy as you are assuming. It's not just a matter of just changing a value in a database or flipping a switch. Even if any two sections of code are working fine on their own, they may interact in weird ways. And figuring out why it's doing that may not be easy. While working to learn coding and make a basic initial game, I coded a cube (stand in for eventual enemy model) to move from Point A to point B, turn 45 degrees left, reset, then 45 degrees right before resetting for "searching the area", then move back to Point A and do another turn left/turn right search.

In testing, the movement/search code and animation worked just fine.

Next I added a 'vision cone' and code to cause the cube (without the patrol code) to use it's ranged attack on the player if the player entered that vision cone. On it's own, this too worked fine in testing.

Finally I combined everything and tested it. And for reasons I couldn't figure out, once the player entered the vision cone the stand-in for an enemy would run off to a random tree on the map (never the same one twice) and start attacking the tree. The trees had no hit box, and didn't even have collision yet. They were just static art assets at that point.

I haven't even started figuring out how to create a UI element yet. Looked at a few examples, and it made my eyes water and brain hurt. I couldn't even begin to figure out what the code was actually doing.

This was using Unity, and C+ for coding. I don't know what programing language the people at SSG use, but I know they use their in-house built engine and development tools. I'm not going to assume writing any of the game's code was "easy", because I know better. Making a single simple script? Kind of easy, even a novice can probably do it. Getting it to play nice with even one or two other scripts? Now it starts getting complicated, and the slightest mistake can break things in ways which can take hours or days to track down the cause. Adding new code to an already existing hodgepodge of scripts, systems, and everything? Yeah, when something breaks due to unexpected interactions that may take you a while to figure out what the actual problem is.
Unity is developed using C++, but for coding, it employs C#.

DDO/LOTRO employs the engine from Asheron's Call, a game from 1999.

In online games, it's possible to have the client on a different engine than the host, but that won't necessarily resolve any issues with the host. While it may seem straightforward, it requires a significant amount of work
 

Phoenicis

Savage's Husband
Unity is developed using C++, but for coding, it employs C#.

DDO/LOTRO employs the engine from Asheron's Call, a game from 1999.

In online games, it's possible to have the client on a different engine than the host, but that won't necessarily resolve any issues with the host. While it may seem straightforward, it requires a significant amount of work
As a player of AC/ACII DDO and LOTRO were written in an engine developed by Turbine based on their experience with AC.

If DDO was built on AC's engine there wouldn't be instances, we would have a single open world (IMO one of AC's simultaneously best and worst features). Dungeons were instanced but the wilderness, not so much.
 

Cordovan

Community Manager
We are working to re-enable Xatheral in the next day or so, more information later this afternoon most likely. We will also be making an NPC that will debut in a near future game update that will allow us to run more than one Year of the Dragon redemption at a time, so we'll be able to extend out the "Curate Your Xpack Cache" end date by a week and use that NPC for this and any future Year of the Dragon double redemption periods this year.
 

DDO Gaming

Well-known member
We are working to re-enable Xatheral in the next day or so, more information later this afternoon most likely. We will also be making an NPC that will debut in a near future game update that will allow us to run more than one Year of the Dragon redemption at a time, so we'll be able to extend out the "Curate Your Xpack Cache" end date by a week and use that NPC for this and any future Year of the Dragon double redemption periods this year.
Makes perfect sense sir...one doesn't work properly so...rollout a second NPC and have double the fun :ROFLMAO:(y)
 

Wanfanel

Active member
As a player of AC/ACII DDO and LOTRO were written in an engine developed by Turbine based on their experience with AC.

If DDO was built on AC's engine there wouldn't be instances, we would have a single open world (IMO one of AC's simultaneously best and worst features). Dungeons were instanced but the wilderness, not so much.
 

ShoeMaker

DDOwiki Steward
We are working to re-enable Xatheral in the next day or so, more information later this afternoon most likely. We will also be making an NPC that will debut in a near future game update that will allow us to run more than one Year of the Dragon redemption at a time, so we'll be able to extend out the "Curate Your Xpack Cache" end date by a week and use that NPC for this and any future Year of the Dragon double redemption periods this year.
Is a one off NPC that'll only be available for a week the best way to resolve the issue? Seems to me, and this is only my opinion, that such a thing would introduce confusion and issues of it's own. If it's possible, wouldn't it make more sense to adjust Xatheral to give all rewards not yet claimed in the time frame? For that matter, Xatheral doesn't give cosmetics, and May is a cosmetic mount, so Xatheral could give the xpack reward and Estraz the mount?
 

ShanachieWolf

New member
Whatever works, I'm sure they want people to be able to jump into the expansions they pick with max possible player population, especially if it has raids. I'm just glad it's working in the short term, and they can have less stress figuring out a better long term solution if needed. Let's just keep our fingers crossed that nothing does wrong this time, lol. GJ (y)
 

Cordovan

Community Manager
Is a one off NPC that'll only be available for a week the best way to resolve the issue? Seems to me, and this is only my opinion, that such a thing would introduce confusion and issues of it's own. If it's possible, wouldn't it make more sense to adjust Xatheral to give all rewards not yet claimed in the time frame? For that matter, Xatheral doesn't give cosmetics, and May is a cosmetic mount, so Xatheral could give the xpack reward and Estraz the mount?
In this case it is actually easier to make a new NPC then to create the ability for Xatheral to recognize multiple Year of the Dragon gifts. The other advantage of this second NPC is we can re-use it in the future when needed.
 

Kimbere

Well-known member
We are working to re-enable Xatheral in the next day or so, more information later this afternoon most likely. We will also be making an NPC that will debut in a near future game update that will allow us to run more than one Year of the Dragon redemption at a time, so we'll be able to extend out the "Curate Your Xpack Cache" end date by a week and use that NPC for this and any future Year of the Dragon double redemption periods this year.
whFzLCC.jpg
 

Mordenkainen

Please SSG, no more nerfs. Thank you!
We are working to re-enable Xatheral in the next day or so, more information later this afternoon most likely. We will also be making an NPC that will debut in a near future game update that will allow us to run more than one Year of the Dragon redemption at a time, so we'll be able to extend out the "Curate Your Xpack Cache" end date by a week and use that NPC for this and any future Year of the Dragon double redemption periods this year.
Thank you @Cordovan . I was concerned about this. Eagerly awaiting the final patch announcement this afternoon.
 
Top