Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request]: Diablo 2 Style Trading? #6918

Open
Chonkblonk opened this issue Jan 30, 2024 · 19 comments
Open

[Feature Request]: Diablo 2 Style Trading? #6918

Chonkblonk opened this issue Jan 30, 2024 · 19 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@Chonkblonk
Copy link

Feature Type

Quality of Life

Describe

The ability to actually engage in trading between two players while in town, is that something which would be possible?
Specifically with a setup similar to Diablo 2's.

It may be a bit of a mod thing, but so is the massively cavernous shared player stash, and when people are able to stockpile all kinds of things, it would make sense to me if people could engage in actual trading, rather than some ad-hoc "Let's drop this on the ground and hope that the other guy is good on his word."

@Chonkblonk Chonkblonk added the enhancement New feature or request label Jan 30, 2024
@kphoenix137
Copy link
Collaborator

This is a very good idea. Anything is possible, only thing involved is level of effort to make it happen.

@julealgon
Copy link
Contributor

Instead of just copying Diablo 2's system, isn't there some other better system out there that could be used? I heard that a more recent game did a nice trading system.

For reference (the game is Last Epoch):

@kphoenix137
Copy link
Collaborator

Instead of just copying Diablo 2's system, isn't there some other better system out there that could be used? I heard that a more recent game did a nice trading system.

For reference (the game is Last Epoch):

* https://www.youtube.com/watch?v=Ih2lM9NEEUY

There a problem though with trying to implement a complex trading system: Diablo 1 allows players to swap items by dropping them to the floor. This is a mechanic that can't/shouldn't be interrupted. The need for a trading UI is based on the fact trading items requires the honor system. A simple UI that requires consent of both players to transfer items between themselves resolves the issue.

@DakkJaniels
Copy link
Contributor

Instead of just copying Diablo 2's system, isn't there some other better system out there that could be used? I heard that a more recent game did a nice trading system.

For reference (the game is Last Epoch):

what is the actual suggestion here? because what I'm seeing here is totally out of scope of DevilutionX and would be a totally different game from Diablo.

@julealgon
Copy link
Contributor

@kphoenix137
Diablo 1 allows players to swap items by dropping them to the floor.

You could change that, actually.

@DakkJaniels
what is the actual suggestion here? because what I'm seeing here is totally out of scope of DevilutionX and would be a totally different game from Diablo.

I'm just implying that Diablo 2 is not necessarily the gold standard on everything, and that people should look at other games for inspiration, and also consider novel approaches as well, instead of just blindly copying what D2 does.

I'm not necessarily making any specific suggestions for an actual system though.

@Chonkblonk
Copy link
Author

Instead of just copying Diablo 2's system, isn't there some other better system out there that could be used? I heard that a more recent game did a nice trading system.

Potentially? I just suggested Diablo 2's setup because it's really straightforward and it works. Diablo 1 doesn't exactly have a particularly sophisticated and complex economy or inventory system or anything. It checks if there's space in both player's inventory for whatever items are offered (accounting for whatever space any given away items may open up), both players click a checkbox to agree, and if both do, there's a short countdown and then it goes through.

I didn't sit through that video (it's really late and I'm very tired lol), but looking at the first few minutes, the subject seems to be about overall gameplay balance amongst people playing multiplayer collectively? And the effect on the overarching multiplayer meta and economy as well as balancing of the entire game around that? That seems like it would be well beyond the scope of base DevilutionX.

The whole balance thing kind of goes out the window when I can stockpile a hundred elixirs in my stash and then roll a new character who gets to use those boosts right away, along with whatever other cool equipment I feel he should use.

I'm just implying that Diablo 2 is not necessarily the gold standard on everything

Well, sure, that's fine, but my point wasn't so much about whether or not Diablo 2 is superior and whether or not DevilutionX should be modeled closely after Diablo 2, I just used it as an example because it's a really straightforward and functional setup which would fit easily enough within DevilutionX's scope, and which would probably be familiar to most contributors.

I may for instance very much like Morrowind's system of bartering, but suggesting that would be a radical departure from intended scope, that'd involve all new skills and attributes.

@julealgon
Copy link
Contributor

@Chonkblonk
...but my point wasn't so much about whether or not Diablo 2 is superior and whether or not DevilutionX should be modeled closely after Diablo 2, I just used it as an example because it's a really straightforward and functional setup which would fit easily enough within DevilutionX's scope, and which would probably be familiar to most contributors.

Fair enough. You did mention "a setup similar to Diablo 2's." in the issue, after all.

This is probably just me overreacting to the common trend of people wanting to make D1 the same as D2 by porting every single feature from D2 as-is. I think that would just make the game worse, since I believe D2 is worse than D1 in numerous areas.

@DakkJaniels
Copy link
Contributor

For real, won't be able to trick noobs by trading in dungeon and using telekinesis to steal their stuff. D2 trading system sucks.

@qndel
Copy link
Member

qndel commented Mar 1, 2024

Just a reminder that every message here sends a notification to a lot of people and discussions or discord are more suitable for discussing stuff like this ...

@kphoenix137
Copy link
Collaborator

Just a reminder that every message here sends a notification to a lot of people and discussions or discord are more suitable for discussing stuff like this ...

Julealgon doesn't use discord

@qndel
Copy link
Member

qndel commented Mar 1, 2024

Just a reminder that every message here sends a notification to a lot of people and discussions or discord are more suitable for discussing stuff like this ...

Julealgon doesn't use discord

It's not a reason to turn every issue into a wall of text

@AJenbo
Copy link
Member

AJenbo commented Mar 1, 2024

Yeah I would keep it super simple, we are not a multi million dollar game company here.

Cons with current system:

  • Risks the item being lost on crash
  • Risk someone else picking up the items
  • Risk the other player picking up both there own and your item
  • It's easy to get tricked as you cannot inspect the item before the trade has effectively happened

This could be solved by a UI dedicated to trading:

  • Where the item is never removed from the player before an actual trade happens
  • You get to see what you will receive
  • Checks that both players will have room for the trade.

To make it simple we could reuse the inventory for your side of the trade and instead of picking items up a click would mark the item as part of the trade. A stash like UI could then show what the other player is offering and have the accept button/toggle.

Additionally a count down can prevent someone quickly removing there trade item and finalizing the trade right before and the player accepts the trade.

Not I don't really recall what the D2 trading system is like so I'm mostly basing this of of DevliutionX and what has been mentioned in this issue. So any resemblance will be mostly coincidental.

@AJenbo AJenbo added the help wanted Extra attention is needed label Mar 1, 2024
@NuSynth
Copy link

NuSynth commented Mar 1, 2024

maybe the trades between players could happen through Griswald? Players could right click on him to do player trade, and instead of seeing what Griswald has, they see what the other player is marking from their inventory to sell, and both have to accept the trade in order for it to take place? Not much, if any, new UI would need to be made. Just some change in logic to the way commerce is done for a new option added to Griswald.

@NiteKat
Copy link
Contributor

NiteKat commented Mar 3, 2024

Yeah I would keep it super simple, we are not a multi million dollar game company here.

Cons with current system:

  • Risks the item being lost on crash
  • Risk someone else picking up the items
  • Risk the other player picking up both there own and your item
  • It's easy to get tricked as you cannot inspect the item before the trade has effectively happened

This could be solved by a UI dedicated to trading:

  • Where the item is never removed from the player before an actual trade happens
  • You get to see what you will receive
  • Checks that both players will have room for the trade.

To make it simple we could reuse the inventory for your side of the trade and instead of picking items up a click would mark the item as part of the trade. A stash like UI could then show what the other player is offering and have the accept button/toggle.

Additionally a count down can prevent someone quickly removing there trade item and finalizing the trade right before and the player accepts the trade.

Not I don't really recall what the D2 trading system is like so I'm mostly basing this of of DevliutionX and what has been mentioned in this issue. So any resemblance will be mostly coincidental.

Instead of a timer, why not have a confirmation button that both sides of the trade have to click to finalize the trade, and if you've clicked it on your side the confirmation is revoked if the other side changes anything about the trade? So someone trying to last second remove an item from the trade would remove their item and click confirm, but trade doesn't go through because the other player's confirmation was revoked?

@AJenbo
Copy link
Member

AJenbo commented Mar 3, 2024

Because clever people can still estimate when you click accept, especially if they stress you during the process, and then make the change just before you accept and then finalize the trade before you have time to react.

Ideally I would prefer to not have the timer, but I have seen tactics like this so I think it's best to prevent it and I can't come up with a better alternative.

Except maby two buttons/toggle, but I don't know if that works well or clunky.

@kphoenix137
Copy link
Collaborator

kphoenix137 commented Mar 7, 2024

Because clever people can still estimate when you click accept, especially if the stress you during the process, and then make the change just before you accept and then finalize the trade before you have time to react.

Ideally I would prefer to not have the timer, but I have seen tactics like this so I think it's best to prevent it and I can't come up with a better alternative.

Except maby two buttons/toggle, but I don't know if that works well or clunky.

What if alternatively, we use the inventory and inspect inventory. You click on the item you want and the item you're willing to trade, which adds a highlight to both items that shows for the other player. The other player does the same thing. basically both people have to "select" the same 2 items. once the game confirms that both items are selected by both players, the trade commences without needing a confirmation button. If an item is selected by either player and moves for any reason from its spot, it becomes unselected for both players. Also no new UI is required to do this. However I suppose there would need to be some kind of prompt to initiate trading. I suppose just clicking on the player in town and walking up to them could automatically open the windows. Could just do something visually with the inventory windows to show the other person hasn't clicked on you to open trade windows on their side, like darkening the other person's entire inventory window and put some text over it like "Waiting for other player". As far as coordinating the trade in the first place to signal interest, they could just do that in chat

@AJenbo
Copy link
Member

AJenbo commented Mar 7, 2024

That's a pretty good idea, though I would not initiate trade instantly when both have selected the same items.

What if you select your item first and the other player as well, but you haven't yet selected what to get in return.

@StephenCWills
Copy link
Member

How about...

  • Player 1 uses inspect, selects all items for the trade, and sends a trade request to Player 2.
  • Player 2 sees both the items Player 1 wants as well as the items he is offering. Player 1 cannot edit the offer, and Player 2 only needs to accept or reject.
  • Maybe Player 1 can cancel the offer, if we think we can find a way to implement that without race conditions.

@AJenbo
Copy link
Member

AJenbo commented Mar 7, 2024

That does simplify it, and is still an improvement even if negotiation has to be done outside of the UI

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

9 participants