Let's make a deal, Kabam

Xguard77Xguard77 Member Posts: 572 ★★★
your databases are cluttered with millions and millions of crystals that players aren't opening.

and I get annoyed looking at the 10k+ crystals that on my account that will never be opened.

so, let's make a deal Kabam. run a crystal trade in special event. every crystal we trade in gives us a point to use in an event store. throw some 7* shards, T6CC, and other items in there. I get something of value, and you get a bunch of CPU and storage back. win/win.
«1

Comments

  • MDxMDx Member Posts: 96
    DNA3000 said:

    Xguard77 said:

    your databases are cluttered with millions and millions of crystals that players aren't opening.

    and I get annoyed looking at the 10k+ crystals that on my account that will never be opened.

    so, let's make a deal Kabam. run a crystal trade in special event. every crystal we trade in gives us a point to use in an event store. throw some 7* shards, T6CC, and other items in there. I get something of value, and you get a bunch of CPU and storage back. win/win.

    This is not directly pertinent to your suggestion, but it repeats a very common misconception. This is how many solo shards I have now.



    Somewhere in some database, there's a 32-bit counter (possibly a 64-bit counter) storing the number 29,279,200, taking up a few bytes of space. If I were to somehow spend them all, that counter would drop to zero.

    And still be taking up the same few bytes of space. Opening crystals does not save space, resources, or CPU.

    This misconception comes about because every so often Kabam does a crystal clean up and essentially forces open all of the crystals of a certain type on every account that contains them. This does save space, but not because the crystals are gone. Rather, once *all* of the crystals are opened, every last one of them, on every account in the game, the game can stop storing that value altogether.

    Imagine there's a 32-bit counter for the amount of a certain kind of crystal. That's four bytes on every single game account. Not every current active player, but every account that has ever existed. Hundreds of millions of game accounts, each storing that value, even if it is zero. Remove that crystal altogether, and that's potentially gigabytes of space being freed in the game's databases. But only if *every* crystal is opened on *every* game account, even game accounts no longer being played, and then that crystal is deleted from the game (or the space is reused for new crystals, which is essentially the same thing).

    Asking players to open crystals does nothing, because a single hold out forces the game to keep the data for every player regardless of whether every other player has exactly zero of that thing or not.
    So you're saying when kabam intended for players to not hoard and haggle the server, they were spreading misinformation? Okay.
  • ShiroiharaShiroihara Member Posts: 1,092 ★★★★
    edited September 2023
    DNA3000 said:

    Imagine there's a 32-bit counter for the amount of a certain kind of crystal. That's four bytes on every single game account. Not every current active player, but every account that has ever existed. Hundreds of millions of game accounts, each storing that value, even if it is zero.

    I can't say for sure, but I'd say this is not correct. If a player doesn't have a particular type of crystal, then there's no player-crystal-counter record in the DB. What you suggest is very impractical and as a dev would not think of implementing something like that.
  • JustWantTheRewardsJustWantTheRewards Member Posts: 442 ★★★

    DNA3000 said:

    Imagine there's a 32-bit counter for the amount of a certain kind of crystal. That's four bytes on every single game account. Not every current active player, but every account that has ever existed. Hundreds of millions of game accounts, each storing that value, even if it is zero.

    If a player doesn't have a particular type of crystal, then there's no player-crystal-counter record in the DB.
    Wouldn't you need to have a player-crystal-counter record in order to tell if a player has a particular type of crystal? I'm fairly new to programming, so I could just be uneducated in this area, but I'm not sure how you would go about tracking a value while it's greater than 0 and not tracking it while it's equal to 0.
  • ShiroiharaShiroihara Member Posts: 1,092 ★★★★

    DNA3000 said:

    Imagine there's a 32-bit counter for the amount of a certain kind of crystal. That's four bytes on every single game account. Not every current active player, but every account that has ever existed. Hundreds of millions of game accounts, each storing that value, even if it is zero.

    If a player doesn't have a particular type of crystal, then there's no player-crystal-counter record in the DB.
    Wouldn't you need to have a player-crystal-counter record in order to tell if a player has a particular type of crystal? I'm fairly new to programming, so I could just be uneducated in this area, but I'm not sure how you would go about tracking a value while it's greater than 0 and not tracking it while it's equal to 0.
    If your query for that player-crystal does not return any records, then they don't have any. In other words, it's 0.
  • AverageDesiAverageDesi Member Posts: 5,260 ★★★★★
    DNA3000 said:

    Xguard77 said:

    your databases are cluttered with millions and millions of crystals that players aren't opening.

    and I get annoyed looking at the 10k+ crystals that on my account that will never be opened.

    so, let's make a deal Kabam. run a crystal trade in special event. every crystal we trade in gives us a point to use in an event store. throw some 7* shards, T6CC, and other items in there. I get something of value, and you get a bunch of CPU and storage back. win/win.

    Asking players to open crystals does nothing, because a single hold out forces the game to keep the data for every player regardless of whether every other player has exactly zero of that thing or not.
    So this guy is the cause then
  • DemonzfyreDemonzfyre Member Posts: 22,321 ★★★★★
    MDx said:

    DNA3000 said:

    Xguard77 said:

    your databases are cluttered with millions and millions of crystals that players aren't opening.

    and I get annoyed looking at the 10k+ crystals that on my account that will never be opened.

    so, let's make a deal Kabam. run a crystal trade in special event. every crystal we trade in gives us a point to use in an event store. throw some 7* shards, T6CC, and other items in there. I get something of value, and you get a bunch of CPU and storage back. win/win.

    This is not directly pertinent to your suggestion, but it repeats a very common misconception. This is how many solo shards I have now.



    Somewhere in some database, there's a 32-bit counter (possibly a 64-bit counter) storing the number 29,279,200, taking up a few bytes of space. If I were to somehow spend them all, that counter would drop to zero.

    And still be taking up the same few bytes of space. Opening crystals does not save space, resources, or CPU.

    This misconception comes about because every so often Kabam does a crystal clean up and essentially forces open all of the crystals of a certain type on every account that contains them. This does save space, but not because the crystals are gone. Rather, once *all* of the crystals are opened, every last one of them, on every account in the game, the game can stop storing that value altogether.

    Imagine there's a 32-bit counter for the amount of a certain kind of crystal. That's four bytes on every single game account. Not every current active player, but every account that has ever existed. Hundreds of millions of game accounts, each storing that value, even if it is zero. Remove that crystal altogether, and that's potentially gigabytes of space being freed in the game's databases. But only if *every* crystal is opened on *every* game account, even game accounts no longer being played, and then that crystal is deleted from the game (or the space is reused for new crystals, which is essentially the same thing).

    Asking players to open crystals does nothing, because a single hold out forces the game to keep the data for every player regardless of whether every other player has exactly zero of that thing or not.
    So you're saying when kabam intended for players to not hoard and haggle the server, they were spreading misinformation? Okay.
    The problem was the amount of different types of crystals being horded. They cleaned up crystals that were no longer being given out.
  • ArmageddønArmageddøn Member Posts: 897 ★★★★
    Or just buff those solo crystal shards, objective crystals and give option to sell t4cc and don't consider it as a 'valuable' resource anymore lol
  • Maat1985Maat1985 Member Posts: 2,412 ★★★★
    problem is whilst people have so many hoarded it also makes it hard for them to buff.
    like lets say someone like DNA3000 here has 30million solo crystal shards.
    and they make a new crystal costing 200k.
    he will instantly get 150 of those.
    now think, maybe there are a bunch of players with far greater amounts.

    so they need to take that into consideration before considering any buff.
    knowing that if they make them too good then sooo many people instantly get a bunch of awesome stuff and get rewarded for hoarding whereas those that have just opened them and wasted them because why not get nothing.

    so this makes balancing the rewards in the crystal a near impossible task.
    too much and too many people get a massive boost that throws off balance.
    too little and people say "why bother, and continue to hoard"

    so in short, people hoarding makes it harder to get buffed crystals
  • MofuggerMofugger Member Posts: 90
    edited September 2023
    DNA3000 said:


    Imagine there's a 32-bit counter for the amount of a certain kind of crystal. That's four bytes on every single game account. Not every current active player, but every account that has ever existed. Hundreds of millions of game accounts, each storing that value, even if it is zero. Remove that crystal altogether, and that's potentially gigabytes of space being freed in the game's databases. But only if *every* crystal is opened on *every* game account, even game accounts no longer being played, and then that crystal is deleted from the game (or the space is reused for new crystals, which is essentially the same thing).

    You're describing a completely denormalized database (assuming RDBMS). I really expect that this isn't how they structured the data. The more reasonable approach is a crystals table, a users table, and a join table with FKs to crystal PK and user PK. As long as any one user has a type of crystal, that row needs to remain in the crystals table taking up a small, but constant, number of bits. In this scenario, the number of total bits consumed for storage IS directly related to the number of users with that type of crystal. If the number goes down to zero, then the association is removed from the join table instead of being left as zero.

    This is the preferred way not just for storage (including index size), but for query execution plans and response time.

  • JefechutaJefechuta Member Posts: 1,218 ★★★★★
    Maat1985 said:

    problem is whilst people have so many hoarded it also makes it hard for them to buff.
    like lets say someone like DNA3000 here has 30million solo crystal shards.
    and they make a new crystal costing 200k.
    he will instantly get 150 of those.
    now think, maybe there are a bunch of players with far greater amounts.

    so they need to take that into consideration before considering any buff.
    knowing that if they make them too good then sooo many people instantly get a bunch of awesome stuff and get rewarded for hoarding whereas those that have just opened them and wasted them because why not get nothing.

    so this makes balancing the rewards in the crystal a near impossible task.
    too much and too many people get a massive boost that throws off balance.
    too little and people say "why bother, and continue to hoard"

    so in short, people hoarding makes it harder to get buffed crystals

    The problem here is that those Crystals gave almost no benefits from the beginning, so Its not weird that people hadnt opened them and hoarded, anyway, there are easy solutions to this, but I guess it depends on what they want to do so...
  • DRTODRTO Member Posts: 1,681 ★★★★★
    Rohit_316 said:



    1/3rd of my inventory will get cleared if they can permanently delete this from my account. I don't care if I don't get the benefit of them . Just delete these stupid t4cc fragments.

    Lol remember when those and T4CC crystals were like the most valuable and rare crystals in the game? Ah those were the days, now I got over 600 t4CC crystals that I really don't need
  • Maat1985Maat1985 Member Posts: 2,412 ★★★★
    Jefechuta said:

    Maat1985 said:

    problem is whilst people have so many hoarded it also makes it hard for them to buff.
    like lets say someone like DNA3000 here has 30million solo crystal shards.
    and they make a new crystal costing 200k.
    he will instantly get 150 of those.
    now think, maybe there are a bunch of players with far greater amounts.

    so they need to take that into consideration before considering any buff.
    knowing that if they make them too good then sooo many people instantly get a bunch of awesome stuff and get rewarded for hoarding whereas those that have just opened them and wasted them because why not get nothing.

    so this makes balancing the rewards in the crystal a near impossible task.
    too much and too many people get a massive boost that throws off balance.
    too little and people say "why bother, and continue to hoard"

    so in short, people hoarding makes it harder to get buffed crystals

    The problem here is that those Crystals gave almost no benefits from the beginning, so Its not weird that people hadnt opened them and hoarded, anyway, there are easy solutions to this, but I guess it depends on what they want to do so...
    yes the crystals are not great.

    yes there are always solutions to any problem.

    personally tho i have opened those crystals on the regular just because why the hell not...
    they give some attack and champ boosts for use in war,

    so yes i agree they need a buff, but personally i would rather see them make a new crystal using new shards and stop the solo crystals.
    just auto open and delete them and replace them with a new improved crystal where everyone starts at 0.
    thats my idea for one solution.
    then everyone is happy they get a buffed crystal.
    noone is in any position better than anyone else.
  • Darkness275Darkness275 Member Posts: 851 ★★★★
    edited September 2023
    Maat1985 said:

    problem is whilst people have so many hoarded it also makes it hard for them to buff.
    like lets say someone like DNA3000 here has 30million solo crystal shards.
    and they make a new crystal costing 200k.
    he will instantly get 150 of those.
    now think, maybe there are a bunch of players with far greater amounts.

    so they need to take that into consideration before considering any buff.
    knowing that if they make them too good then sooo many people instantly get a bunch of awesome stuff and get rewarded for hoarding whereas those that have just opened them and wasted them because why not get nothing.

    so this makes balancing the rewards in the crystal a near impossible task.
    too much and too many people get a massive boost that throws off balance.
    too little and people say "why bother, and continue to hoard"

    so in short, people hoarding makes it harder to get buffed crystals

    I mean, maybe... it might make buffing crystals more difficult, if they didn't have the power to just magically force open all crystals of a specific type.

    Deflation is a mindset in all mobile games, because offers and costs change almost as soon as they're shown to you. This game deals with it better because for the most part costs are tied to progression which is paced out a little more, but go try some other games that do offers for in-game currency and/or real world money. When you start the offers will give you X for Y but after about an hour or so of playing X will change. Now maybe they're offering Xa for Y. Then Xab. The "value" of what you're receiving keeps increasing but they're asking for the same amount...

    MCOC does a much better job at fighting this deflation than almost any other mobile game I can think of. It's still present in the case of both offers and items/crystals, but let's look at the crystals aspect of this. Add to this our limited inventory and the expiration in the stash... once we get a crystal it makes sense to open them immediately. This continues until it no longer makes sense to open the crystal. Whether it's because we don't have space or can't use the resources, whatever it is something makes holding the crystal more logical than opening it right away. This is when the deflation aspect comes back and kicks in because the value of those crystals decrease. Not all of them, but many. Now, while we're holding them, we keep getting more, which also does nothing to increase the value or make it more logical for us to open them. So we horde.

    Compound this across all accounts and that's where hording becomes an issue.

    The trade in stores/events were fantastic for this in most parts, but are probably a nightmare to try and properly balance. Limits, longevity, how will it effect the overall economy and how does it affect the progression bottlenecks... it's easy for us to say "buff this crystal" or "implement a new one and let me trade it in" but that only actually kicks the can down the road. Personally? Yeah, I want to trade in all my 3* and 4* awakening gems because they're overflowing. Let me trade up and get 5 and 6* gems. Actually, tbh I can't use any of my 5* gems either so I'll just be trading those in right away too.. although... if I'm being honest, pretty soon I won't actually need any 6* gems either.

    Unfortunate truth is, if we hold onto items because of deflation, we're going to have to some point acknowledge that the items are worthless to us and shouldn't be offended when we go to sell them for almost next to nothing. Something I learned playing Escape from Tarkov: "If you're keeping gear in your stash because you're afraid to lose it, you've not using it anyway, so what's the difference? It's effectively already lost."
  • Maat1985Maat1985 Member Posts: 2,412 ★★★★

    Maat1985 said:

    problem is whilst people have so many hoarded it also makes it hard for them to buff.
    like lets say someone like DNA3000 here has 30million solo crystal shards.
    and they make a new crystal costing 200k.
    he will instantly get 150 of those.
    now think, maybe there are a bunch of players with far greater amounts.

    so they need to take that into consideration before considering any buff.
    knowing that if they make them too good then sooo many people instantly get a bunch of awesome stuff and get rewarded for hoarding whereas those that have just opened them and wasted them because why not get nothing.

    so this makes balancing the rewards in the crystal a near impossible task.
    too much and too many people get a massive boost that throws off balance.
    too little and people say "why bother, and continue to hoard"

    so in short, people hoarding makes it harder to get buffed crystals

    I mean, maybe... it might make buffing crystals more difficult, if they didn't have the power to just magically force open all crystals of a specific type.

    Deflation is a mindset in all mobile games, because offers and costs change almost as soon as they're shown to you. This game deals with it SLIGHTLY better because for the most part costs are tied to progression which is paced out a little more, but go try some other games that do offers for in-game currency and/or real world money. When you start the offers will give you X for Y but after about an hour or so of playing X will change. Now maybe they're offering Xa for Y. Then Xab. The "value" of what you're receiving keeps increasing but they're asking for the same amount...

    MCOC does a much better job at fighting this deflation than almost any other mobile game I can think of. It's still present in the case of both offers and items/crystals, but let's look at the crystals aspect of this. Add to this our limited inventory and the expiration in the stash... once we get a crystal it makes sense to open them immediately. This continues until it no longer makes sense to open the crystal. Whether it's because we don't have space or can't use the resources, whatever it is something makes holding the crystal more logical than opening it right away. This is when the deflation aspect comes back and kicks in because the value of those crystals decrease. Not all of them, but many. Now, while we're holding them, we keep getting more, which also does nothing to increase the value or make it more logical for us to open them. So we horde.

    Compound this across all accounts and that's where hording becomes an issue.

    The trade in stores/events were fantastic for this in most parts, but are probably a nightmare to try and properly balance. Limits, longevity, how will it effect the overall economy and how does it affect the progression bottlenecks... it's easy for us to say "buff this crystal" or "implement a new one and let me trade it in" but that only actually kicks the can down the road. Personally? Yeah, I want to trade in all my 3* and 4* awakening gems because they're overflowing. Let me trade up and get 5 and 6* gems. Actually, tbh I can't use any of my 5* gems either so I'll just be trading those in right away too.. although... if I'm being honest, pretty soon I won't actually need any 6* gems either.

    Unfortunate truth is, if we hold onto items because of deflation, we're going to have to some point acknowledge that the items are worthless to us and shouldn't be offended when we go to sell them for almost next to nothing. Something I learned playing Escape from Tarkov: "If you're keeping gear in your stash because you're afraid to lose it, you've not using it anyway, so what's the difference? It's effectively already lost."
    thats why i always tell people no point in saving more than one or 2 AGs.
    use them.
    they are worthless sitting there.
    save them for someone who needs it?
    next thing you know you have got 10 sitting there.
    spend time earning rewards but if you never use them the have no value whatsoever.
  • hi_im_sirhi_im_sir Member Posts: 272 ★★
    OP be like

  • JefechutaJefechuta Member Posts: 1,218 ★★★★★
    Maat1985 said:

    Jefechuta said:

    Maat1985 said:

    problem is whilst people have so many hoarded it also makes it hard for them to buff.
    like lets say someone like DNA3000 here has 30million solo crystal shards.
    and they make a new crystal costing 200k.
    he will instantly get 150 of those.
    now think, maybe there are a bunch of players with far greater amounts.

    so they need to take that into consideration before considering any buff.
    knowing that if they make them too good then sooo many people instantly get a bunch of awesome stuff and get rewarded for hoarding whereas those that have just opened them and wasted them because why not get nothing.

    so this makes balancing the rewards in the crystal a near impossible task.
    too much and too many people get a massive boost that throws off balance.
    too little and people say "why bother, and continue to hoard"

    so in short, people hoarding makes it harder to get buffed crystals

    The problem here is that those Crystals gave almost no benefits from the beginning, so Its not weird that people hadnt opened them and hoarded, anyway, there are easy solutions to this, but I guess it depends on what they want to do so...
    yes the crystals are not great.

    yes there are always solutions to any problem.

    personally tho i have opened those crystals on the regular just because why the hell not...
    they give some attack and champ boosts for use in war,

    so yes i agree they need a buff, but personally i would rather see them make a new crystal using new shards and stop the solo crystals.
    just auto open and delete them and replace them with a new improved crystal where everyone starts at 0.
    thats my idea for one solution.
    then everyone is happy they get a buffed crystal.
    noone is in any position better than anyone else.
    Yeah I mean they have a real solution that wouldnt make them lose money due to people that hoarded millions of shards, i think they also could get to that solution easily but they dont want to upgrade those crystals just yet
  • ahmynutsahmynuts Member Posts: 7,750 ★★★★★
    Maat1985 said:

    Maat1985 said:

    problem is whilst people have so many hoarded it also makes it hard for them to buff.
    like lets say someone like DNA3000 here has 30million solo crystal shards.
    and they make a new crystal costing 200k.
    he will instantly get 150 of those.
    now think, maybe there are a bunch of players with far greater amounts.

    so they need to take that into consideration before considering any buff.
    knowing that if they make them too good then sooo many people instantly get a bunch of awesome stuff and get rewarded for hoarding whereas those that have just opened them and wasted them because why not get nothing.

    so this makes balancing the rewards in the crystal a near impossible task.
    too much and too many people get a massive boost that throws off balance.
    too little and people say "why bother, and continue to hoard"

    so in short, people hoarding makes it harder to get buffed crystals

    I mean, maybe... it might make buffing crystals more difficult, if they didn't have the power to just magically force open all crystals of a specific type.

    Deflation is a mindset in all mobile games, because offers and costs change almost as soon as they're shown to you. This game deals with it SLIGHTLY better because for the most part costs are tied to progression which is paced out a little more, but go try some other games that do offers for in-game currency and/or real world money. When you start the offers will give you X for Y but after about an hour or so of playing X will change. Now maybe they're offering Xa for Y. Then Xab. The "value" of what you're receiving keeps increasing but they're asking for the same amount...

    MCOC does a much better job at fighting this deflation than almost any other mobile game I can think of. It's still present in the case of both offers and items/crystals, but let's look at the crystals aspect of this. Add to this our limited inventory and the expiration in the stash... once we get a crystal it makes sense to open them immediately. This continues until it no longer makes sense to open the crystal. Whether it's because we don't have space or can't use the resources, whatever it is something makes holding the crystal more logical than opening it right away. This is when the deflation aspect comes back and kicks in because the value of those crystals decrease. Not all of them, but many. Now, while we're holding them, we keep getting more, which also does nothing to increase the value or make it more logical for us to open them. So we horde.

    Compound this across all accounts and that's where hording becomes an issue.

    The trade in stores/events were fantastic for this in most parts, but are probably a nightmare to try and properly balance. Limits, longevity, how will it effect the overall economy and how does it affect the progression bottlenecks... it's easy for us to say "buff this crystal" or "implement a new one and let me trade it in" but that only actually kicks the can down the road. Personally? Yeah, I want to trade in all my 3* and 4* awakening gems because they're overflowing. Let me trade up and get 5 and 6* gems. Actually, tbh I can't use any of my 5* gems either so I'll just be trading those in right away too.. although... if I'm being honest, pretty soon I won't actually need any 6* gems either.

    Unfortunate truth is, if we hold onto items because of deflation, we're going to have to some point acknowledge that the items are worthless to us and shouldn't be offended when we go to sell them for almost next to nothing. Something I learned playing Escape from Tarkov: "If you're keeping gear in your stash because you're afraid to lose it, you've not using it anyway, so what's the difference? It's effectively already lost."
    thats why i always tell people no point in saving more than one or 2 AGs.
    use them.
    they are worthless sitting there.
    save them for someone who needs it?
    next thing you know you have got 10 sitting there.
    spend time earning rewards but if you never use them the have no value whatsoever.
    Brian Grant is absolutely fuming and punching the air rn
  • DemonzfyreDemonzfyre Member Posts: 22,321 ★★★★★
    Mofugger said:

    DNA3000 said:


    Imagine there's a 32-bit counter for the amount of a certain kind of crystal. That's four bytes on every single game account. Not every current active player, but every account that has ever existed. Hundreds of millions of game accounts, each storing that value, even if it is zero. Remove that crystal altogether, and that's potentially gigabytes of space being freed in the game's databases. But only if *every* crystal is opened on *every* game account, even game accounts no longer being played, and then that crystal is deleted from the game (or the space is reused for new crystals, which is essentially the same thing).

    You're describing a completely denormalized database (assuming RDBMS). I really expect that this isn't how they structured the data. The more reasonable approach is a crystals table, a users table, and a join table with FKs to crystal PK and user PK. As long as any one user has a type of crystal, that row needs to remain in the crystals table taking up a small, but constant, number of bits. In this scenario, the number of total bits consumed for storage IS directly related to the number of users with that type of crystal. If the number goes down to zero, then the association is removed from the join table instead of being left as zero.

    This is the preferred way not just for storage (including index size), but for query execution plans and response time.

    You're barking up the wrong tree. DNA has more intimate knowledge of the game and how it works than anyone on here aside from maybe Jax or Miike.
  • JustWantTheRewardsJustWantTheRewards Member Posts: 442 ★★★

    Mofugger said:

    DNA3000 said:


    Imagine there's a 32-bit counter for the amount of a certain kind of crystal. That's four bytes on every single game account. Not every current active player, but every account that has ever existed. Hundreds of millions of game accounts, each storing that value, even if it is zero. Remove that crystal altogether, and that's potentially gigabytes of space being freed in the game's databases. But only if *every* crystal is opened on *every* game account, even game accounts no longer being played, and then that crystal is deleted from the game (or the space is reused for new crystals, which is essentially the same thing).

    You're describing a completely denormalized database (assuming RDBMS). I really expect that this isn't how they structured the data. The more reasonable approach is a crystals table, a users table, and a join table with FKs to crystal PK and user PK. As long as any one user has a type of crystal, that row needs to remain in the crystals table taking up a small, but constant, number of bits. In this scenario, the number of total bits consumed for storage IS directly related to the number of users with that type of crystal. If the number goes down to zero, then the association is removed from the join table instead of being left as zero.

    This is the preferred way not just for storage (including index size), but for query execution plans and response time.

    You're barking up the wrong tree. DNA has more intimate knowledge of the game and how it works than anyone on here aside from maybe Jax or Miike.
    Just because someone is educated on a topic doesn't mean people who also know a thing or two just shouldn't discuss it with them. I would love to hear why Kabam might manage their data this way and if there is a more efficient way of doing it.
  • TyEdgeTyEdge Member Posts: 3,130 ★★★★★
    Short version:

    A thousand players holding one of a crystal that isn’t regularly available? Disproportionately burdensome. Open them.

    100,000 players holding 1000+ of a crystal that is regularly distributed? Not a problem because those will never be zeroed out anyway and they’ll continue to be opened.
  • benshbbenshb Member Posts: 838 ★★★★
    Even if the reasoning and the tech behind this suggestion is not how things work, this idea sounds awesome regardless
  • MofuggerMofugger Member Posts: 90


    You're barking up the wrong tree. DNA has more intimate knowledge of the game and how it works than anyone on here aside from maybe Jax or Miike.

    I mean, I've got 25+ years experience building persistence layers for CMS, data lakes, and cloud-scale analytics and metrics. This sort of thing is in my group of trees. Everything I said is accurate with respect to how this sort of data should be managed at scale. If DNA has actually looked at the underlying data model, then sure...he knows it's the wrong implementation.

  • ReignkingTWReignkingTW Member Posts: 2,774 ★★★★★
    I think you're missing something -- product management.

    It's a nightmare to have analyze all of these different crystals and permutations through time. By cleaning it up you can do a proper assessment.
  • klobberintymeklobberintyme Member Posts: 1,633 ★★★★

    Mofugger said:

    DNA3000 said:


    Imagine there's a 32-bit counter for the amount of a certain kind of crystal. That's four bytes on every single game account. Not every current active player, but every account that has ever existed. Hundreds of millions of game accounts, each storing that value, even if it is zero. Remove that crystal altogether, and that's potentially gigabytes of space being freed in the game's databases. But only if *every* crystal is opened on *every* game account, even game accounts no longer being played, and then that crystal is deleted from the game (or the space is reused for new crystals, which is essentially the same thing).

    You're describing a completely denormalized database (assuming RDBMS). I really expect that this isn't how they structured the data. The more reasonable approach is a crystals table, a users table, and a join table with FKs to crystal PK and user PK. As long as any one user has a type of crystal, that row needs to remain in the crystals table taking up a small, but constant, number of bits. In this scenario, the number of total bits consumed for storage IS directly related to the number of users with that type of crystal. If the number goes down to zero, then the association is removed from the join table instead of being left as zero.

    This is the preferred way not just for storage (including index size), but for query execution plans and response time.

    You're barking up the wrong tree. DNA has more intimate knowledge of the game and how it works than anyone on here aside from maybe Jax or Miike.
    Whew coffee came up thru my nose on that.

    Dna is the blowhard-iest of node and app level talkers here, but mofugger sounds like what i was many years ago, a data architect guy who knows not everyone's schema was built correctly in the first place or in a position to migrate to one that does.

    I gotcha @Mofugger
Sign In or Register to comment.