+
> Tags: [My Projects](/garden/my-projects/index.md)
@@ -14,4 +21,4 @@ A 3D VR re-envisioning of a Slay the Spire-style game by Anthony Lawn and Grant
For more details, visit [Grant's page on the game](https://grantcbarbee.github.io/conquer-the-citadel.html).
-![screenshot.png](/garden/screenshot_1717381273245_0.png)
\ No newline at end of file
+
\ No newline at end of file
diff --git a/site/garden/chat-glue/index.md b/site/garden/chat-glue/index.md
index c3e910b0..11fa2828 100644
--- a/site/garden/chat-glue/index.md
+++ b/site/garden/chat-glue/index.md
@@ -5,7 +5,14 @@ title: "Chat Glue"
prev: false
next: false
---
-# Chat Glue
+
+
+
> Referenced by: [Babble Buds](/garden/babble-buds/index.md)
@@ -18,39 +25,39 @@ Dice Armor is a game that started development as a semester-long project by a te
The build available here was created for showing off at the end of the semester, and as such has some buttons present to make the game easier to skip parts of the game to see all the content: You start with all the dice in the game already in the shop, there's a button to give yourself free money to buy these dice with, and in the duel, there are buttons to force a win or a loss, which can be used to skip the tutorial (not recommended for first-time players).
-![Tutorial](/garden/da2_1717378483173_0.png)
+
Dice Armor is a dice dueling game. Players can use abilities, flip dice, and attack each other to win in a dice game that puts chance into the hands of the players. This is what the dueling scene looks like, with a tutorial cutscene happening on top to guide the player through the basics. Also, all the dice are constructed dynamically, using quaternion math to figure out the placement of each component relative to the face it is going on. The die in the middle has one of the player' and opponents' portraits on each of its sides.
-![Editors](/garden/editors_1717378509527_0.png)
+
For many of the objects I've created, I've made scriptable objects so that game designers can add and modify them easily. Additionally, I would create custom inspectors for the objects to help make them as easy to understand and edit as possible. The opponent's artificial intelligence is made up of many strategies, in a prioritized list. When it is the opponents' turn they go through each strategy and check if they can be run, and if so then the opponent performs the strategy and starts back over at the top of the list of strategies. The + sign under the list of strategies opens an organized dropdown of all the various strategies.
-![Simulator](/garden/simulator_1717378525890_0.jpg)
+
In addition to custom inspector code, I've created new tools for the editor for our game designers to use. This is a duel simulator that will take two opponents and simulate an arbitrary number of duels between them, and output the results and summarize them for you, much much quicker than manually going through the duels, even with an absurdly high timeScale. This will become incredibly useful in making balance changes and testing new dice against existing sets. This is a screenshot of it in edit mode, but in play mode it removes the "Dueling Managers" field and will use whatever the current duel balance settings are, allowing for the GDs to test freely in play mode without worrying about undoing all their changes afterward.
-![da1.png](/garden/da1_1717378469912_0.png)
+
I created the Babble Buds puppet editor and ported the rendering library I wrote for it to C# so it could be used in Unity. Dice Armor has a full campaign using cutscenes made using the Babble Buds cutscene editor, taking advantage of its support for custom commands and fields to control things like talking, giving the player dice and money, starting duels, and controlling player progression through the story.
-![Action Wheel](/garden/da6_1717379962786_0.png)
+
When a cutscene ends, its final command is to either start a duel or set the next cutscene in the story. In the latter case, there is an additional field for what to call the next cutscene, and what location it takes place. The cutscene is then added to the player's save file, and when they visit the city locations are greyed out until they have at least one action to do there. Each location has a dynamically populated action wheel with a custom range of acceptable angles.
-![Shop](/garden/da7_1717379991458_0.png)
+
The dice shop is dynamically populated by a list of dice available to the player, which can be changed during cutscenes, and is checked against the dice owned by the player to generate sold-out indicators. On the left, the player can choose to filter the options down to a single dice effect, which also updates the "Buy All" button to buy only all the dice in the current filter.
-![Inventory](/garden/da8_1717380011914_0.png)
+
The inventory works most the same as the shop, but for equipping dice. It also allows you to drag individual dice or entire sets to the equipped dice glyph. While dragging it will highlight all the slots the new dice will be equipped into.
-![Dice Rolling](/garden/da3_1717380046653_0.png)
+
The dice rolling uses the physics engine and detects once the dice have stopped moving, then determines which side is face up based on which of the normals is closest to straight up. It flags the die as cocked if that smallest angle is above a threshold. The dice sink into the table when not rolling to not interfere with any dice that are rolling.
-![Missile Storm](/garden/da9_1717380177060_0.png)
+
During certain events like winning the game or having the face of a die broken, the players' portraits will flash an emotion for a second. After winning, a random living die from the winning player is chosen to play their "finisher move", a flashy and dramatic effect to end the game. Shown is the arcane mechana's finisher, "Missile Storm".
diff --git a/site/garden/digital-gardens/index.md b/site/garden/digital-gardens/index.md
index 2971187d..f13e2eea 100644
--- a/site/garden/digital-gardens/index.md
+++ b/site/garden/digital-gardens/index.md
@@ -6,7 +6,14 @@ title: "Digital Gardens"
prev: false
next: false
---
-# Digital Gardens
+
+
+
> Referenced by: [Freeform](/garden/freeform/index.md), [The Small Web](/garden/the-small-web/index.md), [This Knowledge Hub](/garden/this-knowledge-hub/index.md)
diff --git a/site/garden/guide-to-incrementals/appeal-to-developers/index.md b/site/garden/guide-to-incrementals/appeal-to-developers/index.md
index f37eb96c..7fc5865f 100644
--- a/site/garden/guide-to-incrementals/appeal-to-developers/index.md
+++ b/site/garden/guide-to-incrementals/appeal-to-developers/index.md
@@ -1,11 +1,18 @@
---
public: "true"
-slug: "guide-to-incrementals/appeal-to-developers"
-title: "Guide to Incrementals/Appeal to Developers"
+slug: "guide-to-incrementals___appeal-to-developers"
+title: "Guide to Incrementals___Appeal to Developers"
prev: false
next: false
---
-# Guide to Incrementals/Appeal to Developers
+
+
Guide to Incrementals___Appeal to Developers
+
636 words, ~3 minute read.
+
There are a lot of developers in the incremental games community - the genre seems to draw them in, and convert a lot of players _into_ developers. Let's explore the reasons why this genre appeals to developers.
diff --git a/site/garden/guide-to-incrementals/appeal-to-players/index.md b/site/garden/guide-to-incrementals/appeal-to-players/index.md
index 65ae2df4..d5d42dae 100644
--- a/site/garden/guide-to-incrementals/appeal-to-players/index.md
+++ b/site/garden/guide-to-incrementals/appeal-to-players/index.md
@@ -1,11 +1,18 @@
---
public: "true"
-slug: "guide-to-incrementals/appeal-to-players"
-title: "Guide to Incrementals/Appeal to Players"
+slug: "guide-to-incrementals___appeal-to-players"
+title: "Guide to Incrementals___Appeal to Players"
prev: false
next: false
---
-# Guide to Incrementals/Appeal to Players
+
+
Guide to Incrementals___Appeal to Players
+
2400 words, ~13 minute read.
+
This is something that has been discussed and analyzed by many people, and to some extent, I feel like everything that can be said on the topic already has. However, a lot of these analyses are from the perspective of those with not as much experience and involvement within the genre as I'd argue would be necessary for a fully contextualized answer. I recently watched a video about Vampire Survivors, which has since been taken down due to drawing negative attention, which made me think about some interesting arguments about what games _are_, and what makes them _good_. The video's argument that "Vampire Survivors is not a video game" mirrors a claim by the developer of Cookie Clicker that his games are ["non-games"](https://www.polygon.com/2013/9/30/4786780/the-cult-of-the-cookie-clicker-when-is-a-game-not-a-game). Using Vampire Survivors and the video made on it as a framework, I'll be answering why incremental games appeal to players. Since the video has been taken down, I'll do my best to contextualize and generalize the arguments of the video without requiring the reader to watch it. For what it's worth, while I disagreed with the video I actually liked a lot of the way it went about thinking about games, and I consider this a continuation of that discussion.
diff --git a/site/garden/guide-to-incrementals/defining-the-genre/index.md b/site/garden/guide-to-incrementals/defining-the-genre/index.md
index fb92f4cf..9229e803 100644
--- a/site/garden/guide-to-incrementals/defining-the-genre/index.md
+++ b/site/garden/guide-to-incrementals/defining-the-genre/index.md
@@ -1,11 +1,18 @@
---
public: "true"
-slug: "guide-to-incrementals/defining-the-genre"
-title: "Guide to Incrementals/Defining the Genre"
+slug: "guide-to-incrementals___defining-the-genre"
+title: "Guide to Incrementals___Defining the Genre"
prev: false
next: false
---
-# Guide to Incrementals/Defining the Genre
+
+
Guide to Incrementals___Defining the Genre
+
3429 words, ~19 minute read.
+
Video games are placed into genres for a variety of reasons. They can give a mental shorthand to set the player's expectations up, they can help a game market itself by its similarities to other, already popular games, and honestly, people just love categorization for its own sake. For this guide, it's important to define the genre so it is clear what games it's even talking about.
diff --git a/site/garden/guide-to-incrementals/index.md b/site/garden/guide-to-incrementals/index.md
index a0fe55db..04690c34 100644
--- a/site/garden/guide-to-incrementals/index.md
+++ b/site/garden/guide-to-incrementals/index.md
@@ -5,7 +5,14 @@ title: "Guide to Incrementals"
prev: false
next: false
---
-# Guide to Incrementals
+
+
Guide to Incrementals
+
251 words, ~1 minute read.
+
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.
diff --git a/site/garden/guide-to-incrementals/navigating-criticism/index.md b/site/garden/guide-to-incrementals/navigating-criticism/index.md
index b99118d8..b310700e 100644
--- a/site/garden/guide-to-incrementals/navigating-criticism/index.md
+++ b/site/garden/guide-to-incrementals/navigating-criticism/index.md
@@ -1,11 +1,18 @@
---
public: "true"
-slug: "guide-to-incrementals/navigating-criticism"
-title: "Guide to Incrementals/Navigating Criticism"
+slug: "guide-to-incrementals___navigating-criticism"
+title: "Guide to Incrementals___Navigating Criticism"
prev: false
next: false
---
-# Guide to Incrementals/Navigating Criticism
+
+
Guide to Incrementals___Navigating Criticism
+
747 words, ~4 minute read.
+
Developing games is fun and exciting and teaches a lot of wonderful skills - I enthusiastically encourage anyone with an interest in game development to try it out - and incremental games are a wonderful way to get started. However, there are many challenges young and inexperienced developers have to face, and I think the hardest one - harder than coding, debugging, balancing, etc. - is handling criticism. When you put your heart and soul into a game it is natural to feel very vulnerable. While I think there's a lot communities can do to ensure they're welcoming, positive and constructive with their criticisms, inevitably you will eventually read some, and potentially a lot, of comments that can deeply affect you. No one is immune to this, from young incremental game developers to the largest content creators you can think of. That's why it's important to be able to process and navigate criticism, because ultimately collecting feedback is essential to the journey to becoming a better developer. On this page, we'll explore how to embrace criticism, grow from it, and continue to post your games publicly with confidence.
diff --git a/site/garden/guide-to-incrementals/what-is-content/index.md b/site/garden/guide-to-incrementals/what-is-content/index.md
index c141cd8f..c4911083 100644
--- a/site/garden/guide-to-incrementals/what-is-content/index.md
+++ b/site/garden/guide-to-incrementals/what-is-content/index.md
@@ -1,11 +1,18 @@
---
public: "true"
-slug: "guide-to-incrementals/what-is-content-"
-title: "Guide to Incrementals/What is Content?"
+slug: "guide-to-incrementals___what-is-content-"
+title: "Guide to Incrementals___What is Content?"
prev: false
next: false
---
-# Guide to Incrementals/What is Content?
+
+
Guide to Incrementals___What is Content?
+
2092 words, ~11 minute read.
+
If you've been in the incremental games community for any amount of time, you'll quickly find the number one thing players want is _content_. They want as much of it as possible! The most popular incremental games have tons of content, so they just keep stretching on and on and on, introducing mechanic after mechanic, and players love it. In fact, players seem to value the _amount_ of content over the quality of any _specific_ content. However, there's a bit of a lack of understanding concerning _what_ content is, and I'd like to explore what counts as content, and how we measure it. As a baseline definition, I think "content" can just be described as the parts of the game that engage the player, but to truly understand it we need to contextualize what that means and how it affects the gameplay experience.
diff --git a/site/garden/incremental-social/index.md b/site/garden/incremental-social/index.md
index a46bc314..15b66018 100644
--- a/site/garden/incremental-social/index.md
+++ b/site/garden/incremental-social/index.md
@@ -5,7 +5,14 @@ title: "Incremental Social"
prev: false
next: false
---
-# Incremental Social
+
+
+
> Referenced by: [V-ecs](/garden/v-ecs/index.md)
diff --git a/site/garden/life-is-strange/index.md b/site/garden/life-is-strange/index.md
index d18f4c4f..04c37d86 100644
--- a/site/garden/life-is-strange/index.md
+++ b/site/garden/life-is-strange/index.md
@@ -5,7 +5,14 @@ title: "Life is Strange"
prev: false
next: false
---
-# Life is Strange
+
+
Life is Strange
+
654 words, ~4 minute read.
+
A series of narrative driven video games with a focus on player choices
@@ -17,8 +24,8 @@ Playthroughs I enjoyed:
- [Laura Kate](https://www.youtube.com/playlist?list=PLD0NeEbRY7VR3Vl35qtQyexV9edtlkODU)
- [Jesse and Dodger](https://www.youtube.com/playlist?list=PLFx-KViPXIkFWTwFCBku5KNgv_rsmPh-r)
- I got a shirt they made for this series signed by Jesse at PAX South 2017
- - ![6346b024-885e-45e0-9df6-5ee0311133f7.png](/garden/6346b024-885e-45e0-9df6-5ee0311133f7_1718332409063_0.png)
- - ![ce7b2612-2ddb-423e-82eb-95c2ed08c4da.png](/garden/ce7b2612-2ddb-423e-82eb-95c2ed08c4da_1718332277410_0.png)
+ -
+ -
- [LiS Voice Actors](https://www.youtube.com/watch?v=zvQmqdnFkZA)
Around the start of Haley and I's relationship, we'd play through LiS1 on projectors in our's classrooms
diff --git a/site/garden/logseq/index.md b/site/garden/logseq/index.md
index 9d412014..8c7fcbba 100644
--- a/site/garden/logseq/index.md
+++ b/site/garden/logseq/index.md
@@ -5,7 +5,14 @@ title: "Logseq"
prev: false
next: false
---
-# Logseq
+
+
+
> Tags: [My Projects](/garden/my-projects/index.md)
@@ -16,7 +23,7 @@ In college I continued development on the Opti-Speech project, originally built
The Optispeech project involves designing and testing a real-time tongue model that can be viewed in a transparent head while a subject talks — for the purposes of treating speech errors and teaching foreign language sounds. This work has been conducted in partnership with Vulintus and with support from the National Institutes of Health (NIH).
-![system-architecture-600.jpg](/garden/system-architecture-600_1717384793933_0.jpg)
+
@@ -30,10 +37,10 @@ This video shows an American talker learning a novel sound not found in English.
As the sole programmer at UT Dallas Speech Production Lab at the time, my changes involved updating to a more modern version of Unity, improving the interface, in general cleaning up tech debt so it can more easily support new features, and added support for additional EMA systems, namely the Carstens AG501.
-![new-interface.png](/garden/new-interface_1717384734845_0.png)
+
In addition, the program now includes documentation and unit tests to improve program stability and maintainability going forward.
-![documentation.png](/garden/documentation_1717384823218_0.png)
+
-![unittests.png](/garden/unittests_1717384825666_0.png)
\ No newline at end of file
+
\ No newline at end of file
diff --git a/site/garden/planar-pioneers/index.md b/site/garden/planar-pioneers/index.md
index fb152914..12be7561 100644
--- a/site/garden/planar-pioneers/index.md
+++ b/site/garden/planar-pioneers/index.md
@@ -6,7 +6,14 @@ title: "Planar Pioneers"
prev: false
next: false
---
-# Planar Pioneers
+
+
+
> Tags: [Davey Wreden](/garden/davey-wreden/index.md)
diff --git a/site/garden/the-cozy-web/index.md b/site/garden/the-cozy-web/index.md
index e9f788b5..424b0dfb 100644
--- a/site/garden/the-cozy-web/index.md
+++ b/site/garden/the-cozy-web/index.md
@@ -5,7 +5,14 @@ title: "The Cozy Web"
prev: false
next: false
---
-# The Cozy Web
+
+
The Cozy Web
+
45 words, ~0 minute read.
+
> Referenced by: [Digital Gardens](/garden/digital-gardens/index.md), [The Small Web](/garden/the-small-web/index.md)
diff --git a/site/garden/the-indieweb/amplification/index.md b/site/garden/the-indieweb/amplification/index.md
index 01d302eb..7241e596 100644
--- a/site/garden/the-indieweb/amplification/index.md
+++ b/site/garden/the-indieweb/amplification/index.md
@@ -1,11 +1,18 @@
---
public: "true"
-slug: "the-indieweb/amplification"
-title: "The IndieWeb/Amplification"
+slug: "the-indieweb___amplification"
+title: "The IndieWeb___Amplification"
prev: false
next: false
---
-# The IndieWeb/Amplification
+
+
The IndieWeb___Amplification
+
57 words, ~0 minute read.
+
Refers to reblogging (and re-hosting, sometimes) of someone else's content on your own site
diff --git a/site/garden/the-indieweb/signature-blocks/index.md b/site/garden/the-indieweb/signature-blocks/index.md
index 95bffa12..5000906d 100644
--- a/site/garden/the-indieweb/signature-blocks/index.md
+++ b/site/garden/the-indieweb/signature-blocks/index.md
@@ -1,10 +1,17 @@
---
public: "true"
-slug: "the-indieweb/signature-blocks"
-title: "The IndieWeb/Signature Blocks"
+slug: "the-indieweb___signature-blocks"
+title: "The IndieWeb___Signature Blocks"
prev: false
next: false
---
-# The IndieWeb/Signature Blocks
+
+
The IndieWeb___Signature Blocks
+
14 words, ~0 minute read.
+
A proposal I want to write for posting signed content on your [IndieWeb](/garden/the-small-web/index.md) website
diff --git a/site/garden/the-small-web/index.md b/site/garden/the-small-web/index.md
index a205f633..8ee6593e 100644
--- a/site/garden/the-small-web/index.md
+++ b/site/garden/the-small-web/index.md
@@ -6,7 +6,14 @@ title: "The Small Web"
prev: false
next: false
---
-# The Small Web
+
+
+
> Tags: [My Projects](/garden/my-projects/index.md)
-![screenshot.png](/garden/screenshot_1717383987886_0.png)
+
V-ecs (pronounced "Vex") is a Vulkan-based engine I made for making highly moddable games and tools in Lua centered around the ECS design pattern and a work-stealing job system.
The engine works with "worlds", which are collections of systems and renderers. The engine comes with several worlds using systems and renderers I made, including a voxel world, an incremental game, and some test scenes. All of these include systems to render the fps as well as show a debug console by typing the grave key (\`). The default world is a title screen that detects any worlds in the "worlds" folder and displays a button for each of them.
-![debug.png](/garden/debug_1717384018620_0.png)
+
The original plans were to eventually put it on the steam workshop so people could more easily share their creations amongst each other, but I never became happy enough with the performance of the engine - the parallelization of the lua code involved a lot of overhead that severely limited performance.
Instead, I made a couple of worlds by myself - an infinite procedurally generated voxel world, a simple incremental game, and a more complex incremental game I call "[Sands of Time](https://thepaperpilot.itch.io/sands-of-time)".
-![sandsoftime.png](/garden/sandsoftime_1717383994964_0.png)
+
The gameplay of Sands of Time was replicated in [Kronos](/garden/kronos/index.md) Chapter 2!
\ No newline at end of file
diff --git a/site/garden/video-game-monetization/index.md b/site/garden/video-game-monetization/index.md
index 9c46aed2..96b39299 100644
--- a/site/garden/video-game-monetization/index.md
+++ b/site/garden/video-game-monetization/index.md
@@ -5,7 +5,14 @@ title: "Video Game Monetization"
prev: false
next: false
---
-# Video Game Monetization
+
+