文章列表

45k41 分钟

In this paper, we mainly investigate the PP algorithm in osu! standard ruleset, aiming to help other players who are interested in the PP algorithm to quickly build up their knowledge of the algorithm. As most of the content is the author's personal understanding and experience, there may be err
28k25 分钟

本文是笔者研究 osu! 戳泡泡模式 PP 算法的一个记录文章,旨在帮助其他对 PP 算法感兴趣的玩家快速建立对 PP 算法的认知。由于大部分内容是笔者的个人理解和经验谈,可能存在错误或者偏差,欢迎读者提出改进意见和补充内容. 本文的代码片段来源于 rosu-pp, rosu-pp 是 osu!lazer 全模式算法的 Rust 实现,也是目前最流行的 PP 计算库。本文面向略有编程经验的读者,读者不必深入了解 Rust, 只需要具有本科级别的编程知识和数学知识即可理解本文内容. # 初探 PP 算法 # 两步式计算 抛开复杂的算法不谈,我们先来谈论一些表象。在表面来看,PP 系统会综合评估谱
8.8k8 分钟

Duplicacy 是一个开源的,基于无锁去重算法开发的云备份工具,他的核心思路类似 Git 等版本控制软件 多台电脑可以备份 / 同步到同一 (云) 储存 (类似远程 Repo 和本地 Repo 的关系) 可以将工作区还原到任意一个 Revision (类似把 Origin 切换到任意一个 Commit) 支持文件加密,压缩,打包,快照,同步云服务等功能 Duplicacy 直接支持下面这些 (云) 存储方式 Local disk SFTP Dropbox Amazon S3 Wasabi DigitalOcean Spaces Google Cloud Storage Mi
2.9k3 分钟

# 前言 在快节奏生活的社会背景下,游戏产业发展日新月异。大逃杀,roguelike 等新兴游戏类型在技术迭代和市场表现上拔得头筹,占领了巨大的玩家社区和游戏市场。游戏引擎、游戏厂商不断在玩家和市场的推动下翻滚,构成了现在暗流翻涌的主流游戏舞台。 在当今游戏产业的浪潮中,恋爱冒险类型的游戏却难以称为主流,难以激起巨大的浪花。恋爱冒险游戏的历史相当悠久,它由角色扮演的游戏类型衍生而来,由于早期计算机和游戏主机的性能限制,文字是游戏的主要表达载体。随着历史的发展,技术的不断迭代,角色扮演游戏的游戏性和画面感不断提升,因此衍生出了多重表现形式,恋爱冒险游戏即为其表现形式之一。 当今,文字冒险游戏是以
23k21 分钟

渲染一直是困扰众多开发者的难题,国内外开发文档较少的同时,不断迭代的版本更是让现状雪上加霜,如何让想象的美观界面元素化为现实,成为了很多开发者不断追求的目标. 笔者也不例外,经常阅读版本快讯的读者可能发现,在 Minecraft 1.20 系列版本快讯的评论区内,"优化" 一词多次出现,难道 Mojang 真的负重前行,成功优化了渲染系统吗? 众多问题和想法推动笔者查阅相关资料和实现,笔者希望借此机会与各位读者共同探清高版本渲染的迷雾,共同了解高版本横空出世的 GuiGraphics 类,及其背后的三两事. 按照笔者的行文习惯,我们会通过游戏中几个常见的特性出发,衍生出需求
15k13 分钟

第 37 届全国青少年科技创新大赛 参赛作品 荣获第 37 届全国青少年科技创新大赛 三等奖 # 研究背景 如今,国内已进入后疫情时代,网课掀起的在线会议浪潮尚未停息。越来越多的教育机构转为线上,腾讯会议成为了许多在线教育平台面对面施教的重要平台。作为腾讯会议网上教学的受益者之一,笔者逐渐对腾讯会议的优缺点有了更深的了解,这个过程中,自动打铃逐渐引起了笔者的注意。 学校的网课教学中,教师往往需要时刻注意当前的时间,使网上教学工作量加大,如果将提示上下课的工作交给学生,也会一定程度影响学生的上课质量和上课效率。在教育机构的网课教学中,课程提醒等需求均需要助教或老师手动进行,增大了工作量的同时不
9.1k8 分钟

第 37 届吉林省青少年科技创新大赛 参赛作品 荣获第 37 届吉林省青少年科技创新大赛 最佳作品奖 # 研究目的 为腾讯会议创建的会议室提供一套易部署、高灵活、可复制的自动打铃解决方案 # 研究方法 使用从需求到实现的溯源性思维,结合现有的虚拟化 (VT-d) 技术,虚拟音视频技术,利用 C# 编程语言,提供了一套切实可行的解决方案 # 研究结论 腾讯会议本身未提供第三方播放音视频的接口,需要模拟一位用户来播放音视频 播放音频本质是腾讯会议监听系统麦克风,为了将本地音频模拟成麦克风,需要借助虚拟声卡等软件模拟系统麦克风 播放视频本质是腾讯会议调用系统摄像头,为了将目标画面投射到系统摄像头
10k9 分钟

关于网络通信,ArchitecturyAPI 提供了类似 Fabric 的 Packet 和类似 Forge 的 Channel 这样两种解决方案,这里笔者将带领读者以两个具体实例切入这两种解决方案,读者可以实际感受后选择自己喜欢的方式来进行网络通信. # 使用 NetworkManager 进行网络通信 本节将使用类似 Fabric 的 NetworkManager 来写一个处理客户端鼠标滚动事件的实例。这里笔者给上文我们提到的经验储存器添加了一个小功能,可以让玩家用 Shift + 滚动来调整单次经验的存取量. 很显然,我们的需求涉及一个 C2S 的网络包请求。熟悉模组开发的读者应该清楚,
7.7k7 分钟

观察图片可以猜测,本节运用到的知识内容: DeferredRegister - 创建并注册游戏元素 I18n - 为元素添加本地化和材质 CompoundTag - 为物品添加功能 ClientTooltipEvent - 为物品添加 Tooltips (使用封装好的事件) 下面我们来基于 Architectury API 来编写我们的第一个物品 —— 经验储存器. # 创建并注册物品 在 trou.arch.item 包下创建 ItemExpContainer 类,使其继承自原版的 Item 类 位于common: trou/arch/item/ItemE
2.5k2 分钟

首先我们先从官方文档出发,看看 Architectury API 都为我们封装了哪些易于方法的方法和类。 读者可以暂时跳过这部分,进入下文的实例环节,在以后的开发中如果有需要再来查阅. 注:某些类的描述添加了笔者自己的理解,并且附加了可能的应用方法,以便于读者自行摸索下文的例子中没有提到的使用方法。 # 实用的抽象层 类名 描述 Platform 提供了获取当前加载器的一些规范的类 (比如配置文件位置,Mod 列表等方法) Registries 提供了注册物品,方块等元素的一系列方法和接口的类 (比如 RegistryProvider) KeyBindings 提供了一些