<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>开发 on 暮歌</title><link>https://maxlen727.github.io/tags/%E5%BC%80%E5%8F%91/</link><description>Recent content in 开发 on 暮歌</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><managingEditor>maxlen@duck.com (微恙)</managingEditor><webMaster>maxlen@duck.com (微恙)</webMaster><copyright>© 2021 - 2026 MaxLen All Rights Reserved.</copyright><lastBuildDate>Tue, 04 Aug 2026 17:50:56 +0800</lastBuildDate><atom:link href="https://maxlen727.github.io/tags/%E5%BC%80%E5%8F%91/index.xml" rel="self" type="application/rss+xml"/><follow_challenge><feedId>131352344216671232</feedId><userId>85706335998788608</userId></follow_challenge><item><title>「诗文社的学生」开发手记 01</title><link>https://maxlen727.github.io/posts/dev-students-of-poetry-club-01/</link><pubDate>Tue, 04 Aug 2026 17:50:56 +0800</pubDate><author>maxlen@duck.com (微恙)</author><guid>https://maxlen727.github.io/posts/dev-students-of-poetry-club-01/</guid><description>
&lt;h2 class="relative group">最初的起点
&lt;div id="最初的起点" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100 select-none">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#%e6%9c%80%e5%88%9d%e7%9a%84%e8%b5%b7%e7%82%b9" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h2>
&lt;p>一切的开始要回到我在学校时，某天课间和一位同学的闲聊，刚刚上完语文课的他突发奇想：如果能把诗词娘化做成 GalGame 想必会很有趣。&lt;/p>
&lt;p>我喜欢诗词，尤其是那会读完《人间词话》之后深感诗词之美，很乐意帮忙完成这个 GalGame. 于是便随口承诺下了要帮忙。&lt;/p>
&lt;p>但是呢——困于学业繁忙、时间有限，这件事一直没有进展，后面我也渐渐不再提。如今假期来临，我只想把我希望的做完，做一个自己喜欢的 GalGame.&lt;/p>
&lt;hr>
&lt;h2 class="relative group">弃案
&lt;div id="弃案" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100 select-none">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#%e5%bc%83%e6%a1%88" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h2>
&lt;ul>
&lt;li>“每个诗词都是一个诗词娘，之后可以通过解读诗词来增加好感度”&lt;/li>
&lt;/ul>
&lt;p>工作量太大了，剧情也不好弄，被我否决了&lt;/p>
&lt;ul>
&lt;li>“但既然如果这样，不如我们直接接个 AI 来处理玩家的输入吧，让 AI 来实时编写剧情”&lt;/li>
&lt;/ul>
&lt;p>这是我的简单想法，以现在的模型能力来看，这么做会很有趣，并且独特。但是当时我用 Renpy 简单实现了一下，发现效果很差&lt;/p>
&lt;hr>
&lt;h2 class="relative group">伊始之时
&lt;div id="伊始之时" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100 select-none">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#%e4%bc%8a%e5%a7%8b%e4%b9%8b%e6%97%b6" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h2>
&lt;p>鄙人没有开发项目的经验，依据本能首先要选一个引擎。首先我使用的是 Renpy. 后来希望有更多的可拓展性决定使用 Godot 和 Dialogic. &lt;del>（事实证明这个决策无关痛痒，我并不需要 Godot 引擎提供的更多可能）&lt;/del>&lt;/p>
&lt;p>然后就是要考虑一个剧本。使用了各种 AI 来发散剧本，最后发现 DeepSeek 效果最好（依照时间推过去，框架最初是在 2025 年 10 月份定下的，当时应该是 v3.2 的模型）。所以最初的雏形是我与 DeepSeek 讨论得出的。我大致控制了剧情走向，DeepSeek 补充了大部分细节。&lt;/p>
&lt;p>由原本构想的多女主方案简化为了单女主（诗灵）的设计。简单剧情就是男主来到诗文社，结识诗灵但并不知其真实身份，后来才了解到她并非人类，并且诗灵由于现代人不再读诗而即将消失，男主决心拯救的故事。&lt;/p>
&lt;p>剧情不算出色，可以说是非常平淡的剧本。由于个人能力有限，只好这样了。但我想做出东西来是第一步重要的，陷入精雕也许永远拿不出成果。就以此为大体框架开始写剧情了。&lt;/p>
&lt;p>本来我是写了一些的，后来直接放手交给 AI 了。其中 GLM 5.2 提供了很大的帮助（没错，真正开始写剧本时正是 GLM 5.2 爆火的那段时间）。&lt;/p>
&lt;p>剧本有了之后就给我一位有些写作经验和丰富轻小说阅历的朋友：冬之寒，看了看。看完之后我问他评价，他就一句：“有女朋友就是好啊”。&lt;/p>
&lt;p>这应该是个肯定信号，于是我就以此剧本开始在 Godot 里完成 Dialogic 部分的工作。&lt;/p>
&lt;p>有一个小问题需要注意：Dialogic 2 目前一直处于 Alpha 状态，没有正式版本。使用这个插件建议不要去找 release 版本，而是应该直接使用最新的 git 版本。因为我在使用 Godot 4.7 + Dialogic 的 Alpha 19 时遇到了插件无法正常运行的问题，更换 git 版本之后解决。&lt;/p>
&lt;blockquote>
&lt;p>Another year, another alpha 😅&lt;/p>&lt;/blockquote>
&lt;p>开发者官方吐槽&amp;hellip;&amp;hellip;&lt;/p>
&lt;hr>
&lt;h2 class="relative group">我们的画师们
&lt;div id="我们的画师们" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100 select-none">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#%e6%88%91%e4%bb%ac%e7%9a%84%e7%94%bb%e5%b8%88%e4%bb%ac" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h2>
&lt;p>立绘与 CG 全都是交给 ChatGPT 来创作。毋庸置疑，GPT-image 2 画二次元图的水平非常高超&lt;/p>
&lt;p>
&lt;figure>
&lt;img class="my-0 rounded-md" loading="lazy" alt="bai_w" src="https://maxlen727.github.io/picx-images-hosting/bai_w.45idthcepz.webp">
&lt;/figure>
&lt;figure>
&lt;img class="my-0 rounded-md" loading="lazy" alt="bai_and_bookshelf_day" src="https://maxlen727.github.io/picx-images-hosting/bai_and_bookshelf_day.83ara5nus3.webp">
&lt;/figure>
&lt;figure>
&lt;img class="my-0 rounded-md" loading="lazy" alt="bai_blur" src="https://maxlen727.github.io/picx-images-hosting/bai_blur.6bhsf94njm.webp">
&lt;/figure>
&lt;figure>
&lt;img class="my-0 rounded-md" loading="lazy" alt="bai_corridor" src="https://maxlen727.github.io/picx-images-hosting/bai_corridor.8l0syqphu8.webp">
&lt;/figure>
&lt;/p>
&lt;p>这是女主“白”的一些立绘和 CG. 鄙人以非专业凡人的眼光来看已经非常好了&lt;/p>
&lt;p>抠图直接扔给豆包很方便（很多人可能看不起豆包，但是 Seedream 的图像能力真的不差）&lt;/p>
&lt;p>背景使用了大量网络上的无版权素材包。但其实很多素材不能完全满足需求，这种情况下我还是会把图扔给豆包或者 nano banana 去修一修&lt;/p>
&lt;p>还有一些环节使用了本地部署的 Anima 模型。这个模型的能力其实非常强大，大概率上面的任务此模型也可以完成。但习惯上，我总是对闭源模型的实力更加信任。所以 Anima 仅仅被用来做了一些杂活&lt;/p>
&lt;p>
&lt;figure>
&lt;img class="my-0 rounded-md" loading="lazy" alt="人生自古谁无死" src="https://maxlen727.github.io/picx-images-hosting/%e4%ba%ba%e7%94%9f%e8%87%aa%e5%8f%a4%e8%b0%81%e6%97%a0%e6%ad%bb.7zr5cg3fbu.webp">
&lt;/figure>
&lt;/p>
&lt;p>整体上，对于作画这一块我是很满意的。&lt;del>我们的画师们个个都精明能干啊！&lt;/del>&lt;/p>
&lt;hr>
&lt;h2 class="relative group">声音也是麻烦事
&lt;div id="声音也是麻烦事" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100 select-none">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#%e5%a3%b0%e9%9f%b3%e4%b9%9f%e6%98%af%e9%ba%bb%e7%83%a6%e4%ba%8b" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h2>
&lt;p>SFX 我要感谢 ElevenLabs. 这是一个 SFX 的生成平台，依靠 AI 技术。自己需要的音效不再需要到处寻找，可以轻松生成符合需求的音效。&lt;/p>
&lt;p>至于 BGM 则是仰仗&lt;a
href="https://amachamusic.chagasi.com/index.html"
target="_blank"
>甘茶の音楽工房&lt;/a>这个网站。提供了大量适用于游戏的无版权音乐，感谢这位作曲家~ 但是实际选曲需要根据剧本去想象这个场景需要响起什么音乐，这个过程是一个非常麻烦的过程，最磨人，也很消耗心力。&lt;/p>
&lt;p>作为一个“含 AI 量”极高的项目，为什么 BGM 不使用 Suno 来生成？&lt;/p>
&lt;p>因为我发现 Suno 的优势区间不是做日常向 GalGame 的音乐，它更擅长“吵闹一些”的音乐，而不是恬静的音乐。&lt;/p>
&lt;hr>
&lt;h2 class="relative group">待到“完成”之后
&lt;div id="待到完成之后" class="anchor">&lt;/div>
&lt;span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100 select-none">
&lt;a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700 !no-underline" href="#%e5%be%85%e5%88%b0%e5%ae%8c%e6%88%90%e4%b9%8b%e5%90%8e" aria-label="锚点">#&lt;/a>
&lt;/span>
&lt;/h2>
&lt;p>大概经历一星期左右的起早贪黑，游戏大体是完成了。&lt;/p>
&lt;p>而在我准备正式发布的日子，我接到了冬之寒的电话——&lt;/p>
&lt;p>在当时看完剧本之后几天，他忙于志愿者工作一直没有给我修改建议，电话里他提到：“当时我就想吐槽了，但考虑到你刚刚开始做，我不想打击您的热情，就先忍着没有说”。而非常不幸，如今我的项目几近完成，他由于忙于工作一直没有给我剧本修改建议，现在一个电话倾斜了大量的剧本问题和建议，导致项目不得不进入大规模重做。&lt;/p>
&lt;p>我也才理解到仅仅依靠没有专业知识的一人之力做项目是多么多么不容易的一件事。&lt;/p>
&lt;p>剧本产生了大量纰漏与一些让人难以接受的情节。接受了冬之寒的批判与指导，看着眼前巨大的工作量，回想到前几天与项目的殊死搏斗、呕心沥血，无力感淹没了我。直到现在项目还是暂时没有进一步的进展了&amp;hellip;&amp;hellip;&lt;/p>
&lt;p>希望我真的可以做完它——在我厌烦它之前！&lt;/p>
&lt;div class="github-card-wrapper">
&lt;a id="github-5bc8d0201efb40b3519ce3d4070b7bcc" target="_blank" href="https://github.com/maxlen727/students-of-poetry-club" class="cursor-pointer">
&lt;div
class="w-full md:w-auto p-0 m-0 border border-neutral-200 dark:border-neutral-700 border rounded-md shadow-2xl">&lt;div class="w-full nozoom">
&lt;img
src="https://opengraph.githubassets.com/0/maxlen727/students-of-poetry-club"
alt="GitHub Repository Thumbnail"
class="nozoom mt-0 mb-0 w-full h-full object-cover">
&lt;/div>&lt;div class="w-full md:w-auto pt-3 p-5">
&lt;div class="flex items-center">
&lt;span class="text-2xl text-neutral-800 dark:text-neutral mr-[10px]">
&lt;span class="relative block icon">&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 496 512">&lt;path fill="currentColor" d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"/>&lt;/svg>
&lt;/span>
&lt;/span>
&lt;div
id="github-5bc8d0201efb40b3519ce3d4070b7bcc-full_name"
class="m-0 font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral">
maxlen727/students-of-poetry-club
&lt;/div>
&lt;/div>
&lt;p id="github-5bc8d0201efb40b3519ce3d4070b7bcc-description" class="m-0 mt-2 text-md text-neutral-800 dark:text-neutral">
🎮 想法产生了很久，终于准备把它做出来的一个视觉小说
&lt;/p>
&lt;div class="m-0 mt-2 flex items-center">
&lt;span
class="mr-1 inline-block h-3 w-3 rounded-full"
style="background-color: #355570">&lt;/span>
&lt;div class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
GDScript
&lt;/div>
&lt;span class="text-md mr-1 text-neutral-800 dark:text-neutral">
&lt;span class="relative block icon">&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512">&lt;path fill="currentColor" d="M287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0L287.9 0zM287.9 78.95L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L276.6 387.5C283.7 383.7 292.2 383.7 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.9 78.95z"/>&lt;/svg>&lt;/span>
&lt;/span>
&lt;div id="github-5bc8d0201efb40b3519ce3d4070b7bcc-stargazers" class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
2
&lt;/div>
&lt;span class="text-md mr-1 text-neutral-800 dark:text-neutral">
&lt;span class="relative block icon">&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">&lt;path fill="currentColor" d="M80 104c13.3 0 24-10.7 24-24s-10.7-24-24-24S56 66.7 56 80s10.7 24 24 24zm80-24c0 32.8-19.7 61-48 73.3V192c0 17.7 14.3 32 32 32H304c17.7 0 32-14.3 32-32V153.3C307.7 141 288 112.8 288 80c0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3V192c0 53-43 96-96 96H256v70.7c28.3 12.3 48 40.5 48 73.3c0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3V288H144c-53 0-96-43-96-96V153.3C19.7 141 0 112.8 0 80C0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24c13.3 0 24-10.7 24-24s-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24zM248 432c0-13.3-10.7-24-24-24s-24 10.7-24 24s10.7 24 24 24s24-10.7 24-24z"/>&lt;/svg>&lt;/span>
&lt;/span>
&lt;div id="github-5bc8d0201efb40b3519ce3d4070b7bcc-forks" class="m-0 mr-5 text-md text-neutral-800 dark:text-neutral">
0
&lt;/div>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;script
async
type="text/javascript"
src="https://maxlen727.github.io/js/fetch-repo.min.8dc62397739c6bad3fd13945b87f251ff474c15ca4745cc6af8e12276050ddef337daedf284a830acbb2e456c9f599e2220477a38807ae76b4a342acdbe071d3.js"
integrity="sha512-jcYjl3Oca60/0TlFuH8lH/R0wVykdFzGr44SJ2BQ3e8zfa7fKEqDCsuy5FbJ9ZniIgR3o4gHrna0o0Ks2&amp;#43;Bx0w=="
data-repo-url="https://api.github.com/repos/maxlen727/students-of-poetry-club"
data-repo-id="github-5bc8d0201efb40b3519ce3d4070b7bcc">&lt;/script>
&lt;/a>
&lt;/div></description></item></channel></rss>