Skip to content

Commit

Permalink
Merge pull request #591 from kernel-community/r2d
Browse files Browse the repository at this point in the history
Naturally composed
  • Loading branch information
andytudhope authored Nov 7, 2023
2 parents 3cbaff4 + 04a1e35 commit 89a4cb7
Show file tree
Hide file tree
Showing 5 changed files with 69 additions and 48 deletions.
48 changes: 48 additions & 0 deletions content/en/build/games/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,51 @@ However, [James P. Carse's notion of finite and infinite games](https://www.yout
Infinite games are to finite games as a [container to the contained](/learn/module-7/), or a background to the stage, or a field to the players moving on it. They are played for the sheer pleasure of acting. Being able to **express life's joy, and have it be heard as such**, is the deep why we will explore in the course of our time together.

> To exercise one’s capacities to their fullest extent is to take pleasure in one’s own existence, and with sociable creatures, such pleasures are proportionally magnified when performed in company. From the Russian perspective, this does not need to be explained. It is simply what life is. We don’t have to explain why creatures desire to be alive. **Life is an end in itself**. And if what being alive actually consists of is having powers — to run, jump, fight, fly through the air — then surely the exercise of such powers as an end in itself does not have to be explained either. It’s just an extension of the same principle.
## Practice

If you'd like to consider these idea from a practical game designer's perspective, in the specific context of blockchains, we suggest Kernel fellow Ronan Sanford's essays, linked below. In particular, he makes the case for infinite games as **interoperable**, **permission-less**, **persistent**, and **immutable**.

> A game or world isn't confined solely to its code or smart contract; it comprises the code (i.e. the digital physics), the players, and their inputs, as well as the interactions among players themselves, the community. It's this very aspect that allows us to understand how such a world can be expanded with new, previously unimagined rules.
<InfoBlock>

<Box>

**Infinite Games**

![Infinite Games](/images/build/infinite-game.png)

<Aligner center>
<Button to="https://ronan.eth.limo/blog/infinite-games/">
Read
</Button>
</Aligner>

</Box>

<Box>

**Natural Composability**

![Natural Composability](/images/build/natural-composability.png)

<Aligner center>
<Button to="https://etherplay.io/blog/natural-composability/">
Compose
</Button>
</Aligner>

</Box>

</InfoBlock>

We also recommend that, if you are developing blockchain games actively, you take a look at

<Process>

[autonomous worlds network](https://aw.network/posts/lively-worlds) for visionary ideas and content, and

[mud.dev](https://mud.dev) as either a starting point, or inspiration for your own framework and approach.

</Process>
22 changes: 0 additions & 22 deletions content/en/build/games/infinite.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,28 +9,6 @@ featuredImage: images/shares/learn.png

<Video src="https://www.youtube-nocookie.com/embed/qdIP6HilbWE" />

This piece looks at infinite games in very broad way. If you'd like to consider the idea from a true game designer's perspective, in the specific context of blockchains, we suggest Kernel fellow Ronan Sanford's essay, linked below. In particular, he makes the case for infinite games as **interoperable**, **permission-less**, **persistent**, and **immutable**. Of these properties, immutability may seem at odds with the work of Dr. James P. Carse, which we cover in detail here, until you realise that an inherent property of the medium is "forkability".

This is likely the most interesting meta-point of Ronan's analysis: you need not include complicated governance mechanisms to have a game which is both immutable and yet which can be updated when necessary, given that it exists on a shared ledger where it can be copied and redeployed (which applies not only to the contractual logic, but the state itself).

<InfoBlock>

<Box>

**Infinite Games**

![Infinite Games](/images/build/infinite-game.png)

<Aligner center>
<Button to="https://ronan.eth.limo/blog/infinite-games/">
Read
</Button>
</Aligner>

</Box>

</InfoBlock>

# And Beyond

Dr. Carse wrote [**Finite and Infinite Games: A Vision of Life as Play and Possibility**](ttps://books.google.com.ph/books/about/Finite_and_Infinite_Games.html?id=ObLBJ_w2ZlcC&printsec=frontcover&source=kp_read_button&redir_esc=y#v=onepage&q&f=false) in 1986, years before blockchains and the internet. This is a feature common to much of the work you will find in Kernel: it is both timely and timeless. It addresses the pertinent issues of the day, but it does so with such insight and wit that the conclusions which can be drawn from it apply across our shared histories.
Expand Down
6 changes: 3 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
"gatsby-remark-embed-video": "^3.2.1",
"gatsby-remark-images": "^5.12.0",
"gatsby-remark-responsive-iframe": "^4.11.0",
"gatsby-source-filesystem": "^3.14.0",
"gatsby-source-filesystem": "^3.15.0",
"gatsby-transformer-json": "^3.14.0",
"gatsby-transformer-remark": "^4.11.0",
"gatsby-transformer-sharp": "^3.15.0",
Expand All @@ -55,7 +55,7 @@
"react-dom": "^17.0.2",
"react-helmet": "^6.0.0",
"react-process-string": "^1.2.0",
"react-select": "^5.7.3",
"react-select": "^5.8.0",
"react-smooth-collapse": "^2.1.2",
"react-sticky-el": "^2.0.9",
"remark-frontmatter": "^3.0.0",
Expand All @@ -69,7 +69,7 @@
},
"devDependencies": {
"@babel/eslint-plugin": "^7.19.1",
"@babel/plugin-syntax-jsx": "^7.18.6",
"@babel/plugin-syntax-jsx": "^7.22.5",
"babel-eslint": "^10.1.0",
"eslint": "^7.25.0",
"eslint-config-react-app": "^6.0.0",
Expand Down
Binary file added static/images/build/natural-composability.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
41 changes: 18 additions & 23 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -517,15 +517,10 @@
resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz"
integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==

"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
version "7.18.9"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.9.tgz#4b8aea3b069d8cb8a72cdfe28ddf5ceca695ef2f"
integrity sha512-aBXPT3bmtLryXaoJLyYPXPlSD4p1ld9aYeR+sJNOZjJJGiOpb+fKfh3NkcCu7J54nUJwCERPBExCCpyCOHnu/w==

"@babel/helper-plugin-utils@^7.20.2":
version "7.21.5"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.21.5.tgz#345f2377d05a720a4e5ecfa39cbf4474a4daed56"
integrity sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==
"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295"
integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==

"@babel/helper-remap-async-to-generator@^7.14.5":
version "7.14.5"
Expand Down Expand Up @@ -989,12 +984,12 @@
dependencies:
"@babel/helper-plugin-utils" "^7.10.4"

"@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.14.5", "@babel/plugin-syntax-jsx@^7.18.6":
version "7.18.6"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0"
integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==
"@babel/plugin-syntax-jsx@^7.12.13", "@babel/plugin-syntax-jsx@^7.14.5", "@babel/plugin-syntax-jsx@^7.22.5":
version "7.22.5"
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918"
integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==
dependencies:
"@babel/helper-plugin-utils" "^7.18.6"
"@babel/helper-plugin-utils" "^7.22.5"

"@babel/plugin-syntax-logical-assignment-operators@^7.10.4":
version "7.10.4"
Expand Down Expand Up @@ -7885,17 +7880,17 @@ gatsby-remark-responsive-iframe@^4.11.0:
lodash "^4.17.21"
unist-util-visit "^2.0.3"

gatsby-source-filesystem@^3.14.0:
version "3.14.0"
resolved "https://registry.yarnpkg.com/gatsby-source-filesystem/-/gatsby-source-filesystem-3.14.0.tgz#ae2b930091a932b33270cb9cc2d9caaf0abc1742"
integrity sha512-Gg5GGxiWXhjapWMYdXOGk7zp+ajYowS+xNmaDUkL1gH+IQLvE18XbvKh00B/HiFaHm4azJfS2QRrRI/mPTZX+w==
gatsby-source-filesystem@^3.15.0:
version "3.15.0"
resolved "https://registry.yarnpkg.com/gatsby-source-filesystem/-/gatsby-source-filesystem-3.15.0.tgz#2ecee63279d267e9cc324ad1cb5facf033a1cdd8"
integrity sha512-Th8AOeOryWrwgsApQkn7KnhGs6DFUQ/RXgOI+1gnBUGm5ym3Am8Zg8djgwiaiFUoB9dyVTgHF58rmJF47RgHZQ==
dependencies:
"@babel/runtime" "^7.15.4"
chokidar "^3.5.2"
fastq "^1.11.1"
file-type "^16.5.3"
fs-extra "^10.0.0"
gatsby-core-utils "^2.14.0"
gatsby-core-utils "^2.15.0"
got "^9.6.0"
md5-file "^5.0.0"
mime "^2.5.2"
Expand Down Expand Up @@ -12573,10 +12568,10 @@ react-refresh@^0.9.0:
resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.9.0.tgz"
integrity sha512-Gvzk7OZpiqKSkxsQvO/mbTN1poglhmAV7gR/DdIrRrSMXraRQQlfikRJOr3Nb9GTMPC5kof948Zy6jJZIFtDvQ==

react-select@^5.7.3:
version "5.7.3"
resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.7.3.tgz#fa0dc9a23cad6ff3871ad3829f6083a4b54961a2"
integrity sha512-z8i3NCuFFWL3w27xq92rBkVI2onT0jzIIPe480HlBjXJ3b5o6Q+Clp4ydyeKrj9DZZ3lrjawwLC5NGl0FSvUDg==
react-select@^5.8.0:
version "5.8.0"
resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.8.0.tgz#bd5c467a4df223f079dd720be9498076a3f085b5"
integrity sha512-TfjLDo58XrhP6VG5M/Mi56Us0Yt8X7xD6cDybC7yoRMUNm7BGO7qk8J0TLQOua/prb8vUOtsfnXZwfm30HGsAA==
dependencies:
"@babel/runtime" "^7.12.0"
"@emotion/cache" "^11.4.0"
Expand Down

0 comments on commit 89a4cb7

Please sign in to comment.