mud2048.fun es nuestra exploración para obtener un sentido microscópico del desarrollo completo del juego en cadena. Su objetivo es experimentar la versión completa en cadena del juego original 2048 (play2048.co) replicándolo para experimentar la experiencia completa de desarrollo del juego en cadena. Temperatura del agua, obtener una sensación de cuerpo de primera línea.
Este artículo es un resumen de las experiencias y pensamientos adquiridos durante este proceso de desarrollo, y tiene como objetivo inspirar a los lectores.
Esta es probablemente el intento más simple de desarrollar Juegos Totalmente En Cadena. Antes de esto, intentamos implementar una versión completa en cadena del Juego del Dinosaurio Offline de Chrome (Juego del Dino de Chrome), pero más tarde descubrimos que no era nativo de la cadena de bloques. Con el apoyo del mecanismo Tick del juego, es difícil reproducir una versión completa en cadena que se acerque a la experiencia original del juego.
Versión en línea del Juego del Dino de Chrome en:https://dinorunner.com/
Esto puede implicar un malentendido común: es más fácil implementar una versión de cadena completa de juegos simples. De hecho, este no es el caso, porque el tiempo de confirmación de transacción de la cadena de bloques (incluso Layer 2 principal) aún no ha alcanzado el nivel del tiempo de respuesta de la interfaz del servidor centralizado; además, después de que la lógica del juego se carga en la cadena, trae complejidad ingenieril que no ha aparecido en el escenario centralizado, lo que lleva al hecho de que no todos los juegos casuales simples pueden implementar fácilmente versiones de cadena completa. Esto también explica en cierta medida las divisiones actuales de la ecología de juegos de cadena completa:
Principalmente RTS (juegos de estrategia en tiempo real), como: Loot Survivor, Primodium, Sky Strife, Cellula, etc., complementados por Meta Rules (juegos de meta-reglas/juegos de simulación), como: PixeLAW, Briq, OpCraft, etc. Ambos tipos de juegos evitan las desventajas causadas por el largo tiempo de confirmación de transacciones de blockchain en términos de forma de juego.
La imagen muestra la interfaz de inicio de Sky Strife, URL:https://playtest.skystrife.xyz/
MUD es el primer motor de juego de cadena completa en el ecosistema EVM (y el primer marco de desarrollo de aplicaciones en el ecosistema EVM). La billetera de sesión incorporada en el motor y el grifo de la cadena de prueba que se puede llamar a través de la API pueden reducir la barrera de entrada para los jugadores.
Otra razón es que MUD es de código abierto, tiene muchos documentos y materiales comunitarios, y es fácil de empezar. Si el motor de juego es de código abierto implica problemas del modelo de negocio que se discutirán específicamente a continuación.
Introducción a los MUDs. fuente:https://github.com/latticexyz/mud
Ahora vayamos al punto. Hablaremos sobre algunas de nuestras experiencias en el uso del motor MUD. Hay niveles de la industria macro-perceptual y niveles prácticos de ingeniería micro-racional. Están dirigidos a diferentes grupos de audiencia. Puedes usarlos tú mismo (saltar directamente) la parte que no es interesante.
¿Qué es un motor MUD en general?
Motor de MUD = base de datos relacional en cadena + marco de desarrollo de aplicaciones en cadena.
Características de MUD. source:https://github.com/latticexyz/mud
Esta es una perspectiva de mirar el campo de la cadena de bloques desde el campo de Internet (algo similar a mirar el poder marítimo desde la perspectiva del poder terrestre). Definitivamente no es la perspectiva más apropiada, pero considerando que la cadena de bloques aún no ha logrado la Adopción Masiva, los productos de cadena de bloques deben ser lanzados. círculo, aún necesitamos atraer más usuarios en el campo de Internet, por lo que es mejor analizar desde la perspectiva de Internet primero.
Ya sea un “base de datos relacional en cadena” o un “marco de desarrollo de aplicaciones en cadena”, son fundamentales para el desarrollo de Ethereum, la “computadora mundial”。
Aprendimos del desarrollo de aplicaciones de Internet: la facilidad de uso del software de base de datos/la razonabilidad del diseño de la estructura de la tabla de la base de datos determina en gran medida la complejidad del desarrollo del proyecto completo. En otras palabras, el desarrollo de aplicaciones de Internet se lleva a cabo con la base de datos como núcleo, vamos a llamarlo "basado en la base de datos".
Así que veamos si el diseño del motor de MUD también sigue la idea de "basada en la base de datos". Desde la perspectiva del diseño del motor de MUD, resuelve tres problemas fundamentales:
Cómo hacer que los datos en la cadena sean fáciles de leer, escribir y almacenar de manera económica,
Sincronización automática de datos entre la cadena/clientes,
Gestión general de la complejidad en el desarrollo de aplicaciones.
Veamos la primera pregunta primero: “¿Cómo se puede leer, escribir y almacenar datos en la cadena de forma económica”.
Este problema se puede dividir en dos elementos:
1> Fácil de leer y escribir
2> Almacenamiento económico
Después de décadas de práctica en el campo de Internet, la “facilidad de lectura y escritura”, la “base de datos relacional” se considera la solución óptima. Aunque la cadena de bloques es un modelo de almacenamiento en cadena muy diferente del modelo de almacenamiento de base de datos tradicional (ver la figura a continuación), este modelo no es amigable ni siquiera para operaciones simples en un solo escenario (como sumar/promediar el monto de transacción de una cierta colección de NFT) / encontrar los valores máximo y mínimo, etc.), por no mencionar escenarios complejos adicionales.
Fuente de la imagen:https://mempool.space/mining
Por lo tanto, la solución para MUD es implementar una “base de datos relacional” encima del almacenamiento encadenado (correspondiente a la Tabla dentro de Store en el motor MUD). Para los desarrolladores, la experiencia de uso es la misma que operar bases de datos relacionales comunes (como MySQL, SQL Server, PostgreSQL, SQLite, etc.). Esto es realmente más amigable para la mayoría de los desarrolladores de Internet. La figura a continuación muestra la estructura de tabla correspondiente cuando desarrollamos la versión completa de cadena 2048 basada en el motor MUD.
Fuente:https://github.com/themetacat/MUD2048/blob/main/packages/contracts/mud.config.ts
Podemos analizar el punto de “almacenamiento económico” desde la perspectiva de Ethereum, la computadora mundial.
Todas las computadoras modernas se ajustan a la "estructura de Von Neumann", que se divide en cinco partes: entrada, salida, operación, control y almacenamiento (consulte la figura a continuación).
Las imágenes provienen de Internet
Desde la perspectiva del motor de juego de cadena completa en sí, solo puede optimizar el "almacenamiento", porque "entrada" y "salida" están en su capa superior y no pueden ser controladas; "operación" y "control" son lo que hace la cadena de bloques de Ethereum. Como un "software de aplicación básica" que se ejecuta en esta "computadora mundial", el motor de juego de cadena completa solo puede optimizar la entrada de "almacenamiento" a través de él.
La solución específica para la optimización de almacenamiento es implementar "bitpacking" muy eficiente y compacto para los datos de entrada. Dado que el almacenamiento de datos en la cadena de bloques se cobra en función del volumen de datos, un volumen de datos más pequeño significa costos de almacenamiento más bajos. Los costos de almacenamiento totalmente optimizados son el requisito previo para la aparición de aplicaciones en cadena a gran escala y complejas. La figura a continuación muestra un caso específico de optimización de almacenamiento por MUD. Para más detalles, ver"Motor de juego de cadena completa MUD de 0 a V2"。
Fuente de la imagen:https://lattice.xyz/blog/mud-zero-to-v2
En resumen, para la pregunta uno, MUD principalmente resuelve el problema desde la perspectiva de "basada en base de datos".
Ahora llegamos a la segunda pregunta: “Sincronización automática de datos entre la cadena/clientes”。
Esta también es una función principal proporcionada por el motor MUD, que ayuda a los desarrolladores a ahorrarse el trabajo pesado de gestionar la sincronización de estados complejos. El plan de implementación específico es: sincronización en tiempo real de la base de datos en cadena en el cliente. En otras palabras, cada cliente tiene una copia local incorporada que se sincroniza con la base de datos en cadena en tiempo real.
Esto se logra principalmente a través del Indexer en el motor MUD. La imagen a continuación es la introducción oficial de MUD al Indexer, que es principalmente para escenarios en los que desea construirlo y ejecutarlo en el servidor del proyecto (por supuesto, esta descripción también se aplica al Indexer que se ejecuta automáticamente en el cliente de juego de cadena completa).
Fuente de la imagen:https://mud.dev/services/indexer
Para los desarrolladores, inicialmente tienen una base de datos en cadena con una experiencia de usuario cercana a la de una base de datos local. Sin embargo, en lo que respecta a la implementación actual de MUD, es difícil para el cliente implementar funciones como generar una lista global; además, no es un enfoque económico que cada cliente genere una lista global.
Por cierto, todos definitivamente preguntarán: ¿Por qué no generar una lista global en la cadena? La razón es que aunque el motor MUD ha implementado una base de datos relacional preliminar, MUD aún no ha admitido funciones comunes como sumar/promediar/valores máximos y mínimos en bases de datos relacionales.
Por lo tanto, en mud2048.fun, construimos un nodo de Indexador MUD en un servidor centralizado para generar un ranking global de jugadores de manera relativamente rentable (ver la figura a continuación).
Sin embargo, permitir que cada cliente tenga una copia en tiempo real de la base de datos en cadena también tiene desventajas. Por ejemplo, antes de que se inicie la aplicación, es necesario sincronizar los datos desde la cadena para establecer la copia más reciente de la base de datos en cadena localmente, lo que aumentará el tiempo de espera para que los jugadores ingresen al juego. Los funcionarios de MUD también son conscientes de este problema y mencionaron soluciones de optimización relacionadas (sincronización de datos segmentados y almacenamiento en caché del cliente) en la versión MUD V2. Sin embargo, en mi opinión, son soluciones temporales y no pueden resolver completamente el problema de la sincronización de la cadena a lo largo del tiempo. Hay cada vez más problemas con los datos.
Este problema parece insoluble por el momento (será difícil lograr avances importantes en la eficiencia de la transmisión de datos de redes públicas y la recuperación de datos encadenados a corto plazo). Esperamos que con la iteración de MUD, se pueda encontrar una solución más adecuada. Si este problema se resuelve bien, también allanará el camino para el nacimiento de aplicaciones complejas en otras cadenas.
Ahora llegamos a la pregunta tres: “Gestión común de la complejidad para el desarrollo de aplicaciones”.
Antes de esto, la mayoría de las aplicaciones on-chain en el ecosistema de Ethereum eran relativamente simples (un indicador objetivo es que el número de contratos involucrados en un solo producto DeFi/NFT/DAO es limitado, y en la mayoría de los casos la posibilidad de actualización después de la implementación es muy pequeña). Pero para el desarrollo de aplicaciones complejas, las actualizaciones lógicas, el control de acceso y la gestión de permisos son todas tareas repetitivas que deben hacerse desde cero. Por lo tanto, hay una gran necesidad de un marco/motor universal que pueda ayudar a los desarrolladores a lidiar con estos problemas de manera unificada, para que los desarrolladores puedan dedicarse al desarrollo de aplicaciones.
Otra función principal proporcionada por el motor MUD es ayudar a los desarrolladores a ahorrar tiempo en tratar con los problemas anteriores a través del módulo World. Específicamente, World proporciona lógica y control de acceso sobre la Tienda. La siguiente figura muestra el sitio web oficial de MUD para World. Descripción, esta es una función proporcionada por los marcos de desarrollo de aplicaciones generales, por lo que no entraré en detalles aquí.
Fuente de la imagen:https://mud.dev/world/introduction
Para el desarrollo de aplicaciones complejas, el control de acceso (o enrutamiento) es un eslabón importante para determinar el volumen total del proyecto. La calidad del diseño del control de acceso determina directamente la complejidad y facilidad de mantenimiento del desarrollo de aplicaciones. MUD obviamente da gran importancia a esto. La figura a continuación muestra la optimización de su módulo de control de acceso en las versiones MUD v1 y v2.
Fuente de la imagen:https://lattice.xyz/blog/mud-zero-to-v2
Lo anterior son algunos de nuestros pensamientos y experiencias de ingeniería en el proceso de desarrollo de mud2048.fun utilizando el motor MUD. En general, los motores MUD también siguen la idea de "basada en bases de datos", que es altamente consistente con la metodología de desarrollo de aplicaciones de Internet. Por lo tanto, los motores MUD no resultarán extraños para los desarrolladores de aplicaciones de Internet. A continuación, discutiremos nuestros pensamientos sobre la industria del juego de cadena completa.
Cuando entramos en el campo de los juegos de cadena completa, las tres preguntas que constantemente nos hacemos son:
¿Por qué se necesita un juego de cadena completa?
¿Qué tipo de juegos son adecuados para toda la cadena?
¿Cuál es la relación entre Fully on-Chain y Crypto native?
A continuación discutimos uno por uno:
Para la primera pregunta: ¿Por qué necesitamos juegos de cadena completa?
Este problema se puede descomponer aún más en dos subproblemas:
1> ¿Por qué la industria blockchain necesita juegos de cadena completa?
2> ¿Por qué el mercado de criptomonedas necesita juegos de cadena completa?
Desde la perspectiva de la industria de la cadena de bloques:
El ecosistema de Ethereum se ha desarrollado hasta un punto que requiere la aparición de aplicaciones complejas on-chain (en el pasado, las aplicaciones on-chain DeFi/DAO/NFT eran relativamente simples, como se puede ver en el número de contratos que soportan una aplicación). Otro ejemplo contrario es el soporte de la capa 2 de Ethereum para el conjunto de juegos completo. Desde un punto de vista lógico interno, sin trabajo de porcelana, no se pueden hacer diamantes. La capa 2 necesita todo el trabajo de porcelana en el conjunto completo de juegos para lograr su objetivo.
El campo de NFT no ha tenido un nuevo paradigma para promover su desarrollo después de la burbuja PFP. El punto que distingue a NFT de ERC-20 es la composabilidad, y la escena del juego es el lugar natural para la composabilidad de NFT.
El objetivo final de todo el juego de la cadenamundo autónomo"Es otra elaboración de la forma última del mundo digital (la última elaboración fue el "Metaverso" que se convirtió en un desastre después de ser sobrecomercializado). Como una imaginación común de la humanidad para un futuro mejor, el mundo autónomo tiene un gran atractivo, y el mundo entero como una forma importante de lograr este objetivo, los juegos de cadena también tienen grandes esperanzas.
Sitio web oficial de Autonomous Worlds:https://aw.network/
Mirando el mercado de criptomonedas:
Mirando hacia atrás en la historia del desarrollo de Internet, los juegos siempre son los primeros en adoptar nuevos campos tecnológicos. Los juegos son aplicaciones de consumo y son más fáciles de llegar a los usuarios finales.
El modelo de juego GameFi/blockchain ha sido falsificado temporalmente, y la exploración de los juegos blockchain ha vuelto al origen de los juegos: la jugabilidad. La jugabilidad basada en blockchain (que hereda completamente las ventajas y desventajas de la blockchain) promete proporcionar nuevas experiencias y paradigmas no disponibles en el pasado, atrayendo así a los usuarios.
Venimos a la segunda pregunta: ¿Qué tipo de juegos son adecuados para toda la cadena??
En la actualidad, la industria/mercado aún no ha alcanzado un consenso sobre este punto. Desde una perspectiva inductiva, las dos categorías mencionadas anteriormente son la estrategia en tiempo real (RTS) y las reglas meta (Meta Rules). Sin embargo, problemas como la falta de innovación, modelos de negocio poco claros y la incapacidad de satisfacer bien a los usuarios siguen siendo problemas inevitables en este campo.
Personalmente, creo que la clase Meta Rules tiene relativamente más potencial, porque al menos tiene más posibilidades nativas a nivel de reglas y nivel de interoperabilidad. Sin embargo, todavía es muy temprano y es difícil evaluar su certeza. La imagen de abajo es la interfaz del juego completo de cadenas meta-reglas PixeLAW.
Fuente de la imagen:https://twitter.com/0xPixeLAW/status/1704375844674912515
La interoperabilidad entre juegos puede ser una proposición falsa durante mucho tiempo. Aunque los juegos de cadena completa heredan la interoperabilidad de la cadena de bloques, desde una perspectiva empresarial/producto/ecológica, es difícil imaginar que dos productos independientes se desarrollen para la interoperabilidad a corto plazo, y este punto también ha sido falsificado en el ciclo previo de 'Metaverso' en cierta medida.
Ahora hablemos de la tercera pregunta: ¿Cuál es la relación entre Fully on-Chain y Crypto native?
En primer lugar, sobreénfasis en 'en toda la cadena' hará que la gente caiga en el círculo vicioso del fundamentalismo. La infraestructura actual de la blockchain no puede soportar una amplia gama de juegos para poner todos los datos/lógica en la cadena. Además, GubSheep, el fundador de 'Bosque Oscuro'.formulación iniciales "Juegos nativos de cripto", para reflexionar sobre cómo los juegos pueden promover el desarrollo de la industria blockchain en la mayor medida desde la perspectiva de Crypto-Native. La imagen a continuación muestra parte del texto original de GubSheep.
fuente:https://gubsheep.substack.com/p/the-strongest-crypto-gaming-thesis
La nativa cripto es un concepto con connotaciones siempre cambiantes y límites relativamente borrosos. Hay diferentes interpretaciones en diferentes etapas del desarrollo de blockchain.
En 2017, CryptoKitties fue considerado el epítome de cripto-nativo;
En 2018, Uniswap fue el epítome de la cripto-nativa;
En 2020, CryptoArt es el epítome de lo nativo de las criptomonedas;
En 2021, The DAO es el epítome de lo nativo de cripto;
Para 2023, los juegos de cadena completa, donde los datos y la lógica están en la cadena, se consideran un modelo de cripto nativo.
Pero en esencia, el cifrado es una idea, no un dogma。
Totalmente en la cadena es una metodología que implementa lo nativo de las criptomonedas, pero no podemos estar limitados por ella, al igual que la centralización/descentralización, la revolución/contrarrevolución, son todos conceptos relativos, y es fácil llegar a un callejón sin salida si te enredas demasiado con el significado literal.
Entonces, ya sea juegos de cadena completa o juegos nativos de criptomonedas, ¿qué nuevas posibilidades traen?
Creo que después de que la lógica / reglas del juego sean transparentes a través de la cadena, todas las estrategias de juego realmente pueden competir de manera justa. Por supuesto, necesitamos encontrar un escenario que pueda reflejar esta ventaja. Por ejemplo, debido a que la lógica del juego está en la cadena, puedes escribir directamente el código del contrato para jugar el juego, junto con las estrategias de juego generadas por IA, puede permitirnos tener un agente de jugador virtual por encima del promedio / sin sueño (esta idea está inspirada en Shoshin).
Además, un motor de juego de cadena completa como MUD (en realidad, es más apropiado llamarlo un marco de desarrollo de aplicaciones de cadena completa), como una combinación de base de datos + marco de desarrollo de aplicaciones, es de importancia evidente en el ecosistema de los EVM. Sin embargo, las bases de datos/los marcos de desarrollo de aplicaciones son bienes públicos y no tienen ningún modelo de negocio en absoluto. Afortunadamente, existe un mecanismo nativo de Token de la cadena de bloques, así comoEIP-6969Un esquema de regalías para desarrolladores de este tipo puede ayudar a los desarrolladores de estos productos justos a capturar valor de una manera externa. Este es el punto en el que la cadena de bloques es superior a la Web2.
"Consensus" no es solo el 51% del poder de cómputo, sino también los valores compartidos que existen entre sociedades/grupos. En este sentido, la criptografía es una especie de valor.
Sitio web oficial de MUD 2048:https://www.mud2048.fun/
Proyecto MUD 2048 código:https://github.com/themetacat/MUD2048
Sitio web oficial del motor MUD: https://mud.dev/
Sitio web oficial de Autonomous Worlds Bible:https://aw.network/
Teoría del juego nativo encriptada de GubSheep:https://gubsheep.substack.com/p/the-strongest-crypto-gaming-thesis
mud2048.fun es nuestra exploración para obtener un sentido microscópico del desarrollo completo del juego en cadena. Su objetivo es experimentar la versión completa en cadena del juego original 2048 (play2048.co) replicándolo para experimentar la experiencia completa de desarrollo del juego en cadena. Temperatura del agua, obtener una sensación de cuerpo de primera línea.
Este artículo es un resumen de las experiencias y pensamientos adquiridos durante este proceso de desarrollo, y tiene como objetivo inspirar a los lectores.
Esta es probablemente el intento más simple de desarrollar Juegos Totalmente En Cadena. Antes de esto, intentamos implementar una versión completa en cadena del Juego del Dinosaurio Offline de Chrome (Juego del Dino de Chrome), pero más tarde descubrimos que no era nativo de la cadena de bloques. Con el apoyo del mecanismo Tick del juego, es difícil reproducir una versión completa en cadena que se acerque a la experiencia original del juego.
Versión en línea del Juego del Dino de Chrome en:https://dinorunner.com/
Esto puede implicar un malentendido común: es más fácil implementar una versión de cadena completa de juegos simples. De hecho, este no es el caso, porque el tiempo de confirmación de transacción de la cadena de bloques (incluso Layer 2 principal) aún no ha alcanzado el nivel del tiempo de respuesta de la interfaz del servidor centralizado; además, después de que la lógica del juego se carga en la cadena, trae complejidad ingenieril que no ha aparecido en el escenario centralizado, lo que lleva al hecho de que no todos los juegos casuales simples pueden implementar fácilmente versiones de cadena completa. Esto también explica en cierta medida las divisiones actuales de la ecología de juegos de cadena completa:
Principalmente RTS (juegos de estrategia en tiempo real), como: Loot Survivor, Primodium, Sky Strife, Cellula, etc., complementados por Meta Rules (juegos de meta-reglas/juegos de simulación), como: PixeLAW, Briq, OpCraft, etc. Ambos tipos de juegos evitan las desventajas causadas por el largo tiempo de confirmación de transacciones de blockchain en términos de forma de juego.
La imagen muestra la interfaz de inicio de Sky Strife, URL:https://playtest.skystrife.xyz/
MUD es el primer motor de juego de cadena completa en el ecosistema EVM (y el primer marco de desarrollo de aplicaciones en el ecosistema EVM). La billetera de sesión incorporada en el motor y el grifo de la cadena de prueba que se puede llamar a través de la API pueden reducir la barrera de entrada para los jugadores.
Otra razón es que MUD es de código abierto, tiene muchos documentos y materiales comunitarios, y es fácil de empezar. Si el motor de juego es de código abierto implica problemas del modelo de negocio que se discutirán específicamente a continuación.
Introducción a los MUDs. fuente:https://github.com/latticexyz/mud
Ahora vayamos al punto. Hablaremos sobre algunas de nuestras experiencias en el uso del motor MUD. Hay niveles de la industria macro-perceptual y niveles prácticos de ingeniería micro-racional. Están dirigidos a diferentes grupos de audiencia. Puedes usarlos tú mismo (saltar directamente) la parte que no es interesante.
¿Qué es un motor MUD en general?
Motor de MUD = base de datos relacional en cadena + marco de desarrollo de aplicaciones en cadena.
Características de MUD. source:https://github.com/latticexyz/mud
Esta es una perspectiva de mirar el campo de la cadena de bloques desde el campo de Internet (algo similar a mirar el poder marítimo desde la perspectiva del poder terrestre). Definitivamente no es la perspectiva más apropiada, pero considerando que la cadena de bloques aún no ha logrado la Adopción Masiva, los productos de cadena de bloques deben ser lanzados. círculo, aún necesitamos atraer más usuarios en el campo de Internet, por lo que es mejor analizar desde la perspectiva de Internet primero.
Ya sea un “base de datos relacional en cadena” o un “marco de desarrollo de aplicaciones en cadena”, son fundamentales para el desarrollo de Ethereum, la “computadora mundial”。
Aprendimos del desarrollo de aplicaciones de Internet: la facilidad de uso del software de base de datos/la razonabilidad del diseño de la estructura de la tabla de la base de datos determina en gran medida la complejidad del desarrollo del proyecto completo. En otras palabras, el desarrollo de aplicaciones de Internet se lleva a cabo con la base de datos como núcleo, vamos a llamarlo "basado en la base de datos".
Así que veamos si el diseño del motor de MUD también sigue la idea de "basada en la base de datos". Desde la perspectiva del diseño del motor de MUD, resuelve tres problemas fundamentales:
Cómo hacer que los datos en la cadena sean fáciles de leer, escribir y almacenar de manera económica,
Sincronización automática de datos entre la cadena/clientes,
Gestión general de la complejidad en el desarrollo de aplicaciones.
Veamos la primera pregunta primero: “¿Cómo se puede leer, escribir y almacenar datos en la cadena de forma económica”.
Este problema se puede dividir en dos elementos:
1> Fácil de leer y escribir
2> Almacenamiento económico
Después de décadas de práctica en el campo de Internet, la “facilidad de lectura y escritura”, la “base de datos relacional” se considera la solución óptima. Aunque la cadena de bloques es un modelo de almacenamiento en cadena muy diferente del modelo de almacenamiento de base de datos tradicional (ver la figura a continuación), este modelo no es amigable ni siquiera para operaciones simples en un solo escenario (como sumar/promediar el monto de transacción de una cierta colección de NFT) / encontrar los valores máximo y mínimo, etc.), por no mencionar escenarios complejos adicionales.
Fuente de la imagen:https://mempool.space/mining
Por lo tanto, la solución para MUD es implementar una “base de datos relacional” encima del almacenamiento encadenado (correspondiente a la Tabla dentro de Store en el motor MUD). Para los desarrolladores, la experiencia de uso es la misma que operar bases de datos relacionales comunes (como MySQL, SQL Server, PostgreSQL, SQLite, etc.). Esto es realmente más amigable para la mayoría de los desarrolladores de Internet. La figura a continuación muestra la estructura de tabla correspondiente cuando desarrollamos la versión completa de cadena 2048 basada en el motor MUD.
Fuente:https://github.com/themetacat/MUD2048/blob/main/packages/contracts/mud.config.ts
Podemos analizar el punto de “almacenamiento económico” desde la perspectiva de Ethereum, la computadora mundial.
Todas las computadoras modernas se ajustan a la "estructura de Von Neumann", que se divide en cinco partes: entrada, salida, operación, control y almacenamiento (consulte la figura a continuación).
Las imágenes provienen de Internet
Desde la perspectiva del motor de juego de cadena completa en sí, solo puede optimizar el "almacenamiento", porque "entrada" y "salida" están en su capa superior y no pueden ser controladas; "operación" y "control" son lo que hace la cadena de bloques de Ethereum. Como un "software de aplicación básica" que se ejecuta en esta "computadora mundial", el motor de juego de cadena completa solo puede optimizar la entrada de "almacenamiento" a través de él.
La solución específica para la optimización de almacenamiento es implementar "bitpacking" muy eficiente y compacto para los datos de entrada. Dado que el almacenamiento de datos en la cadena de bloques se cobra en función del volumen de datos, un volumen de datos más pequeño significa costos de almacenamiento más bajos. Los costos de almacenamiento totalmente optimizados son el requisito previo para la aparición de aplicaciones en cadena a gran escala y complejas. La figura a continuación muestra un caso específico de optimización de almacenamiento por MUD. Para más detalles, ver"Motor de juego de cadena completa MUD de 0 a V2"。
Fuente de la imagen:https://lattice.xyz/blog/mud-zero-to-v2
En resumen, para la pregunta uno, MUD principalmente resuelve el problema desde la perspectiva de "basada en base de datos".
Ahora llegamos a la segunda pregunta: “Sincronización automática de datos entre la cadena/clientes”。
Esta también es una función principal proporcionada por el motor MUD, que ayuda a los desarrolladores a ahorrarse el trabajo pesado de gestionar la sincronización de estados complejos. El plan de implementación específico es: sincronización en tiempo real de la base de datos en cadena en el cliente. En otras palabras, cada cliente tiene una copia local incorporada que se sincroniza con la base de datos en cadena en tiempo real.
Esto se logra principalmente a través del Indexer en el motor MUD. La imagen a continuación es la introducción oficial de MUD al Indexer, que es principalmente para escenarios en los que desea construirlo y ejecutarlo en el servidor del proyecto (por supuesto, esta descripción también se aplica al Indexer que se ejecuta automáticamente en el cliente de juego de cadena completa).
Fuente de la imagen:https://mud.dev/services/indexer
Para los desarrolladores, inicialmente tienen una base de datos en cadena con una experiencia de usuario cercana a la de una base de datos local. Sin embargo, en lo que respecta a la implementación actual de MUD, es difícil para el cliente implementar funciones como generar una lista global; además, no es un enfoque económico que cada cliente genere una lista global.
Por cierto, todos definitivamente preguntarán: ¿Por qué no generar una lista global en la cadena? La razón es que aunque el motor MUD ha implementado una base de datos relacional preliminar, MUD aún no ha admitido funciones comunes como sumar/promediar/valores máximos y mínimos en bases de datos relacionales.
Por lo tanto, en mud2048.fun, construimos un nodo de Indexador MUD en un servidor centralizado para generar un ranking global de jugadores de manera relativamente rentable (ver la figura a continuación).
Sin embargo, permitir que cada cliente tenga una copia en tiempo real de la base de datos en cadena también tiene desventajas. Por ejemplo, antes de que se inicie la aplicación, es necesario sincronizar los datos desde la cadena para establecer la copia más reciente de la base de datos en cadena localmente, lo que aumentará el tiempo de espera para que los jugadores ingresen al juego. Los funcionarios de MUD también son conscientes de este problema y mencionaron soluciones de optimización relacionadas (sincronización de datos segmentados y almacenamiento en caché del cliente) en la versión MUD V2. Sin embargo, en mi opinión, son soluciones temporales y no pueden resolver completamente el problema de la sincronización de la cadena a lo largo del tiempo. Hay cada vez más problemas con los datos.
Este problema parece insoluble por el momento (será difícil lograr avances importantes en la eficiencia de la transmisión de datos de redes públicas y la recuperación de datos encadenados a corto plazo). Esperamos que con la iteración de MUD, se pueda encontrar una solución más adecuada. Si este problema se resuelve bien, también allanará el camino para el nacimiento de aplicaciones complejas en otras cadenas.
Ahora llegamos a la pregunta tres: “Gestión común de la complejidad para el desarrollo de aplicaciones”.
Antes de esto, la mayoría de las aplicaciones on-chain en el ecosistema de Ethereum eran relativamente simples (un indicador objetivo es que el número de contratos involucrados en un solo producto DeFi/NFT/DAO es limitado, y en la mayoría de los casos la posibilidad de actualización después de la implementación es muy pequeña). Pero para el desarrollo de aplicaciones complejas, las actualizaciones lógicas, el control de acceso y la gestión de permisos son todas tareas repetitivas que deben hacerse desde cero. Por lo tanto, hay una gran necesidad de un marco/motor universal que pueda ayudar a los desarrolladores a lidiar con estos problemas de manera unificada, para que los desarrolladores puedan dedicarse al desarrollo de aplicaciones.
Otra función principal proporcionada por el motor MUD es ayudar a los desarrolladores a ahorrar tiempo en tratar con los problemas anteriores a través del módulo World. Específicamente, World proporciona lógica y control de acceso sobre la Tienda. La siguiente figura muestra el sitio web oficial de MUD para World. Descripción, esta es una función proporcionada por los marcos de desarrollo de aplicaciones generales, por lo que no entraré en detalles aquí.
Fuente de la imagen:https://mud.dev/world/introduction
Para el desarrollo de aplicaciones complejas, el control de acceso (o enrutamiento) es un eslabón importante para determinar el volumen total del proyecto. La calidad del diseño del control de acceso determina directamente la complejidad y facilidad de mantenimiento del desarrollo de aplicaciones. MUD obviamente da gran importancia a esto. La figura a continuación muestra la optimización de su módulo de control de acceso en las versiones MUD v1 y v2.
Fuente de la imagen:https://lattice.xyz/blog/mud-zero-to-v2
Lo anterior son algunos de nuestros pensamientos y experiencias de ingeniería en el proceso de desarrollo de mud2048.fun utilizando el motor MUD. En general, los motores MUD también siguen la idea de "basada en bases de datos", que es altamente consistente con la metodología de desarrollo de aplicaciones de Internet. Por lo tanto, los motores MUD no resultarán extraños para los desarrolladores de aplicaciones de Internet. A continuación, discutiremos nuestros pensamientos sobre la industria del juego de cadena completa.
Cuando entramos en el campo de los juegos de cadena completa, las tres preguntas que constantemente nos hacemos son:
¿Por qué se necesita un juego de cadena completa?
¿Qué tipo de juegos son adecuados para toda la cadena?
¿Cuál es la relación entre Fully on-Chain y Crypto native?
A continuación discutimos uno por uno:
Para la primera pregunta: ¿Por qué necesitamos juegos de cadena completa?
Este problema se puede descomponer aún más en dos subproblemas:
1> ¿Por qué la industria blockchain necesita juegos de cadena completa?
2> ¿Por qué el mercado de criptomonedas necesita juegos de cadena completa?
Desde la perspectiva de la industria de la cadena de bloques:
El ecosistema de Ethereum se ha desarrollado hasta un punto que requiere la aparición de aplicaciones complejas on-chain (en el pasado, las aplicaciones on-chain DeFi/DAO/NFT eran relativamente simples, como se puede ver en el número de contratos que soportan una aplicación). Otro ejemplo contrario es el soporte de la capa 2 de Ethereum para el conjunto de juegos completo. Desde un punto de vista lógico interno, sin trabajo de porcelana, no se pueden hacer diamantes. La capa 2 necesita todo el trabajo de porcelana en el conjunto completo de juegos para lograr su objetivo.
El campo de NFT no ha tenido un nuevo paradigma para promover su desarrollo después de la burbuja PFP. El punto que distingue a NFT de ERC-20 es la composabilidad, y la escena del juego es el lugar natural para la composabilidad de NFT.
El objetivo final de todo el juego de la cadenamundo autónomo"Es otra elaboración de la forma última del mundo digital (la última elaboración fue el "Metaverso" que se convirtió en un desastre después de ser sobrecomercializado). Como una imaginación común de la humanidad para un futuro mejor, el mundo autónomo tiene un gran atractivo, y el mundo entero como una forma importante de lograr este objetivo, los juegos de cadena también tienen grandes esperanzas.
Sitio web oficial de Autonomous Worlds:https://aw.network/
Mirando el mercado de criptomonedas:
Mirando hacia atrás en la historia del desarrollo de Internet, los juegos siempre son los primeros en adoptar nuevos campos tecnológicos. Los juegos son aplicaciones de consumo y son más fáciles de llegar a los usuarios finales.
El modelo de juego GameFi/blockchain ha sido falsificado temporalmente, y la exploración de los juegos blockchain ha vuelto al origen de los juegos: la jugabilidad. La jugabilidad basada en blockchain (que hereda completamente las ventajas y desventajas de la blockchain) promete proporcionar nuevas experiencias y paradigmas no disponibles en el pasado, atrayendo así a los usuarios.
Venimos a la segunda pregunta: ¿Qué tipo de juegos son adecuados para toda la cadena??
En la actualidad, la industria/mercado aún no ha alcanzado un consenso sobre este punto. Desde una perspectiva inductiva, las dos categorías mencionadas anteriormente son la estrategia en tiempo real (RTS) y las reglas meta (Meta Rules). Sin embargo, problemas como la falta de innovación, modelos de negocio poco claros y la incapacidad de satisfacer bien a los usuarios siguen siendo problemas inevitables en este campo.
Personalmente, creo que la clase Meta Rules tiene relativamente más potencial, porque al menos tiene más posibilidades nativas a nivel de reglas y nivel de interoperabilidad. Sin embargo, todavía es muy temprano y es difícil evaluar su certeza. La imagen de abajo es la interfaz del juego completo de cadenas meta-reglas PixeLAW.
Fuente de la imagen:https://twitter.com/0xPixeLAW/status/1704375844674912515
La interoperabilidad entre juegos puede ser una proposición falsa durante mucho tiempo. Aunque los juegos de cadena completa heredan la interoperabilidad de la cadena de bloques, desde una perspectiva empresarial/producto/ecológica, es difícil imaginar que dos productos independientes se desarrollen para la interoperabilidad a corto plazo, y este punto también ha sido falsificado en el ciclo previo de 'Metaverso' en cierta medida.
Ahora hablemos de la tercera pregunta: ¿Cuál es la relación entre Fully on-Chain y Crypto native?
En primer lugar, sobreénfasis en 'en toda la cadena' hará que la gente caiga en el círculo vicioso del fundamentalismo. La infraestructura actual de la blockchain no puede soportar una amplia gama de juegos para poner todos los datos/lógica en la cadena. Además, GubSheep, el fundador de 'Bosque Oscuro'.formulación iniciales "Juegos nativos de cripto", para reflexionar sobre cómo los juegos pueden promover el desarrollo de la industria blockchain en la mayor medida desde la perspectiva de Crypto-Native. La imagen a continuación muestra parte del texto original de GubSheep.
fuente:https://gubsheep.substack.com/p/the-strongest-crypto-gaming-thesis
La nativa cripto es un concepto con connotaciones siempre cambiantes y límites relativamente borrosos. Hay diferentes interpretaciones en diferentes etapas del desarrollo de blockchain.
En 2017, CryptoKitties fue considerado el epítome de cripto-nativo;
En 2018, Uniswap fue el epítome de la cripto-nativa;
En 2020, CryptoArt es el epítome de lo nativo de las criptomonedas;
En 2021, The DAO es el epítome de lo nativo de cripto;
Para 2023, los juegos de cadena completa, donde los datos y la lógica están en la cadena, se consideran un modelo de cripto nativo.
Pero en esencia, el cifrado es una idea, no un dogma。
Totalmente en la cadena es una metodología que implementa lo nativo de las criptomonedas, pero no podemos estar limitados por ella, al igual que la centralización/descentralización, la revolución/contrarrevolución, son todos conceptos relativos, y es fácil llegar a un callejón sin salida si te enredas demasiado con el significado literal.
Entonces, ya sea juegos de cadena completa o juegos nativos de criptomonedas, ¿qué nuevas posibilidades traen?
Creo que después de que la lógica / reglas del juego sean transparentes a través de la cadena, todas las estrategias de juego realmente pueden competir de manera justa. Por supuesto, necesitamos encontrar un escenario que pueda reflejar esta ventaja. Por ejemplo, debido a que la lógica del juego está en la cadena, puedes escribir directamente el código del contrato para jugar el juego, junto con las estrategias de juego generadas por IA, puede permitirnos tener un agente de jugador virtual por encima del promedio / sin sueño (esta idea está inspirada en Shoshin).
Además, un motor de juego de cadena completa como MUD (en realidad, es más apropiado llamarlo un marco de desarrollo de aplicaciones de cadena completa), como una combinación de base de datos + marco de desarrollo de aplicaciones, es de importancia evidente en el ecosistema de los EVM. Sin embargo, las bases de datos/los marcos de desarrollo de aplicaciones son bienes públicos y no tienen ningún modelo de negocio en absoluto. Afortunadamente, existe un mecanismo nativo de Token de la cadena de bloques, así comoEIP-6969Un esquema de regalías para desarrolladores de este tipo puede ayudar a los desarrolladores de estos productos justos a capturar valor de una manera externa. Este es el punto en el que la cadena de bloques es superior a la Web2.
"Consensus" no es solo el 51% del poder de cómputo, sino también los valores compartidos que existen entre sociedades/grupos. En este sentido, la criptografía es una especie de valor.
Sitio web oficial de MUD 2048:https://www.mud2048.fun/
Proyecto MUD 2048 código:https://github.com/themetacat/MUD2048
Sitio web oficial del motor MUD: https://mud.dev/
Sitio web oficial de Autonomous Worlds Bible:https://aw.network/
Teoría del juego nativo encriptada de GubSheep:https://gubsheep.substack.com/p/the-strongest-crypto-gaming-thesis