Update garden
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 58s

This commit is contained in:
thepaperpilot 2024-06-24 19:41:30 -05:00
parent 529765f7fe
commit bf4702d598
13 changed files with 106 additions and 66 deletions

2
Garden

@ -1 +1 @@
Subproject commit 309df25198ea46dc8fc6fe620eedaf0461c8e07f
Subproject commit 0f7c56ae8f966dd8d82f20b0653971f2d1fd8554

View file

@ -14,7 +14,7 @@ const pageData = useData();
<p>23 words, ~0 minute read. <span v-html="data[`site/${pageData.page.value.relativePath}`]" /></p>
<hr/>
> Referenced by: [Commune](/garden/commune/index.md), [The Small Web](/garden/the-small-web/index.md)
> Referenced by: [Commune](/garden/commune/index.md)
A theoretical chat system designed to solve the problems of transcribing branching conversations into linear timelines.

View file

@ -14,7 +14,7 @@ const pageData = useData();
<p>73 words, ~0 minute read. <span v-html="data[`site/${pageData.page.value.relativePath}`]" /></p>
<hr/>
> Referenced by: [Digital Gardens](/garden/digital-gardens/index.md), [Freeform vs Chronological Dichotomy](/garden/freeform-vs-chronological-dichotomy/index.md), [The Small Web](/garden/the-small-web/index.md)
> Referenced by: [Digital Gardens](/garden/digital-gardens/index.md), [Freeform vs Chronological Dichotomy](/garden/freeform-vs-chronological-dichotomy/index.md)
A collection of information that is tied to its creation or edit date

View file

@ -14,7 +14,7 @@ const pageData = useData();
<p>46 words, ~0 minute read. <span v-html="data[`site/${pageData.page.value.relativePath}`]" /></p>
<hr/>
> Referenced by: [Commune](/garden/commune/index.md), [Digital Gardens](/garden/digital-gardens/index.md), [Freeform vs Chronological Dichotomy](/garden/freeform-vs-chronological-dichotomy/index.md), [Garden-RSS](/garden/garden-rss/index.md), [The Small Web](/garden/the-small-web/index.md)
> Referenced by: [Commune](/garden/commune/index.md), [Digital Gardens](/garden/digital-gardens/index.md), [Freeform vs Chronological Dichotomy](/garden/freeform-vs-chronological-dichotomy/index.md), [Garden-RSS](/garden/garden-rss/index.md)
A collection of information that is not tied to when it was created or edited

View file

@ -14,6 +14,8 @@ const pageData = useData();
<p>251 words, ~1 minute read. <span v-html="data[`site/${pageData.page.value.relativePath}`]" /></p>
<hr/>
> Referenced by: [My Personal Website](/garden/my-personal-website/index.md)
This is a comprehensive guide to Incremental Games, a genre of video games. It will explore defining the genre, why it's appealing, and how to design and build your own incremental game. Along the way will be ~~interactive examples~~, snippets from other creators, and relevant material to contextualize everything.
> Note: This is an incomplete document. I want to keep adding opinions and opposing views from other incremental games developers, and add interactive examples to illustrate various points regarding game design and balancing. Consider this a living document - and see the changelog at the end.

View file

@ -14,7 +14,7 @@ const pageData = useData();
<p>20 words, ~0 minute read. <span v-html="data[`site/${pageData.page.value.relativePath}`]" /></p>
<hr/>
> Referenced by: [Federated Identity](/garden/federated-identity/index.md), [/now](/now/index), [Webrings](/garden/webrings/index.md)
> Referenced by: [Federated Identity](/garden/federated-identity/index.md), [My Personal Website](/garden/my-personal-website/index.md), [/now](/now/index), [Webrings](/garden/webrings/index.md)
> Tags: [My Projects](/garden/my-projects/index.md)

View file

@ -14,6 +14,6 @@ const pageData = useData();
<p>3 words, ~0 minute read. <span v-html="data[`site/${pageData.page.value.relativePath}`]" /></p>
<hr/>
> Referenced by: [Command Palettes](/garden/command-palettes/index.md), [This Knowledge Hub](/garden/this-knowledge-hub/index.md)
> Referenced by: [Command Palettes](/garden/command-palettes/index.md), [My Personal Website](/garden/my-personal-website/index.md), [This Knowledge Hub](/garden/this-knowledge-hub/index.md)
[Logseq](https://logseq.com) is an [Open Source](/garden/open-source/index.md) outlining software

View file

@ -11,9 +11,44 @@ import { useData } from 'vitepress';
const pageData = useData();
</script>
<h1 class="p-name">My Personal Website</h1>
<p>10 words, ~0 minute read. <span v-html="data[`site/${pageData.page.value.relativePath}`]" /></p>
<p>422 words, ~2 minute read. <span v-html="data[`site/${pageData.page.value.relativePath}`]" /></p>
<hr/>
> Referenced by: [The Small Web](/garden/the-small-web/index.md)
A [Personal Websites](/garden/the-small-web/index.md) for myself, available at https://thepaperpilot.org
## Tech Stack
I use [Logseq](/garden/logseq/index.md) to journal and collect my thoughts on various topics that interest me
- Seafile syncs my logseq files between my devices
- Git syncs my logseq files to a private repo on [Incremental Social](/garden/incremental-social/index.md) for purposes of version control and using as a submodule
- The seafile files and all repos on [Incremental Social](/garden/incremental-social/index.md) are independently backed up daily to backblaze
My logseq files are synced to a private git repo which is added as a submodule to [my website repo](https://code.incremental.social/thepaperpilot/pages)
A [Node.js script](https://code.incremental.social/thepaperpilot/pages/src/branch/master/build_garden.js) pre-processes my logseq files into markdown files in the `/garden` path of the website
- Converts all links and block references
- Adds lists of tags and references to pages
- Adds `<h1 />` titles, word counts, update commits, etc. to each page
- Moves the /now page to [/now](https://thepaperpilot.org/now) instead of /garden/now
- Copies some of the [Guide to Incrementals](/garden/guide-to-incrementals/index.md) pages to [/guide-to-incrementals](https://thepaperpilot.org/guide-to-incrementals/) so as to not break links made before the current site iteration
- Generates [/changelog](https://www.thepaperpilot.org/changelog/) and its RSS, Atom, and JSON feeds
- The outputs of the generation are NOT .gitignore'd, as I use the git log to determine which pages updated when
<span id="66757760-16ab-4777-976e-8bcbac053923"> - Commit information about when a file was last updated is added via a [data loader](https://vitepress.dev/guide/data-loading) because if it was added to the file directly, rebuilding the site would count as having updated every page, by updating each commit to the changes introduced last build</span>
[Vitepress](/garden/vitepress/index.md) builds a static site from the markdown files
- Includes a custom theme that makes the whole site paper-themed
- Includes some pages like the [homepage](https://thepaperpilot.org) and the [about me page](https://thepaperpilot.org/about) that require markup, thus don't make sense to maintain inside logseq
- The sidebar is generated from my favorited pages within Logseq
- Includes various static files, like copies of several of my games and a [robots.txt](https://www.thepaperpilot.org/robots.txt) (borrowed from [Tracy Durnell](https://tracydurnell.com/)'s [robots.txt](https://tracydurnell.com/robots.txt)) that blocks several crawlers specifically used for training AI models
Three.js is used to create the effect in the background
- Simplex noise gets used to adjust the opacity of a repeating SVG pattern
- Initially tried to use just SVG, which supports creating noise and using it as a mask, but it only does 2d noise and I need 2d slices of 3d noise
Microformats are used to markup the site for [The IndieWeb](/garden/the-small-web/index.md)
- The footer contains a minimal [h-card](https://microformats.org/wiki/h-card) with a link to my full profile
- Each garden page is an [h-entry](https://indieweb.org/h-entry), and the changelog an [h-feed](https://indieweb.org/h-feed)
- All my socials are added as [rel-me](https://indieweb.org/rel-me) links, and the profiles then link back to me (as rel-me links, if allowed by the platform)
- Together this can verify the owner of this website and those socials are the same person

View file

@ -19,14 +19,14 @@ const pageData = useData();
I like making games and tools!
## Games
<span id="665e3a7a-395f-4493-8f3a-482f136ea157"><h2>Games</h2></span>
- [Planar Pioneers](/garden/planar-pioneers/index.md) ([play](https://thepaperpilot.org/planar))
- [Advent Incremental](/garden/advent-incremental/index.md) ([play](https://thepaperpilot.org/advent))
- [Game Dev Tree](/garden/game-dev-tree/index.md) ([play](https://thepaperpilot.org/gamedevtree))
- [Dice Armor](/garden/dice-armor/index.md)
- [Capture the Citadel](/garden/capture-the-citadel/index.md)
- I have more you can find on [my Itch.io page](https://thepaperpilot.itch.io/)
- ... And several more in development! Most aren't going to have their own pages on here, but a long-term project of mine called [Kronos](/garden/kronos/index.md) is the exception!
- ... And several more in development! Most aren't going to have their own pages on here, but a long-term project of mine called [Kronos](/garden/kronos/index.md) is the exception!
## Tools (and other non-games)
- [Profectus](/garden/profectus/index.md)

View file

@ -14,7 +14,7 @@ const pageData = useData();
<p>45 words, ~0 minute read. <span v-html="data[`site/${pageData.page.value.relativePath}`]" /></p>
<hr/>
> Referenced by: [Digital Gardens](/garden/digital-gardens/index.md), [The Small Web](/garden/the-small-web/index.md)
> Referenced by: [Digital Gardens](/garden/digital-gardens/index.md)
The Cozy Web is an extension of the dark forest theory of the Internet

View file

@ -12,55 +12,80 @@ import { useData } from 'vitepress';
const pageData = useData();
</script>
<h1 class="p-name">The Small Web</h1>
<p>443 words, ~2 minute read. <span v-html="data[`site/${pageData.page.value.relativePath}`]" /></p>
<p>801 words, ~4 minute read. <span v-html="data[`site/${pageData.page.value.relativePath}`]" /></p>
<hr/>
> Referenced by: [/now](/now/index), [This Knowledge Hub](/garden/this-knowledge-hub/index.md)
Small personal websites created by individuals
- [My Personal Website](/garden/my-personal-website/index.md) is part of the small web
- A callback to how the web was before social media, which homogenized content
- These pages are diverse and typically won't have ads or marketers
- Comparable to [The Cozy Web](/garden/the-cozy-web/index.md) in that way
The small web (also known as the indie web, personal web, the web revival movement, and other terms) refers to small, personal, independent websites. It is seen as a direct alternative to the centralized and homogenized websites like X, Meta, and TikTok.
The small web as a whole is [Freeform](/garden/freeform/index.md)
- Individual sites may be [Chronological](/garden/chronological/index.md) still
- Individual sites link between each other in ways similar to wikis
- These can form [Webrings](/garden/webrings/index.md)
[My Personal Website](/garden/my-personal-website/index.md) is part of the small web!
## Motivation behind the small web
### The modern web is bad
The small web is, at its roots, a direct response to the issues with the modern web:
The modern web is dominated by a handful of large websites, sometimes referred to as the "corporate web". These websites limit personalization, how you can use the website, and are filled with ads, marketers, and influencers.
The corporate web is designed for consuming content created by a few large/popular creators. This manifests in the near-ubiquitous infinitely scrolling feed of algorithmically chosen posts, optimized to keep you on the site for as long as possible, to the detriment of society.
Websites this large are expensive and, due to Capitalism, must forever be making more money than before - which means if they're not growing users, they must grow how much money they're making per user. This process typically means corporate websites become worse for their users over time, and was coined as [Enshittification](https://pluralistic.net/2023/01/21/potemkin-ai/) by Cory Doctorow.
### The old web was good
In contrast to the above, the classic web was filled with many diverse sites that typically represented a single person or organization, who were able to fully tailor their site to what they wanted it to be. Websites would be more unique and interesting, since the creator would have full control over them. This also makes the whole web feel more personal and intimate, as you're looking at a closer representation of how someone chooses to portray themselves online, in a way a profile page on X or Meta cannot be.
There are still lessons we've learned over time that can apply to modern "small web" pages, like accessible design and how to be more inclusive.
### The small web is anti-corporate
Small static websites are very cheap to host, making anti-features like ads unnecessary and therefore rare. In general small websites are cheap enough to avoid needing to think about monetization entirely, let alone worrying about how to perpetually make more money. This lack of profit motive behind most small websites contributes to a culture of not just being "not corporate", but "anti-corporate".
In general, the corporate web seems to have values that align with those of authoritarianism - control, surveillance, and hierarchy, whereas the small web aligns with anarchist values - autonomy, cooperation, and egalitarianism.
### Further reading
These are videos and articles that continue expanding on the values and motivations behind the small web as an alternative to the corporate web:
- [What is the small web?](https://ar.al/2020/08/07/what-is-the-small-web/)
- [Reweirding the web](https://webdirections.org/blog/reweirding-the-web/)
- [The web has lost its soul](https://www.youtube.com/watch?v=00qwzmMrtok)
- [You should check out the indie web](https://www.youtube.com/watch?v=rTSEr0cRJY8)
## Browsing the small web
Follow [Webrings](/garden/webrings/index.md) or other links from known small websites
Follow [Webrings](/garden/webrings/index.md) or other links from known small websites.
[Marginalia](https://search.marginalia.nu) is a search engine for non-commercial content with a "random" button and filters for the small web explicitly (amongst other useful filters!)
The [Tildeverse](https://tildeverse.org/) contains a large set of personal websites.
- Pick one of the member sites, and they'll have a list of all their users, who each have a custom page. Some may also list most recently updated pages, which is a good way of filtering out default pages.
- You may also consider joining one of these communities. They're effectively shared Linux computers, with a focus on small tight knit communities as an alternative to social media. Great if you're interested in learning Linux and command line utilities!
## Building personal websites
[IndieWeb](https://indieweb.org/) contains various resources
- Their [building blocks](https://indieweb.org/Category:building-blocks) are standards people can use to help the small web connect with each other consistently
- They discourage the use of site builders or templates that end up making sites look too homogenized
<span id="665b6ac0-d3ca-41d8-9534-929ac2907c2e">Free hosting for static websites:</span>
- [Neocities](https://neocities.org)
- Also check out their tutorials to [Learn How to Make Websites!](https://neocities.org/tutorials)
- [Codeberg pages](https://codeberg.page) (and any other [pages-server](https://codeberg.org/Codeberg/pages-server) instance)
- Like on [Incremental Social](https://incremental.social/pages)!
- [Github pages](https://pages.github.com)
- [Weird](/garden/weird/index.md) (in development)
Other resources:
- [32-bit cafe](https://32bit.cafe/)
### [Streams](https://indieweb.org/stream)
[Microsub](https://indieweb.org/Microsub) is a proposed protocol to support this
- That way, people could use microsub clients to subscribe to multiple streams and get them in one feed
- Effectively a [Federated Social Media](/garden/fediverse/index.md) that works through personal websites
- Announce new posts using [WebSub](https://indieweb.org/WebSub)
[Microsub](https://indieweb.org/Microsub) is a proposed protocol to support hosting streams of content on personal websites in a way they can be consistently ingested by microsub clients. This way, people could subscribe to multiple streams on independent websites and get them in one feed. Through this, the indie web becomes a [Federated Social Media](/garden/fediverse/index.md).
This also allows your personal website to be the one source of truth for your posted content
- Effectively solves the problems described in [Hey Creators, Please Make Firehoses!](https://jonbell.medium.com/hey-creators-please-make-firehoses-8d0c48c075e4)
Streams also allow your personal website to be the one source of truth for your posted content, in a concept called [POSSE](https://indieweb.org/POSSE) - Publish (on your) Own Site, Syndicate Elsewhere (other social media sites). This would effectively solve the problems described in [Hey Creators, Please Make Firehoses!](https://jonbell.medium.com/hey-creators-please-make-firehoses-8d0c48c075e4)
Multiple streams can be hosted by one site/person so people can subscribe to the kind of content they're interested in
How viable would it be to include chat messages in a stream as well?
- Perhaps with [Chat Glue](/garden/chat-glue/index.md) you could link to specific branches I chatted in
Multiple streams can be hosted by one site/person so people can subscribe to the kind of content they're interested in.
### [Digital Gardens](/garden/digital-gardens/index.md)
@ -70,21 +95,3 @@ These sites may be useful to occasionally check up on rather than get notificati
### The future
[The Internet is a series of webs](https://aramzs.xyz/essays/the-internet-is-a-series-of-webs/) talks about transitioning from our current consolidated web back to the indie web
## Why people want the small web
There are tools these days that make making websites incredibly easy
- Back in the day geocities was pretty complicated but a lot of people managed to make pages there
- Neocities has an extensive page on [Learn How to Make Websites!](https://neocities.org/tutorials)
Hosting can be expensive, but static websites are cheap
- There are plenty of free options out there for hosting static websites
- Ideally you'd use some sort of system that is easily transferrable to other servers, and possibly even supports nomadic identities
- [Free hosting for static websites:](/garden/the-small-web/index.md#665b6ac0-d3ca-41d8-9534-929ac2907c2e)
- People are creative and love creating things
## Recommended videos about the small web
[The web has lost its soul](https://www.youtube.com/watch?v=00qwzmMrtok)
[You should check out the indie web](https://www.youtube.com/watch?v=rTSEr0cRJY8)

View file

@ -11,40 +11,36 @@ import { useData } from 'vitepress';
const pageData = useData();
</script>
<h1 class="p-name">Video Game Monetization</h1>
<p>123 words, ~1 minute read. <span v-html="data[`site/${pageData.page.value.relativePath}`]" /></p>
<p>250 words, ~1 minute read. <span v-html="data[`site/${pageData.page.value.relativePath}`]" /></p>
<hr/>
> Referenced by: [Life is Strange](/garden/life-is-strange/index.md)
## AAA games
Cost a lot of money to make, mostly due to the graphics arms race
They Clcost a lot of money to make, mostly due to the graphics arms race. The price required to make these games profitable would be much higher than the current price of AAA games.
The price required to make games that expensive earn the cost back would be much higher than the current price of AAA games
Graphics would not justify those higher prices, and AAA studios know this
Techniques AAA games use to make more money without raising the base price:
Graphics would not justify significantly higher prices, and AAA studios know this. So instead they use the techniques to make more money without raising the base price:
- Premium Editions
- [MTX](/garden/mtx/index.md)
- [Pre-Order Bonuses](/garden/pre-order-bonuses/index.md)
## Free-to-play games
Typically utilize [MTX](/garden/mtx/index.md) and ads in order to profit
Typically utilize [MTX](/garden/mtx/index.md) and ads in order to profit. Often extreme cases of designing games to compell players to spend money.
## Indie developers
Trying to make a sustainable living is hard
The industry is packed with lots of competition
I don't blame them for their monetization
Trying to make a sustainable living as an indie developer is hard. The industry is packed with lots of competition, and drive prices people are willing to pay very low. Therefore, I don't blame indies for their monetization strategies, even if I consider them unethical or tainting the game design.
## Ethical game monetization
Requirements:
- Free demo
- Paid base game
- No MTX
- Paid content expansions
- No [MTX](/garden/mtx/index.md)
- Paid content expansions
The goal of the above is to allow players to determine if they enjoy the game without putting money down, and to ensure the game design cannot be tainted by the monetization.
I think having the gameplay affected by transactions of any kind taints the game design. This is a particularly controversial take in the context of communal benefits (e.g. one person donates and all players get a 2x buff for an hour, or a persistent buff based on number of patrons), which are generally seen as ethical.

View file

@ -14,6 +14,6 @@ const pageData = useData();
<p>4 words, ~0 minute read. <span v-html="data[`site/${pageData.page.value.relativePath}`]" /></p>
<hr/>
> Referenced by: [This Knowledge Hub](/garden/this-knowledge-hub/index.md)
> Referenced by: [My Personal Website](/garden/my-personal-website/index.md), [This Knowledge Hub](/garden/this-knowledge-hub/index.md)
[Vitepress](https://vitepress.dev) is an [Open Source](/garden/open-source/index.md) static site generator