Hi everyone. I am JohnSky. Thanks to threepwave for bringing us this project Crypts and Caverns. I have organized the information of the project and provided both English and Chinese versions.
9000 generative on-chain dungeons
9000 个生成的链上地牢
Crypts and Caverns is a generative, on-chain, Lootverse ‘lego’. Each NFT is programmatically generated within the contract, meaning no two maps are alike. The data within each map has been carefully optimized to play nicely within the loot ecosystem, supporting text, 2d, and 3d worlds. This means that developers, designers and artists alike can call the contract directly to integrate their own mechanics, adventures and tilesets on top.
Crypts and Caverns(地牢洞穴) 是一个生成的,在链上的, Loot宇宙 “乐高积木”。 每个 NFT 都是在合约中以程序的方式生成的,所有地图都是独一无二的。 每张地图中的数据都经过精心设计,能够在Loot生态系统中很好地发挥作用,支持文本、2d 和 3d 世界。 开发人员、设计师和艺术家都可以直接调用合约,将他们自己的机制、冒险和图块等集成在NFT上。
['X', 'X', 'X', 'X', 'X'],
['X', ' ', ' ', 'X', ' '],
['X', ' ', 'X', 'd', ' '],
['X', 'd', ' ', ' ', 'X'], becomes...
['X', ' ', 'p', ' ', 'X'],
['X', 'X', ' ', 'X', 'X']
Pixel art
2D top-down game (by Gareth)
There are 9,000 generative dungeon maps on the Ethereum blockchain.
223 are reserved for promotions and key contributors.
Sorry we're sold out(全部售罄,感谢你的支持)
2D 的顶视角游戏(使用 Gareth)
在以太坊上的 9,000 个生成的地牢地图
保留223 个地图用于推广和主要贡献者
Buy on Opensea | View your dungeons
What is an on-chain map?
什么是链上地图?
Using a seed derived from the blockhash and tokenId, each map is randomized with a set of probabilities for every aspect of the map. For example, there is a 70% chance that the dungeon will be a 'room-based' dungeon (meaning a series of square rooms connected by hallways) and a 30% probability that the map will be a 'cavern-based' dungeon (meaning a series of hallways bored into the walls). The end result is a map stored as on-chain data (in bytes and uint8[]) with contract read functions to retrieve this information for each token. Think of this like an open source, publicly available API.
从区块哈希和TokenId进行派生,每一个地图都是随机的,地图的各个属性都有一定的概率。比如,地牢有 70% 的可能性是“基于房间”类型的地牢(设计为由走廊连接的方形房间),有 30% 的可能性是“基于洞穴的”地牢( 设计为穿梭于洞穴中)。 最终结果以数据存储于链上(以字节和 uint8[] 为单位),支持通过合约的读取函数来检索每个令牌的对应信息。 可以把它想象成一个开源的、公开可用的 API,任何人都可以用对应的机制来访问和使用。
使用从 blockhash 和 tokenId 派生的种子,每个地图都是随机的,具有地图各个方面的一组概率。 (我們的nft最後也能像一個api一樣被其他人讀取)
What can I do with these maps?
These maps are a minimal 'lego' that can be used to build out adventures and games. They play nicely with the Loot ecosystem but could also fit into other universes. Dungeons are designed to support 2D, 3D, and text-based worlds.
This is a primitive and is designed to play nicely with many other primitives. Similar to how @dom left Loot open-ended, I hope that game developers and dungeon masters take this output and make as many important decisions as possible, such as defining monsters, visual style, spawn points, and more. All the data is exposed via the Solidity API (vs proprietary formats) which gives maximum flexibility for those interested in creating adventures, such as the following:
我能用这些地图做什么?
这些地图是可用于构建冒险和游戏的最小“乐高”。 它们与 Loot 生态系统配合得很好,但也可以融入其他宇宙。 地下城旨在支持 2D、3D 和基于文本的世界。
这是一个原语,旨在与许多其他原语很好地配合使用。 与 @dom 让 Loot 开放式的方式类似,我希望游戏开发者和地下城主们能够接受这个输出并做出尽可能多的重要决定,例如定义怪物、视觉风格、出生点等等。 所有数据都通过 Solidity API(相对于专有格式)公开,这为那些对创建冒险感兴趣的人提供了最大的灵活性,例如:
You can represent them as a 2D array for text-based adventures:
['X', 'X', 'X', 'X', 'X'],
['X', ' ', ' ', 'X', ' '],
['X', ' ', 'X', 'd', ' '],
['X', 'd', ' ', ' ', 'X'],
['X', ' ', 'p', ' ', 'X'],
['X', 'X', ' ', 'X', 'X']
You can also represent this array with 2d graphics in low fidelity (using my pixel art style packaged with each NFT):
您还可以用低保真度的 2d 图形表示这个数组(使用我与每个 NFT 打包的像素艺术风格):
Or you could take this same array and render it using higher fidelity (credit to @Gareth who rendered this from a test contract):
或者您可以采用相同的数组并使用更高的保真度渲染它(感谢@Gareth,他从测试合同中渲染了它):
You could also render an entire 3D space using this same data. the options are only limited by the game developer’s imagination.
Here are some more interesting use cases that could become possible over time:
Maps can be chained together with spawn points (think of these like 'links' between web pages) to form a more persistent world.
Maps can be chained with larger 'world maps' (e.g. Realms) to provide structured exploration and adventure in small spaces.
Maps could have encounters (enemies, spawn points, NPCs, etc) laid on top of the 2D grid which can also be generated/rendered on-chain and allow for fully procedural game content.
Maps can be queried, for example, allowing a game designer to select maps with two or more doors.
Maps could belong to 'factions' or have different incentive structures laid on top for owning them
您还可以使用这些数据渲染整个 3D 空间。 在开发者的想象力之下,几乎没有任何限制。
以下是一些更有趣的用例,它们可能会随着时间的推移而逐步实现:
地图可以与生成点链接在一起(将这些视为网页之间的“链接”)以形成更持久的世界。
地图可以与更大的“世界地图”(例如领域)链接,以在小空间中提供结构化的探索和冒险。
在地图 2D 网格上放置遭遇事件(敌人、生成点、NPC 等),也可以在链上生成/渲染,并允许完全程序化的游戏内容。
可以查询地图,例如,允许游戏设计师选择具有两扇或多扇门的地图。
地图可以属于某些“派系”(或者说组织、社区)可能属于“派系”,拥有不同的激励结构来奖励地图持有者。
There are many more possibilities but these ideas are only a starting point. The beauty of a simple composable nft is that it can be used in many different ways when combined with other on-chain content.
Why did you create these maps?
I believe that four important inventions are coming together to change the way we interact online:
Ethereum is a distributed computing platform (no servers required)
Wallets are distributed identity (no logins required)
NFTs create digital ownership/property rights (no brokers required)
DAO's allow strangers to take collective action (no corporations required)
还有更多的可能性,这些想法只是一个起点。 简单的可组合 nft 的美妙之处在于,当与其他链上内容结合时,它可以有千变万化的玩法。
为什么要制作这些地图?
我认为,现在有四项重要的发明正在共同改变我们在线互动的方式:
以太坊:分布式计算平台(无需服务器)
钱包:分布式(去中心化)身份认证(无需登录)
NFTs: 创建数字化的所有权/财产权(无需经纪人 )
DAOs :让陌生人一起决策并采取集体行动(无需公司组织)
When you combine these aspects, you see communities and teams form around ideas, have all the tools to make them happen, and both parties are incentivized to help each other win. Ownership of the idea and project is shared between the creators and the community. When I saw Loot, I realized that this future was closer than I had thought. An NFT can be more than art. It can be a data structure. That was a lightbulb moment.将这些方面结合起来时,社区和团队围绕这些想法形成,拥有实现它们的所有工具,并且双方都通过激励机制来帮助彼此共同获益。 创意和项目的所有权在创作者和社区之间共享。
当我看到Loot时,我意识到未来已来。 NFT 可以不仅仅是艺术, 它也可以是一个数据结构。 那是一个精彩时刻。
Building on-chain is challenging. There are many constraints (compute/memory, storage, etc) and things that were previously trivial are now challenging or seemingly impossible due to the cost associated with a distributed computing platform that is manifested in the price of gas.
If a developer wants to build an on-chain game, they have to create everything from scratch: characters, enemies, items, combat systems, and more.
Just as Defi and DEXes have created composable/reusable swapping services, we can make sure developers don't have to re-build maps or other core entities. That's why I want to take advantage of the composable nature of the blockchain and provide a map that can be extended into future on-chain games.在链上构建是具有挑战性的,有许多限制(计算/内存、存储等),以前微不足道的事情现在变得非常有挑战性,甚至看似不可能。与分布式计算平台相关的这些成本体现在了gas 价格上。
如果开发者想要构建一个链上游戏,他们必须从头开始创建所有内容:角色、敌人、物品、战斗系统等等。
正如 Defi 和 DEX 创建了可组合/可重用的交换服务一样,我们可以确保开发人员不必重新构建地图或其他核心实体。 这就是为什么我想利用区块链的可组合性,来提供一个可以扩展到未来链上游戏的地图。
At its core, I believe that you need three things to build a compelling gaming experience:
People (wallet -> identity -> characters/enemies)
Places (maps -> structures -> sense of place)
Things (objects -> items -> objects with attributes, physical properties, etc.)就核心而言,我认为你需要从这三个方面来构建引人入胜的游戏体验:
人(钱包 -> 身份 -> 角色/敌人)
地点(地图 -> 结构 -> 位置场景)
事物(通用对象 -> 物件 -> 具有属性、物理定义等的对象)
While Loot has tackled the objects and items of a game and other projects like The Genesis Project are exploring the characters, Crypts and Caverns aim to become the the fundamental on-chain data structure needed to provide a sense of place. Whether you aim to build a 2D dungeon crawler, such as Zelda, a complex 3D MMORPG, or a dynamic virtual world, places start with a floorplan: walls and floor. I've sprinkled in some additional metadata (such as doors and points of interest) which can be utilized or ignored. This map structure is designed to be simple to use (as a developer) and unopinionated. Like Loot, I tried to give a minimum set of opinions so that designers and developers can fill in the gaps for their own experience or with other components.我们知道Loot 已经处理了游戏的对象和物品,而 The Genesis Project 等其他项目正在探索角色,与他们不同, Crypts 和 Caverns 的目标是成为用于提供位置场景的基本链上数据结构。
无论你的目标是构建一个 2D 地牢爬行者,如 Zelda;或是一个复杂的 3D MMORPG,还是一个动态的虚拟世界,场景都从墙面和地板开始。 我已经添加了一些的额外元数据(例如门和事件点),你可以自主选择使用或忽略这些。
这种地图结构被设计成易于使用(作为开发人员),以及非主观化。 像 Loot 一样,我尽量给出最少的意见,让设计师和开发人员可以根据自己的经验或其他组件来完成。
The data structure is very portable (bytes for the layout and uint8[] for the entities) and other smart contracts can easily consume this data without spending much gas to read or manipulate.
I also worked with Loot community members to develop a standard (Coming soon), with contributions from Ira Fudmore, Matto, Dom, Gareth, cjpais, and a host of others.
My hope is that these maps are just the starting point and that many community members launch additional map projects following this standard. This will lead to all maps being interoperable and offer unlimited variety to the community.
I firmly believe that the future doesn't need one canonical set of maps. It needs an infinite set of maps that evolves as new designers and developers bring new ideas.
Whether you're an experienced game designer or someone just looking to start your first game or experience, these maps can work for you.
这样的数据结构非常通用,利于使用(用字节来表达布局,用uint8[]表达实体),其他智能合约可以轻松地调用这些数据,无需花费大量GAS费用来读取或操作。
我还与 Loot 社区成员合作开发了一个标准(即将推出),Ira Fudmore、Matto、Dom、Gareth、cjpais 和其他许多人都为此做出了贡献。
我希望这些地图只是起点,许多社区成员将按照此标准启动其他地图项目。 如此所有地图都可以互相融通和操作,这也将为社区提供无限的多样性。
我坚信未来需要的不是一套规范的地图。随着新设计师和开发人员带来新想法而不断发展,未来要一组无限的地图。
无论你是经验丰富的游戏设计师,还是想开始你的第一个游戏的新人,这些地图都适合你利用。
What does the actual NFT contain?
An on-chain map means that all aspects to create the map start and end on the blockchain. No human input (other than the solidity code uploaded to the blockchain) is required.
There are two components to our maps: the image and the metadata.
The image is purely a simple pixel art representation of the map that is created. I thought it would be fun to visualize the map (versus inspecting a getLayout() endpoint all day) and gave each map some character with a very low-fi pixel representation.
I rendered each map with an 'environment' which has a color palette that maps to the mood or feel I hope the map conveys:
实际的 NFT 包含什么?
链上地图意味着创建地图的所有的方方面面都在区块链上开始和完成。没有人为输入的需求(除了将Solidity 代码发布到区块链)。
我们的地图有两个组件:图像和元数据。
该图像纯粹是地图的简单像素艺术表示。 我认为可视化地图会非常有趣(而不是整天检查 getLayout() 端点)并为每个地图提供一些具有非常低保真像素表示的字符。
我用一个“环境”渲染了每张地图,配置了一个调色板,可以映射到我希望地图传达的情绪或感觉:
The metadata is a structured representation of each map that can be interpreted by other contracts (on-chain) or game engines (off-chain) with the following attributes:
Size: The width and height of the map. Maps are always square so size 6 means 6x6 and maps can have a minimum size of 6 and a maximum size of 25.
Layout - A square set of 0s and 1s representing walls (0) and floor (1).
Entities - I've included two 'entities' in this project that can represent special tiles on the map. I've designated Doors (0) and Points of Interest (1). What these variables actually mean is up to the developer/designer.
Environment - A number representing a 'mood' for the map. For the artistic portion, I chose to give each environment a name. For example, (5) is called "Ember's Glow" which uses fiery red tones to resemble a volcano.
Name - A name for the map. Most of which are unique. I chose fantasy names in line with Loot's 'For Adventurers' theme.
元数据是每个地图的结构化表示,可以由其他合约(链上)或游戏引擎(链下)重新解释定义,具有以下属性:
大小:地图的宽度和高度。 地图定义为正方形的,因此大小 6 表示 6x6,地图的最小尺寸为 6,最大尺寸为 25。
布局:地图的布局,用0 和 1表示,分别 代表墙壁 (0) 和地板 (1)。
实体:地图上的内容我在这个项目中设置了两个“实体”,它们可以代表地图上的特殊图块。 我指定了门 (0) 和兴趣点 (1)。 不过变量的实际含义取决于开发人员/设计人员。
环境:地图的环境,用一个数字代表地图的“心情”。在艺术化部分,我选择为每个环境命名。 例如,(5)被称为“Ember's Glow”,它使用火红的色调来模仿火山。
名称:地图的名字。 其中大部分是独一无二的。 我定义了符合 Loot 的“冒险家”主题的奇幻名称。
It is up to the designer/developer to decide which if any of these fields they want to use and how to interpret them in their future game development.
With respect to rarity, the actual map layout itself does not have a weighting or rarity. For example it is just as likely to get a 6x6 map as one that is 25x25. I believe that all of these maps can serve a purpose and be useful. And like any good fantasy game, the predefined rarity tiers are purely cosmetic, namely residing in the Environment and Name attributes.
You can find more information at the Crypts and Caverns Etherscan contract page or view the source code on Github. You can see the output of the predefined images on the official Opensea project page.
What benefits do I get from holding the maps?
Today, the benefits are purely speculative. If you believe in the vision of composable, on-chain components to build games and experiences, you may find this to be a good bet in that space. In the future, I hope that game designers find ways to reward map holders for owning a map. This could be as simple as giving map holders special access to experiences or drops.
由设计师/开发者决定他们想要使用哪些字段,以及如何在他们未来的游戏开发中利用它们。
关于稀有度,实际地图布局本身没有权重或稀有度。例如,获得 6x6 地图的可能性与获得 25x25 地图的可能性相同。我相信所有这些地图都有其存在的价值。和一些优秀的奇幻游戏一样,预定义的稀有等级只是装饰性的,定义于环境和名称属性中。
你可以在 Crypts 和 Caverns Etherscan 合约页面找到更多项目信息,或在 Github 上查看源代码。您可以在 Opensea 官方项目页面上查看预定义图像的输出。
持有地图有什么好处?
坦而言之,现在这些好处纯粹是投机性的。如果你相信可组合的链上组件来构建游戏和体验的愿景,你可能会发现这在该领域是一个绝对优秀的选择。
未来,我希望游戏设计师设计机制以奖励地图持有者。这将是非常容易实现的,让地图持有者能拥有特殊的权限去体验或者空投。
I anticipate that game designers will find ways to reward map holders such as creating incentives for different factions (Guilds, DAOs, or other structures) to hold maps or giving the owner a 'take' (percentage of profits) whenever a party completes an adventure in that particular map they hold. Truly, the possibilities are endless and are made possible by the composable nature of the blockchain. The first step, however, is for these maps to exist, which is why I brought this project to life. At the least, as a Crypts and Caverns holder, you'll be the first to know about any future rewards or additional projects or features I develop in this space. I am deeply invested in making this idea succcessful and believe this is the start of something big. Plainly put, this is not a one-and-done project for me.
我预计游戏设计师会找到奖励地图持有者的方法,例如奖励不同组织(公会、DAO 或其他组织)持有地图,或在一方完成冒险时给予对应地图所有者“收益”(按利润百分比)。诚然,有无穷无尽的可能性,而且通过区块链的可组合性来实现。
总而言之,第一步是让这些地图产生和存在,这就是我将这个项目付诸实践的原因。至少,作为 Crypts and Caverns 的持有者,你将是第一个知道项目信息的,包括我在这个领域开发的任何未来奖励以及其他项目获功能。我为使这个想法成功而做了大量投入,并相信这是一件大事的开始。坦率地说,这对我来说不是一个“一次性买卖”(发起-收益-赚钱)的项目。
What is your roadmap?
Step 1: Ship this project.
Step 2: Share sample code and other use cases to show what's possible.
Step 3: Find other interested projects and developers and help them build projects using these maps. Beyond that.. the possibilities are endless :) Along the way, I'm expecting a baby in December. In full disclosure, I'll likely be less active in the community for a few months. I want to be upfront about this from the get-go - while you may not see me quite as active, having the ability to spend time with my family during this special time is paramount. I thought it was better to put this idea out in the world, even if I'll be sporadically available for a bit, than to let it sit on my hard drive and collect dust. I will look to ramp back up to regular involvement with the project beginning in late January or early February.你的路线图是什么?
第 1 步:启动发布此项目。
第 2 步:分享示例代码和其他用例以展示它的可能。
第 3 步:寻找其他感兴趣的项目和开发人员,并帮助他们使用这些地图构建项目。
除此之外……可能性是无穷无尽的:)
一路同时,我也正在期待在12月我的孩子的出生。如实披露,我可能会有几个月的时间,在社区不那么活跃。我想从一开始就坦诚相待——纵然可能会有人认为我不那么活跃,但在这段特殊的时间里能够与家人共度时光是至关重要的。即使我偶尔有空,我认为最好将这个情况公之于众,也比隐藏这个信息更好。从 1 月下旬或 2 月初开始,我将重新开始正恢复正常的项目开展。
Where can I learn more?
Read the Map Standard (Github coming soon) and Sample Code (Github coming soon)
我在哪里可以了解更多信息?
合约:Etherscan、Github
阅读地图标准(Github 即将推出)和示例代码(Github 即将推出)
加入我们的 Discord
Can I use your code/concepts?
These maps are offered under a Creative Commons Zero (CC0) license. This means that you can copy, edit, remix, or do whatever you want with all aspects of the maps (code, names, etc). Treat them as your own and build awesome stuff.
What is your background?
I've worked in games and consumer products for years, typically in cutting edge technology (such as virtual reality). I have a passion for games and learned to code when I was a kid. This has carried over to the blockchain and is a driving factor of why I created Crypts and Caverns.
我可以使用您的代码/概念吗?
这些地图是基于知识共享零 (CC0) 许可提供的。这意味着你可以对地图的所有方面(代码、名称等)进行复制、编辑、编译或做任何你想做的事情。你完全可以将它们视为你自己的,去做更棒的东西。
你的背景是什么?
我在游戏和消费产品行业多年,主要从事尖端技术(如虚拟现实)领域工作。我对游戏充满热情,在我孩提时代就学会了编码。这些一直延续到区块链领域,并且驱动我创建了 Crypts and Caverns。
I'm a child of the 80's who never grew up. I make pixel art using javascript and solidity.
我是一个“永远长不大”的80后。致力于 用Javascript 和Solidity 制作像素艺术。
