Talk Devy To Me: Veils of Fate with Troy Chaplin ![rw-book-cover](https://i.ytimg.com/vi/9uG6DzaRKDM/maxresdefault.jpg) ๐Ÿ”— **Source:** [Talk Devy To Me: Veils of Fate with Troy Chaplin](https://www.youtube.com/watch?v=9uG6DzaRKDM&rw_yt_language=en) > [!note]+ Document Notes > tags: #wordpress #interactivity-api #text-adventure #game-development #choose-your-own-adventure #php #react #ai-development #post-types #custom-blocks > author: Ryan Welcher > source: Twitch Stream > reference: https://www.youtube.com/watch?v=9uG6DzaRKDM > date created: 2024-12-19 11:15 > > # ๐Ÿท๏ธ Title: Talk Devy To Me: Veils of Fate with Troy Chaplin > <!-- deep-read:sections start --> ## ๐Ÿงฐ Action Inbox - [H1] Explore interactivity API router package for single-page app navigation โ€” could improve user experience and scene continuation #wordpress - [H2] Research WordPress AI skills for Claude to enhance development workflow โ€” mentioned AI assistance tools #ai-development - [H3] Implement progress tracking for continuing quests from specific scenes โ€” current bug preventing proper quest continuation #game-development ## ๐Ÿงญ Table of Contents - [[#๐Ÿ“ Summary]] - [[#๐Ÿ“– Main Content]] - [[#๐Ÿ—’๏ธ Notes]] - [[#๐Ÿ“š References]] - [[#๐Ÿ—ฃ๏ธ Paraphrase]] - [[#๐Ÿ“ฐ Newsletter]] - [[#โœ… Action Items]] - [[#๐Ÿงช Hypotheses]] - [[#๐Ÿ“Š Methodology]] - [[#โ“ Questions]] - [[#๐Ÿ”ฎ Future Research]] - [[#๐Ÿ’ก Implications]] - [[#๐Ÿง  Learning Styles Assessment]] - [[#๐Ÿ“Š Accessibility Assessment]] - [[#๐ŸŒ DEIB Assessment]] - [[#โœ… Logical Validity]] - [[#๐Ÿ›ก๏ธ DARVO Analysis]] - [[#๐ŸŽฏ Conclusion]] ### ๐Ÿ”— References - [Veils of Fate Game Demo](https://www.youtube.com/watch?v=9uG6DzaRKDM) - [WordPress Interactivity API Documentation](https://developer.wordpress.org/block-editor/reference-guides/interactivity-api/) ## ๐Ÿ“ Summary - Troy Chaplin demonstrates his WordPress-based text adventure game "Veils of Fate" built with the Interactivity API - Game features a sophisticated architecture with campaigns, quests, and scenes using custom post types and taxonomies - Heavily leveraged AI (Claude) for development while learning the Interactivity API through reverse engineering - Complex data structure allows for branching narratives, character creation, and progress tracking - Built as a learning project to explore WordPress Interactivity API capabilities and AI-assisted development ## ๐Ÿ“– Main Content Troy Chaplin showcases "Veils of Fate," a choose-your-own-adventure text game built entirely within WordPress using the Interactivity API. The project represents an innovative approach to game development within the WordPress ecosystem, combining traditional storytelling mechanics with modern web technologies. The game's architecture consists of three hierarchical levels: campaigns contain multiple quests, which contain multiple scenes (individual story pages). This structure mirrors classic choose-your-own-adventure books where readers make choices that determine their path through the story. Key technical innovations include custom post types for campaigns, quests, and scenes, with taxonomies linking them together. The Interactivity API handles real-time navigation without page reloads, creating a smooth single-page application experience. Character creation includes race/class selection with automatically generated RPG-style stats. Troy's development approach was unconventionalโ€”he used AI extensively to write code first, planning to learn the underlying mechanics afterward. This "vibe coding" experiment demonstrates how AI can accelerate prototyping while creating opportunities for deeper learning through reverse engineering. ## ๐Ÿ—’๏ธ Notes #### โฑ๏ธ [00:00](https://youtu.be/9uG6DzaRKDM?t=0) โ€” [H1] Introduction to Veils of Fate - Key idea: Text-based choose-your-own-adventure game built with WordPress Interactivity API - Evidence: "This is a text-based choose your own adventure game... inspired by books from our childhood" #### โฑ๏ธ [05:30](https://youtu.be/9uG6DzaRKDM?t=330) โ€” [H2] Game Architecture Overview - Key idea: Three-tier structure of campaigns, quests, and scenes mirrors traditional adventure books - Evidence: "Campaigns contain quests, quests contain scenes... like pages in the old books" #### โฑ๏ธ [12:45](https://youtu.be/9uG6DzaRKDM?t=765) โ€” [H1] AI-Driven Development Approach - Key idea: Used Claude AI extensively for coding while planning to learn mechanics afterward - Evidence: "This is the first project for me where I sort of let AI sort of take control on a lot of the stuff" #### โฑ๏ธ [18:20](https://youtu.be/9uG6DzaRKDM?t=1100) โ€” [H3] Theme Creation with Miles AI - Key idea: Used Miles AI beta for generating the game's WordPress theme - Evidence: "I've been fortunate enough to be a part of the Miles AI beta testing program from Andy Peline" #### โฑ๏ธ [25:15](https://youtu.be/9uG6DzaRKDM?t=1515) โ€” [H2] Character Creation System - Key idea: Players create characters with race, class, and auto-generated RPG stats - Evidence: "You can choose an elf... be a necromancer... get some stats with a total of 24" #### โฑ๏ธ [32:40](https://youtu.be/9uG6DzaRKDM?t=1960) โ€” [H1] Progress Tracking Implementation - Key idea: Game tracks player progress but has bugs with quest continuation - Evidence: "I am tracking this based on ID... need to figure out how a player can pick up where they left off" #### โฑ๏ธ [38:50](https://youtu.be/9uG6DzaRKDM?t=2330) โ€” [H3] Multiple Character Support - Key idea: Players can create multiple characters for different playthroughs - Evidence: "The ability to create more than one character... maybe play as Paladin and do the paladin quest line" #### โฑ๏ธ [45:30](https://youtu.be/9uG6DzaRKDM?t=2730) โ€” [H2] Custom Post Types Structure - Key idea: Campaigns, quests, and scenes are separate post types linked by taxonomies - Evidence: "Campaigns get automatic... titles synced into a campaign taxonomy" #### โฑ๏ธ [52:10](https://youtu.be/9uG6DzaRKDM?t=3130) โ€” [H1] Quest Editor Functionality - Key idea: Visual quest builder allows drag-and-drop scene ordering and choice creation - Evidence: "I can drag this around, set the order of how the scenes would be... turn on any of these that I want" #### โฑ๏ธ [58:45](https://youtu.be/9uG6DzaRKDM?t=3525) โ€” [H3] Scene Prerequisites and Requirements - Key idea: Scenes can have prerequisites preventing access until conditions are met - Evidence: "You can give your scene some prerequisites... can't visit until they visit scene A" #### โฑ๏ธ [65:20](https://youtu.be/9uG6DzaRKDM?t=3920) โ€” [H2] Interactivity API Implementation - Key idea: Uses Interactivity API for seamless navigation without page reloads - Evidence: "The interactivity API came in really handy... not loading new pages... just quickly reloads" #### โฑ๏ธ [72:15](https://youtu.be/9uG6DzaRKDM?t=4335) โ€” [H1] Data Flow and State Management - Key idea: Game state stored in post meta and endpoints, managed through Interactivity API - Evidence: "A lot of stuff is being set in post meta... grabbing all of the data from our endpoint" #### โฑ๏ธ [78:30](https://youtu.be/9uG6DzaRKDM?t=4710) โ€” [H3] Future Enhancement Plans - Key idea: Plans for boss battles, class-specific quests, and expanded RPG mechanics - Evidence: "I want to build boss battles... class or race-based quests... necromancer won't do what a paladin does" ## ๐Ÿ“š References - [WordPress Interactivity API Documentation](https://developer.wordpress.org/block-editor/reference-guides/interactivity-api/) - [Miles AI Theme Builder](https://miles.wp.ai/) - [Claude AI Development Assistant](https://claude.ai/) - [WordPress AI Skills for Claude](https://github.com/wpai/wordpress-ai-skills) ## ๐Ÿ—ฃ๏ธ Paraphrase - Troy built a sophisticated text adventure game within WordPress using modern web technologies, specifically the Interactivity API for seamless user interactions - The development process was experimental, using AI to generate code first and planning to learn the underlying mechanics through reverse engineering afterward - The game's architecture cleverly uses WordPress's built-in systems (custom post types, taxonomies, meta fields) to create complex gaming mechanics like branching narratives and character progression ## ๐Ÿ“ฐ Newsletter **Building Games with WordPress: The Interactivity API Unlocks New Possibilities** Troy Chaplin's "Veils of Fate" demonstrates how WordPress has evolved beyond traditional content management into a platform for interactive applications. Using the Interactivity API, he created a full-featured text adventure game with character creation, branching storylines, and progress trackingโ€”all without leaving WordPress. The project showcases innovative uses of familiar WordPress features: custom post types become game entities, taxonomies link story elements, and the block editor becomes a visual game development tool. For developers, it's an inspiring example of pushing WordPress boundaries while maintaining its core strengths. Key takeaway: The Interactivity API isn't just for enhancing websitesโ€”it's opening doors to entirely new categories of WordPress applications. Resources: [Learn WordPress](https://learn.wordpress.org/), [Developer Docs](https://developer.wordpress.org/), [WP-CLI](https://wp-cli.org/) ## โœ… Action Items #### WordPress - Core: Explore Interactivity API capabilities for complex application development - Documentation: Create examples of Interactivity API usage beyond simple interactions - Community: Share innovative WordPress applications to inspire developers #### DevRel - Education: Develop workshops on building interactive applications with WordPress - Developer experience: Improve Interactivity API documentation with game development examples - Community management: Highlight creative WordPress projects in developer showcases ## ๐Ÿงช Hypotheses - The Interactivity API can support complex application logic traditionally requiring separate JavaScript frameworks - AI-assisted development can accelerate prototyping while creating learning opportunities through reverse engineering - WordPress's content management features (post types, taxonomies) can effectively model game mechanics and data structures - Choose-your-own-adventure games can serve as accessible entry points for learning complex web development concepts ### ๐Ÿ“Š Methodology - Case study analysis of Veils of Fate's architecture and implementation patterns - Code review comparing Interactivity API usage with traditional React/Vue approaches - User testing of game mechanics and WordPress admin experience for content creators ### โ“ Questions - How can the Interactivity API router improve single-page application experiences in WordPress? - What are the performance implications of complex state management through the Interactivity API? - Could this architectural approach scale to multiplayer or real-time gaming applications? ### ๐Ÿ”ฎ Future Research - Performance benchmarking of Interactivity API applications vs traditional SPAs - Developer experience studies comparing AI-assisted vs traditional learning approaches - Exploration of WordPress as a platform for educational game development ### ๐Ÿ’ก Implications - Practice: WordPress developers can build sophisticated applications without external frameworks - Policy: Need for expanded Interactivity API documentation and learning resources - Education: Demonstrates potential for gamified learning experiences within WordPress - Funding: Innovative WordPress projects could attract new developer communities and use cases ### ๐Ÿง  Learning Styles Assessment Reading level estimate: Grade 10 #### ๐Ÿ‘€ Visual learners - Present: Screen recordings of game interface, code demonstrations, visual file structure - Improve: Architecture diagrams showing data relationships, flowcharts of user journey #### ๐Ÿ”Š Aural learners - Present: Live coding explanation, conversational format, step-by-step verbal walkthrough - Improve: Audio summary of key concepts, podcast-style recap #### ๐Ÿ—ฃ๏ธ Verbal learners - Present: Technical terminology explained, analogies to traditional book formats - Improve: Glossary of Interactivity API terms, comparison tables #### ๐Ÿงฉ Kinesthetic learners - Present: Live coding demonstration, interactive game exploration - Improve: Code sandbox for experimentation, step-by-step building tutorial #### ๐Ÿง  Logical learners - Present: Clear data hierarchy (campaigns โ†’ quests โ†’ scenes), systematic code review - Improve: Decision trees for game logic, performance metrics comparison #### ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ Social learners - Present: Live stream format with chat interaction, collaborative problem-solving - Improve: Community challenges, peer code reviews #### ๐Ÿง˜โ€โ™€๏ธ Solitary learners - Present: Detailed code exploration, independent project development - Improve: Self-paced tutorial modules, reflection prompts on AI-assisted development #### ๐ŸŒฟ Naturalistic learners - Present: Organic development process discussion, iterative improvements - Improve: Project lifecycle analysis, sustainability of AI-assisted development practices ### ๐Ÿ“Š Accessibility Assessment #### Screen reader semantics - Present: Code structure discussion, verbal explanation of interfaces - Improve: Alt text descriptions for code screenshots, semantic markup examples #### Keyboard navigation - Present: Discussion of game navigation patterns - Improve: Keyboard accessibility testing of game interface, navigation flow documentation #### Contrast and readability - Present: Clear code syntax highlighting, good video quality - Improve: High-contrast code themes, font size recommendations #### Text resizing and reflow - Present: Responsive development practices implied - Improve: Explicit discussion of mobile/accessibility considerations #### Media and captions - Present: Live stream with audio - Improve: Full transcript available, key concepts highlighted #### Forms and interactions - Present: Character creation form demonstration - Improve: Accessibility review of form validation, error handling patterns ### ๐ŸŒ DEIB Assessment #### Cultural breadth - Present: References to classic gaming experiences, childhood memories - Improve: International game development examples, diverse cultural storytelling #### Inclusive language - Present: Technical discussion using accessible terminology - Improve: Avoid assumptions about childhood gaming access, explain cultural references #### Neurodiversity support - Present: Clear step-by-step explanations, structured demonstration - Improve: Multiple explanation methods, processing time considerations #### Representation - Present: Single developer perspective, male-dominated gaming references - Improve: Diverse developer stories, varied gaming backgrounds represented #### Psychological safety - Present: Supportive learning environment, mistakes acknowledged - Improve: Explicit encouragement of questions, beginner-friendly framing ### โœ… Logical Validity #### Strong reasoning - Deductive strength: WordPress capabilities โ†’ Interactivity API โ†’ Complex applications possible - Inductive strength: Single successful game example โ†’ Pattern for similar applications - Causal reasoning: AI assistance โ†’ Faster development โ†’ More learning opportunities - Analogical strength: Physical adventure books โ†’ Digital interactive experiences #### Fallacies - Survivorship bias: Only showing successful AI-assisted development, not failed attempts - Hasty generalization: Single project success โ†’ All developers should use this approach #### Tone of voice - Overall tone: Enthusiastic and experimental, encouraging innovation while acknowledging learning gaps ### ๐Ÿ›ก๏ธ DARVO Analysis - Deny: None observed - Attack: None observed - Reverse victim/offender: None observed - Emotional cues and rhetoric: Positive, growth-oriented discussion focused on learning and experimentation ## ๐ŸŽฏ Conclusion Troy Chaplin's "Veils of Fate" demonstrates the untapped potential of WordPress as an application development platform. By combining the Interactivity API with traditional WordPress features, he created a sophisticated gaming experience that challenges assumptions about what's possible within the CMS ecosystem. The project's most valuable contribution may be its development methodologyโ€”using AI to accelerate initial building while creating opportunities for deeper learning through reverse engineering. This approach could inspire developers to experiment with WordPress capabilities they might otherwise consider too complex or time-consuming to explore. For the WordPress community, this project signals an exciting evolution from content management toward full application development, opening new possibilities for developers and expanding WordPress's relevance in modern web development. ## ๐Ÿงฑ Refactor Appendix ### ๐Ÿ“š Literature Split Pad Purpose: Stage CEE units that become Literature notes. Split level: H3 ### [H1] Interactivity API enables complex WordPress applications > [!quote] [Talk Devy To Me: Veils of Fate --- ## Full Transcript [00:08] We refct.<br>[00:31] pain.<br>[00:32] Everyone<br>[00:58] has it.<br>[01:03] acquies<br>[01:14] choice, every<br>[01:52] Turn<br>[01:54] everyone.<br>[07:43] Switch over. All right. Hi everybody. I<br>[07:46] don't know who's in chat right now, but<br>[07:48] uh we're here. We're here for Talk Devy<br>[07:50] to Me issue version number two. I don't<br>[07:53] know, B2. And with with me is my friend<br>[07:56] and guest. He's right here above me, Mr.<br>[07:58] Troy Chaplan. Hi, Troy. How you doing,<br>[08:00] man? Hey, how's it going, Ryan?<br>[08:02] >> It's going great. It's going great. Um,<br>[08:05] I'm excited. I've been uh we've been<br>[08:08] talking about doing this for for a long<br>[08:10] time. We're we're going to learn about<br>[08:11] Veils of Fate um the game that you built<br>[08:15] and uh and we spent way too much time<br>[08:17] generating AI um<br>[08:21] images<br>[08:23] for this. Speaking of, I wanted to just<br>[08:25] mention I do have a new command. So in<br>[08:27] in chat if you write<br>[08:30] bang Troy you get the awesome picture of<br>[08:34] us with our our fingers pointing in the<br>[08:36] blue thing. So that's that's a that's a<br>[08:38] shout out to to Troy and so that there<br>[08:41] you go chat. So give it a whirl if you<br>[08:43] feel like it. Cool. All right Troy. Well<br>[08:45] tell us what the game is all about. Oh<br>[08:49] people are already doing it. Kev. It's<br>[08:52] Kev. All right. Cool. And I've turned<br>[08:54] the music off um and got rid of the the<br>[08:56] the shutout stuff that happens because<br>[08:58] last last time we we did this it got a<br>[09:00] little bit um um annoying. So anyways,<br>[09:04] Troy, over to you. What is what is Bales<br>[09:07] of Fate?<br>[09:08] >> So this is a textbased choose your own<br>[09:11] adventure game. Um I think back to when<br>[09:14] I was growing up. Um there was a series<br>[09:16] of books and I think you you're going to<br>[09:17] remember these two, Ryan. I think we<br>[09:18] talked about this before. There was a<br>[09:19] series of books from our our childhood.<br>[09:23] um you know each page was almost like a<br>[09:25] little part of the story and you'd get<br>[09:26] to the bottom you'd pick like oh you<br>[09:28] want to do this go to page 12 pick this<br>[09:30] go to you know page 18 whatever the case<br>[09:32] might be so I always loved those books<br>[09:34] as a kid um I've really wanted to build<br>[09:37] something like that for a while and you<br>[09:39] know I could have used React I could<br>[09:41] have there's you know a whole bunch of<br>[09:42] other tools I wanted to use but I really<br>[09:45] wanted to do something with WordPress so<br>[09:47] when the interactivity API sort of came<br>[09:49] about uh I was really interested in<br>[09:51] learning a little bit more about that.<br>[09:53] Um, so that's when I kind of decided<br>[09:55] that maybe now is the right time to to<br>[09:57] build this project. Um, so yeah, I I<br>[10:00] kind of just dove in um and started<br>[10:03] working on this. So this is actually the<br>[10:04] first project for me where I sort of let<br>[10:07] AI sort of take control on a lot of the<br>[10:10] stuff I was doing. Um, typically when I<br>[10:12] build stuff like AI is my assistant and<br>[10:14] and I'm still doing a lot of the<br>[10:16] controlling here. But in this case, I<br>[10:17] sort of was just feeding my commands in<br>[10:19] and I wanted to kind of play around with<br>[10:21] that side of development. You know, I<br>[10:23] hear so many people talking about like<br>[10:24] they're vibe coding all of these apps<br>[10:26] and all this sort of stuff. So, I wanted<br>[10:27] to to kind of try my hand at that one a<br>[10:29] little bit. Um, so this one kind of got<br>[10:32] a bit interesting. Now, I know we can<br>[10:33] we're going to dive into the back end a<br>[10:35] little bit and we're going to talk<br>[10:36] around about like the post types and how<br>[10:38] all of this stuff came about. Um, but<br>[10:41] first I want to talk about like just<br>[10:43] some of the various aspects that make up<br>[10:45] the game. Um, so on the homepage here,<br>[10:47] you'll see this. I'll refresh.<br>[10:49] >> Let me switch over to your screen.<br>[10:50] >> Oh yeah, sorry. I thought it was already<br>[10:52] showing.<br>[10:52] >> No, no, I had it on mine.<br>[10:54] >> Like a dummy. You're good. Oh.<br>[10:58] >> Oh, we lost Troy. What's happening?<br>[11:04] >> Am I here?<br>[11:06] >> Oh, I can hear you, but your your<br>[11:07] camera's your camera's gone. What just<br>[11:10] happened?<br>[11:11] >> I don't know.<br>[11:13] And your screen's gone, too. Did you<br>[11:16] close the browser by mistake or<br>[11:17] something?<br>[11:19] >> There we go.<br>[11:20] >> Back.<br>[11:22] >> Back.<br>[11:22] >> Okay, there we go. That was weird.<br>[11:24] >> Your camera's not yet, but uh<br>[11:29] I see you. You're just a big black box,<br>[11:31] but Oh, and your screen's sharing's gone<br>[11:33] again.<br>[11:34] >> Oh, your camera.<br>[11:34] >> Yeah, that's cuz I clicked the wrong<br>[11:36] button to turn on my camera. I don't<br>[11:37] know what just happened there. Hey, it<br>[11:39] happens to the best of us. You've seen<br>[11:40] my streams before, right?<br>[11:43] You know what happens.<br>[11:45] >> Yeah. You know, I actually I actually<br>[11:46] know what happened now. I was trying to<br>[11:48] refresh this so we could see the nice<br>[11:49] animation and I think my my active<br>[11:51] window was the actual stream itself.<br>[11:54] >> Oh, okay. Well, that'll do it right now.<br>[11:55] >> So, yeah, I wanted to refresh here just<br>[11:57] to show some of the animation. So, one<br>[11:59] of the things I did is I've been<br>[12:00] fortunate enough to be a part of the<br>[12:02] Miles AI beta uh testing program from<br>[12:05] from Andy Peline. So I was lucky enough<br>[12:08] to get to build a theme for this game<br>[12:11] with that tool. So that was sort of the<br>[12:13] the first part of the AI experience here<br>[12:15] with this game. Um so you see you scroll<br>[12:18] down like I've written a lot of content<br>[12:20] here. So this was me and AI writing some<br>[12:22] of the content for the game. Um just<br>[12:24] talks about these are actually some of<br>[12:26] the classes that you can use in the game<br>[12:27] and and I mean I love the AI imagery<br>[12:30] here.<br>[12:31] um coming down because some of the some<br>[12:33] of the info about the game and then you<br>[12:36] come in um just to more of the about<br>[12:38] sections. So there's a few sections<br>[12:40] behind the scenes in the game. Um<br>[12:44] so what we can do though right away is<br>[12:47] I'm going to go into<br>[12:49] one of the quests. So what'll happen is<br>[12:52] when you first start the game, when I<br>[12:53] open this one up, I'm hoping to launch<br>[12:55] this maybe in a couple weeks. I've got a<br>[12:57] couple of uh little refinements to to do<br>[13:00] on the look and feel of things, but the<br>[13:01] game is finished. The game is is fully<br>[13:03] playable at this point. Um, so you can<br>[13:06] come in here now,<br>[13:07] >> but it's not live. Like the uh Kevin's<br>[13:09] already asking for a link because that's<br>[13:11] what Kevin does. Comes in, hijacks.<br>[13:13] >> You know what? Maybe I'll get a link out<br>[13:16] at the end of the weekend. I just have a<br>[13:17] few things I would like to put in there,<br>[13:19] but I would like to get this out there<br>[13:20] to get some more beta testing going and<br>[13:22] get some feedback on how I can improve<br>[13:24] it and sort of where I can go sort of<br>[13:26] with the next chapter of this game.<br>[13:28] >> Um, so right now you can come in and<br>[13:31] this would be your intro quest. So the<br>[13:33] intro quest you can do it without being<br>[13:34] logged in. It's it's not there's no<br>[13:36] requirement to have an account or<br>[13:37] anything. So um the first quest is made<br>[13:40] up of 18 scenes. So in this case a scene<br>[13:43] would be the equivalent of a page. um if<br>[13:46] you were kind of thinking about the<br>[13:47] books, you know, from our childhood. Um<br>[13:50] and each scene has an image that sort of<br>[13:52] helps set the scene. So, you come down.<br>[13:55] Um I don't not going to read through it.<br>[13:56] I kind of think maybe give people the<br>[13:58] opportunity to read through it on their<br>[14:00] own at their at their own leisure. So,<br>[14:03] >> but we come down. I'm going to quickly<br>[14:04] skip through a little bit and um so you<br>[14:07] come down. So, you get in you get to the<br>[14:08] next scene. Um you get into one of the<br>[14:11] characters. You start understanding. So,<br>[14:12] these are the founders. There's a page<br>[14:14] that I do have on the on the live site<br>[14:16] about the founders that you can read<br>[14:17] about who the four founders are. Gives<br>[14:19] you some information around the main<br>[14:21] story line of the game. Um so then you<br>[14:23] come down there's this like the books.<br>[14:24] You come down and you can choose um the<br>[14:27] next path that you want to go. This is<br>[14:29] where the interactivity API came in<br>[14:31] really handy where it's not loading new<br>[14:33] pages. I don't got to go and and make a<br>[14:35] template for the scene post type and um<br>[14:38] kind of go and and reload everything. So<br>[14:40] you can just click in and it just<br>[14:41] quickly reloads here. here. It brings<br>[14:42] you back up to the top of the page. You<br>[14:44] get your nice image and you start<br>[14:45] scrolling back down and you can read<br>[14:48] through um all of these stories.<br>[14:52] So, I'm going to really quickly<br>[14:53] >> I love that picture. So,<br>[14:56] >> AI did some really great stuff. So, this<br>[14:58] this game in in all of the scenes,<br>[14:59] there's 112 scenes. Actually, I should<br>[15:02] probably back up. There are there's the<br>[15:04] first act is act zero. That's your<br>[15:06] prequel that has a quest with 18 scenes<br>[15:10] in it. Once you get past that, you would<br>[15:13] get to the create a character screen,<br>[15:15] which would be this screen here. So, I'm<br>[15:17] going to come in. Um, I am going to use<br>[15:20] my 12-year-old, well, when I was 12<br>[15:23] years old, this was my D and D<br>[15:25] character's name back when I was in high<br>[15:26] school playing with some buddies. Um,<br>[15:30] so I'm going to choose an elf. And then<br>[15:33] you'll see you get like a little<br>[15:34] description of what the race uh is. And<br>[15:37] you'll get the same on class. So, I'm<br>[15:38] going to be a necromancer. and you get a<br>[15:40] little description here. And then you<br>[15:42] scroll down and you'll get some stats.<br>[15:44] So, by default, the the the the block<br>[15:47] that's on the page here will just spit<br>[15:48] out some stats. Uh I've got it set to a<br>[15:51] total of 24. So, you can't sit here and<br>[15:53] keep rolling to get perfect 20s across<br>[15:54] the board. Um I have limited the amount<br>[15:57] of rolls again, so you can't sit there<br>[15:58] and and try to to get your stats.<br>[16:00] >> Yeah.<br>[16:01] >> So, I'm going to reroll once here and<br>[16:04] >> I'll be happy with with those stats. So,<br>[16:06] I'm gonna kind of let's just get going<br>[16:07] on our journey.<br>[16:09] Cool. And I think Carolina spotted five<br>[16:12] uh five fingers that she's saying on on<br>[16:15] that last image. Was there five fingers<br>[16:16] and a thumb? Karolina, is that you're<br>[16:17] saying or like it actually has<br>[16:20] >> Oh, I forgot. I forgot to erase I have I<br>[16:22] already have a character in the game. I<br>[16:23] just forgot to go and erase it before we<br>[16:25] started the stream. So that's fine. So<br>[16:27] what happens here now is is once once<br>[16:29] you create your character, you're going<br>[16:30] to get to the account hub.<br>[16:34] So and and I mean Caroline is probably<br>[16:36] right. I'm I'm sure there's a bunch of<br>[16:37] those images that have like eight<br>[16:39] fingers and and like one eye or<br>[16:41] something like this, but it's weird.<br>[16:42] It's it's AI. It's, you know, it's it's<br>[16:43] it's really odd sometimes.<br>[16:46] >> Um, so yeah, once once you're logged in<br>[16:48] and you've got your character created,<br>[16:50] you've obviously completed uh the first<br>[16:53] act, which is down here. Well, act zero.<br>[16:55] So that's your prequel. So that's been<br>[16:56] completed. Now, um, this is what I'm<br>[16:58] talking about where I have some styles<br>[16:59] to change up. Like I don't like the<br>[17:01] spacing and and the alignment of the<br>[17:02] icons. This is just me wanting to be a<br>[17:04] bit picky now before I really open this<br>[17:05] up.<br>[17:06] >> Yeah. Yeah.<br>[17:07] >> Um I do have<br>[17:08] >> She means it got it right this time.<br>[17:09] Sorry. She meant it actually got it<br>[17:11] right.<br>[17:11] >> Oh, okay.<br>[17:12] >> Which is which is great.<br>[17:14] >> All right. So, you end up at this<br>[17:15] account hub where you can come in and um<br>[17:19] I will have images here. So, each class<br>[17:21] and race are going to have some images.<br>[17:23] Uh far future I want to add and upload<br>[17:25] your own image. So, if you want to go<br>[17:27] out and make your own character in your<br>[17:29] vision, you can go ahead and do that.<br>[17:30] So, that'll be a future upgrade that I'd<br>[17:31] like to do on the game. Um, behind the<br>[17:34] scenes, I'm actually generating various<br>[17:37] stats like attack, defense,<br>[17:39] um, magic points, and stuff like that<br>[17:42] because I do have some stuff sort of<br>[17:44] underlying in the code that would let me<br>[17:46] expand the game. I want to build boss<br>[17:48] battles. I have a million ideas of<br>[17:50] things I want to do. Um, so I'm trying<br>[17:52] to set the stage early for it to be able<br>[17:54] to expand it without um, causing too<br>[17:56] much trouble as I build new things out.<br>[17:59] So once you're in, you can come in.<br>[18:01] You'll see that the full game itself has<br>[18:04] three acts. That's made up of 17 quests<br>[18:09] and a total of<br>[18:12] no, it's 112 scenes including the<br>[18:15] prequel. So that would be um 94 scenes<br>[18:20] once you get through the info intro and<br>[18:22] you've created your account, you've<br>[18:23] created your character, you have uh<br>[18:24] basically it's a it's a book of 90 it's<br>[18:26] a 94 page book that you can play your<br>[18:29] way through and you always can come back<br>[18:32] here. So we'll just kind of go into this<br>[18:34] one um just really quickly just to see<br>[18:36] some of the other choices. So, if you're<br>[18:37] coming down now, the intro scene is set<br>[18:40] up in such a way where all of the<br>[18:43] choices at some point are going to make<br>[18:45] you go through every path because it's<br>[18:48] actually explaining who the founders<br>[18:50] are, what the backstory is, and really<br>[18:53] sets the stage for everything. So, you<br>[18:55] the intro you get everything. Once you<br>[18:58] get past the intro though, you don't.<br>[18:59] This is where your choices are going to<br>[19:01] make<br>[19:02] >> they're going to make more sense. You're<br>[19:03] going to make a choice and you're not<br>[19:04] like I might not get a moment to go<br>[19:06] collect myself. I might choose a path<br>[19:07] that won't let me come back there.<br>[19:09] >> Right.<br>[19:10] >> So, the prequel kind of like is the<br>[19:12] world building part where where where<br>[19:14] like you get to understand everything in<br>[19:16] the world about the world, all the<br>[19:17] founders and all of that stuff. And then<br>[19:18] >> Yeah, absolutely. And then like once you<br>[19:19] get through the the the three founder<br>[19:21] areas, you get to start to learn a<br>[19:23] little bit more about yourself and how<br>[19:25] you factor into the overall story here.<br>[19:28] >> We have a question in chat. First one<br>[19:29] from Cross Keys saying, "When you say<br>[19:30] interactivity API, can I assume this is<br>[19:32] a block based theme and individual<br>[19:34] blocks are making the calls."<br>[19:36] >> Yes. Yeah. And and we're we're going to<br>[19:39] dive into that. I'm I'm fully prepared<br>[19:40] to like we're going to dive into the<br>[19:42] back end. We're going to take a look at<br>[19:44] all the post types, what's on each page.<br>[19:46] We're going to take a look at some of<br>[19:47] the code. So, you know, we're we're<br>[19:49] going to we're going to see everything<br>[19:50] that's going on here.<br>[19:52] So, I'm just going to answer the door.<br>[19:55] And then we come in and get down to<br>[19:58] another story. And then we start seeing<br>[20:00] some more choices. So, this is where<br>[20:01] you're going to start to split out in<br>[20:02] the story and go down different paths.<br>[20:07] >> Chester World 77 from YouTube is saying,<br>[20:10] "Hia, Troy. You probably don't see the<br>[20:12] uh non Twitch chat there, so I figured<br>[20:14] I'd call<br>[20:15] >> I'm trying hard to not look over on this<br>[20:16] screen too much and keep focused on this<br>[20:18] screen.<br>[20:19] >> Do your thing. I'll uh I'll let you know<br>[20:21] if there's questions or whatever, you<br>[20:22] know, if I have questions or people.<br>[20:25] >> So, yeah. So, this this is sort of the<br>[20:26] game. So, now what's happening? There's<br>[20:27] one part that I I I realize that I do<br>[20:29] need to fix. Um I I kind of have some of<br>[20:31] the stuff in place. So, what happens is<br>[20:33] there there's an API or an endpoint that<br>[20:35] tracks your progress through the game.<br>[20:37] So, say if you're playing this game, but<br>[20:39] you got to go do something and you come<br>[20:41] back, I want to be able to pick up where<br>[20:43] you left off. I want to be able to start<br>[20:45] this at the scene. Right now, if I were<br>[20:47] to refresh this, I would be back on the<br>[20:48] first scene of this quest.<br>[20:51] >> Okay.<br>[20:51] >> But I am tracking this based on ID. So,<br>[20:53] I just need to figure out how I can have<br>[20:55] a player come back in and pick up the<br>[20:57] game where they left off, you know, the<br>[20:59] night before or whatever.<br>[21:01] >> Oh, that would be very cool.<br>[21:03] >> Yeah, it's something that I planned<br>[21:04] early on. I just kind of lost sight of<br>[21:06] it with the 300 other things I was<br>[21:08] trying to do um as I was building this<br>[21:11] thing out.<br>[21:11] >> Well, you're building this on your own.<br>[21:13] So, I mean, there's a lot there's a lot<br>[21:14] that goes in here, right? Yeah, this is<br>[21:16] my fun little this is my fun little<br>[21:18] passion project that you know has really<br>[21:19] no bearing on on anything workrelated<br>[21:21] other than I'm slowly learning the<br>[21:24] interactivity API which is a a big<br>[21:26] benefit. So<br>[21:28] um so yeah so if now if I come back into<br>[21:30] the account now you can see you know<br>[21:32] styling aside that you can see we're<br>[21:34] we're going to start tracking the<br>[21:36] progress and this is where I need to<br>[21:37] figure out the ID based stuff to be able<br>[21:39] to come back so I can you know put in<br>[21:41] how far into the quest like whether it<br>[21:43] be 10% 15% give you an idea of how far<br>[21:45] you are into the quest at a minimum<br>[21:48] >> and then be able to continue the quest<br>[21:49] or if you just want to abandon it. Say<br>[21:51] if you did make a choice and you don't<br>[21:52] like where you're going, I'm going to<br>[21:54] allow the player to reset themselves if<br>[21:56] they would like to. You know, thinking<br>[21:58] about how you would<br>[21:59] >> to the beginning of the act or the<br>[22:01] beginning of that quest.<br>[22:02] >> Yeah. The beginning of this,<br>[22:03] >> you know, might be super cool<br>[22:06] >> if you could track like every decision.<br>[22:09] >> I I am.<br>[22:11] >> And then display it like it might be<br>[22:13] kind of neat.<br>[22:14] >> So<br>[22:14] >> that would be a good followup. Like<br>[22:16] there's games<br>[22:17] >> almost like a history of your of your<br>[22:19] choices, right?<br>[22:20] >> Yeah, I played a couple of games<br>[22:22] >> and everything. That might be fun.<br>[22:23] >> Yeah, I played a couple games on<br>[22:24] PlayStation where at the end of the<br>[22:27] story, I think there was one it was<br>[22:29] Detroit. It was a it was a cyborg game<br>[22:32] about like ro like human looking robots<br>[22:35] who were police officers and and<br>[22:37] various, you know, people in in<br>[22:39] communities. At the end of the quest,<br>[22:41] they showed you the full path that you<br>[22:43] chose, but they showed grayed out areas<br>[22:46] of the path that you didn't chose. So,<br>[22:48] you got a good idea of the scope of that<br>[22:50] quest. So, that could be a really cool<br>[22:51] idea, too.<br>[22:52] >> It probably went up with with re with<br>[22:54] replayability, too. Like, you might see<br>[22:56] it and be like, "Oh, there's this whole<br>[22:57] quest. There's this whole like decision<br>[22:59] tree that I didn't get into." So, when I<br>[23:01] get to that point again, I'm going to go<br>[23:02] left instead of right this time and<br>[23:04] explore that whole thing. That might be<br>[23:06] cool.<br>[23:06] >> Absolutely. Because one of the longer<br>[23:07] term ideas I do have is also building<br>[23:10] class or racebased<br>[23:13] quests. So if you're a necromancer, like<br>[23:15] you're probably going to end up doing<br>[23:16] some stuff that a paladin won't do, for<br>[23:18] example.<br>[23:19] >> So I've got a lot of things I'd like to<br>[23:20] do in in the future.<br>[23:24] >> That's cool.<br>[23:24] >> So yeah. So if I So right now, if I<br>[23:25] continue quest, as you can see, it goes<br>[23:27] back to the start of that quest. But<br>[23:29] let's just go through the full quest.<br>[23:31] But see Oh, I missed it. I clicked too<br>[23:33] far. See? So right here now you can see<br>[23:35] that I've already chosen those paths. So<br>[23:37] this is where my problem exists where if<br>[23:38] I kind of continue the quest, if I don't<br>[23:41] go back to where I left off, I can't<br>[23:43] finish my quest. So it's a bit of a bug<br>[23:45] >> in the system that I need to address.<br>[23:47] Um,<br>[23:49] but that being said, we can probably<br>[23:50] just jump into the back end because I<br>[23:52] can show you one little thing that I've<br>[23:54] done and this is sort of helping me test<br>[23:56] it and it'll be good for if a user gets<br>[23:57] stuck and something happens. I can very<br>[24:00] easily come in. I can select my<br>[24:02] character. I can go into So, here's all<br>[24:04] the quests.<br>[24:05] >> I can go into act one and I can reset my<br>[24:09] progress for that character on that<br>[24:11] quest anytime I need to.<br>[24:13] >> Oh, nice. Okay.<br>[24:14] >> That was super important for testing.<br>[24:16] There was no I was starting to go<br>[24:17] through entire quests just to check like<br>[24:19] a third section or something like that.<br>[24:20] So, it was a bit of a problem.<br>[24:22] >> You had to go through a hundred 100<br>[24:24] pages just to test the last one.<br>[24:26] >> Yeah. And then here's here's another<br>[24:28] feature that I've added in as well, just<br>[24:30] to increase the replayability,<br>[24:32] especially once we introduce um class or<br>[24:35] racebased quests. Um the ability to<br>[24:38] create more than one character. So right<br>[24:40] now, my character is the necromancer,<br>[24:41] but maybe I want to come back later and<br>[24:43] play as Paladin and do the paladin quest<br>[24:45] line and stuff like that. So I'm I'm<br>[24:47] going to have the ability to to, you<br>[24:49] know, build multiple um characters um<br>[24:52] just to increase the replayability of<br>[24:54] the game. So, if I come back here now, I<br>[24:57] can very easily come into account<br>[25:00] >> and you'll see now there's a create a<br>[25:01] character option here.<br>[25:03] >> So, I can go right back through.<br>[25:06] >> Um,<br>[25:08] I think my name in that that post we<br>[25:10] made yesterday was Troyless. So, I'll<br>[25:12] just kind of go with that.<br>[25:14] Be a warrior. And I'm just going to uh<br>[25:17] embark right away. So, once you come<br>[25:19] back into the account hub, you see I<br>[25:21] have multiple characters now. So then<br>[25:23] each of these characters would have<br>[25:24] independent journeys being tracked. So<br>[25:26] if I switch over and I play as my<br>[25:27] original character,<br>[25:29] >> um well I've reset it, so it's it's<br>[25:31] going to be back at here again, but<br>[25:32] everything gets tracked independently.<br>[25:34] So what happens here<br>[25:35] >> is your character is tied to your user<br>[25:37] account and all the data for that<br>[25:38] character is tracked in an endpoint tied<br>[25:40] to that character specifically.<br>[25:43] >> Nice.<br>[25:45] >> Right. So, um, I guess we can probably<br>[25:48] dive into some of the some of the stuff<br>[25:50] here in the back end and and I can kind<br>[25:52] of explain sort of the thought process<br>[25:53] to how I I I built the game. Um, so I<br>[25:56] kind of had an idea of how I wanted to<br>[25:58] do it up front and and I definitely<br>[26:00] leveraged Cloud Code to help me improve<br>[26:03] um how that all worked. So, the first<br>[26:04] thing I was like, I knew I wanted<br>[26:06] campaigns. I knew I wanted the ability<br>[26:08] to make multiple campaigns and then<br>[26:10] within those campaigns have one or 200<br>[26:14] quests. So like whatever I wanted to<br>[26:15] build. Um so if you come into campaigns,<br>[26:19] you'll see that we have the the prequel<br>[26:21] and then the three main campaigns that<br>[26:23] I've currently created for the full<br>[26:25] game.<br>[26:26] >> Mhm.<br>[26:26] >> Um so those campaigns<br>[26:30] get automatic like the titles for those<br>[26:32] campaigns get synced into a campaign<br>[26:35] taxonomy. So, that's how it ties the<br>[26:37] campaigns and quests together.<br>[26:40] Now, if you look at the quests, I'll<br>[26:43] just sort it. There we go. So, here is<br>[26:45] the intro.<br>[26:47] >> Oh, I see.<br>[26:48] >> Game. And if I were to go edit this.<br>[26:52] So, this is how the quests are built up.<br>[26:55] This was the hardest part to figure out.<br>[26:56] This is where cloud code was my best<br>[26:59] friend during this whole process trying<br>[27:00] to understand how this works, learn how<br>[27:03] to build this, learn how to integrated<br>[27:07] with the interactivity API. So you come<br>[27:09] in, you can you can give it a<br>[27:10] description and this is stuff that's<br>[27:11] going to show up on the account hub to<br>[27:12] give you an idea of what the quest is<br>[27:14] about.<br>[27:16] Um the taxonomy, this is where the<br>[27:17] taxonomies tie in. So actually, you know<br>[27:20] what? Let's just create a new one really<br>[27:21] quickly here.<br>[27:24] You might want to um do if if you need<br>[27:26] to show the inspector sidebar. Well, no,<br>[27:28] the inspector sidebar is behind you and<br>[27:30] I right now. So, if you need to show<br>[27:31] that, you might just want to scoot the<br>[27:34] >> make the the browser window a little bit<br>[27:36] smaller.<br>[27:36] >> Yeah, the nice thing about that, there's<br>[27:38] nothing here. Every everything is built<br>[27:40] in the editor. So, it's it's really it's<br>[27:41] really simple.<br>[27:42] >> Beauty.<br>[27:43] >> Um so, yeah, we'll just make a new<br>[27:44] quest. So, we got new quest.<br>[27:47] And then if I go in, I'm going to pick a<br>[27:49] random one. So, this is one of the<br>[27:51] taxonomies that ties into the the quest<br>[27:54] itself. And then it's going to get seen.<br>[27:55] So, what it does, it goes out, it gets<br>[27:57] every scene that's been tagged with the<br>[28:00] alliance quest, and it dumps it out here<br>[28:02] on the page. From here, I can drag this<br>[28:05] around, set the order of how the scenes<br>[28:09] would be for me visually.<br>[28:11] >> That's just to make so it makes more<br>[28:12] sense to me.<br>[28:13] >> Yeah.<br>[28:13] >> And then I'm going to turn on any of<br>[28:15] these that I want. So, you you don't<br>[28:18] have to use every scene. I set this up<br>[28:20] specifically so I could reuse the<br>[28:23] volunteer scene in a whole different<br>[28:25] quest.<br>[28:26] >> So you So just let me let me pause you<br>[28:28] there for a second so I understand. So<br>[28:31] you have scenes which are connected to<br>[28:34] quests which are connected to uh<br>[28:38] campaigns, right?<br>[28:39] >> Yeah.<br>[28:39] >> That's the sort of Okay. So So a<br>[28:41] campaign makes up a series of quests. A<br>[28:43] quest is made up by a series of of<br>[28:45] scenes. That's that's the flow. Okay.<br>[28:46] Perfect. Okay.<br>[28:47] >> Yeah. Absolutely.<br>[28:49] So now in each scene as you're building<br>[28:51] out the the quest that the user is going<br>[28:53] to go through, you can come in, you can<br>[28:57] give your scene some prerequisites. So<br>[28:59] if you don't want a scene to be able to<br>[29:01] be visited by the player until they<br>[29:04] visit scene A, you can go ahead and do<br>[29:06] that. That's sort of requirements on<br>[29:08] your scenes.<br>[29:09] >> I'm not going to put one in here.<br>[29:11] >> Um, but here I can add a choice. This is<br>[29:13] pretty open-ended. Um, you know, pick<br>[29:16] your choice. So you're like, yeah,<br>[29:18] >> and then what scene the user is going to<br>[29:20] navigate to when they choose that<br>[29:22] >> or when they pick that choice.<br>[29:23] >> And then you can add as many choices as<br>[29:25] you want,<br>[29:27] >> right? Question in the chat when you're<br>[29:29] when you're prepared. Um,<br>[29:30] >> yeah.<br>[29:31] >> Are these blocks actually are these<br>[29:32] blocks actually generating markup or are<br>[29:33] they just doing post metacrud that the<br>[29:35] template is generating from?<br>[29:37] >> So the the the editor and the front end<br>[29:40] is is very different. So this this is<br>[29:42] just the editor. It's only in the<br>[29:43] editor. None of this stuff relates to<br>[29:45] the front end. The front end of this<br>[29:46] block is the actual quest and it's your<br>[29:48] interactivity API that you navigate<br>[29:50] through and read through as you play the<br>[29:52] game.<br>[29:53] >> Okay, cool. I think that'll become more<br>[29:55] clear once we get a bit further into it.<br>[29:57] >> Yeah, for sure. So, we come in uh you<br>[30:00] can pick what your starting scene is.<br>[30:02] So, in this case, I have the sacrifice<br>[30:03] at the top. We can say it's a starting<br>[30:05] scene and then you can pick your final<br>[30:07] scene. So, I've turned on the choice.<br>[30:12] And then you got another spot for<br>[30:14] required scenes. You can give a<br>[30:16] completion message. So, at the end of<br>[30:18] your quest, you can, you know, give the<br>[30:20] user whatever message you want. Um, and<br>[30:24] then I can make other quests required as<br>[30:26] well. So, there's going to be situations<br>[30:28] where you can't do quest B until you<br>[30:30] actually do quest A. So, I built all of<br>[30:32] that stuff in as well.<br>[30:35] And then upon completion, um, I had the<br>[30:38] coming soon here just for for early beta<br>[30:40] testing, but I've added the account hub<br>[30:42] now. So, at the end of a quest, when you<br>[30:44] complete the quest, you'll end up coming<br>[30:45] back to your account hub. So, you can<br>[30:47] see um all of the uh the the rest of the<br>[30:52] quests you can go through. I'm going to<br>[30:54] close this one down because if I come<br>[30:55] back to the fully built one, um you can<br>[30:59] see like there's some required quests<br>[31:00] here. Um so, these three quests are<br>[31:03] required. So the these are the three<br>[31:05] like these three these three and these<br>[31:08] three here are quests per your<br>[31:10] character. So that's you're having to go<br>[31:12] through and you're reading about all<br>[31:13] those characters, but you can't continue<br>[31:16] on with your part of the story until you<br>[31:18] learn about the the main founding<br>[31:20] characters<br>[31:21] >> until you get to the final quest.<br>[31:23] >> Uh once we come down here, this is why I<br>[31:25] wanted to flip over to this one. So I'm<br>[31:27] outputting this on the back end just you<br>[31:29] have a good idea. Let me zoom in here.<br>[31:31] just so you have an idea of sort of the<br>[31:32] stuff that's being stored here as we go<br>[31:35] um in this quest and and this all comes<br>[31:36] out to the endpoint which then the<br>[31:38] interactivity API is using to build the<br>[31:40] the actual quest that you play through.<br>[31:42] So I'm storing all the required scenes<br>[31:44] here, some requ uh some prerequisites,<br>[31:48] all of the active scenes. So basically<br>[31:51] all of the data that we just looked at<br>[31:53] is all getting stored and then used by<br>[31:55] the interactivity API.<br>[31:58] >> Wow, this is cool. See, there's a bunch<br>[32:01] a bunch of that stuff here.<br>[32:05] Um, so that's sort of that's how the<br>[32:07] quests work. Um, there's some some stuff<br>[32:09] I'd still like to do there, but I think<br>[32:10] as far as like a quest building tool,<br>[32:13] it's it's pretty it's pretty good so<br>[32:15] far. It's it's kind of suited my needs<br>[32:17] for for this this whole story so far.<br>[32:22] Um,<br>[32:24] and then if you take a look at scenes,<br>[32:28] scenes, um, you see there's 112 scenes<br>[32:31] that make up the full, um, threeact plus<br>[32:34] prequel part of this game. Again, the<br>[32:37] the taxonomy used for quest relations<br>[32:39] that is automatically synced from the<br>[32:41] names of the posts that you have in the<br>[32:43] quests, and that's how the the scenes<br>[32:45] get pulled into your quest itself.<br>[32:48] You can add this to multiple um<br>[32:51] taxonomies which would allow you to<br>[32:53] reuse any given scene on any given<br>[32:55] quest.<br>[32:57] And then these are pretty simple.<br>[32:59] They're just all text. There's really<br>[33:01] nothing to it. Text and then a nice<br>[33:03] little feature image which is what you<br>[33:05] see on the front end that the<br>[33:06] interactivity API is using.<br>[33:08] >> So So the questions are done at the<br>[33:10] quest level. The the choices are done at<br>[33:12] the uh I'm sorry. Yes, the the Yeah,<br>[33:14] sorry. the Yeah. choices are done at the<br>[33:16] quest level and that's what you were<br>[33:17] defining there.<br>[33:18] >> Yeah. So again, the quest drives all of<br>[33:21] this stuff. So every part of it is<br>[33:23] driven by this the quest editor here,<br>[33:26] >> right? Okay. Awesome.<br>[33:29] >> Yeah. And then it's similar in the<br>[33:31] campaign. Uh I'll just pull one open<br>[33:33] here. It's pretty similar. I haven't<br>[33:34] styled this one yet, so might be a bit<br>[33:36] hard for people to to really read, but<br>[33:38] it's it's very similar in a way that<br>[33:40] you're picking like, okay, well, you got<br>[33:41] a prerequisite for this. you know, you<br>[33:43] can't do act two until you do act one,<br>[33:46] >> right?<br>[33:46] >> And then<br>[33:47] >> sense<br>[33:48] >> the quest. So, this this quest order<br>[33:50] will tie into how your quests are going<br>[33:52] to get listed here. And that would<br>[33:53] determine the order that that you're<br>[33:55] you're being suggested to do them in.<br>[33:57] >> And these can all drag and drop around,<br>[33:59] much like the the quests and the scenes.<br>[34:03] And then I can add a quest here quite<br>[34:05] easily. And then again, I'm just<br>[34:07] outputting all of the information, so<br>[34:09] it's just easier for me to kind of<br>[34:10] figure out what's going on as I'm<br>[34:11] building this out.<br>[34:15] It's pretty cool, man. I'm sort of This<br>[34:17] is super<br>[34:18] >> like the amount of thought that went<br>[34:20] into this is<br>[34:22] >> pretty pretty pretty pretty good. I<br>[34:24] mean, pretty good. It's really good.<br>[34:25] It's like it's very very cool.<br>[34:28] >> It took a long time up front just to to<br>[34:30] kind of figure out how I wanted to build<br>[34:32] it because there there's there's<br>[34:33] probably 20 different ways you could<br>[34:34] build it.<br>[34:36] Um, I was just trying to figure out like<br>[34:37] what what made this the most sense for<br>[34:39] how I wanted to approach it and some of<br>[34:40] the ideas I had and and I talked with<br>[34:43] Claude Code quite a bit to plan this one<br>[34:46] out. But I was always making sure as I<br>[34:49] was having those conversations like well<br>[34:50] I want to do this in the future like<br>[34:52] make sure that's part of the thinking<br>[34:53] and and trying to make sure there's some<br>[34:55] future proofing going on here.<br>[34:58] >> So yeah.<br>[34:59] >> Um there's a question in chat if you<br>[35:01] have it. Uh what was your experience in<br>[35:03] terms of build of well sorry what was<br>[35:05] your experience in terms of the build<br>[35:06] experience? Are these scratch builds or<br>[35:08] are they interblock groups of vanilla<br>[35:09] stuff with the interactivity API pulling<br>[35:11] the strings?<br>[35:15] >> Not sure I completely understand the<br>[35:17] question.<br>[35:17] >> Yeah,<br>[35:19] are are you meaning like the the the the<br>[35:21] scripts build process or you mean like<br>[35:23] the build of like putting all the pieces<br>[35:26] together? C can you clarify your your<br>[35:29] question just a little bit? I'm reading<br>[35:31] his question here as well.<br>[35:32] >> Are these the<br>[35:35] >> I think he's talking about the editorial<br>[35:37] like the thing that you were showing us.<br>[35:38] I think that's what he's talking about<br>[35:39] where you have<br>[35:41] >> let's just dive in and take a look.<br>[35:44] >> All right.<br>[35:45] >> So, this is our So, we got our plugins.<br>[35:47] So, there's two projects, two pieces of<br>[35:49] the project. I got my theme by Miles<br>[35:50] here, and then I've got my my plugin um<br>[35:55] for this project here. And you can see<br>[35:58] we've got our source file. So, we got<br>[36:00] some blocks going on in here.<br>[36:03] Um, so we can take a look at at a at a<br>[36:05] bunch of these really. So, like the<br>[36:07] account hub, this is just a React app on<br>[36:08] the front end. Nothing um nothing too<br>[36:12] crazy here. So, this is sort of But can<br>[36:16] is that a good zoom level? Should I zoom<br>[36:18] in more or out?<br>[36:19] >> No, I think I think I think that's fine.<br>[36:20] We can't really see your um the file<br>[36:23] system, but<br>[36:24] >> Oh, yeah. That's Yeah, that's fine. So,<br>[36:26] I'm actually, you know, I'll flip it<br>[36:27] over here really quickly and we can show<br>[36:28] it and then I'll kind of pop it back<br>[36:31] >> uh move it back to the left.<br>[36:34] >> Oh, that that might be better.<br>[36:37] >> Yeah.<br>[36:37] >> Okay. Just<br>[36:38] >> I'll just do it that way then. Keep it<br>[36:39] keep it small.<br>[36:40] >> And then you just toggle it on on and<br>[36:41] off too if that's easier. So,<br>[36:43] >> yes. Make sure I got my There we go.<br>[36:45] Shortcut keys.<br>[36:47] >> Um, so yeah. So, in the blocks you'll<br>[36:48] see that we have an account hub and then<br>[36:51] we have the the quest editor down here.<br>[36:53] for the user. So the user registration<br>[36:55] and the account hub are React<br>[36:57] applications that I want to do a bit<br>[36:58] more work on and see what I can leverage<br>[37:00] that's available to me in core and try<br>[37:02] to be as close to core as I possibly can<br>[37:03] with the project.<br>[37:05] Um your campaign editor, the character<br>[37:07] creator is also a React app. Um but I<br>[37:11] think the one that's the most<br>[37:12] interesting here is the quest editor<br>[37:14] itself. So, the Quest editor, you can<br>[37:16] see we're supporting the interactivity<br>[37:18] API<br>[37:20] and loading all of the nice things that<br>[37:22] we need here for that.<br>[37:24] Um, and in the edit file, so this is<br>[37:28] open both of these actually. So, I can<br>[37:30] do that.<br>[37:32] So, in our editor, there is all kinds of<br>[37:36] stuff going on in here. And I'm not<br>[37:37] going to lie, I'm not familiar with<br>[37:39] every single thing that's happening in<br>[37:40] here. This is just the idea of me<br>[37:42] leveraging AI to really steer the<br>[37:45] direction of this project a little bit<br>[37:46] more. And um I definitely need to come<br>[37:48] back in and start learning a little bit<br>[37:50] more around some of the more specific<br>[37:51] things as as a means to learn the<br>[37:53] interactivity API as well.<br>[37:56] Uh so we have all of our attributes and<br>[37:58] constants and a bunch of functions going<br>[38:00] on. But as you come down<br>[38:04] try to look at anything specific that we<br>[38:06] want to show. So here's like fetching<br>[38:07] the scenes. So you're fetching the<br>[38:09] scenes and and you're bringing all of<br>[38:10] that stuff back um and passing more of<br>[38:13] the information back in<br>[38:17] and then more filtering going on. So<br>[38:19] these are our active scenes and and<br>[38:21] grabbing some IDs for some of the code.<br>[38:26] If I flip back here, we should probably<br>[38:27] open up a quest so we can kind of go<br>[38:29] back and forth and look at some of the<br>[38:30] individual pieces.<br>[38:37] All right. So, we got our required<br>[38:39] scenes. So, you can select required<br>[38:41] scenes. So, it's pulling in some data<br>[38:42] there. And settings. So, this is setting<br>[38:43] all the IDs in in the endpoint to be<br>[38:45] able to pull that data out. Um, I don't<br>[38:49] think there's anything too too crazy<br>[38:50] here. A lot of it is just like fetching<br>[38:52] IDs and then storing IDs and and linking<br>[38:54] things together here<br>[38:56] >> um to build all that out. Now, the front<br>[38:59] end is the part that uh that is going to<br>[39:01] be the most interesting and how that<br>[39:03] works. So you come in obviously<br>[39:04] interactivity API here and uh we're<br>[39:08] setting some constants to to you know<br>[39:10] add some sessions going on for for the<br>[39:12] user so it's tracking what they're doing<br>[39:17] and then we're going to get the visited<br>[39:18] scenes. So this this is the part where I<br>[39:19] need to do work right. So we're getting<br>[39:21] the visited scenes because that's been<br>[39:22] stored to your character and that's sort<br>[39:24] of the part where if you continue on a<br>[39:26] quest the the system already knows that<br>[39:28] you've done those scenes so it doesn't<br>[39:29] let you click on it again. So I need to<br>[39:31] to kind of fix that continuing your<br>[39:33] quest, right?<br>[39:34] >> It it's instead it's it's being stored<br>[39:36] in session storage there like in<br>[39:38] browser, right?<br>[39:39] >> Yeah.<br>[39:40] >> Cool.<br>[39:42] >> Right. And then uh saving the visited<br>[39:45] scene. So saving here's the So here's<br>[39:47] your visited scene. So it's saving every<br>[39:49] scene that you go to. It stores all of<br>[39:50] that stuff as well.<br>[39:54] And then we start getting into the<br>[39:56] actual quest editor here. So, we're<br>[39:58] setting our state on stuff and and<br>[40:00] looking at the current scene.<br>[40:03] Um, you know, getting the title. So,<br>[40:04] just running a bunch of functions here,<br>[40:05] like getting various pieces of data<br>[40:07] here. So, your featured image, the alt<br>[40:09] tag. One of the things I did too, and<br>[40:11] actually I'll talk about that a little<br>[40:12] bit, like I wrote a CLI command to<br>[40:14] import some of this stuff, too, because<br>[40:15] it was a lot of data that I didn't want<br>[40:16] to do manually because, you know, ain't<br>[40:18] nobody got time for that.<br>[40:20] >> Um, so we're going to get the current<br>[40:22] choices here.<br>[40:28] And then<br>[40:30] see what's the hidden choices where the<br>[40:32] choices list should be hidden.<br>[40:35] I'm actually not sure what that is right<br>[40:36] now.<br>[40:38] >> The beauty of AI<br>[40:39] >> somewhere.<br>[40:41] >> Um checking the final scene um checking<br>[40:45] required visiting scenes. Uh completion<br>[40:48] stuff. So let's just kind of skip down.<br>[40:50] We don't need to look through every<br>[40:51] single function, but let's just kind of<br>[40:52] skip down to where the magic actually<br>[40:54] happens. So down into the actions here.<br>[40:57] So here's the loading. So now this is<br>[40:58] stuff that I know you'll be able to read<br>[41:00] and be able to understand probably a lot<br>[41:03] quicker than I would be Ryan at this<br>[41:04] point. Um so you've done a far more<br>[41:08] >> far more work with the interactivity API<br>[41:10] than I have. Um so yeah, so we're<br>[41:13] loading our scenes by ID here.<br>[41:16] Um a lot of state stuff going on. Um<br>[41:19] here's our endpoint. So we're grabbing<br>[41:20] grabbing all of our data from our<br>[41:22] endpoint.<br>[41:25] and setting some timeouts here. So<br>[41:28] that's our scrolling back to the top. So<br>[41:30] that way when you click a choice, it's<br>[41:32] going to load. It's going to reload in<br>[41:33] in the editor view and then scroll you<br>[41:35] back to the top just to make it nice and<br>[41:37] simple for the user to not have to do<br>[41:39] that themselves, which is kind of a<br>[41:41] pain.<br>[41:41] >> Yeah,<br>[41:42] >> that's great.<br>[41:43] >> Yeah. And then uh tracking visiting<br>[41:45] scenes. So this is where we're we're<br>[41:46] tracking where you've gone and some of<br>[41:48] the stuff that you've done. So we're<br>[41:49] grabbing the ID and we're storing that<br>[41:51] in an endpoint as well. also right here.<br>[41:53] We got our saving progress endpoint that<br>[41:55] I mentioned earlier um that I need to<br>[41:57] kind of go back and do a little bit of<br>[41:58] work on.<br>[42:01] And then we got our function down here<br>[42:03] to handle our choice selections.<br>[42:08] So yeah, there's a there's a lot of<br>[42:09] stuff going on here that um that I need<br>[42:12] to learn a lot more about. I'll put it<br>[42:13] that way.<br>[42:14] >> Yeah. So how how are you doing the<br>[42:17] navigation? Is is the navigation done<br>[42:19] with the router region or is it just<br>[42:22] like loading a next page?<br>[42:26] >> So that would be right here I believe.<br>[42:30] So<br>[42:32] >> the choice buttons<br>[42:34] >> let yeah like when you when when you<br>[42:36] click a a choice what happens? Does it<br>[42:40] load then another page? Let like like<br>[42:43] >> maybe you can walk us through the data<br>[42:44] flow of that way of that thing.<br>[42:46] >> Yeah. Uh so if you're coming in here and<br>[42:49] there would be an ID on this somewhere<br>[42:53] probably<br>[42:57] where that ID is. It's it's here<br>[42:59] somewhere or maybe it's grabbing it by<br>[43:01] the class. But what's happening is<br>[43:03] you'll see we have our act up here and<br>[43:06] and the title of the act itself. Then<br>[43:09] let me just zoom out because it might<br>[43:11] just do it that way. And that way when I<br>[43:13] click an option,<br>[43:14] >> the content itself is refreshing. You're<br>[43:17] scrolling back up to the top of the<br>[43:18] page. So it's it's just within the<br>[43:20] contained area. So you're not reloading<br>[43:22] the entire page,<br>[43:23] >> right?<br>[43:24] >> Thinking about how a React app would<br>[43:25] work is basically the idea.<br>[43:27] >> So that's what I was wondering like how<br>[43:28] are you how are you doing that? Is that<br>[43:30] is that being done using like the<br>[43:31] interactivity router package and data<br>[43:34] regions and all that or is it being done<br>[43:35] a different way?<br>[43:37] >> I don't know.<br>[43:39] >> Cool.<br>[43:40] Sorry to put you on the spot. I'm just<br>[43:42] curious.<br>[43:42] >> No, it's all good. I mean, I'm not I'm<br>[43:44] not going to lie. I'm going to be pretty<br>[43:45] open and honest here. Like, I really<br>[43:47] just let AI drive the wheel here and and<br>[43:49] my plan is to come back and learn how it<br>[43:51] all actually works and then be able to<br>[43:52] start to do real<br>[43:55] >> stuff in in my day-to-day working life<br>[43:56] with the interactivity API. Like, I've<br>[43:58] got a ton of ideas here. So um<br>[44:00] >> so the so not not to push it too much<br>[44:03] further but in in the in the render of<br>[44:06] this block<br>[44:07] >> which is rendering out that content<br>[44:10] >> what does that look like like in the<br>[44:11] render.php PHP like we look at that<br>[44:14] directly is is there a render.php php<br>[44:16] like there should be like a<br>[44:18] >> oh yeah there'll have to be so okay<br>[44:20] >> so we look in there and then okay cool<br>[44:24] and then<br>[44:27] >> yeah so it's just some error stuff going<br>[44:28] on up front here and then you know<br>[44:30] grabbing all of the data from so a lot<br>[44:32] of stuff is being set in post meta<br>[44:34] >> yeah so we're grabbing all<br>[44:36] >> we're using that as the the state for<br>[44:38] the block or the context I guess for the<br>[44:40] block<br>[44:41] >> okay and then<br>[44:43] >> yes then uh what is this one it's just<br>[44:45] checking to make sure you have<br>[44:46] permissions for your character and your<br>[44:48] account and stuff.<br>[44:51] >> And then just more error handling here.<br>[44:53] This is on the create a character. Just<br>[44:55] checking to make sure that you have a<br>[44:56] character because there was times where<br>[44:57] I was testing and I didn't have a<br>[44:58] character, but I was able to go through<br>[45:00] and play. So, we had to add some of that<br>[45:01] stuff back in<br>[45:03] >> for sure.<br>[45:03] >> Um,<br>[45:04] >> so is character.<br>[45:06] >> Yeah, I'm going a bit too slow or a bit<br>[45:08] too fast for you.<br>[45:09] >> No, no, it's fine. Carry on. I'm good.<br>[45:12] Then you're gonna get down into so so<br>[45:15] here's you know if there's no scenes<br>[45:17] available in the quest. So if there's<br>[45:18] you know if I if I've made a mistake on<br>[45:20] something at least there's an error<br>[45:21] going to get thrown up here as well.<br>[45:23] >> Uh so then you start getting into okay<br>[45:25] we're going to start grabbing some of<br>[45:26] the post type data here now. So you can<br>[45:28] see there's a post type for scenes<br>[45:31] and then grabbing more data. So where<br>[45:34] does it really start? So here's the<br>[45:36] interactivity. So here you go. So, this<br>[45:38] is initializing our our state<br>[45:41] and setting all kinds of data. It's<br>[45:44] pretty simple, straightforward, well<br>[45:46] named. Um,<br>[45:48] >> yeah, I know it's great.<br>[45:50] >> Then we get down to loading our state.<br>[45:52] So, we're going to load our scenes. And<br>[45:54] then here's here's this is really where<br>[45:57] the magic happens then. So, we got<br>[45:58] here's the data bind.<br>[46:00] >> Um, some of that stuff going on from the<br>[46:02] interact. This is stuff I'm starting to<br>[46:03] learn a little bit more about now. Um,<br>[46:05] just so I can understand how it all<br>[46:07] works.<br>[46:08] It was really funny. This is a very<br>[46:09] different approach to learning<br>[46:10] something. Normally, I learn by doing a<br>[46:12] course or reading a bunch of stuff and<br>[46:13] and building as I go. I figured I'd try<br>[46:15] to reverse engineer that idea and build<br>[46:18] something and then go learn how it<br>[46:20] actually works after the fact.<br>[46:21] >> Yeah.<br>[46:21] >> Um<br>[46:22] >> that's<br>[46:23] >> Yeah, I I do wish I had more time to I<br>[46:25] do wish I more had more time to learn it<br>[46:27] before we did the show, but also by<br>[46:29] booking the date for this show, it lit a<br>[46:31] fire under my butt to finish this thing.<br>[46:32] So, it was kind of<br>[46:34] >> I'm not asking to put you on the spot or<br>[46:35] make you, you know, call you out or<br>[46:36] anything. I'm just I'm genuinely cur uh<br>[46:38] curious because there this is this is a<br>[46:40] this is one of the most complicated apps<br>[46:42] I've seen I think I've seen built with<br>[46:44] the interactivity a API just<br>[46:46] understanding how it all fits together<br>[46:48] is is is pretty cool and like the Yeah.<br>[46:52] So okay so just scroll down just a<br>[46:55] little bit further there. So is this<br>[46:57] where the<br>[46:58] >> Yeah. Right here.<br>[47:01] >> So the content's happening right here.<br>[47:02] That's where the content's happening.<br>[47:05] >> Okay. So it's just Okay. Okay, we're<br>[47:07] just outputting the content. Okay,<br>[47:08] >> so if you come up. So here's what's<br>[47:09] happening with the content.<br>[47:12] >> So you're getting Oh my god, that is<br>[47:16] so Okay. And the content gets pulled<br>[47:18] from I guess whatever the whatever<br>[47:23] >> Yeah.<br>[47:24] >> Okay, cool.<br>[47:25] >> Yeah. So it's getting the content here<br>[47:27] from the scenes. Yeah, it's grabbing the<br>[47:28] scene and your start. Yeah. So right<br>[47:30] here. So here's your starting scene ID<br>[47:32] gets passed in here and it ends up<br>[47:34] pulling out the content from right here.<br>[47:36] Okay, cool. So, it doesn't look like<br>[47:38] it's using the router, which I don't<br>[47:39] isn't necessarily a issue or a problem<br>[47:42] or I'm just I was just curious because<br>[47:45] that that would have been my my thought<br>[47:47] was that because basically what the<br>[47:50] router allows you to do is you have a<br>[47:52] you have a post let's say, right? like a<br>[47:55] a scene and then what when you click the<br>[47:58] the next button what like to go to the<br>[48:01] next page it will just pull the the the<br>[48:03] routers from that next page and and and<br>[48:06] repopulate that one section. Um but but<br>[48:10] they're doing it already in a just a<br>[48:12] different way. It's not not not wrong,<br>[48:13] not bad, just different. And<br>[48:16] >> yeah, cool.<br>[48:17] >> Yeah, very cool.<br>[48:18] >> I figured there probably be a couple<br>[48:19] different ways to do it. Again, it was<br>[48:21] just a matter of learning what was the<br>[48:23] what was the best approach. Um,<br>[48:25] >> for sure. No, and I mean again, I'm not<br>[48:28] I'm not like you did it wrong, Troy.<br>[48:30] That's not what I mean at all. This is<br>[48:31] super cool. I'm just uh I'm just<br>[48:34] curious. I like to poke through the<br>[48:35] code.<br>[48:36] >> Yeah. No, absolutely. And that's that's<br>[48:37] why I gave you access to the repo so you<br>[48:39] could have all the time you wanted to<br>[48:40] kind of kind of take a look through it<br>[48:42] as well.<br>[48:43] >> Super cool.<br>[48:44] >> Yeah. So then here's all of your<br>[48:45] choices. So then, you know, here's how<br>[48:46] the choice setup works. Just grabs all<br>[48:49] the choices that are attached to the<br>[48:50] quest and and and builds all of that<br>[48:52] stuff out as well. And then yeah, so it<br>[48:55] triggers a reload there.<br>[48:57] >> Nice.<br>[48:58] >> And then we have our quest completion<br>[49:00] information. So whether it be, you know,<br>[49:02] whether you're completely finished and<br>[49:03] and you know, whether you're going to<br>[49:04] continue on to the next quest or the<br>[49:06] account hub, there's a few different<br>[49:08] little logic going on there to<br>[49:10] determine, you know, what the user<br>[49:11] should be prompted with.<br>[49:13] >> Um, and then um Oh, interesting. Okay,<br>[49:18] that's cool. That's a sort of a wrap it<br>[49:19] up sort of thing.<br>[49:21] >> That's neat. So yeah. So that's that's<br>[49:23] >> cool, man.<br>[49:25] >> I I I think it's cool. I mean, as far as<br>[49:27] like like playing the game and and how<br>[49:29] it works and stuff like that. Now, I<br>[49:31] mean, as far as the code goes, I I<br>[49:32] definitely need to spend a lot of time<br>[49:34] kind of diving into, you know, to<br>[49:36] properly understand it to make sure that<br>[49:38] there's no ways I can approach things<br>[49:40] differently and and stuff like that. But<br>[49:42] that was sort of the fun part about this<br>[49:43] project was like building it without<br>[49:45] thinking too too much around those parts<br>[49:49] of it, like pushing off that that more<br>[49:52] of the learning experience to after the<br>[49:54] fact and just having fun<br>[49:56] >> just vibe coding this thing out as as<br>[49:59] best as I could. Um, it was just it was<br>[50:00] really fun. It was just I don't do that<br>[50:03] like ever.<br>[50:04] >> So it's it was really fun to take that<br>[50:06] approach for once and and you know see<br>[50:08] what I could do with it like<br>[50:10] >> so it was it was fun. I I would<br>[50:11] definitely do it again on a project that<br>[50:14] wouldn't be critical for work. Um<br>[50:17] >> yeah, for sure. Well, I mean, who's<br>[50:18] going to pay you to do that, too, right?<br>[50:20] Like your clients aren't are your<br>[50:21] clients won't or your boss is like, I'm<br>[50:22] not paying you to just dick around and<br>[50:24] write potentially bad code, you know?<br>[50:26] You know, so yeah, it's it's cool to be<br>[50:28] able to have these these little side<br>[50:30] projects. I mean, unless you're me, I I<br>[50:31] I get paid to write crappy code and show<br>[50:33] people, but but that's not that's that's<br>[50:37] not standard. Um and and my code needs<br>[50:40] to get better. I I I was told that by a<br>[50:42] couple of people uh the other day, which<br>[50:44] is good. It's a good keeps me honest. Uh<br>[50:48] but uh<br>[50:50] anyways, um<br>[50:52] >> yeah. Okay, cool.<br>[50:54] >> Pull open like the create a character.<br>[50:55] So, what we have in the creative<br>[50:57] character, it's it's pretty simple. It<br>[50:59] actually does I did want to make sure I<br>[51:00] was using the interactivity API. So, um,<br>[51:03] I want to I I do I do want to get to a<br>[51:05] point where like everything is sort of<br>[51:07] in one maybe into one area where you go<br>[51:09] and you create your character, you flow<br>[51:11] right into your account hub and all of<br>[51:12] it sort of be handled by the<br>[51:14] interactivity API as opposed to the<br>[51:15] different pages.<br>[51:16] >> I'm not sure if that's going to be the<br>[51:17] best choice, but something I definitely<br>[51:19] want to<br>[51:20] >> I think I think you could do it. I think<br>[51:21] it's all needs to be different pages in<br>[51:23] the sense of like a page for thing, a<br>[51:25] page for thing, and a page for thing.<br>[51:26] And you just basically pull in like if<br>[51:29] you were to if you were to look at the<br>[51:31] the the inactivity router uh package.<br>[51:34] You you can do things like load the next<br>[51:37] page and you would would wrap your sort<br>[51:40] of let's call it content whatever you<br>[51:42] know you you define a region called<br>[51:44] content and then when you click the<br>[51:46] button to go to your account page it<br>[51:48] would look at that page. It prefetches<br>[51:49] that page that you've already built and<br>[51:51] then it it grabs my hands cut off here<br>[51:54] because of where my camera is. That's<br>[51:55] hilarious. Uh but uh it grabs that chunk<br>[51:59] and just replaces the other chunk on the<br>[52:00] current page. So it's that really like<br>[52:02] single page app application approach.<br>[52:05] And there's another really cool thing<br>[52:06] where you can actually append to pages.<br>[52:07] So if there's a thing that's like on the<br>[52:10] next page that isn't on your previous<br>[52:12] page, it'll actually in insert it for<br>[52:13] you. It's pretty cool stuff.<br>[52:16] >> I I already have a couple of ideas<br>[52:18] around that. So I definitely<br>[52:20] >> for like call outs and stuff. Yeah, it'<br>[52:22] be very very cool. Yeah, I need to dive<br>[52:23] in and learn because there's there's a<br>[52:25] few things that I just thought about as<br>[52:26] just a couple things you mentioned that,<br>[52:28] you know, generated some ideas. So,<br>[52:30] >> um I mean I definitely<br>[52:31] >> have all the pages built out<br>[52:33] >> like<br>[52:35] >> Yeah. So the dynamicness of what you<br>[52:38] have going on might not<br>[52:41] you like if I'm understanding how it all<br>[52:44] works correctly. You need to have page<br>[52:46] like you need to have the quest page for<br>[52:49] quest one and then you need the quest<br>[52:51] page or sorry the scene scene one scene<br>[52:53] two scene three. All of those need need<br>[52:55] to be built out<br>[52:57] >> and because you can come in at any any<br>[52:59] single one of those, right? So, let's<br>[53:00] say like and that might actually help wi<br>[53:02] with your um<br>[53:04] >> starting from a scene that's inside of a<br>[53:06] quest because you would have a scene<br>[53:09] page that would be just whatever<br>[53:12] quest name scene whatever blah blah<br>[53:14] blah, right? So, the URL there, but then<br>[53:16] from that URL, you can import the other<br>[53:19] things as needed. So, you can actually<br>[53:21] say I'm actually on scene seven of Quest<br>[53:23] 4 and that that page just gets loaded<br>[53:26] right away. H I'm gonna have a<br>[53:28] conversation with CL about that tonight.<br>[53:29] I think<br>[53:30] >> you know. Question for you. Are you<br>[53:32] using the the WordPress AI skills for um<br>[53:35] uh Clo?<br>[53:36] >> No, I haven't set those up yet, believe<br>[53:38] it or not. I should<br>[53:40] >> I keep forgetting. I I sit down and I<br>[53:42] dive into something and I forget all<br>[53:44] >> exactly the same way. I I was like<br>[53:46] working on something. I'm like, "Hey, I<br>[53:47] should do this." And then I forgot to do<br>[53:48] it. And then uh I uh sorry I'm just<br>[53:52] going to get the um<br>[53:54] >> I have them somewhere in my in my I know<br>[53:56] I know someone had posted I saw them<br>[53:57] posted somewhere I think it was on<br>[53:59] Twitter a couple days ago and I just<br>[54:00] because I keep forgetting I I threw it<br>[54:02] into my taskbar to go back<br>[54:04] >> thinking that I would actually remember<br>[54:06] to do that and of course I didn't.<br>[54:08] >> Well, I'm going to drop it in chat for<br>[54:10] anyone that's interested. So it's called<br>[54:11] it's a it's a a GitHub thing. You just<br>[54:14] install it in code and it's got things<br>[54:15] for like the inactivity API. It's got<br>[54:17] all sorts of stuff. So it really informs<br>[54:20] um it informs code of what it needs. So<br>[54:23] it might help.<br>[54:24] >> Oh boy, you're you're not wrong when<br>[54:26] there's a big pretty big delay. I went<br>[54:27] over to open that link up so I could<br>[54:29] just look at it sort of after and<br>[54:31] install it, but<br>[54:32] >> pretty big delay.<br>[54:33] >> Um I wanted to pull open the creative<br>[54:35] character a little bit cuz like there's<br>[54:36] some stuff in here that I thought was<br>[54:37] pretty interesting like and I and I've<br>[54:39] alluded to it a little bit but I haven't<br>[54:40] really shown it yet because it's<br>[54:42] something that I want to pull out in the<br>[54:43] future as sort of an expansion or you<br>[54:46] know an improvement to the game. But I<br>[54:48] was mentioning that we're al also<br>[54:49] automatically generating like strength<br>[54:50] and dexterity and a bunch of other<br>[54:52] typical stats that anybody who's played<br>[54:54] like even a classic RPG. Like I started<br>[54:56] with the old school Final Fantasy on the<br>[54:58] nest type days and like so I'm used to<br>[55:00] like some of these classic stats. So I<br>[55:02] tried to build some of those things in<br>[55:04] well mixing in some of the more modern<br>[55:06] things like the necromancer and the<br>[55:07] paladins. They're more modern classes in<br>[55:10] in the RPG worlds.<br>[55:12] >> Let me just open up my character here.<br>[55:15] It's a completely unstyled page because<br>[55:17] I I just haven't gotten into this part<br>[55:19] of it yet. But if I were to open up my<br>[55:22] character,<br>[55:23] I'll highlight it so you can actually<br>[55:25] read it a little bit easier because it's<br>[55:26] completely inaccessible and and<br>[55:28] unstyled.<br>[55:29] >> Yeah.<br>[55:29] >> But you can see how I've got my<br>[55:30] character name.<br>[55:32] >> I am generating stats because like I<br>[55:34] said, I do have a long-term goal to put<br>[55:36] boss battles in to the end of certain<br>[55:39] quests or<br>[55:41] >> something. So, I do need to figure out a<br>[55:43] combat system. I have no idea how I'm<br>[55:45] going to do it, but I'm sure we'll<br>[55:47] figure it out at some point. And we got<br>[55:48] some health points. So, a max health<br>[55:51] point. There's going to be some stamina<br>[55:52] points. Um, which I think that might let<br>[55:56] me allow a character to run from an<br>[55:58] enemy. So, I'm I would love to have<br>[56:00] random encounters. I'm a big fan of that<br>[56:02] style of of RPG game. I don't know how<br>[56:05] it would ever apply to this.<br>[56:07] >> Um, yeah. And then you got your combat<br>[56:09] thing. So, there will be points, I<br>[56:11] think, that that there will be some<br>[56:12] enemies that that you can bail from. You<br>[56:15] don't need to fight them because you're<br>[56:16] not going to be strong enough, but that<br>[56:17] would bring in the replayability to come<br>[56:20] back and<br>[56:21] >> come back and and fight that boss or<br>[56:23] whatever the case might be. So, I'm I'm<br>[56:24] kind of I'm planning a lot of stuff<br>[56:25] behind the scenes that I'd like to do<br>[56:27] over time.<br>[56:29] >> That's really Well, then you'll have to<br>[56:30] have like spells and and and weapons and<br>[56:32] armor and like<br>[56:34] >> I have an inventory system. That's nice.<br>[56:37] >> I I do have an inventory system in play<br>[56:40] and one of the things that I was talking<br>[56:42] about with Claude when we were planning<br>[56:43] this was the ability to make items<br>[56:47] required as well. Like I'm thinking back<br>[56:49] like you think back you go back to the<br>[56:50] old school PC gaming days of like um the<br>[56:53] the was it like well Leo Suit Larry is<br>[56:56] the one that first comes to mind but<br>[56:57] like you get like the some of those<br>[56:59] those space games and there was a bunch<br>[57:00] like King's Quest I couldn't remember<br>[57:02] the name. King's Quest was another one.<br>[57:03] But there were ones where it was like go<br>[57:05] get the broom to give to the maid to get<br>[57:08] the banana to give to the monkey. Like<br>[57:10] it's all those weird things. Like<br>[57:12] >> I'm not going to go that crazy in depth,<br>[57:13] but I like the idea of like you can get<br>[57:15] a key from a quest or if you fight a<br>[57:17] boss, you're going to get the key,<br>[57:19] >> but that key will open a door like Yeah,<br>[57:22] >> that's cool. I like that idea.<br>[57:24] >> There's a question from YouTube for you.<br>[57:26] Uh how are your stat just because you're<br>[57:28] talking stats. How are how are your<br>[57:29] stats playing into the story at this<br>[57:31] point?<br>[57:32] >> Not at all. That's why they're not<br>[57:33] visible up front. I just Right.<br>[57:35] >> So, if you if you look at the account<br>[57:37] hub at the moment, it just shows you<br>[57:40] this because you want to get that feel<br>[57:41] of the RPG like this is how much, you<br>[57:43] know, help I have.<br>[57:45] >> It it plays no bearing into the game.<br>[57:47] It's just there's there's things I've<br>[57:48] kind of built in sort of underlying in<br>[57:51] the code that's ready to open those<br>[57:53] things up, you know, as I once I finish<br>[57:55] this main part. um I do want to jump<br>[57:58] back in and and that will play a factor<br>[58:00] at some point. So you do have all of<br>[58:01] these stats here and they're all being<br>[58:03] automatically generated based on the<br>[58:06] role that you do when you create your<br>[58:07] character. So again that uses the<br>[58:10] interactivity API here as well on that<br>[58:12] screen.<br>[58:15] There's a follow-up question here. I<br>[58:16] think I can answer it but you tell me if<br>[58:17] I'm wrong. The the followup question and<br>[58:19] is the story linear or more open world?<br>[58:21] I'm assuming it's linear because it's<br>[58:22] choice based. So<br>[58:24] >> no. No,<br>[58:27] >> I'm gonna Well, it's not really a<br>[58:28] spoiler, but at the end of it, you need<br>[58:30] to make one of four choices to end this.<br>[58:34] And when I make the next expansion,<br>[58:36] that's going to have an impact on where<br>[58:38] you can actually go after the fact. So<br>[58:41] >> nice.<br>[58:42] >> Yeah. So, I I thought about that one,<br>[58:44] >> but you can't just go anywhere at any<br>[58:46] time. Like you can't just be like I'm on<br>[58:48] scene one and like you're you're given<br>[58:51] you're given choices in a sort of a<br>[58:54] linear way, but choices inform other<br>[58:57] choices, right?<br>[58:58] >> Yeah. It's not like you're dropped in a<br>[58:59] world you can do with whatever you want.<br>[59:01] It's like you dropped in a world and<br>[59:02] here's two two ways that you can go.<br>[59:04] >> Yeah. It's not it's not like the big<br>[59:06] open world RPG games where they drop you<br>[59:08] in as a character and give you a a piece<br>[59:10] of wood and tell you to go figure it out<br>[59:11] and you spend 300 hours not doing<br>[59:14] anything.<br>[59:14] >> Yeah. Grinding trees. So, so you can<br>[59:16] build a shelter. Yeah.<br>[59:18] >> Yeah. No, so for the most part, I mean,<br>[59:20] I'd say it's about 80% linear right now<br>[59:22] and about 20% choices and and I do plan<br>[59:25] on sort of breaking that out a lot more<br>[59:27] as we start to get into um you know,<br>[59:30] expansions and and opening things up<br>[59:32] with boss battles and inventory. I do<br>[59:34] want it to feel<br>[59:35] >> like someone is is is in a larger world.<br>[59:39] And I do have I got a map. I have like<br>[59:41] other regions ready to go. I think I<br>[59:42] showed you the map, Ryan. um it's it's<br>[59:45] part of one of my scenes. So, there's a<br>[59:47] lot of ideas that I have for the<br>[59:48] long-term growth of this, but<br>[59:50] >> I think first I just need to like stop,<br>[59:52] finish what I've got, get it out there,<br>[59:55] and start getting feedback on how I can<br>[59:57] make it better,<br>[59:58] >> and then start planning more things<br>[60:00] towards the future.<br>[60:01] >> I think it's really cool. Um Mike Corkum<br>[60:03] just logged in to Thumbs Up the Leisure<br>[60:05] Suit Larry reference.<br>[60:10] >> Hello, Mike. Um this is I I'm I'm<br>[60:13] thoroughly impressed. I think that this<br>[60:15] is super cool. Um,<br>[60:17] so can you explain how I have I have<br>[60:21] some interactivity API questions. So in<br>[60:23] your in your stores and everything. So<br>[60:25] each one of these pages like for example<br>[60:27] when you load this page this this front<br>[60:29] end is powered by a single store. I<br>[60:31] think you're calling it create a<br>[60:32] character creator or what like you know<br>[60:34] what I mean? So is there one block that<br>[60:37] manages that entire thing or is it a<br>[60:39] series of blocks that are sort of<br>[60:40] working together?<br>[60:41] >> No. So if if you look at the account<br>[60:43] hub, it's just uh it's my account hub<br>[60:46] block and then you come over to the<br>[60:48] account hub<br>[60:50] >> itself and then what you're going to get<br>[60:51] on the front end. It's it's just it's<br>[60:53] one block to handle all of that. Now the<br>[60:55] account hub is a big<br>[60:56] >> one to rule them all.<br>[60:57] >> Yeah, one block to rule them all. That's<br>[60:59] the that's the come on. It's a reference<br>[61:03] perfect for this. By the way, has no no<br>[61:05] one seen that I'm wearing my Hellfire<br>[61:07] Club t-shirt because this is like D and<br>[61:09] D related. Come on. Not a single person<br>[61:11] called it out. Ah, whatever. Probably<br>[61:14] just think I'm a big nerd. Carry on.<br>[61:17] Carry on.<br>[61:19] >> Yeah, I think for the for the most part,<br>[61:20] every piece of this is just it's one<br>[61:22] block. Now, what you'll see is is in<br>[61:25] some cases just to make things more<br>[61:27] reusable. I did start to build out some<br>[61:29] components where I could like start to<br>[61:31] reuse pieces, but then I started to feel<br>[61:33] like, okay, this is going to take me a<br>[61:35] lot more time, and I wanted to kind of<br>[61:37] get the game in a playable state. and<br>[61:39] then cycle back to start looking at how<br>[61:41] I can make more reusable components and<br>[61:43] kind of break things out a little bit.<br>[61:45] >> Um,<br>[61:46] >> so just kind of getting ready for that.<br>[61:48] >> Any benefit of of of<br>[61:52] like probably with what you're doing?<br>[61:54] The answer might be no, but I'm just to<br>[61:56] play devil's advocate like I've I've<br>[61:58] I've built complicated interactivity API<br>[62:00] things. And it's really cool to be like<br>[62:04] what one of the thing one of the places<br>[62:06] where it really shines in WordPress is<br>[62:09] like we used to have the React app that<br>[62:11] was like I always kind of compare it to<br>[62:13] Flash like back in the day where you<br>[62:15] would just like insert Flash here and it<br>[62:17] would be this black box of all the<br>[62:19] things. Um, and if you needed to and and<br>[62:22] and if you needed to make modifications,<br>[62:23] you couldn't. You had to recompile. And<br>[62:25] like React is is like that in the sense<br>[62:28] of like you target a div, you put the<br>[62:29] whole app in and then the app is inside<br>[62:31] this app. Um, or Yeah. And then but what<br>[62:34] where the the inertivity API really<br>[62:35] shines where you can have like five or<br>[62:37] six or 10 blocks that make up your UI,<br>[62:39] but they're all separate blocks and they<br>[62:41] all talk together. So like would there<br>[62:43] be any benefit for you to take some of<br>[62:45] those UIs<br>[62:47] and try to split them out into blocks?<br>[62:49] Like say you wanted to change the UI<br>[62:52] >> on like like if you jump back to the<br>[62:55] character page on the front end for<br>[62:56] example, right? Yeah. So let's say that<br>[62:58] you wanted to<br>[63:00] >> move you your journey around or you<br>[63:02] wanted to insert something between<br>[63:03] characters or like you wanted to to to<br>[63:06] take these these pieces and kind like<br>[63:09] and make the page more composable I<br>[63:11] guess is what I'm looking at is what I'm<br>[63:12] wondering. I mean it does mean more<br>[63:13] blocks. It does mean a bit more work.<br>[63:15] Uh, but the interactivity really the the<br>[63:17] interactivity API really shines with<br>[63:19] that because it all has the same store<br>[63:20] and it and it and it allows you to<br>[63:23] insert patterns and all that sort of<br>[63:25] stuff. just a I don't know if that's a<br>[63:27] food for thought question I guess but I<br>[63:29] was just wondering if if like I see like<br>[63:32] with with what you've built it's very<br>[63:34] like it doesn't make sense for things to<br>[63:35] move around too much but if you ever<br>[63:37] decided that like I'm going to put in I<br>[63:40] want to have a a drop down that shows me<br>[63:42] all of my individual stats<br>[63:45] you know you would have to go in and<br>[63:46] rebuild that whole block out to add that<br>[63:48] in whereas if you just had it as blocks<br>[63:51] you might just be able to build a you<br>[63:53] know details block and then throw it in<br>[63:54] there you You know what I mean? Like all<br>[63:57] of these are<br>[63:57] >> that could be probably pretty useful for<br>[63:59] this page, for example, like to build<br>[64:00] this one out. Like the the the vision on<br>[64:02] this one was not just stats. There's<br>[64:04] going to be your photo.<br>[64:07] >> The player can create a little story for<br>[64:09] for that that character if they really<br>[64:11] want to get into it.<br>[64:12] >> Um,<br>[64:13] >> yeah,<br>[64:13] >> you could have a separate block on here<br>[64:15] that would pull in like your progress.<br>[64:17] This character has completed X, Y, and<br>[64:19] Z, or this character is currently in<br>[64:21] this position within the story. this<br>[64:23] character has defeated these bosses.<br>[64:25] Like thinking about long-term stuff,<br>[64:27] like this character has got these items<br>[64:28] in their inventory. Like I think all<br>[64:30] those could be<br>[64:31] >> those individual blocks that you're<br>[64:32] thinking about. So that would be a great<br>[64:33] a great approach to to like building out<br>[64:35] this page here because I I really<br>[64:37] >> I think about like when I play a game on<br>[64:39] like my PlayStation or something like<br>[64:40] that<br>[64:40] >> and I get to my character screen in a<br>[64:42] great RPG, like I see a lot of detail.<br>[64:45] There's a lot of stuff. There's a lot of<br>[64:46] screens to go through. Um, I I like the<br>[64:49] idea of having a lot of that stuff here<br>[64:51] as well, just to to to give that just to<br>[64:54] let the player really kind of get into<br>[64:55] it a little bit more and and that also<br>[64:58] will give me the ability to look at<br>[64:59] like, oh, well, I can go and add this to<br>[65:01] the game and that to the game and and<br>[65:03] stuff like that. So, I I think this<br>[65:04] would be a perfect page for for what<br>[65:06] you're saying there.<br>[65:07] >> Yeah. And I think it it would also allow<br>[65:09] you to be um a bit more uh nimble in in<br>[65:14] the sense of like let's say you wanted<br>[65:17] to do Veil of Fate 2 or you wanted to to<br>[65:19] do Spaceship of Fate, right? And so you<br>[65:22] have all of these things now now you've<br>[65:24] got like a because what you've built is<br>[65:25] a pretty amazing sort of platform to<br>[65:27] build this style of game on. And if you<br>[65:29] just want to apply a different theme to<br>[65:31] it,<br>[65:32] >> you know, and now it becomes a<br>[65:33] space-based game or becomes like a<br>[65:35] whatever zombie apocalypse game, which I<br>[65:38] would play the absolute crap out of, by<br>[65:40] the way, a zombie apocalypse version one<br>[65:41] of these.<br>[65:42] >> Um, hint hint. Uh, yeah, I think that'd<br>[65:46] be fun. I think that'd be an interesting<br>[65:48] like and it would really allow you to to<br>[65:51] um easily modify stuff. I'm not trying<br>[65:55] to convince you to do anything. Sounds<br>[65:56] like I am. But I'm but I've just seen it<br>[65:59] become very very easy to like, oh, you<br>[66:01] know what? I don't like where that<br>[66:02] button is. I'm just going to move it in<br>[66:04] the template rather than like rebuild it<br>[66:07] and like mess with all the all the um<br>[66:10] >> CSS and everything on that. Yeah, there<br>[66:12] was a couple things I I'd thought about<br>[66:14] as far as like the letting the user have<br>[66:16] more control like what if I wanted to<br>[66:18] move this character over to this side<br>[66:20] and and you know change my view like<br>[66:22] >> like I had the drag and drop setup<br>[66:24] already going on in in the quest itself.<br>[66:27] So it's like why could I not just do<br>[66:29] that and then store that as well<br>[66:31] >> necessarily mean like giving the user<br>[66:32] that level although that would be a very<br>[66:34] very cool thing to be like I don't care<br>[66:36] what my stats are. I want that always to<br>[66:38] be minimized. But I I mean from someone<br>[66:40] like like from you managing the site and<br>[66:42] being able to like make changes to it<br>[66:45] quickly by just like inserting a a new<br>[66:47] block inside the template because then<br>[66:49] that template because here's a good<br>[66:51] example. Let's say that this ends up<br>[66:53] having like multiple campaigns or um<br>[66:56] yeah multiple campaigns. No. Yes.<br>[66:59] Anyways, but you want to have one<br>[67:00] campaign with certain things and one<br>[67:02] campaign without certain things and you<br>[67:03] have m multiple page uh uh templates<br>[67:05] that handle that. if you would insert<br>[67:07] this block um account block on both<br>[67:10] pages, but let's say the secondary one<br>[67:13] doesn't want to show the characters. I<br>[67:14] don't know why you you don't have that<br>[67:17] flexibility. You just put the block on<br>[67:19] and you get everything. And so that's<br>[67:20] sort of what I was<br>[67:22] >> Yeah. Okay. I see.<br>[67:23] >> Sort of getting at there. Yeah. But I<br>[67:24] mean<br>[67:25] >> make it a lot better.<br>[67:27] >> Yeah.<br>[67:28] >> Like just breaking it out into smaller<br>[67:30] individual pieces like because like the<br>[67:31] amount of stuff I've had to debug here.<br>[67:33] I mean, if it weren't for code, it would<br>[67:34] have been a giant pain. But<br>[67:36] >> for sure,<br>[67:36] >> I I think like when I finally get into<br>[67:38] like I need to learn this for myself and<br>[67:41] not rely on AI for it, I think breaking<br>[67:43] it down into smaller blocks will will<br>[67:45] help with the learning<br>[67:47] >> as well as as the debugging stuff as I<br>[67:50] start to take on a bit more of the<br>[67:51] responsibility of building the service<br>[67:53] sort of on my own and not relying on AI<br>[67:55] at all times, which is I don't want to<br>[67:57] do that for, you know, for the whole<br>[67:59] game.<br>[67:59] >> It was just more to get me get me going<br>[68:01] here.<br>[68:02] Um,<br>[68:02] >> it will mean you'll have a ton of blocks<br>[68:04] to manage,<br>[68:05] >> which that's fine. I mean,<br>[68:07] >> kind of maybe maybe a bit nuts, but um,<br>[68:10] but yeah, I can't tell you though how<br>[68:12] cool I think this is. Like<br>[68:14] >> I think it's a it's a cool idea. I've<br>[68:16] wanted to do it for a long time. Like my<br>[68:17] my wife is a librarian and my kids are<br>[68:20] avid readers and I loved these books as<br>[68:22] a as as a child and I know my daughter<br>[68:25] is already wanting to play this game.<br>[68:27] Like I haven't let her kind of get in<br>[68:29] there yet either. like she really wants<br>[68:30] to dive in and play it as well. Like<br>[68:32] they love reading. So like it's really<br>[68:34] nice to be able to do that and and and<br>[68:35] you know my kids have been involved. My<br>[68:37] my my kids have had some influence on<br>[68:39] the game and and they've sat down with<br>[68:41] me and they've they've helped me with<br>[68:42] some of the imagery and stuff. So it's<br>[68:43] it's been fun to kind of get them<br>[68:45] involved as well. So it's it's it's been<br>[68:47] a fun little project um to get them<br>[68:49] involved with. And we were talking a<br>[68:50] little bit earlier where, you know, I'd<br>[68:52] like to make like a little theme song<br>[68:54] for the front and and you know, you<br>[68:56] you've created some really cool options<br>[68:57] there too or like get my kids more<br>[68:58] involved in that side of it. And<br>[69:00] >> you know, I'd like I'd like my kids to<br>[69:02] get more involved and like my kids love<br>[69:03] to draw. So maybe they can have some<br>[69:05] influence on some of the art and other<br>[69:07] areas too and make this like a little<br>[69:08] family project that we we work on.<br>[69:10] >> For sure. I think it's<br>[69:11] >> one of the things I I wanted to mention<br>[69:12] and you kind of you had mentioned it a<br>[69:14] bit earlier with the whole idea of like<br>[69:15] I'd love to play a zombie game and stuff<br>[69:17] like that. I was having a conversation<br>[69:18] with Chris Reynolds about some of the<br>[69:20] stuff in this game. Like he's a big RPG<br>[69:22] guy, a big D and D guy. So I I talked to<br>[69:24] him a little bit about the game as we<br>[69:26] were going. Um, one of the things he<br>[69:29] threw out there was like, well, what if<br>[69:30] this were set up in such a way where<br>[69:32] anybody else could use it and build<br>[69:34] their own game? And I said, you know<br>[69:35] what, that's a great idea. So, you know,<br>[69:37] whether or not I put that out there as<br>[69:39] something that's just open source that<br>[69:41] anybody can do or if I get it to a point<br>[69:43] where it's a paid service, I don't know<br>[69:44] yet. But I like the idea and I'm start<br>[69:48] starting to set it up behind the scenes.<br>[69:49] I've I've just did a bunch of stuff like<br>[69:51] as soon as I did this new theme, I<br>[69:53] needed to set up sort of a design system<br>[69:55] for the plug-in itself. So, I set up a<br>[69:58] bunch of CSS tokens. So, now I'm<br>[69:59] starting to run things through CSS<br>[70:01] tokens, which then will allow me to make<br>[70:04] that game something that, you know, if<br>[70:06] Ryan wants to go make a zombies game,<br>[70:08] you can take the plugin.<br>[70:09] >> I do.<br>[70:10] >> So, yeah. So, you could technically take<br>[70:12] the plugin, create I I do need to go<br>[70:14] make a a token CSS file to put in all<br>[70:17] those root um variables in there, but<br>[70:20] then you could technically go in and you<br>[70:22] could skin the the the plug-in itself<br>[70:25] and then do whatever you wanted on your<br>[70:26] theme<br>[70:27] >> or then you you know you could have<br>[70:29] tokens on your theme like leverage the<br>[70:31] stuff that's being created at the root<br>[70:32] from the theme.json and then have that<br>[70:34] available to you in the plugin then to<br>[70:36] make your plug-in look like whatever<br>[70:38] game you want to design as well. That's<br>[70:40] it's a long-term thought that I'd like<br>[70:42] to have and and you know if it gets to<br>[70:44] that point I think that would be really<br>[70:45] cool if more people want to do this can<br>[70:49] you know go out and make their own<br>[70:50] little games.<br>[70:51] >> I think it's great question for you. You<br>[70:53] got me thinking about the CSS stuff. So<br>[70:55] right now the plugin is the brains. It's<br>[70:58] the it's the it's what does the quests<br>[71:00] and and the scenes and all and the<br>[71:01] campaigns, right?<br>[71:02] >> Yeah. Um, so does does the theme<br>[71:05] obviously the theme is what it is the is<br>[71:07] is the styles, but does does the plugin<br>[71:11] pull from the theme JSON or vice versa?<br>[71:14] Like how does that connect? Like so in a<br>[71:16] perfect world, I would take this plugin,<br>[71:17] I would install it, I'd build my quest,<br>[71:19] my themes, and my my uh campaigns. I'd<br>[71:22] throw a zombie apocalypse theme on top<br>[71:24] of it and all the pieces connect. Um,<br>[71:28] how how do you see that working or how<br>[71:31] does that work? Now,<br>[71:32] >> it's going that direction. So, what had<br>[71:34] happened is is is on Sunday I decided<br>[71:38] last minute I need a better theme for<br>[71:40] this whole game and because I'm part of<br>[71:43] the the Miles AI beta program, I was<br>[71:46] able to leverage that service and I<br>[71:48] built a crazy awesome I think it's a<br>[71:50] really crazy awesome nice interactive<br>[71:53] animated theme. But then I was like, "Oh<br>[71:55] man, my plug-in doesn't look anything<br>[71:57] like it." So again, I jumped into cloud.<br>[71:59] I think I have a document here<br>[72:00] somewhere. So I make sure I always<br>[72:02] document all my stuff. Um or maybe<br>[72:06] that's I think I might have that<br>[72:07] somewhere else. But I do have a design<br>[72:09] system<br>[72:10] um<br>[72:13] somewhere. I I have a I have a doc. So<br>[72:15] it it outlines like all of the the<br>[72:17] variables that are available from the<br>[72:19] theme. So, I'm I'm moving towards that<br>[72:21] direction where<br>[72:22] >> nice<br>[72:23] >> I'm going to pull from the theme.json,<br>[72:27] but there's a way that you can set<br>[72:28] things up in a token. I'm doing it in a<br>[72:30] different project where you can set<br>[72:32] things up to use the theme.json as a<br>[72:36] fallback. So, you can customize the<br>[72:37] color to your liking independently in<br>[72:40] the theme,<br>[72:41] >> but have excuse me, have the the the<br>[72:44] theme JSON equivalent be the fallback.<br>[72:48] So that will just allow anybody to kind<br>[72:50] of go in and skin it the way they would<br>[72:52] want to skin it.<br>[72:54] >> Yeah, that would be very cool. That that<br>[72:56] I think would be super powerful. I mean,<br>[72:57] I think that's how we should build in<br>[72:59] WordPress in general, right? Like we we<br>[73:00] should there should be like we don't<br>[73:02] have we don't really have a like a<br>[73:05] common token naming, variable naming<br>[73:08] approach. I mean, we do if we follow<br>[73:10] like some of the the the core themes and<br>[73:13] stuff, but it'd be very cool if there<br>[73:14] was just like I mean, this is going to<br>[73:16] be a controversial take, but if<br>[73:18] everything was named a similar way or<br>[73:20] the same way, then all themes and<br>[73:21] plugins would just work really well.<br>[73:23] >> I would love to see that. Like,<br>[73:25] >> you know,<br>[73:25] >> one of the things I learned like I I've<br>[73:27] just re like in the within the last<br>[73:28] maybe six to eight months is when I<br>[73:30] really dove in to learn block themes. I<br>[73:31] was not really into the block theme side<br>[73:33] of it because I was really focused on<br>[73:34] like great front-end blocks for for such<br>[73:37] a long time,<br>[73:38] >> right?<br>[73:39] >> I learned so much by playing with Ali.<br>[73:43] What those guys are doing over there is<br>[73:45] great. I love the design system concept<br>[73:47] where they have consistent naming with<br>[73:49] primary<br>[73:50] >> and secondary. They have a couple of<br>[73:51] very key names. So when I first started<br>[73:54] learning, I was using the Ali theme and<br>[73:57] kind of patterning some of the things I<br>[73:58] was doing after what they were doing and<br>[74:00] it was a great way to start learning.<br>[74:02] And then I kind of dove into like stuff<br>[74:04] with Miles and I started seeing how<br>[74:05] Miles was building themes and again you<br>[74:07] know you learn more stuff and then just<br>[74:08] other personal learnings and doing other<br>[74:10] courses and then you know diving into<br>[74:13] like I think 2025 was the first time<br>[74:15] when I really started to get some good<br>[74:16] experience and I I did a little smaller<br>[74:18] amount of contributing to 2025 and<br>[74:20] that's sort of when I started to want to<br>[74:22] learn more about block themes as well.<br>[74:25] >> Nice. Uh, oh, one of the other things I<br>[74:28] I think I should show as well. Um, so in<br>[74:30] in the case where if this plug-in were<br>[74:33] to become something that other folks can<br>[74:35] start using, the building of the data is<br>[74:38] the the really is the big amount of work<br>[74:41] here after you get through all the<br>[74:42] development like like sitting down and<br>[74:44] flowing content in for as many quests<br>[74:46] and as many scenes as there are is is a<br>[74:48] significant amount of work. Um, and of<br>[74:52] course because I was testing it, I was<br>[74:54] constantly like dumping my database or<br>[74:57] refreshing it and it was just it was<br>[74:58] becoming a bit of a pain. So I wrote a<br>[75:00] CLI command or I should say Chloe helped<br>[75:02] me write a CLI CLI command where I can<br>[75:06] import all of the races and classes<br>[75:09] whenever I want to with a real quick CLI<br>[75:12] command. So I don't have to manually<br>[75:14] build out all the taxonomy terms. Um, I<br>[75:17] have all of the quest images. They all<br>[75:18] live, excuse me, here in the plugin. So<br>[75:22] you can open up, you just get like<br>[75:23] whatever image. Um, so they're all named<br>[75:26] pretty specifically and that ties into<br>[75:28] some of the data. So if you look at this<br>[75:31] is the first quest that you go through.<br>[75:33] You can see you get a campaign here. Um,<br>[75:38] so this is just this is a really simple<br>[75:40] one because there's not a lot to it. But<br>[75:41] if you look at so this is the<br>[75:44] quest.json. So what happens is when you<br>[75:47] run um I think the CLI command is v<br>[75:51] import it will go through it will import<br>[75:55] all of these quest.jsons and it'll build<br>[75:58] like so when we looked at the um<br>[76:01] we looked at<br>[76:02] >> yeah the debugging page that that's just<br>[76:04] basically the output of that right<br>[76:06] >> pretty much. Yeah. So when you start<br>[76:08] looking at what's what's going on down<br>[76:10] here,<br>[76:11] um, so this this is what's happening<br>[76:13] here. And then the CLI command will<br>[76:15] import it and build that entire page<br>[76:17] because having to go through and try to<br>[76:20] select all of this stuff.<br>[76:22] >> That's a ton of tedious.<br>[76:24] >> That's a ridiculous that no one wants to<br>[76:26] do that. So<br>[76:27] >> no. Um, as Sweet Brown says,<br>[76:30] >> nobody got time for that.<br>[76:31] >> Oh, I pressed it twice. Ain't nobody got<br>[76:33] time for that. So<br>[76:35] >> I was waiting. I I don't I don't have<br>[76:36] the twist screen open here cuz it's a<br>[76:37] bit weird seeing the delay. So I was<br>[76:39] wondering if anybody was throwing those<br>[76:40] up.<br>[76:41] >> That was me.<br>[76:42] >> And then<br>[76:42] >> I did it twice.<br>[76:43] >> Then it also goes through and it creates<br>[76:45] all the scenes for us. So like 112<br>[76:47] scenes to build them. It's straight copy<br>[76:48] paste work, but it's still that's a lot<br>[76:50] of work. Paste them all in, add the<br>[76:52] feature image.<br>[76:52] >> So did did you generate these with code<br>[76:54] or did you generate them like did you<br>[76:56] pull that? Okay, cool.<br>[76:57] >> So what we did at first is is is when we<br>[76:59] were working through it, um I have all<br>[77:01] the scenes sort of here. Are you saying<br>[77:03] we like you and Clo like you and Clo<br>[77:05] were having a beard working on this?<br>[77:06] >> Hell yeah.<br>[77:07] >> I love it. I love it. Fantastic.<br>[77:10] >> Absolutely.<br>[77:11] >> So yeah. So I mean obviously I mean like<br>[77:14] a lot of other developers when you're<br>[77:16] starting to document stuff like I'm I'm<br>[77:17] telling Claude to make all these<br>[77:18] markdown files for me and telling it to<br>[77:20] sort everything for me. So the story was<br>[77:22] the one where I didn't let Clude fully<br>[77:24] take the wheel. This was one where I<br>[77:26] came in with I had the initial concept<br>[77:28] of like a gem for founders. And I don't<br>[77:32] want to say too much about sort of what<br>[77:33] that's all about, but I had the initial<br>[77:36] idea. So I wrote down a whole bunch of<br>[77:37] things that I thought could happen. And<br>[77:39] then Clo and I had a long conversation<br>[77:42] over several days over how we could have<br>[77:46] story turns and arcs and changes and how<br>[77:49] things could get impacted later. It was<br>[77:50] it was really an interesting approach.<br>[77:53] Like I'm so used to like seeing and and<br>[77:55] working with Chlo from a coding point of<br>[77:57] view, not so much on a content point of<br>[77:59] view, but having the conversations and<br>[78:01] some of the ideas that it came up with<br>[78:03] based on something that I might have<br>[78:05] told it was it was really interesting.<br>[78:07] It was a fun approach to to building a<br>[78:09] story.<br>[78:10] So yeah, so I have all of these MD files<br>[78:12] and then at the end of it, I just said<br>[78:13] to Clo, I'm like, "Hey, this is a pain.<br>[78:15] I need to get this stuff into to the<br>[78:18] site as fast as I can. you know, can you<br>[78:20] hook me up with a bunch of JSON files<br>[78:22] and a CLI command? And I think like 20<br>[78:24] minutes later, I had it all done.<br>[78:26] >> And then it just it goes through and<br>[78:27] imports all this stuff.<br>[78:28] >> That's the kind of stuff that's that's<br>[78:30] the kind of stuff that CLI or sorry that<br>[78:31] like AI is is made for. Like<br>[78:35] >> I've had a bit of an existential crisis<br>[78:36] in the past few weeks about like like am<br>[78:38] I going to get replaced as a developer?<br>[78:40] And I don't think so. But we'll see. But<br>[78:43] this is the kind of stuff that would<br>[78:45] take hours and hours to figure out and<br>[78:48] build and debug and test and you can<br>[78:51] just tell it go do this and then go work<br>[78:53] on something else and then you know come<br>[78:54] back and test it once and then be like<br>[78:55] no it didn't work. That's why like it's<br>[78:58] to it's like this is this this is<br>[79:00] purpose-built for AI like or that's what<br>[79:02] AI is purpose built for this country.<br>[79:03] >> And one of my favorite things too is as<br>[79:05] I was going through with with with code<br>[79:07] and creating each of these scenes,<br>[79:10] >> I had it set up to a point where I knew<br>[79:12] like I didn't have to give it too much<br>[79:14] context and too much prompting because<br>[79:15] it kind of it got into a flow of what I<br>[79:17] was looking to do,<br>[79:19] >> right? And um at the end there's a<br>[79:22] couple spots where I don't know where<br>[79:24] the docs are now at this point, but oh<br>[79:26] here all I brought it all back together.<br>[79:28] So as part of each of the individual<br>[79:30] scenes, I also had Clo tell me like,<br>[79:32] "Hey, give me a suggestion on the<br>[79:34] images." I really struggled with making<br>[79:37] good images with Nano Banana. I don't<br>[79:39] know why my prompts weren't doing what I<br>[79:41] wanted. I was getting a lot of garbage<br>[79:43] images. And uh I I had mentioned<br>[79:46] something about it on Twitter at one<br>[79:48] point and it was was Ian Misner had come<br>[79:50] come in and said like listen why don't<br>[79:51] you just go and ask Clo to write you a<br>[79:54] prompt for Nano Banana. That unlocked<br>[79:58] all the doors for me as far as image<br>[80:00] creation goes.<br>[80:00] >> I'm going to second that because you<br>[80:02] told me that you did that because I<br>[80:04] asked you because you shared like so the<br>[80:06] the thumbnail for for this video is you<br>[80:08] and I dressed up like like medieval<br>[80:11] peeons, right? And I was like these are<br>[80:13] so good. How did you get and and you<br>[80:15] told me you you did the you asked AI to<br>[80:18] generate a prompt for AI and I started<br>[80:21] doing that and it has been<br>[80:23] >> so good because I would ask for things<br>[80:25] and I would get really crappy p uh<br>[80:27] pictures like I I did one yesterday for<br>[80:30] an interactivity talk that I'm doing at<br>[80:31] work atia plug and uh there is a like so<br>[80:35] I had a complicated thing where I wanted<br>[80:37] to show and I asked AI to to do it and<br>[80:40] it gave me this really really good image<br>[80:42] and it was like so much better. Anyways,<br>[80:44] so kudos to you and Ian apparently for<br>[80:48] for uh coming up with that little life<br>[80:49] hack there because it was amazing. It's<br>[80:51] so<br>[80:51] >> Yeah, it was it was great because then<br>[80:52] as I was writing the story, I was<br>[80:54] telling it like now give me an image for<br>[80:56] each of these scenes and give me an alt<br>[80:59] tag for all of the scenes and then I<br>[81:01] used all of that on the import. So when<br>[81:02] you imported it in, so this this is like<br>[81:05] the big I I had a lot of struggles<br>[81:07] trying to get Nano Banana to to to do<br>[81:10] it. I had to sit down at one point and<br>[81:12] do it all together. So I had to generate<br>[81:13] all 112 images at the same time to try<br>[81:16] to stick within a consistent thing. But<br>[81:18] even with the paid account, you're maxed<br>[81:20] at 100,<br>[81:21] >> right?<br>[81:21] >> So then I had I had to do multiple<br>[81:22] chats. It was a big pain. So I kind of<br>[81:24] put together this this larger doc and<br>[81:25] started working with it here. So it<br>[81:27] gives me file names, alt tags. Here's<br>[81:28] the prompt that it tells me to<br>[81:30] >> to use and started generating images. So<br>[81:32] I can show a couple of things here real<br>[81:34] quick. So we got like I mentioned this<br>[81:37] one earlier.<br>[81:39] At one point we were going,<br>[81:40] >> it had generated a map and it was just a<br>[81:43] it was just basically the Elderore area<br>[81:45] itself and I said, you know what,<br>[81:47] >> let's set the stage for something<br>[81:48] bigger. Like I knew that that one of the<br>[81:50] founders was from Thornwood and and<br>[81:53] there was some other spots here, but I<br>[81:55] thought, let's make a map now that we<br>[81:57] can allude to other areas that we can<br>[82:00] expand the game out into down the road.<br>[82:03] So, if I wanted to, you know, have<br>[82:04] someone kind of travel into Bandits Pass<br>[82:06] and come into the Ashen Wastes. And it<br>[82:09] was a really interesting idea to have<br>[82:11] clothes kind of make my map. And now all<br>[82:12] of a sudden, I've got, you know, a half<br>[82:14] dozen areas where I can I can make, you<br>[82:16] know, tales of fate behind<br>[82:18] >> Shadowlands. Yeah. And the the Kerrion<br>[82:20] swamps. That sounds<br>[82:22] >> Yeah. So, there was that was a lot of<br>[82:24] fun to to do that.<br>[82:25] >> So cool.<br>[82:26] >> Um<br>[82:26] >> I This kind of stuff's amazing, man. I<br>[82:29] mean, it it it blows me away just how<br>[82:31] and there's that. Like,<br>[82:33] >> speaking of the images that we used, it<br>[82:35] was it was quite fun. It was this was a<br>[82:36] fun little project. I We might have<br>[82:38] overpromoted We might have overpromoted<br>[82:40] this stuff on Twitter.<br>[82:42] >> No, we didn't. No, we didn't. Hold on.<br>[82:45] Where's the Troy? Do you have the image?<br>[82:47] The the the big one.<br>[82:50] >> It's my favorite image. That one is<br>[82:51] ridiculous. That is actually the<br>[82:53] thumbnail that I use on all of my my my<br>[82:56] streams of me pointing. And it it did a<br>[82:57] really good job of making me dress like<br>[82:59] a medieval peeon.<br>[83:00] >> Yeah. So, and this is the one we're<br>[83:02] talking about here where<br>[83:03] >> I love that one. It's just so funny.<br>[83:07] >> It doesn't I don't think it looks like<br>[83:08] me too much, but it does it it does<br>[83:12] enough. It's fantastic.<br>[83:13] >> Okay. So, you you look like a cross<br>[83:16] between you and Sam Wise Gamji here. Not<br>[83:19] going to lie. I feel like I I I look<br>[83:22] like the president I Zalinski from from<br>[83:25] Ukraine a little bit in that picture. I<br>[83:27] don't know. Maybe not.<br>[83:28] >> That image was accidental, too. I never<br>[83:30] I never told you about that one. But but<br>[83:32] Ryan and I were talking and so with<br>[83:34] Ryan's image, obviously he's pointing<br>[83:36] inwards and I took an image of myself. I<br>[83:38] was wearing a the WordPress hat you you<br>[83:40] gave me and it was just I wasn't really<br>[83:42] pointing. So I took another one and I<br>[83:44] pointed and I I ran both the images<br>[83:46] through Claude and I said, "Great. make<br>[83:47] us both point towards the center of the<br>[83:49] screen and I'm going to put the logo in<br>[83:51] there. That image came out and I said I<br>[83:54] got gold because that was so great.<br>[83:56] >> I want to just switch to my screen for a<br>[83:58] second to show it the the image of you<br>[84:00] as a blacksmith. It is so good.<br>[84:02] >> Oh, I was going to pull that one open<br>[84:04] too because one of<br>[84:05] >> Oh, yeah. Yeah. Go ahead. Go ahead.<br>[84:07] >> It's so good.<br>[84:08] >> Well, well, I'll show you two versions<br>[84:10] of it because the first one cuz I had a<br>[84:11] hat on. So, I'm assuming that AI just by<br>[84:15] default assumes that if you're wearing a<br>[84:16] hat, you're a bald man. I'm assuming<br>[84:19] that by default, this was the second<br>[84:21] iteration of this photo. I had to go<br>[84:23] back and tell Clo like, I I need I want<br>[84:25] some hair, please.<br>[84:26] >> Yeah,<br>[84:27] >> but I sent this one to my wife and<br>[84:30] here's that image.<br>[84:32] >> It is so good. Like, it's he like I<br>[84:35] don't know if you can see it, chat, but<br>[84:36] like he's got like beads of sweat on his<br>[84:38] forehead from the from the like it's so<br>[84:40] good. It is so good. Um,<br>[84:43] >> now the first version of that was this<br>[84:46] though<br>[84:46] >> that you did with Oh, let me see that<br>[84:48] one again.<br>[84:50] >> And send it to me because that's going<br>[84:51] to be the new Troy command. Where is it?<br>[84:54] Oh my god, that's so good.<br>[84:57] >> So, I sent that one to my wife and I<br>[84:59] said, "What do you think, improvement?"<br>[85:00] And she's like, "That looks so creepy."<br>[85:02] And I was like, "Yeah, I agree." But<br>[85:03] it's great.<br>[85:06] >> Can you share the prompt with me?<br>[85:08] because I'm going to put some I'm going<br>[85:09] to put like some pictures through<br>[85:11] through it and just see how you did<br>[85:13] that. That's so funny.<br>[85:14] >> Yeah, I can I can I can share some stuff<br>[85:16] with you after that that some of the<br>[85:18] stuff I used here for sure. But<br>[85:20] >> so funny. That's so good. I love Oh,<br>[85:23] like so let's just reflect on how good<br>[85:25] imagery creation has become in in AI<br>[85:29] because I remember doing a stream I<br>[85:31] don't know how long ago maybe a year ago<br>[85:33] and we were getting I was I can't<br>[85:34] remember what I was using but we were<br>[85:35] building something I think it was using<br>[85:36] chat GP or something. was generating<br>[85:38] these images and remember like there'd<br>[85:40] be like people holding hands with nine<br>[85:42] fingers and like they'd have three ears.<br>[85:44] It just it was horrible. And now we have<br>[85:46] that which is like<br>[85:48] >> terrifyingly realistic.<br>[85:50] >> Yeah. So when like when I first like so<br>[85:52] these are all the images right here in<br>[85:54] in the first three acts of the game. Um<br>[85:57] also I and I do need to redo the site<br>[85:59] because the the or at least I need to<br>[86:01] redo the founders page because I don't<br>[86:02] like the flow of it now that I've got a<br>[86:04] new theme in there. I just haven't had a<br>[86:05] chance to do it. But up front, like you<br>[86:07] see here are the founders. So like the<br>[86:09] images that were created for the<br>[86:11] founders were fantastic.<br>[86:13] >> Um,<br>[86:13] >> so good.<br>[86:15] >> Yeah. But then like just even if you<br>[86:16] just grab like some random stuff here.<br>[86:19] >> Like they're and they're all in the same<br>[86:21] like I I don't know how much prompting<br>[86:23] you had to do to get this, but like<br>[86:24] they're all the same artwork style.<br>[86:26] They're all like it's very good. It's<br>[86:28] very very good because I I' I've run the<br>[86:30] same prompt a few times and gotten very<br>[86:32] different styles and like<br>[86:34] >> But so here here was the here was the<br>[86:35] key. This this is what really helped me<br>[86:37] get these things quite consistent is<br>[86:39] that I had code write me basically a<br>[86:42] design guide for those images. So I<br>[86:45] would start a prompt off by giving it<br>[86:46] just this and then it would say okay<br>[86:49] what's your first image and then I would<br>[86:51] give it the context for the prompt here.<br>[86:54] Okay<br>[86:54] >> and it would create the image. Now at a<br>[86:56] certain point you get to the end of I<br>[86:58] guess that prompt's capability to do<br>[87:01] anything good because it got to the<br>[87:02] point when it was generating some<br>[87:04] horrible images. I would just close that<br>[87:06] prompt, start up a new one, give it the<br>[87:08] style, and it would pick up right where<br>[87:10] it left off. It was it was great.<br>[87:13] >> Yeah.<br>[87:13] >> Yeah. That that's that's the thing I<br>[87:15] think that like when you're doing this<br>[87:17] sort of stuff and you don't have the<br>[87:18] context like every like I use cloud code<br>[87:21] all the time and it'll tell me I've got<br>[87:23] so much context left and then when I run<br>[87:24] out of context it tries to compact it<br>[87:26] and things just fall apart at that<br>[87:27] point. So I just like close it and do a<br>[87:29] new one and then but it's getting back<br>[87:31] to that same point every single time.<br>[87:32] But it looks like you you've solved that<br>[87:34] issue. That's really cool.<br>[87:36] >> Now, that took me a long time because<br>[87:39] that was that was not something that I<br>[87:40] could just tell Code to do for me,<br>[87:42] right? So, I I really had to get in<br>[87:43] there and and trial and error until I<br>[87:46] got to a point. And then once I got to<br>[87:47] that point where I'm like, "Oh, I'm<br>[87:48] getting this consistently."<br>[87:50] >> I sat down one night through something<br>[87:52] on Netflix and and I I basically made a<br>[87:55] hundred images in one night until I<br>[87:57] realized I just hit an image cap. And<br>[88:00] then the next morning I had to come<br>[88:01] back. It was like 24 hours later I came<br>[88:03] back and created the last 12 images or<br>[88:05] whatever it was.<br>[88:06] >> Nice. But but by that point you had the<br>[88:07] prompt down so it was just busy work at<br>[88:09] that point.<br>[88:10] >> Yeah. Absolutely. So<br>[88:12] >> very cool.<br>[88:14] Very cool.<br>[88:15] >> Yeah.<br>[88:16] >> It's awesome. So much fun.<br>[88:18] >> Yeah. So So like I said, like I I would<br>[88:20] like to to get this thing open for<br>[88:23] anybody that wants to play it like as<br>[88:26] soon as I can. like like I was<br>[88:27] originally thinking like end of month,<br>[88:28] but I'm wondering if I could probably<br>[88:30] get it done just enough maybe step down<br>[88:33] off of my uber pickiness a little bit on<br>[88:35] some of these some of the elements and<br>[88:37] just get it out there and let some folks<br>[88:39] play it and start getting some good<br>[88:40] feedback. I do need to make<br>[88:41] >> you open it up as a beta.<br>[88:43] >> Yeah, if you put a big beta one open<br>[88:46] badge on there, people will understand<br>[88:47] that it's still a work in progress, I<br>[88:48] think. And<br>[88:49] >> I think the big one for me, and I'll<br>[88:51] probably just do this tonight, um I<br>[88:53] really want my character image. I just I<br>[88:55] can't I can't go it. It has no bearing<br>[88:58] on the game. It makes no difference, but<br>[88:59] I want my character image here. So,<br>[89:01] >> sure, you should tie it into AI so<br>[89:04] people can put in a key or whatever and<br>[89:05] like generate their own image or<br>[89:08] >> long term. Long term.<br>[89:10] >> Yeah.<br>[89:10] >> Yeah. But also at the end at the end of<br>[89:12] the day too like you you could very<br>[89:13] easily just go into Nano Banana create<br>[89:15] the image that you want and upload it<br>[89:17] into your character and not have to put<br>[89:19] in your key and you know have more<br>[89:21] credits and spend more money and like<br>[89:23] people are spending too much money now<br>[89:25] on AI as it is. So<br>[89:26] >> you know whatever I can do to to not<br>[89:28] have people spend money and<br>[89:30] >> yeah I mean your MVP could just be<br>[89:32] gravitar whatever their their gravitar<br>[89:35] images of their email which wouldn't<br>[89:37] really fit the aesthetic of the game I<br>[89:38] would imagine.<br>[89:39] >> Yeah. Yeah. Yeah, I like the idea of<br>[89:41] letting letting you guys, you know,<br>[89:42] letting players like yourself go ahead<br>[89:43] and do whatever you would like to do.<br>[89:45] >> Yeah.<br>[89:45] >> Um, at that point,<br>[89:47] >> awesome. We got eight minutes or so left<br>[89:50] before noon, which is usually when we<br>[89:52] wrap it up. Um, is there anything else<br>[89:54] that you wanted to show us, talk about,<br>[89:56] preview? Um,<br>[89:59] >> I can't think of anything<br>[90:01] really. Um,<br>[90:03] >> cool. Do you mind if I share the Can we<br>[90:06] share the GitHubs? Are are they public<br>[90:07] or<br>[90:08] >> the theme? The theme is public. I I<br>[90:10] mean, anything I'm doing with with the<br>[90:12] Miles AI agent, um, I make it public<br>[90:14] because I do like to share it back with<br>[90:15] with Andy so he can he can use it to<br>[90:18] make Miles better. So, yeah,<br>[90:20] >> the theme itself is is public. Right<br>[90:23] now, the the plug-in is not because I<br>[90:25] don't know if it's something that that I<br>[90:27] just want to make, you know, open for<br>[90:29] everyone to use or if I do, I at least<br>[90:31] want it to be fully finished<br>[90:34] >> um before people start to build their<br>[90:35] own games with it. I will share the URL<br>[90:38] for the uh fate bales of fate by miles<br>[90:41] URL if that's okay or theme if that's<br>[90:43] good and then um yeah so I I I realize I<br>[90:47] have access to the plugin because you<br>[90:49] want me to take a look at it but other<br>[90:51] than that we will leave that<br>[90:53] >> secret for now. Um<br>[90:56] >> and then we do have the the main<br>[90:57] homepage here that that is ready to go.<br>[90:59] It's got all the<br>[91:00] >> link that but we can uh I'll drop it<br>[91:02] back in chat so people can have a look<br>[91:04] if they want. Is is there like a sign up<br>[91:06] or like a uh I I I want to play this?<br>[91:10] No, it doesn't look like it. So So I<br>[91:12] haven't put harass<br>[91:14] a beta optin or something.<br>[91:16] >> My my go my goal was to use this show<br>[91:18] today to launch it to be perfectly<br>[91:20] honest. But my decision on Sunday, I<br>[91:22] think was a good one because the look<br>[91:24] and feel of this site is a million times<br>[91:27] better.<br>[91:28] >> Oh, this is<br>[91:29] >> just making that decision four or five<br>[91:31] days before you go on to a show. It's a<br>[91:33] lot of extra work. So, um hopefully<br>[91:36] really really soon. So,<br>[91:38] >> yeah. Cool. Well, when we launch it,<br>[91:40] when you launch it, whenever that is,<br>[91:42] >> come back on and we'll we'll play it.<br>[91:44] >> Absolutely. We'll do a game or I'll or<br>[91:46] I'll just do it if if you want or<br>[91:48] whatever. Yeah, we'll have you.<br>[91:50] >> I'm open to anything. I mean, heck, if<br>[91:51] you want to bring on a couple people to<br>[91:53] to do some stuff around it, I mean,<br>[91:54] whatever you want to do.<br>[91:55] >> That might be fun. Yeah, that might be<br>[91:57] fun. Um,<br>[91:59] cool. Awesome. Well, this has been<br>[92:01] great. Uh yeah, I don't really have any<br>[92:04] out that I don't think there's any<br>[92:05] there's no uh questions in chat.<br>[92:06] Everyone's just saying the Lup says,<br>[92:08] "Love the style." Um what's it? Ethylene<br>[92:11] 1993 says, "That looks amazing and<br>[92:14] laughed hysterically at the photos of us<br>[92:16] in medieval garb." Um yeah. So awesome.<br>[92:20] This is great. Um cool. I don't really<br>[92:23] have anything else but uh anything.<br>[92:25] Yeah. I don't know. Cool. So we can we<br>[92:28] we can wrap it up. I'm gonna try to have<br>[92:32] Andy Peting on uh for the and talk about<br>[92:35] Miles because this is a good time<br>[92:36] because you use Miles and it was a good<br>[92:37] experience for<br>[92:38] >> I I I'm a big fan of Miles like I've<br>[92:41] been playing with TX and I've been<br>[92:43] playing with Miles and and I've I' I<br>[92:45] have a subscription to Figma make and<br>[92:47] I've tried um I saw one someone posted<br>[92:50] on post status this morning called<br>[92:51] pencil.dev that I want to check out.<br>[92:53] >> Cool.<br>[92:54] >> Um so far Miles is by far my favorite.<br>[92:58] It it it creates some really like this.<br>[93:00] The prompt I did for this was so<br>[93:02] minimal. I gave the prompt my logo. I<br>[93:05] gave it one of the images from the game<br>[93:07] and I gave it a stoned background that I<br>[93:09] originally had<br>[93:11] >> and it came up with everything else. I<br>[93:13] didn't I didn't tell it colors, nothing.<br>[93:16] >> It just did all of this for me and then<br>[93:19] I kind of tweaked it after the fact. So,<br>[93:21] like I enjoy playing with Miles the most<br>[93:23] based on the fact that it it it's<br>[93:24] smarter on the design side in my opinion<br>[93:27] and the way it works with images and<br>[93:29] like again if I refresh it like just<br>[93:32] that subtle little animation stuff,<br>[93:34] >> you know, things are moving around. It's<br>[93:36] just nice touch.<br>[93:37] >> I guess I can think that's really cool.<br>[93:39] So, I guess I can probably just look at<br>[93:40] the theme here, but it looks like it's<br>[93:43] >> Are all your styles and everything? Um,<br>[93:45] sorry, I'm I'm clicking around the<br>[93:47] theme. Oh, yeah. Okay. Yeah, everything<br>[93:50] everything is there.<br>[93:51] >> It generates all all the things for you.<br>[93:54] Nice.<br>[93:54] >> Yep.<br>[93:55] >> Because this guy needs that. I'm the<br>[93:56] worst designer and front end developer.<br>[93:59] >> But uh Awesome.<br>[94:00] >> You're gonna have fun.<br>[94:02] >> Yeah. Cool. Awesome, man. Well, thanks,<br>[94:04] Troy, for hanging out with us today. If<br>[94:07] there's any questions in chat for Troy,<br>[94:08] we got a few more minutes before we we<br>[94:10] we're going to drop off. So, if you have<br>[94:12] questions, ask them now. Otherwise, you<br>[94:14] won't get to. That's how that works. I<br>[94:17] don't know.<br>[94:18] So, so anyway,<br>[94:20] >> right. So, before I wrap up, I just<br>[94:22] wanted to mention a couple things like<br>[94:23] so you know, Veils of Fate obviously<br>[94:25] powered by WordPress in the<br>[94:26] interactivity API. It's hosted by King<br>[94:29] Kinsta, who are my sponsors,<br>[94:31] >> and it's also built by Miles. So,<br>[94:33] anything related to the look and feel of<br>[94:35] this is now basically by whatever Miles<br>[94:38] has created, I'm starting to trickle<br>[94:40] that design out to the rest of it.<br>[94:42] >> Nice. Very, very cool. This is so cool.<br>[94:46] Awesome. All right, man. Well, I think<br>[94:48] we'll wrap we'll wrap it up here. I<br>[94:49] think that's a perfect place to stop.<br>[94:51] But, uh, again, Troy, thanks again. And<br>[94:53] Word Camp Canada is coming up, right? We<br>[94:55] have Word.<br>[94:56] >> Yes, that's right. So, that that<br>[94:57] announcement happened, was it a week or<br>[94:59] two ago? So, yeah, Word Camp Canada is<br>[95:01] happening in Vancouver<br>[95:03] >> November 5th and 6th. Um, I am the I am<br>[95:08] the web lead and the speaker lead.<br>[95:12] So, we can quickly cheat little plug<br>[95:16] here. So again, this is a this is<br>[95:17] another site by Miles<br>[95:19] >> that is actually based on well, I built<br>[95:21] it off of 2024 to get the look and feel<br>[95:24] because I couldn't actually upload a<br>[95:25] theme into the Word Camp build. Um,<br>[95:29] yeah, it's coming. It's coming to<br>[95:30] Vancouver, so check it out.<br>[95:33] >> I'm going to uh drop a thing in there.<br>[95:36] And Jester World 77 says, "Yay, see you<br>[95:39] back in Miles Slack. This looks<br>[95:40] awesome." I don't know. You You must<br>[95:42] know Jester World 77 from somewhere.<br>[95:45] Yeah, I think there's a few bill because<br>[95:46] I've been sharing like basically what<br>[95:48] I've been doing with this theme, I've<br>[95:50] been sharing it back into the miles beta<br>[95:52] slack area just to give feedback and and<br>[95:54] you know help improve miles wherever we<br>[95:56] can. So, I think a lot of folks were<br>[95:58] were a bit interested in in what I was<br>[96:00] doing because it kind of went went a<br>[96:01] little bit beyond because I started<br>[96:02] talking a little bit more about what<br>[96:03] this was all about. Really<br>[96:05] >> cool. Awesome. Well, uh that's that's<br>[96:08] cool. And feel free to share this whole<br>[96:10] stream back in there if you want to. Um,<br>[96:12] I don't know if people would be<br>[96:14] interested in seeing that or not, but uh<br>[96:15] because I don't have access or I'd just<br>[96:17] go shamelessly plug it myself, but uh<br>[96:20] anyways, yeah, so I I I did drop the<br>[96:21] link to work Canada, so I don't know if<br>[96:23] I don't think there's no calls out for<br>[96:25] anything yet.<br>[96:27] >> But<br>[96:29] yeah, we got a call for sponsors.<br>[96:31] >> And if anybody is here watching this<br>[96:33] right now and would like to volunteer,<br>[96:35] we are looking for leads on some of our<br>[96:37] teams. If you don't want to take on a<br>[96:40] leadership role, we are definitely<br>[96:41] looking for volunteers on various teams.<br>[96:43] You can feel free to hit me up. Um, find<br>[96:45] me on Twitch or sorry, on Twitter, find<br>[96:48] me on Blue Sky, find me on Make Slack,<br>[96:50] find me on Work the Work Camp Canada<br>[96:51] Slack or the the WordPress Canada Slack<br>[96:53] channel. Um, find me on Post Status. I'm<br>[96:56] not a hard guy to find. So, if you guys<br>[96:58] want to uh get involved in Work Camp<br>[96:59] Canada, let me know.<br>[97:01] >> Awesome. Perfect. Well, that's the<br>[97:03] perfect time to end this. It's 11:59<br>[97:06] local time here in Canada, Eastern<br>[97:08] Coast, Eastern time. So, we're going to<br>[97:10] wrap it up, but uh Troy, can't thank you<br>[97:12] enough for coming and hanging out with<br>[97:13] us today and showing us Veils of Fate,<br>[97:16] Tales of Elderore. Tales of Elderore.<br>[97:19] Yeah, I am so excited to play this. So,<br>[97:21] you I I have it set up locally, so I I<br>[97:23] might just play through it, but uh I uh<br>[97:26] I'm excited for it to open for you. And<br>[97:28] when when it does get open, let us know<br>[97:30] and we can all, you know, we'll share it<br>[97:33] wide and far.<br>[97:35] >> Awesome. Well, thank you for having me<br>[97:36] on, Ryan. It was much appreciated you<br>[97:38] giving me an opportunity to kind of show<br>[97:39] off some of<br>[97:40] >> Yeah, no problem. This is great.<br>[97:41] >> The fun things I've been working on.<br>[97:43] >> I don't get to build super fun things<br>[97:45] like this anymore. So, I want to uh have<br>[97:47] everyone come on and show show us what<br>[97:49] they do. So, all right. On that note, we<br>[97:52] are going to say goodbye. But uh Troy,<br>[97:54] thanks again. And we'll talk to you all.<br>[97:55] Oh, I will not be streaming next week<br>[97:57] because I will be away in Costa Rica for<br>[98:00] meet a a a work thing. Uh but I should<br>[98:03] be back the week after that. So, anyhow,<br>[98:06] talk to you all later. Thanks, Troy.<br>[98:08] You're the best. You're the man. Looking<br>[98:10] forward to seeing you in Vancouver<br>[98:12] hopefully. And uh otherwise, we'll see<br>[98:14] you all on the internets. Bye. <!-- deep-read:sections end --> ๐Ÿ“„ **Full text:** ![[Full Document Contents/Articles/Talk Devy To Me Veils of Fate with Troy Chaplin|Talk Devy To Me: Veils of Fate with Troy Chaplin, Ryan Welcher Codes]] ## Highlights - here. um coming down because some of the some of the info about the game and then you come in um just to more of the about sections. So there's a few sections behind the scenes in the game. Um so what we can do though right away is I'm going to go into one of the quests. So what'll happen is when you first start the game, when I open this one up, I'm hoping to launch this maybe in a couple weeks. I've got a couple of uh little refinements to to do ([View Highlight](https://read.readwise.io/read/01kkxvwasn59d0p7ft5g00end3)) - Tags: ๐Ÿ‘ป ai highlighted - really handy where it's not loading new pages. I don't got to go and and make a template for the scene post type and um kind of go and and reload everything. So you can just click in and it just quickly reloads here. here. It brings you back up to the top of the page. You get your nice image and you start scrolling back down and you can read through um all of these stories. So, I'm going to really quickly >> I love that picture. [laughter] So, >> AI did some really great stuff. So, this this game in in all of the scenes, there's 112 scenes. Actually, I should ([View Highlight](https://read.readwise.io/read/01kkxvwasrdmn7ejym74s3mbz5)) - Tags: ๐Ÿ‘ป ai highlighted - >> Oh, that would be very cool. [clears throat] >> Yeah, it's something that I planned early on. I just kind of lost sight of it with the 300 other things I was trying to do um as I was building this thing out. >> Well, you're building this on your own. So, I mean, there's a lot there's a lot that goes in here, right? Yeah, this is my fun little this is my fun little passion project that you know has really no bearing on on anything workrelated other than I'm slowly learning the interactivity API which is a a big benefit. So um so yeah so if now if I come back into ([View Highlight](https://read.readwise.io/read/01kkxvwasvrqxgwdvf3myj0sbr)) - Tags: ๐Ÿ‘ป ai highlighted - I right now. So, if you need to show that, you might just want to scoot the >> make the the browser window a little bit smaller. >> Yeah, the nice thing about that, there's nothing here. Every everything is built in the editor. So, it's it's really it's really simple. >> Beauty. >> Um so, yeah, we'll just make a new quest. So, we got new quest. And then if I go in, I'm going to pick a random one. So, this is one of the taxonomies that ties into the the quest itself. And then it's going to get seen. So, what it does, it goes out, it gets every scene that's been tagged with the alliance quest, and it dumps it out here ([View Highlight](https://read.readwise.io/read/01kkxvwasxsz1byv47cxsxryv9)) - Tags: ๐Ÿ‘ป ai highlighted - nothing to it. Text and then a nice little feature image which is what you see on the front end that the interactivity API is using. >> So So the questions are done at the quest level. The the choices are done at the uh I'm sorry. Yes, the the Yeah, sorry. the Yeah. choices are done at the quest level and that's what you were defining there. >> Yeah. So again, the quest drives all of this stuff. So every part of it is driven by this the quest editor here, >> right? Okay. Awesome. >> Yeah. And then it's similar in the ([View Highlight](https://read.readwise.io/read/01kkxvwat0q85pm78gkn98g7mf)) - Tags: ๐Ÿ‘ป ai highlighted - And then I can add a quest here quite easily. And then again, I'm just outputting all of the information, so it's just easier for me to kind of figure out what's going on as I'm building this out. It's pretty cool, man. I'm sort of This is super >> like the amount of thought that went into this is >> pretty pretty pretty pretty good. I mean, pretty good. It's really good. [laughter] It's like it's very very cool. >> It took a long time up front just to to ([View Highlight](https://read.readwise.io/read/01kkxvwat3nhespbvwwec19p2t)) - Tags: ๐Ÿ‘ป ai highlighted - on. But as you come down try to look at anything specific that we want to show. So here's like fetching the scenes. So you're fetching the scenes and and you're bringing all of that stuff back um and passing more of the information back in and then more filtering going on. So these are our active scenes and and grabbing some IDs for some of the code. If I flip back here, we should probably open up a quest so we can kind of go back and forth and look at some of the ([View Highlight](https://read.readwise.io/read/01kkxvwat56vpwxgnb0y4wq13p)) - Tags: ๐Ÿ‘ป ai highlighted - and play. So, we had to add some of that stuff back in >> for sure. >> Um, >> so is character. >> Yeah, I'm going a bit too slow or a bit too fast for you. >> No, no, it's fine. Carry on. I'm good. Then you're gonna get down into so so here's you know if there's no scenes available in the quest. So if there's you know if I if I've made a mistake on something at least there's an error going to get thrown up here as well. >> Uh so then you start getting into okay we're going to start grabbing some of the post type data here now. So you can see there's a post type for scenes ([View Highlight](https://read.readwise.io/read/01kkxvwat8a9wfeqcdn51t2v6e)) - Tags: ๐Ÿ‘ป ai highlighted - information. So whether it be, you know, whether you're completely finished and and you know, whether you're going to continue on to the next quest or the account hub, there's a few different little logic going on there to determine, you know, what the user should be prompted with. >> Um, and then um Oh, interesting. Okay, that's cool. That's a sort of a wrap it up sort of thing. >> That's neat. So yeah. So that's that's >> cool, man. [laughter] >> I I I think it's cool. I mean, as far as like like playing the game and and how it works and stuff like that. Now, I ([View Highlight](https://read.readwise.io/read/01kkxvwatbrvtxg98bkp8w1aqd)) - Tags: ๐Ÿ‘ป ai highlighted - those could be >> those individual blocks that you're thinking about. So that would be a great a great approach to to like building out this page here because I I really >> I think about like when I play a game on like my PlayStation or something like that >> and I get to my character screen in a great RPG, like I see a lot of detail. There's a lot of stuff. There's a lot of screens to go through. Um, I I like the idea of having a lot of that stuff here as well, just to to to give that just to let the player really kind of get into it a little bit more and and that also will give me the ability to look at like, oh, well, I can go and add this to ([View Highlight](https://read.readwise.io/read/01kkxvwatefxqn6jpgkzs3j1s9)) - Tags: ๐Ÿ‘ป ai highlighted