mud2048.fun est notre exploration pour acquérir un sens microscopique du développement de jeux en chaîne complète. Il vise à faire l’expérience de la version complète du jeu original 2048 (play2048.co) en le reproduisant pour vivre l’expérience de développement de jeu à chaîne complète. Température de l’eau, obtenez une sensation corporelle de première ligne.
Cet article est un résumé des expériences et des réflexions acquises au cours de ce processus de développement, et a pour but d'inspirer les lecteurs.
Il s'agit probablement de la tentative la plus simple de développer des jeux entièrement sur chaîne. Avant cela, nous avons essayé de mettre en œuvre une version entièrement sur chaîne du jeu du dinosaure hors ligne de Chrome (jeu du dinosaure de Chrome), mais nous avons ensuite constaté que ce n'était pas natif de la blockchain. Avec le soutien du mécanisme Tick du jeu, il est difficile de reproduire une version entièrement sur chaîne qui se rapproche de l'expérience de jeu originale.
Version en ligne du jeu Chrome Dino sur :https://dinorunner.com/
Cela peut impliquer une malentendu courant: il est plus facile de mettre en œuvre une version complète en chaîne de jeux simples. En fait, ce n'est pas le cas, car le temps de confirmation des transactions de la blockchain (même Layer 2 grand public) n'a pas encore atteint le niveau du temps de réponse de l'interface du serveur centralisé; de plus, après que la logique du jeu est téléchargée sur la chaîne, cela apporte une complexité d'ingénierie qui n'est pas apparue dans le scénario centralisé, ce qui conduit au fait que tous les jeux occasionnels simples ne peuvent pas facilement implémenter des versions complètes en chaîne. Cela explique également dans une certaine mesure les divisions actuelles de l'écologie des jeux en chaîne complète:
Principalement des jeux de stratégie en temps réel (RTS), tels que : Loot Survivor, Primodium, Sky Strife, Cellula, etc., complétés par des Meta Rules (jeux de méta-règles/jeux sandbox), tels que : PixeLAW, Briq, OpCraft, etc. Les deux types de jeux évitent les inconvénients causés par le long temps de confirmation des transactions blockchain en termes de forme de jeu.
L'image montre l'interface de démarrage de Sky Strife, URL :https://playtest.skystrife.xyz/
MUD est le premier moteur de jeu complet de la chaîne dans l'écosystème EVM (et le premier cadre de développement d'application dans l'écosystème EVM). Le portefeuille de session intégré du moteur et le robinet de chaîne de test qui peut être appelé via une API peuvent abaisser la barrière à l'entrée pour les joueurs.
Une autre raison est que MUD est open source, dispose de nombreux documents et ressources communautaires, et est facile à prendre en main. Que le moteur de jeu soit open source implique des problèmes de modèle économique qui seront discutés spécifiquement ci-dessous.
Introduction aux MUDs. source:https://github.com/latticexyz/mud
Maintenant, passons au vif du sujet. Nous parlerons de certaines de nos expériences dans l'utilisation du moteur MUD. Il existe des niveaux industriels macro-perceptifs et des niveaux pratiques d'ingénierie micro-rationnelle. Ils s'adressent à différents groupes de public cible. Vous pouvez les utiliser vous-même (sauter directement) la partie qui n'est pas intéressante).
Qu'est-ce qu'un moteur MUD en général?
Moteur MUD = base de données relationnelle sur chaîne + cadre de développement d'application sur chaîne.
Fonctionnalités de MUD. source:https://github.com/latticexyz/mud
Il s'agit d'une perspective d'observation du domaine de la blockchain depuis le domaine de l'Internet (un peu similaire à l'observation de la puissance maritime depuis la perspective de la puissance terrestre). Ce n'est certainement pas la perspective la plus appropriée, mais compte tenu du fait que la blockchain n'a pas encore atteint une adoption de masse, les produits blockchain doivent être lancés. cercle, nous devons encore attirer plus d'utilisateurs dans le domaine de l'Internet, nous pourrions donc aussi bien examiner l'analyse depuis la perspective de l'Internet en premier.
Qu'il s'agisse d'une "base de données relationnelle on-chain" ou d'un "cadre de développement d'application on-chain", ils sont cruciaux pour le développement d'Ethereum, l'"ordinateur mondial".
Nous avons appris du développement d’applications Internet : la facilité d’utilisation du logiciel de base de données et le caractère raisonnable de la conception de la structure de la table de base de données déterminent en grande partie la complexité de l’ensemble du développement du projet. en d’autres termes,Le développement d’applications Internet est effectué avec la base de données comme noyau, appelons-le « basé sur une base de données"。
Voyons maintenant si la conception du moteur MUD suit également l'idée "basée sur la base de données". Du point de vue de la conception du moteur MUD, il résout trois problèmes principaux :
Comment rendre les données sur la chaîne faciles à lire, à écrire et à stocker de manière économique,
Synchronisation automatique des données entre la chaîne/on-chain et les clients,
Gestion générale de la complexité du développement d'applications.
Regardons d'abord la première question : « Comment les données sur la chaîne peuvent être facilement lues, écrites et stockées de manière économique ».
Ce problème peut être décomposé en deux éléments:
1> Facile à lire et à écrire
2> Stockage économique
Après des décennies de pratique dans le domaine de l'Internet, la “facilité de lecture et d'écriture”, la “base de données relationnelle” est considérée comme la solution optimale. Bien que la blockchain soit un modèle de stockage en chaîne très différent du modèle de stockage de base de données traditionnel (voir la figure ci-dessous), ce modèle n'est pas convivial même pour des opérations simples dans un seul scénario (telles que la somme/la moyenne du montant de transaction d'une certaine collection de NFT) / trouver les valeurs maximales et minimales, etc.), sans parler de scénarios plus complexes.
Source de l'image :https://mempool.space/mining
Par conséquent, la solution pour MUD consiste à implémenter une "base de données relationnelle" sur un stockage enchaîné (correspondant au Tableau sous Store dans le moteur MUD). Pour les développeurs, l'expérience d'utilisation est la même que celle des bases de données relationnelles courantes (telles que MySQL, SQL Server, PostgreSQL, SQLite, etc.). C'est en effet plus convivial pour la majorité des développeurs Internet. La figure ci-dessous montre la structure de table correspondante lorsque nous avons développé la version 2048 basée sur le moteur MUD.
Source :https://github.com/themetacat/MUD2048/blob/main/packages/contracts/mud.config.ts
Nous pouvons analyser le point de “stockage économique” du point de vue d'Ethereum, l'ordinateur mondial.
Les ordinateurs modernes respectent tous la "structure de Von Neumann", qui est divisée en cinq parties: entrée, sortie, opération, contrôle et stockage (voir la figure ci-dessous).
Les images proviennent d'Internet
Du point de vue du moteur de jeu à chaîne complète lui-même, il ne peut optimiser que le “stockage”, car “l'entrée” et la “sortie” se trouvent sur sa couche supérieure et ne peuvent pas être contrôlées; “opération” et “contrôle” sont ce que fait la blockchain Ethereum. En tant que “logiciel d'application de base” fonctionnant sur cet “ordinateur mondial”, le moteur de jeu à chaîne complète ne peut optimiser que l'entrée “stockage” à travers celui-ci.
La solution spécifique pour l'optimisation du stockage consiste à mettre en œuvre un "bitpacking" très efficace et compact pour les données d'entrée. Comme le stockage des données sur la blockchain est facturé en fonction du volume de données, un volume de données plus petit signifie des coûts de stockage plus faibles. Des coûts de stockage entièrement optimisés sont la condition préalable à l'émergence d'applications complexes à grande échelle sur la chaîne. La figure ci-dessous montre un cas spécifique d'optimisation du stockage par MUD. Pour plus de détails, voir“Moteur de jeu complet en chaîne MUD de 0 à V2”.
Source de l'image :https://lattice.xyz/blog/mud-zero-to-v2
Pour résumer, pour la question un, MUD résout principalement le problème du point de vue "basé sur la base de données".
Maintenant, nous passons à la deuxième question : "Synchronisation automatique des données entre la chaîne/on-chain et les clients".
Il s'agit également d'une fonction principale fournie par le moteur MUD, qui aide les développeurs à se décharger du lourd travail de gestion de la synchronisation d'état complexe. Le plan de mise en œuvre spécifique est : la synchronisation en temps réel de la base de données on-chain sur le client. En d'autres termes, chaque client dispose d'une copie locale intégrée qui est synchronisée en temps réel avec la base de données on-chain.
Cela est principalement réalisé grâce à l'Indexer dans le moteur MUD. L'image ci-dessous est l'introduction officielle de MUD à l'Indexer, principalement pour les scénarios où vous souhaitez le construire et l'exécuter sur le serveur du projet (bien sûr, cette description s'applique également à l'Indexer qui s'exécute automatiquement dans le client de jeu en chaîne complète).
Source de l'image :https://mud.dev/services/indexer
Pour les développeurs, ils disposent initialement d'une base de données on-chain avec une expérience utilisateur proche de celle d'une base de données locale. Cependant, en ce qui concerne la mise en œuvre actuelle de MUD, il est difficile pour le client de mettre en œuvre des fonctions telles que la génération d'une liste globale; de plus, ce n'est pas une approche économique pour chaque client de générer une liste globale.
En parlant de cela, tout le monde se posera certainement la question : Pourquoi ne pas générer une liste globale sur la chaîne ? La raison en est que bien que le moteur MUD ait mis en œuvre une base de données relationnelle préliminaire, MUD ne prend pas encore en charge des fonctions courantes telles que le total/la moyenne/la valeur maximale et minimale dans les bases de données relationnelles.
Par conséquent, sur mud2048.fun, nous construisons un nœud d'indexage MUD sur un serveur centralisé pour générer un classement mondial des joueurs de manière relativement rentable (voir la figure ci-dessous).
Cependant, permettre à chaque client d'avoir une copie en temps réel de la base de données on-chain comporte également des inconvénients. Par exemple, avant le démarrage de l'application, les données doivent être synchronisées depuis la chaîne pour établir la dernière copie de la base de données de la chaîne localement, ce qui augmentera le temps d'attente pour que les joueurs entrent dans le jeu. Les responsables de MUD sont également conscients de ce problème et ont mentionné des solutions d'optimisation connexes (synchronisation de données segmentée et mise en cache client) dans la version MUD V2. Cependant, à mon avis, ce sont des solutions temporaires et ne peuvent pas résoudre complètement le problème de la synchronisation de la chaîne dans le temps. Il y a de plus en plus de problèmes avec les données.
Ce problème semble insoluble pour le moment (il sera difficile d'atteindre des percées majeures dans l'efficacité de la transmission des données du réseau public et dans la récupération des données enchaînées à court terme). Nous espérons qu'avec l'itération de MUD, une solution plus appropriée pourra être trouvée. Si ce problème est bien résolu, cela ouvrira également la voie à la naissance d'applications complexes sur d'autres chaînes.
Maintenant, nous passons à la question trois: «Gestion commune de la complexité pour le développement d'applications».
Avant cela, la plupart des applications on-chain dans l'écosystème Ethereum étaient relativement simples (un indicateur objectif est que le nombre de contrats impliqués dans un seul produit DeFi/NFT/DAO est limité, et dans la plupart des cas, la possibilité de mise à jour après le déploiement est très faible). Mais pour le développement d'applications complexes, les mises à jour de la logique, le contrôle d'accès et la gestion des autorisations sont toutes des tâches répétitives qui doivent être effectuées à partir de zéro. Par conséquent, il existe un grand besoin d'un cadre/moteur universel qui peut aider les développeurs à faire face à ces problèmes de manière unifiée, afin que les développeurs puissent se consacrer au développement d'applications.
Une autre fonction principale fournie par le moteur MUD est d'aider les développeurs à gagner du temps dans la gestion des problèmes susmentionnés grâce au module World. Plus précisément, World fournit la logique et le contrôle d'accès par-dessus le Store. La figure suivante montre le site Web officiel de MUD pour World. Description, c'est une fonction fournie par des cadres généraux de développement d'applications, donc je ne rentrerai pas dans les détails ici.
Source de l'image :https://mud.dev/world/introduction
Pour le développement d'applications complexes, le contrôle d'accès (ou le routage) est un maillon important pour déterminer le volume global du projet. La qualité de la conception du contrôle d'accès détermine directement la complexité et la facilité de maintenance du développement d'applications. MUD attache évidemment une grande importance à cela. La figure ci-dessous montre l'optimisation de son module de contrôle d'accès dans les versions MUD v1 et v2.
Source de l'image :https://lattice.xyz/blog/mud-zero-to-v2
Ce qui précède sont quelques-unes de nos réflexions et expériences en ingénierie dans le processus de développement de mud2048.fun en utilisant le moteur MUD. En général, les moteurs MUD suivent également l'idée de la "base de données", ce qui est très cohérent avec la méthodologie du développement d'applications Internet. Par conséquent, les moteurs MUD ne seront pas étranges aux développeurs d'applications Internet. Ensuite, nous discuterons de nos réflexions sur l'industrie du jeu en full-chain.
Lorsque nous entrons dans le domaine des jeux full-chain, les trois questions que nous nous posons constamment sont :
Pourquoi un jeu full-chain est-il nécessaire ?
Quels types de jeux conviennent à l'ensemble de la chaîne ?
Quelle est la relation entre Fully on-Chain et Crypto native?
Ensuite, nous discutons un par un:
Pour la première question: Pourquoi avons-nous besoin de jeux de la chaîne complète?
Ce problème peut être encore décomposé en deux sous-problèmes:
1> Pourquoi l'industrie de la blockchain a-t-elle besoin de jeux en full-chain?
2> Pourquoi le marché de la cryptographie a-t-il besoin de jeux de chaînes complètes?
Du point de vue de l'industrie de la blockchain :
L'écosystème Ethereum s'est développé à un stade qui nécessite l'émergence d'applications complexes on-chain (dans le passé, les applications on-chain DeFi/DAO/NFT étaient relativement simples, comme le montre le nombre de contrats supportant une application). Un autre exemple à l'envers est la paire de support Ethereum Layer 2 pour l'ensemble de la chaîne de jeux. D'un point de vue logique interne, sans travail de porcelaine, les diamants ne peuvent être fabriqués. Layer 2 a besoin de tout le travail de porcelaine dans l'ensemble de la chaîne de jeux pour se réaliser.
Le domaine des NFT n'a pas connu de nouveau paradigme pour promouvoir son développement après la bulle PFP. Le point qui distingue les NFT des ERC-20 est la composabilité, et le domaine des jeux est l'endroit naturel pour la composabilité des NFT.
L'objectif ultime de l'ensemble du jeu de chaînesmonde autonome" est une autre élaboration de la forme ultime du monde numérique (la dernière élaboration était le "Métavers" qui est devenu un gâchis après avoir été trop commercialisé). Comme une imagination commune de l'humanité pour un avenir meilleur, le monde autonome a un grand attrait, et le monde entier Comme un moyen important d'atteindre cet objectif, les jeux de chaîne ont également de grands espoirs.
Site officiel d'Autonomous Worlds :https://aw.network/
En regardant le marché de la cryptographie :
En regardant l'histoire du développement d'Internet, les jeux sont toujours les premiers à adopter de nouveaux domaines technologiques. Les jeux sont des applications grand public et sont plus faciles à atteindre les utilisateurs finaux.
Le modèle de jeu/GameFi blockchain a été temporairement falsifié, et l'exploration des jeux blockchain est revenue à l'origine des jeux : le gameplay. Le gameplay basé sur la blockchain (qui hérite pleinement des avantages et des inconvénients de la blockchain) promet de fournir de nouvelles expériences et paradigmes non disponibles dans le passé, attirant ainsi les utilisateurs.
Nous en venons à la deuxième question: Quels types de jeux conviennent à l'ensemble de la chaîne?
À l'heure actuelle, l'industrie/le marché n'a pas encore atteint un consensus sur ce point. D'un point de vue inductif, les deux catégories mentionnées ci-dessus sont la stratégie en temps réel (RTS) et les règles méta (Meta Rules). Cependant, des problèmes tels que l'innovation insuffisante, des modèles économiques flous et l'incapacité à bien cibler les utilisateurs restent des problèmes inévitables dans ce domaine.
Personnellement, je pense que la classe des Règles Métas a relativement plus de potentiel, car elle a au moins plus de possibilités natives au niveau des règles et de l'interopérabilité. Cependant, il est encore très tôt et il est difficile d'évaluer sa certitude. L'image ci-dessous est l'interface du jeu PixeLAW en chaîne complète des méta-règles.
Source de l'image :https://twitter.com/0xPixeLAW/status/1704375844674912515
L'interopérabilité entre les jeux pourrait être une fausse proposition pendant longtemps. Bien que les jeux à chaîne complète héritent de l'interopérabilité de la blockchain, d'un point de vue commercial/produit/écologique, il est difficile d'imaginer que deux produits indépendants soient développés pour l'interopérabilité à court terme, et ce point a également été falsifié dans le cycle précédent du "Métavers". à un certain extent.
Maintenant, parlons de la troisième question : Quelle est la relation entre Fully on-Chain et Crypto native ?
Tout d'abord, survaloriser "sur l'ensemble de la chaîne" amènera les gens à tomber dans le cercle vicieux du fondamentalisme. L'infrastructure actuelle de la blockchain ne peut pas supporter une large gamme de jeux pour mettre toutes les données/logiques sur la chaîne. De plus, GubSheep, le fondateur de "Forêt Noire",formulation initialeest "Jeux Crypto-Natifs", afin de réfléchir à la manière dont les jeux peuvent promouvoir le développement de l'industrie de la blockchain dans la plus grande mesure du point de vue Crypto-Natif. L'image ci-dessous montre une partie du texte original de GubSheep.
source:https://gubsheep.substack.com/p/the-strongest-crypto-gaming-thesis
Crypto native est un concept aux connotations toujours changeantes et aux frontières relativement floues. Il existe différentes interprétations à différentes étapes du développement de la blockchain.
En 2017, CryptoKitties était considéré comme l'épitome du crypto-native;
En 2018, Uniswap était l'incarnation du crypto-native;
En 2020, CryptoArt est l'épitomé du crypto-native;
En 2021, The DAO est l'incarnation du crypto-native;
D'ici 2023, les jeux de chaîne complète, où les données et la logique sont sur la chaîne, sont considérés comme un modèle de crypto-native.
Mais fondamentalement, le cryptage est une idée, pas un dogme.
Entièrement sur la chaîne est une méthodologie qui met en œuvre Crypto natif, mais nous ne pouvons pas être limités par cela, tout comme centralisation/décentralisation, révolution/contre-révolution, sont tous des concepts relatifs, et il est facile de tomber dans une impasse si on se laisse trop entraîner par le sens littéral.
Ainsi, qu'il s'agisse de jeux full-chain ou de jeux natifs de la cryptographie, quelles nouvelles possibilités apportent-ils ?
Je pense qu'après la transparence des règles/logique du jeu à travers la chaîne, toutes les stratégies de jeu peuvent vraiment concourir équitablement. Bien sûr, nous devons trouver un scénario qui puisse refléter cet avantage. Par exemple, parce que la logique du jeu est sur la chaîne, vous pouvez directement écrire du code de contrat pour jouer au jeu, couplé à des stratégies de jeu générées par l'IA, cela peut nous permettre d'avoir un agent joueur virtuel au-dessus de la moyenne/sans sommeil (cette idée est inspirée par Shoshin inspiré).
De plus, un moteur de jeu blockchain complet comme MUD (en fait, il est plus approprié de l'appeler un cadre de développement d'application blockchain complet), en tant que combinaison de base de données + cadre de développement d'application, est d'une importance évidente dans l'écosystème des EVM. Cependant, les cadres de développement d'application/base de données sont des biens publics et n'ont aucun modèle économique. Heureusement, il existe un mécanisme de jeton natif de la blockchain, ainsi queEIP-6969Un tel régime de redevances pour les développeurs peut aider les développeurs de ces articles équitables à capturer de la valeur de manière externe. C'est à ce moment que la blockchain est supérieure au Web2.
“Consensus” n'est pas seulement 51% de la puissance de calcul, mais aussi les valeurs partagées qui existent parmi les sociétés/groupes. En ce sens, la cryptographie est une sorte de valeur.
Site officiel de MUD 2048 :https://www.mud2048.fun/
Projet de code MUD 2048 :https://github.com/themetacat/MUD2048
Site officiel du moteur MUD : https://mud.dev/
Site officiel de la Bible des mondes autonomes :https://aw.network/
GubSheep théorie du jeu native chiffrée :https://gubsheep.substack.com/p/the-strongest-crypto-gaming-thesis
mud2048.fun est notre exploration pour acquérir un sens microscopique du développement de jeux en chaîne complète. Il vise à faire l’expérience de la version complète du jeu original 2048 (play2048.co) en le reproduisant pour vivre l’expérience de développement de jeu à chaîne complète. Température de l’eau, obtenez une sensation corporelle de première ligne.
Cet article est un résumé des expériences et des réflexions acquises au cours de ce processus de développement, et a pour but d'inspirer les lecteurs.
Il s'agit probablement de la tentative la plus simple de développer des jeux entièrement sur chaîne. Avant cela, nous avons essayé de mettre en œuvre une version entièrement sur chaîne du jeu du dinosaure hors ligne de Chrome (jeu du dinosaure de Chrome), mais nous avons ensuite constaté que ce n'était pas natif de la blockchain. Avec le soutien du mécanisme Tick du jeu, il est difficile de reproduire une version entièrement sur chaîne qui se rapproche de l'expérience de jeu originale.
Version en ligne du jeu Chrome Dino sur :https://dinorunner.com/
Cela peut impliquer une malentendu courant: il est plus facile de mettre en œuvre une version complète en chaîne de jeux simples. En fait, ce n'est pas le cas, car le temps de confirmation des transactions de la blockchain (même Layer 2 grand public) n'a pas encore atteint le niveau du temps de réponse de l'interface du serveur centralisé; de plus, après que la logique du jeu est téléchargée sur la chaîne, cela apporte une complexité d'ingénierie qui n'est pas apparue dans le scénario centralisé, ce qui conduit au fait que tous les jeux occasionnels simples ne peuvent pas facilement implémenter des versions complètes en chaîne. Cela explique également dans une certaine mesure les divisions actuelles de l'écologie des jeux en chaîne complète:
Principalement des jeux de stratégie en temps réel (RTS), tels que : Loot Survivor, Primodium, Sky Strife, Cellula, etc., complétés par des Meta Rules (jeux de méta-règles/jeux sandbox), tels que : PixeLAW, Briq, OpCraft, etc. Les deux types de jeux évitent les inconvénients causés par le long temps de confirmation des transactions blockchain en termes de forme de jeu.
L'image montre l'interface de démarrage de Sky Strife, URL :https://playtest.skystrife.xyz/
MUD est le premier moteur de jeu complet de la chaîne dans l'écosystème EVM (et le premier cadre de développement d'application dans l'écosystème EVM). Le portefeuille de session intégré du moteur et le robinet de chaîne de test qui peut être appelé via une API peuvent abaisser la barrière à l'entrée pour les joueurs.
Une autre raison est que MUD est open source, dispose de nombreux documents et ressources communautaires, et est facile à prendre en main. Que le moteur de jeu soit open source implique des problèmes de modèle économique qui seront discutés spécifiquement ci-dessous.
Introduction aux MUDs. source:https://github.com/latticexyz/mud
Maintenant, passons au vif du sujet. Nous parlerons de certaines de nos expériences dans l'utilisation du moteur MUD. Il existe des niveaux industriels macro-perceptifs et des niveaux pratiques d'ingénierie micro-rationnelle. Ils s'adressent à différents groupes de public cible. Vous pouvez les utiliser vous-même (sauter directement) la partie qui n'est pas intéressante).
Qu'est-ce qu'un moteur MUD en général?
Moteur MUD = base de données relationnelle sur chaîne + cadre de développement d'application sur chaîne.
Fonctionnalités de MUD. source:https://github.com/latticexyz/mud
Il s'agit d'une perspective d'observation du domaine de la blockchain depuis le domaine de l'Internet (un peu similaire à l'observation de la puissance maritime depuis la perspective de la puissance terrestre). Ce n'est certainement pas la perspective la plus appropriée, mais compte tenu du fait que la blockchain n'a pas encore atteint une adoption de masse, les produits blockchain doivent être lancés. cercle, nous devons encore attirer plus d'utilisateurs dans le domaine de l'Internet, nous pourrions donc aussi bien examiner l'analyse depuis la perspective de l'Internet en premier.
Qu'il s'agisse d'une "base de données relationnelle on-chain" ou d'un "cadre de développement d'application on-chain", ils sont cruciaux pour le développement d'Ethereum, l'"ordinateur mondial".
Nous avons appris du développement d’applications Internet : la facilité d’utilisation du logiciel de base de données et le caractère raisonnable de la conception de la structure de la table de base de données déterminent en grande partie la complexité de l’ensemble du développement du projet. en d’autres termes,Le développement d’applications Internet est effectué avec la base de données comme noyau, appelons-le « basé sur une base de données"。
Voyons maintenant si la conception du moteur MUD suit également l'idée "basée sur la base de données". Du point de vue de la conception du moteur MUD, il résout trois problèmes principaux :
Comment rendre les données sur la chaîne faciles à lire, à écrire et à stocker de manière économique,
Synchronisation automatique des données entre la chaîne/on-chain et les clients,
Gestion générale de la complexité du développement d'applications.
Regardons d'abord la première question : « Comment les données sur la chaîne peuvent être facilement lues, écrites et stockées de manière économique ».
Ce problème peut être décomposé en deux éléments:
1> Facile à lire et à écrire
2> Stockage économique
Après des décennies de pratique dans le domaine de l'Internet, la “facilité de lecture et d'écriture”, la “base de données relationnelle” est considérée comme la solution optimale. Bien que la blockchain soit un modèle de stockage en chaîne très différent du modèle de stockage de base de données traditionnel (voir la figure ci-dessous), ce modèle n'est pas convivial même pour des opérations simples dans un seul scénario (telles que la somme/la moyenne du montant de transaction d'une certaine collection de NFT) / trouver les valeurs maximales et minimales, etc.), sans parler de scénarios plus complexes.
Source de l'image :https://mempool.space/mining
Par conséquent, la solution pour MUD consiste à implémenter une "base de données relationnelle" sur un stockage enchaîné (correspondant au Tableau sous Store dans le moteur MUD). Pour les développeurs, l'expérience d'utilisation est la même que celle des bases de données relationnelles courantes (telles que MySQL, SQL Server, PostgreSQL, SQLite, etc.). C'est en effet plus convivial pour la majorité des développeurs Internet. La figure ci-dessous montre la structure de table correspondante lorsque nous avons développé la version 2048 basée sur le moteur MUD.
Source :https://github.com/themetacat/MUD2048/blob/main/packages/contracts/mud.config.ts
Nous pouvons analyser le point de “stockage économique” du point de vue d'Ethereum, l'ordinateur mondial.
Les ordinateurs modernes respectent tous la "structure de Von Neumann", qui est divisée en cinq parties: entrée, sortie, opération, contrôle et stockage (voir la figure ci-dessous).
Les images proviennent d'Internet
Du point de vue du moteur de jeu à chaîne complète lui-même, il ne peut optimiser que le “stockage”, car “l'entrée” et la “sortie” se trouvent sur sa couche supérieure et ne peuvent pas être contrôlées; “opération” et “contrôle” sont ce que fait la blockchain Ethereum. En tant que “logiciel d'application de base” fonctionnant sur cet “ordinateur mondial”, le moteur de jeu à chaîne complète ne peut optimiser que l'entrée “stockage” à travers celui-ci.
La solution spécifique pour l'optimisation du stockage consiste à mettre en œuvre un "bitpacking" très efficace et compact pour les données d'entrée. Comme le stockage des données sur la blockchain est facturé en fonction du volume de données, un volume de données plus petit signifie des coûts de stockage plus faibles. Des coûts de stockage entièrement optimisés sont la condition préalable à l'émergence d'applications complexes à grande échelle sur la chaîne. La figure ci-dessous montre un cas spécifique d'optimisation du stockage par MUD. Pour plus de détails, voir“Moteur de jeu complet en chaîne MUD de 0 à V2”.
Source de l'image :https://lattice.xyz/blog/mud-zero-to-v2
Pour résumer, pour la question un, MUD résout principalement le problème du point de vue "basé sur la base de données".
Maintenant, nous passons à la deuxième question : "Synchronisation automatique des données entre la chaîne/on-chain et les clients".
Il s'agit également d'une fonction principale fournie par le moteur MUD, qui aide les développeurs à se décharger du lourd travail de gestion de la synchronisation d'état complexe. Le plan de mise en œuvre spécifique est : la synchronisation en temps réel de la base de données on-chain sur le client. En d'autres termes, chaque client dispose d'une copie locale intégrée qui est synchronisée en temps réel avec la base de données on-chain.
Cela est principalement réalisé grâce à l'Indexer dans le moteur MUD. L'image ci-dessous est l'introduction officielle de MUD à l'Indexer, principalement pour les scénarios où vous souhaitez le construire et l'exécuter sur le serveur du projet (bien sûr, cette description s'applique également à l'Indexer qui s'exécute automatiquement dans le client de jeu en chaîne complète).
Source de l'image :https://mud.dev/services/indexer
Pour les développeurs, ils disposent initialement d'une base de données on-chain avec une expérience utilisateur proche de celle d'une base de données locale. Cependant, en ce qui concerne la mise en œuvre actuelle de MUD, il est difficile pour le client de mettre en œuvre des fonctions telles que la génération d'une liste globale; de plus, ce n'est pas une approche économique pour chaque client de générer une liste globale.
En parlant de cela, tout le monde se posera certainement la question : Pourquoi ne pas générer une liste globale sur la chaîne ? La raison en est que bien que le moteur MUD ait mis en œuvre une base de données relationnelle préliminaire, MUD ne prend pas encore en charge des fonctions courantes telles que le total/la moyenne/la valeur maximale et minimale dans les bases de données relationnelles.
Par conséquent, sur mud2048.fun, nous construisons un nœud d'indexage MUD sur un serveur centralisé pour générer un classement mondial des joueurs de manière relativement rentable (voir la figure ci-dessous).
Cependant, permettre à chaque client d'avoir une copie en temps réel de la base de données on-chain comporte également des inconvénients. Par exemple, avant le démarrage de l'application, les données doivent être synchronisées depuis la chaîne pour établir la dernière copie de la base de données de la chaîne localement, ce qui augmentera le temps d'attente pour que les joueurs entrent dans le jeu. Les responsables de MUD sont également conscients de ce problème et ont mentionné des solutions d'optimisation connexes (synchronisation de données segmentée et mise en cache client) dans la version MUD V2. Cependant, à mon avis, ce sont des solutions temporaires et ne peuvent pas résoudre complètement le problème de la synchronisation de la chaîne dans le temps. Il y a de plus en plus de problèmes avec les données.
Ce problème semble insoluble pour le moment (il sera difficile d'atteindre des percées majeures dans l'efficacité de la transmission des données du réseau public et dans la récupération des données enchaînées à court terme). Nous espérons qu'avec l'itération de MUD, une solution plus appropriée pourra être trouvée. Si ce problème est bien résolu, cela ouvrira également la voie à la naissance d'applications complexes sur d'autres chaînes.
Maintenant, nous passons à la question trois: «Gestion commune de la complexité pour le développement d'applications».
Avant cela, la plupart des applications on-chain dans l'écosystème Ethereum étaient relativement simples (un indicateur objectif est que le nombre de contrats impliqués dans un seul produit DeFi/NFT/DAO est limité, et dans la plupart des cas, la possibilité de mise à jour après le déploiement est très faible). Mais pour le développement d'applications complexes, les mises à jour de la logique, le contrôle d'accès et la gestion des autorisations sont toutes des tâches répétitives qui doivent être effectuées à partir de zéro. Par conséquent, il existe un grand besoin d'un cadre/moteur universel qui peut aider les développeurs à faire face à ces problèmes de manière unifiée, afin que les développeurs puissent se consacrer au développement d'applications.
Une autre fonction principale fournie par le moteur MUD est d'aider les développeurs à gagner du temps dans la gestion des problèmes susmentionnés grâce au module World. Plus précisément, World fournit la logique et le contrôle d'accès par-dessus le Store. La figure suivante montre le site Web officiel de MUD pour World. Description, c'est une fonction fournie par des cadres généraux de développement d'applications, donc je ne rentrerai pas dans les détails ici.
Source de l'image :https://mud.dev/world/introduction
Pour le développement d'applications complexes, le contrôle d'accès (ou le routage) est un maillon important pour déterminer le volume global du projet. La qualité de la conception du contrôle d'accès détermine directement la complexité et la facilité de maintenance du développement d'applications. MUD attache évidemment une grande importance à cela. La figure ci-dessous montre l'optimisation de son module de contrôle d'accès dans les versions MUD v1 et v2.
Source de l'image :https://lattice.xyz/blog/mud-zero-to-v2
Ce qui précède sont quelques-unes de nos réflexions et expériences en ingénierie dans le processus de développement de mud2048.fun en utilisant le moteur MUD. En général, les moteurs MUD suivent également l'idée de la "base de données", ce qui est très cohérent avec la méthodologie du développement d'applications Internet. Par conséquent, les moteurs MUD ne seront pas étranges aux développeurs d'applications Internet. Ensuite, nous discuterons de nos réflexions sur l'industrie du jeu en full-chain.
Lorsque nous entrons dans le domaine des jeux full-chain, les trois questions que nous nous posons constamment sont :
Pourquoi un jeu full-chain est-il nécessaire ?
Quels types de jeux conviennent à l'ensemble de la chaîne ?
Quelle est la relation entre Fully on-Chain et Crypto native?
Ensuite, nous discutons un par un:
Pour la première question: Pourquoi avons-nous besoin de jeux de la chaîne complète?
Ce problème peut être encore décomposé en deux sous-problèmes:
1> Pourquoi l'industrie de la blockchain a-t-elle besoin de jeux en full-chain?
2> Pourquoi le marché de la cryptographie a-t-il besoin de jeux de chaînes complètes?
Du point de vue de l'industrie de la blockchain :
L'écosystème Ethereum s'est développé à un stade qui nécessite l'émergence d'applications complexes on-chain (dans le passé, les applications on-chain DeFi/DAO/NFT étaient relativement simples, comme le montre le nombre de contrats supportant une application). Un autre exemple à l'envers est la paire de support Ethereum Layer 2 pour l'ensemble de la chaîne de jeux. D'un point de vue logique interne, sans travail de porcelaine, les diamants ne peuvent être fabriqués. Layer 2 a besoin de tout le travail de porcelaine dans l'ensemble de la chaîne de jeux pour se réaliser.
Le domaine des NFT n'a pas connu de nouveau paradigme pour promouvoir son développement après la bulle PFP. Le point qui distingue les NFT des ERC-20 est la composabilité, et le domaine des jeux est l'endroit naturel pour la composabilité des NFT.
L'objectif ultime de l'ensemble du jeu de chaînesmonde autonome" est une autre élaboration de la forme ultime du monde numérique (la dernière élaboration était le "Métavers" qui est devenu un gâchis après avoir été trop commercialisé). Comme une imagination commune de l'humanité pour un avenir meilleur, le monde autonome a un grand attrait, et le monde entier Comme un moyen important d'atteindre cet objectif, les jeux de chaîne ont également de grands espoirs.
Site officiel d'Autonomous Worlds :https://aw.network/
En regardant le marché de la cryptographie :
En regardant l'histoire du développement d'Internet, les jeux sont toujours les premiers à adopter de nouveaux domaines technologiques. Les jeux sont des applications grand public et sont plus faciles à atteindre les utilisateurs finaux.
Le modèle de jeu/GameFi blockchain a été temporairement falsifié, et l'exploration des jeux blockchain est revenue à l'origine des jeux : le gameplay. Le gameplay basé sur la blockchain (qui hérite pleinement des avantages et des inconvénients de la blockchain) promet de fournir de nouvelles expériences et paradigmes non disponibles dans le passé, attirant ainsi les utilisateurs.
Nous en venons à la deuxième question: Quels types de jeux conviennent à l'ensemble de la chaîne?
À l'heure actuelle, l'industrie/le marché n'a pas encore atteint un consensus sur ce point. D'un point de vue inductif, les deux catégories mentionnées ci-dessus sont la stratégie en temps réel (RTS) et les règles méta (Meta Rules). Cependant, des problèmes tels que l'innovation insuffisante, des modèles économiques flous et l'incapacité à bien cibler les utilisateurs restent des problèmes inévitables dans ce domaine.
Personnellement, je pense que la classe des Règles Métas a relativement plus de potentiel, car elle a au moins plus de possibilités natives au niveau des règles et de l'interopérabilité. Cependant, il est encore très tôt et il est difficile d'évaluer sa certitude. L'image ci-dessous est l'interface du jeu PixeLAW en chaîne complète des méta-règles.
Source de l'image :https://twitter.com/0xPixeLAW/status/1704375844674912515
L'interopérabilité entre les jeux pourrait être une fausse proposition pendant longtemps. Bien que les jeux à chaîne complète héritent de l'interopérabilité de la blockchain, d'un point de vue commercial/produit/écologique, il est difficile d'imaginer que deux produits indépendants soient développés pour l'interopérabilité à court terme, et ce point a également été falsifié dans le cycle précédent du "Métavers". à un certain extent.
Maintenant, parlons de la troisième question : Quelle est la relation entre Fully on-Chain et Crypto native ?
Tout d'abord, survaloriser "sur l'ensemble de la chaîne" amènera les gens à tomber dans le cercle vicieux du fondamentalisme. L'infrastructure actuelle de la blockchain ne peut pas supporter une large gamme de jeux pour mettre toutes les données/logiques sur la chaîne. De plus, GubSheep, le fondateur de "Forêt Noire",formulation initialeest "Jeux Crypto-Natifs", afin de réfléchir à la manière dont les jeux peuvent promouvoir le développement de l'industrie de la blockchain dans la plus grande mesure du point de vue Crypto-Natif. L'image ci-dessous montre une partie du texte original de GubSheep.
source:https://gubsheep.substack.com/p/the-strongest-crypto-gaming-thesis
Crypto native est un concept aux connotations toujours changeantes et aux frontières relativement floues. Il existe différentes interprétations à différentes étapes du développement de la blockchain.
En 2017, CryptoKitties était considéré comme l'épitome du crypto-native;
En 2018, Uniswap était l'incarnation du crypto-native;
En 2020, CryptoArt est l'épitomé du crypto-native;
En 2021, The DAO est l'incarnation du crypto-native;
D'ici 2023, les jeux de chaîne complète, où les données et la logique sont sur la chaîne, sont considérés comme un modèle de crypto-native.
Mais fondamentalement, le cryptage est une idée, pas un dogme.
Entièrement sur la chaîne est une méthodologie qui met en œuvre Crypto natif, mais nous ne pouvons pas être limités par cela, tout comme centralisation/décentralisation, révolution/contre-révolution, sont tous des concepts relatifs, et il est facile de tomber dans une impasse si on se laisse trop entraîner par le sens littéral.
Ainsi, qu'il s'agisse de jeux full-chain ou de jeux natifs de la cryptographie, quelles nouvelles possibilités apportent-ils ?
Je pense qu'après la transparence des règles/logique du jeu à travers la chaîne, toutes les stratégies de jeu peuvent vraiment concourir équitablement. Bien sûr, nous devons trouver un scénario qui puisse refléter cet avantage. Par exemple, parce que la logique du jeu est sur la chaîne, vous pouvez directement écrire du code de contrat pour jouer au jeu, couplé à des stratégies de jeu générées par l'IA, cela peut nous permettre d'avoir un agent joueur virtuel au-dessus de la moyenne/sans sommeil (cette idée est inspirée par Shoshin inspiré).
De plus, un moteur de jeu blockchain complet comme MUD (en fait, il est plus approprié de l'appeler un cadre de développement d'application blockchain complet), en tant que combinaison de base de données + cadre de développement d'application, est d'une importance évidente dans l'écosystème des EVM. Cependant, les cadres de développement d'application/base de données sont des biens publics et n'ont aucun modèle économique. Heureusement, il existe un mécanisme de jeton natif de la blockchain, ainsi queEIP-6969Un tel régime de redevances pour les développeurs peut aider les développeurs de ces articles équitables à capturer de la valeur de manière externe. C'est à ce moment que la blockchain est supérieure au Web2.
“Consensus” n'est pas seulement 51% de la puissance de calcul, mais aussi les valeurs partagées qui existent parmi les sociétés/groupes. En ce sens, la cryptographie est une sorte de valeur.
Site officiel de MUD 2048 :https://www.mud2048.fun/
Projet de code MUD 2048 :https://github.com/themetacat/MUD2048
Site officiel du moteur MUD : https://mud.dev/
Site officiel de la Bible des mondes autonomes :https://aw.network/
GubSheep théorie du jeu native chiffrée :https://gubsheep.substack.com/p/the-strongest-crypto-gaming-thesis