使用 AI 工具和 Azure 静态 Web 应用构建教育游戏(第 1 部分)

探索游戏化学习:一个使用ren’py和ai构建的教育视觉小说游戏

一直以来,将创造力、技术和趣味性融合于一体的理念都深深吸引着我。最近,我尝试通过开发一款教育性质的视觉小说游戏来探索这种可能性。虽然我缺乏游戏开发经验,但我渴望尝试新事物,因此我选择使用Ren’Py——一个基于Python的视觉小说引擎——作为我的起点。为了加快开发速度,我利用了AI工具,并使用Azure静态Web应用进行部署,最终创建了一个交互式游戏原型,旨在教授如何使用GitHub Copilot辅助编码任务。考虑到游戏开发的月份是12月,我还为游戏增添了节日氛围,以增强游戏体验。

本文将分享我的开发过程,包括:

使用Ren’Py框架构建游戏。利用GitHub Copilot、Azure OpenAI服务等AI工具来加速开发并生成游戏视觉素材。使用GitHub Actions和Azure静态Web应用自动化构建和部署流程。

想体验一下吗?您可以在线试玩游戏,并访问我的GitHub仓库查看源代码。

开发历程

市面上已存在许多关于云技术的教育游戏,涵盖从入门到高级用户的各个层面。例如,微软提供了Microsoft Technical Quest,这是一款基于纸牌的游戏,玩家可以使用Azure服务构建参考架构。其他云服务提供商,如AWS,也提供基于游戏的培训,帮助用户以一种趣味横生的方式学习云解决方案的构建方法。

几年前,我玩过一款名为Azure Space Mystery的游戏,该游戏由微软云倡导者为国际妇女和女孩科学日特别打造。这是一款基于文本的游戏,拥有丰富的图形,并通过关卡挑战来推进游戏进程。我们的目标是让微软学习内容以更具吸引力的方式触达开发者。

尽管缺乏游戏开发经验,我还是想尝试创建一个类似的游戏。我的想法是创建一个基于文本的游戏,教授技术概念,包含简短的测验,并在玩家取得进展时给予成就奖励。鉴于GitHub Copilot近期备受关注,我决定将其作为游戏的核心主题。由于游戏开发始于12月,因此我还加入了节日主题元素。

最终成果是圣诞Copilot任务(Christmas Copilot Quest),玩家可以在游戏中学习如何在Visual Studio Code中使用GitHub Copilot辅助完成编码任务。在圣诞老人风格的Copilot助手Gingerbot的引导下,玩家将以互动的方式了解GitHub Copilot的功能。

使用 AI 工具和 Azure 静态 Web 应用构建教育游戏(第 1 部分)

展示主菜单、对话示例和学习资源页面的游戏屏幕截图

基于文本的游戏构建

技术栈

市面上有很多优秀的工具可用于构建基于文本的游戏,但我有一些关键需求:

支持编写包含测验或选择分支,从而影响游戏流程的非线性故事。可自定义游戏用户界面。灵活编写自定义组件。支持将游戏部署为Web应用程序。

由于Python是我的首选语言,我自然而然地选择了Ren’Py,这是一个基于Python的视觉小说引擎。它满足了我的所有需求,提供了一种易于使用的脚本语言来编写故事、定义测验和自定义UI。它还允许使用Python扩展其内置功能,并将游戏导出到桌面、移动和Web平台。此外,Ren’Py命令行界面(CLI)的可用性使我能够自动化游戏的构建和部署流程。

游戏结构

游戏围绕三个核心组件构建:

脚本:包含游戏的故事和测验。叙述可以是独白或角色间的对话。故事被组织成由标签标识的部分。

使用 AI 工具和 Azure 静态 Web 应用构建教育游戏(第 1 部分)

游戏截图,展示对话示例和供玩家回答的测验

图形用户界面(GUI):涵盖游戏中显示的所有屏幕和菜单,以及使用的视觉元素。Ren’Py脚本语言允许自定义内置屏幕(例如按钮和菜单),并创建新的屏幕,例如:

向玩家显示成就解锁信息的通知屏幕。显示已获得成就和学习资源的菜单。

使用 AI 工具和 Azure 静态 Web 应用构建教育游戏(第 1 部分)

自定义游戏屏幕:角色选择(左)、成就解锁通知(中)和已获得成就屏幕(右)

自定义Python代码:提供根据游戏需求定制的附加功能。最新版本的Ren’Py支持使用Python 3.9编写自定义组件脚本。游戏中的自定义组件包括:

成就系统,允许玩家通过完成特定任务来获得奖励,并且成就会被持久存储。角色定义和实用程序功能,使玩家能够选择自己喜欢的角色和名称。GUI实用程序,例如图像转换(例如眨眼效果)以及用Python编写的自定义字体和文本样式。

为了保持游戏的可维护性和可扩展性,这些组件是相互独立的。脚本定义故事,而逻辑则被组织成Python模块,在Ren’Py中称为存储(store)。例如,可以直接从脚本调用根据玩家输入确定玩家姓名的Python函数,如下所示:

label introduction:    felix "Ah, you must be the new coder Santa called for! What's your name?"    $ player_input = renpy.input(        _("(Type your name and press Enter, or press Enter to use the default name, [character_name].)")    )    $ player_name = character_utils.determine_player_name(player_input)    player "I'm [player_name]."

AI工具的集成

使用GitHub Copilot辅助编码

我发现GitHub Copilot对于学习和理解Ren’Py非常有帮助,这是一个我以前从未使用过的框架。尽管Ren’Py并非一个广泛使用的框架,可用于训练的数据可能有限,但GitHub Copilot正确地回答了我的大部分问题,并帮助我理解各种Ren’Py组件的工作原理。一个例子是它建议实现带有图像按钮的角色选择屏幕。

使用 AI 工具和 Azure 静态 Web 应用构建教育游戏(第 1 部分)

GitHub Copilot建议的角色选择屏幕实现

这个建议非常准确,并提供了一个坚实的起点,使我能够快速开发屏幕。然而,Copilot并没有提供向屏幕按钮添加悬停过渡的正确实现。考虑到Ren’Py并非一种广泛使用的语言,这在某种程度上是可以预料的。

使用AI工具生成图像

为了快速创建一个简单的游戏,我没有时间自己设计所有图形。我使用人工智能驱动的图像生成工具来创建游戏中使用的角色和背景图像。我的关键需求是所有图像的风格一致以及节日主题。

我首先尝试了DALL-E 3模型,可以通过Azure OpenAI服务访问。虽然生成的图像质量不错,但我发现保持所有图像风格的一致性具有挑战性。

然后,我转向了Microsoft Designer,这是一个微软推出的基于人工智能的云端图形设计应用程序。它在不同的请求中提供了更一致的结果,更符合我的需求。对于角色创建,我使用了头像文本到图像功能,对于背景,我使用了默认功能。在尝试了多种风格后,我选择了“低多边形”的美学风格,因为它既能提供一致的结果,又能提供与游戏趣味性、游戏化本质相匹配的外观。以下是我用来生成角色图像的提示示例:

“一位棕色头发的风格化女性的低多边形3D肖像,穿着圣诞颜色的衬衫,具有干净的几何形状、平坦的颜色和柔和的灯光,采用白色背景的简约未来主义风格。”

我通过应用滤镜来处理生成的图像,以减少噪点、平滑颜色、去除背景并突出显示多边形的边缘。在某些情况下,我组合了两个图像来创建最终的角色设计,并生成了闭着眼睛的重复图像,以在游戏中产生眨眼效果。

总的来说,我发现这些工具对于快速生成视觉资产非常有帮助。虽然我为每个角色创建了数百个版本(好吧,也许我有点完美主义!),但人工智能工具对于生成符合游戏主题的图像来说非常宝贵。

总结

本文探讨了如何使用基于Python的视觉小说引擎Ren’Py,以及GitHub Copilot、Azure OpenAI服务和Microsoft Designer等AI工具来创建教育游戏原型。接下来是什么呢?我们需要部署该应用程序。幸运的是,Ren’Py提供了一个CLI工具来自动化游戏构建,并且Azure静态Web应用与GitHub Actions无缝集成。在下一篇文章中,我将向您展示如何设置GitHub Actions工作流程来自动化游戏的构建和部署过程。

同时,您可以查看以下资源以了解有关GitHub Copilot和DALL-E 3模型的更多信息:

GitHub Copilot基础知识 – 了解AI结对编程使用GitHub Copilot加速应用程序开发GitHub Copilot聊天食谱使用Azure OpenAI服务生成图像

以上就是使用 AI 工具和 Azure 静态 Web 应用构建教育游戏(第 1 部分)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1355491.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月13日 19:14:57
下一篇 2025年12月13日 19:15:03

相关推荐

  • PyTorch 中的 CocoCaptions (1)

    请我喝杯咖啡☕ *备忘录: 我的帖子解释了cocodetection()使用带有captions_train2014.json、instances_train2014.json和person_keypoints_train2014.json的train2014、带有captions_val2014.…

    2025年12月13日 好文分享
    000
  • AI 代理初学者教程

    AI 代理入门指南 概述 人工智能(AI)已彻底改变了我们的生活、工作和互动方式,成为现代科技的核心。AI 代理是AI领域的基础概念,赋予机器决策、解决问题和适应变化的能力。本教程将全面介绍AI代理,涵盖AI、机器学习和编程语言的基础知识,以及基于代理的建模和仿真。 什么是AI代理? AI代理是利用…

    2025年12月13日
    000
  • 了解 Python 中的正则表达式:一个实际示例

    简介 正则表达式(Regex或Regexp)是强大的模式匹配和文本处理工具,用于精确查找、匹配和操作字符串。本文通过一个Python客户验证函数的实际案例,演示正则表达式的应用。 背景 假设需要验证客户信息,特别是姓名和手机号码。以下Python代码片段使用正则表达式验证手机号码: 立即学习“Pyt…

    2025年12月13日
    000
  • 周统计

    一周统计学速成:一场略带讽刺的深度探索 本周,我们将深入浅出地探讨统计学的核心概念,力求以严谨的技术手法解释基本原理,并辅以轻松的讽刺,让学习过程更轻松有趣。本文将详细分解我的统计学习之旅,涵盖理论知识、实际案例和 Python 代码实现。 1. 描述性统计:数据概述 描述性统计是将原始数据进行总结…

    2025年12月13日
    000
  • 使用 Elbow 方法进行 K 均值聚类

    概述 聚类分析是一种机器学习技术,用于将未标记的数据集划分成若干组(簇)。简单来说,它将相似的数据点分组到一起。具有相似特征的数据点归为一类,而与其他组差异较大的数据点则被划分到不同的组中。 以购物中心为例,我们可以看到商品按照用途分组:T恤衫在一个区域,裤子在另一个区域,蔬菜区则将苹果、香蕉、芒果…

    2025年12月13日
    000
  • 使用 Amazon Bedrock 构建个性化学习伴侣

    我现在正在攻读硕士学位,我一直想找到方法来减少每天的学习时间。瞧!这是我的解决方案:使用 amazon bedrock 创建一个学习伙伴。 我们将利用 amazon bedrock 来利用 gpt-4 或 t5 等基础模型 (fm) 的力量。 这些模型将帮助我们创建一个生成式人工智能,可以回答用户对…

    好文分享 2025年12月13日
    000
  • PyTorch 中的 CocoCaptions (2)

    请我喝杯咖啡☕ *备忘录: 我的帖子解释了cococaptions()使用带有captions_train2014.json、instances_train2014.json和person_keypoints_train2014.json的train2014、带有captions_val2014.j…

    2025年12月13日 好文分享
    000
  • 上传文件到 OpenAI:传递接力棒

    本文将指导您如何利用 OpenAI 文件 API 上传预处理好的 JSONL 文件,为后续模型微调做好准备,这就好比将整理好的邮件交给邮递员进行投递。 准备工作: 确保已安装 OpenAI Python 包:pip install openai获取您的 OpenAI API 密钥。 上传文件步骤 (…

    2025年12月13日
    000
  • PyTorch 中的 CocoDetection(2)

    请我喝杯咖啡☕ *我的帖子解释了 ms coco。 cocodetection() 可以使用 ms coco 数据集,如下所示。 *这适用于带有captions_train2017.json、instances_train2017.json和person_keypoints_train2017.js…

    2025年12月13日 好文分享
    000
  • PyTorch 中的 CocoDetection (1)

    请我喝杯咖啡☕ *备忘录: 我的帖子解释了cocodetection()使用train2017与captions_train2017.json,instances_train2017.json和person_keypoints_train2017.json,val2017与captions_val2…

    2025年12月13日 好文分享
    000
  • 学习数据科学的最佳方式:有抱负的专家综合指南

    数据科学领域日新月异,需要具备统计学、编程和专业领域知识的独特技能组合。如果您渴望进入这个充满活力的领域,掌握高效的学习方法将帮助您节省时间并最大化学习成果。本文将为您提供一个系统、全面的数据科学学习路线图。 1. 夯实基础 在深入高级主题之前,扎实的基础至关重要,包括: 数学:线性代数、微积分和概…

    2025年12月13日
    000
  • Hal创建并共享生成应用程序

    Hal9 (GitHub) 旨在简化基于LLM、扩散模型和其他AI模型的应用程序的创建、部署和共享。无论是构建聊天机器人、代理、API还是生成式应用,Hal9 都能最大限度地减少工程开销,让您专注于AI本身。 为什么选择Hal9? 许多生成式AI项目耗费大量时间在工程难题上——例如构建界面、集成工具…

    2025年12月13日
    000
  • 使用 Ngrok 将您的 Django 项目公开到 Internet

    Django 开发中遭遇 you’re accessing the development server over https, but it only supports http. 错误?本文为您提供解决方案:使用 ngrok。 什么是 ngrok? ngrok 是一款强大的工具,能轻松将本地应用…

    2025年12月13日
    000
  • 5 年内值得关注的令人兴奋的网络趋势

    未来五年,Web 开发将迎来激动人心的变革。以下十个关键趋势值得关注: WebGPU: WebGPU 将彻底改变浏览器图形和计算处理方式,提供对GPU的低级访问,从而实现高性能渲染、数据处理和机器学习应用。其灵活性远超WebGL,更接近Vulkan和DirectX 12等现代图形API。这将为浏览器…

    2025年12月13日
    000
  • 您的营销电子邮件最终会成为垃圾邮件吗?我们构建了一个工具来找出答案

    电子邮件营销的成功关键在于邮件送达收件箱而非垃圾邮件文件夹。本文将构建一个可验证邮件是否会被标记为垃圾邮件,并解释原因的工具。该工具将以api形式在线部署,方便集成到您的工作流程中。 垃圾邮件验证机制 Apache SpamAssassin是一个由Apache软件基金会维护的开源垃圾邮件检测平台,被…

    2025年12月13日
    000
  • Conquer Tedious Tasks with These Python Automation Scripts

    python自动化脚本:10个提升开发者效率的实用工具 重复性任务严重拖慢开发进度?别担心,Python强大的自动化功能能帮你解决这个问题!本文将介绍10个Python脚本,它们能显著提升开发者效率,让你更专注于创意编码。 告别离线:防止电脑休眠的脚本,让你的鼠标动起来,模拟用户活动,避免恼人的屏幕…

    2025年12月13日 好文分享
    000
  • 使用 Python 高效批量写入 DynamoDB:分步指南

    高效批量写入dynamodb的python指南 对于处理大量数据的应用程序而言,高效地将数据插入AWS DynamoDB至关重要。本指南将逐步演示一个Python脚本,实现以下功能: 检查DynamoDB表是否存在: 如果不存在则创建。生成随机测试数据: 用于模拟大规模数据插入。批量写入数据: 利用…

    2025年12月13日
    000
  • 使用图神经网络预测 NBA 球员的化学反应

    大家好,我是sea_turt1e。本文将分享我构建机器学习模型预测美国职业篮球联赛(NBA)球员化学反应的过程和结果。 模型概述 使用图神经网络(GNN)预测球员化学反应。以曲线下面积(AUC)作为评估指标。模型收敛时的AUC约为0.73。训练数据涵盖1996-97至2021-22赛季,2022-2…

    2025年12月13日 好文分享
    000
  • 用 Python 逐步解决每周挑战任务

    每周挑战赛 Python 解法:逐步求和 Mohammad S. Anwar 组织的每周挑战赛是一场友好的编程竞赛,参赛者需要解决两个任务。本篇文章将介绍我对每周挑战赛第 302 周,任务 2 “逐步求和” 的 Python 解法。 任务描述: 给定一个整数数组 @ints,编写一个脚本查找最小的正…

    2025年12月13日
    000
  • Python 中的交替异步生成器

    本文展示了一个 python 异步生成器 alternatinggenerator,它能够交替地从两个其他异步生成器中获取值。 该代码实现了异步迭代协议 (__aiter__ 和 __anext__),允许使用 async for 循环或手动调用 anext 来迭代结果。 alternatingge…

    2025年12月13日
    000

发表回复

登录后才能评论
关注微信