The whole "publishing gaming items on the block chain" problem

in #gaming4 years ago

Hey all,

As I'm diving again deeper and deeper in my gaming engine I stopped to look at a problem I remember having when I first worked on my code. It's about publishing in-game items on the blockchain. There are some "problems" that I back than couldn't really wrap my head around.

First it's about how items are published on the blockchain. Whenever you play a game items create a piece of custom JSON on your account. This could be a realistic example I created:

image.png

(Proof of on the blockchain: https://steemd.com/tx/9a1c3ddf92442514be233fc63af27d924b60128b)

However, this doesn't proof anything about the code being legitimate, with other words, whatever is written on the blockchain has to be validated. If not, anyone could just create the best possible in game items with nothing more than a script that contains a few lines of code.

The only way that you can prove the legitimacy of the custom JSON published on your account is by comparing their validity (with entries in a database for example). This works indeed, but if you look a bit from a distance to solution you'll quickly see that publishing the action on the block chain ends up being not necessary at all. Since the validity has to be proved by checking whether the item really exists, you can just directly look at wherever these items are stored. This would work, because if the validity has to be checked anyway, wherever the item's are "saved", also holds the log of the history at the item: trading history (to see who is the real owner), stat changes etc... Since all these steps have to be checked anyway.

Publishing custom data on the block chain to represent in game items is interesting, but doesn't prove to be of any additional value. Having to always compare whether custom code on a account is legitimate is not adding any added value, additionally it might actually be the reason why many block chain games feel "clunky" (or slow).

I'm all in favor for decentralization, especially in regard to virtual property. I feel that once an item obtained by a player the gamer should have the liberty to do with it as they want. But I do think that it has to add value, decentralizing for the sake of decentralizing is the same as painting your wall in the exact same color just for the sake of painting it.

That being said there are some blockchains that are better or even designed for these circumstances (Wax for example). But I wanted to share this with you and hear what you have to say. Maybe there is something I'm missing here

Sort:  

Something like NFTs might be a better solution for storing unique items. I never worked with those, but I'm sure you could have an itemization system built that tech. I found that custom_json is better suited for simple things like using them as commands to trigger a piece of code.

I read your comment this morning, and I've been googling the "feculence" out of it. I had no idea they where introduced, but yes indeed that would be the solution. I'd have to look into the creation progress, creating coins with random properties (Diablo style) and the most important the speed of indexing through them. Shizzle just got whole lot interesting

I liked how Spells of Genesis made you level up an item (in this case a card) to its max before it would "blockchainize" it and create it on the blockchain itself (in this case bitcoin through the Counterparty protocol). I liked the idea because I could still get a decentralized asset in the end, but it only happened after a considerable amount of effort.

Absolutely, and an additional upside to that way of working is that you don't have to put a limit to the drops a player can get when grinding, since having many drops doesn't necessarily result in an overload of the same items on the block chain, so players always have the feeling of progress after playing

Yeah it felt like a really good milestone to get an item on the blockchain!

Coin Marketplace

STEEM 0.28
TRX 0.12
JST 0.034
BTC 63914.94
ETH 3312.82
USDT 1.00
SBD 3.92