探索 Dialogic 2:游戏对话与叙事的得力助手

在游戏开发领域,引人入胜的对话系统和精彩的叙事常常能为游戏增色不少,成为吸引玩家深入体验的关键因素。而 Dialogic 2,正是一款专为游戏开发者打造的强大插件,能助力开发者轻松实现复杂且生动的游戏对话与叙事。

Dialogic 2 基于 Godot 引擎开发,对 Godot 4.2 及以上版本提供良好支持。其核心功能极为丰富,为开发者打开了创意的大门。它的对话系统堪称一绝,允许开发者创建复杂的对话树。无论是分支剧情、条件判断,还是多角色同时参与的对话,都能轻松实现。想象一下,在角色扮演游戏中,玩家的不同选择通过对话分支引发截然不同的剧情走向,这无疑大大增强了游戏的重玩性与趣味性。

Godot下载地址:

https://godotengine.org/download

对于视觉小说类游戏开发,Dialogic 2 更是得心应手。通过简单直观的拖放操作,开发者就能快速搭建起视觉小说场景,灵活管理背景、角色立绘以及对话框等元素,让文字与画面完美融合,构建出引人入胜的故事世界。此外,它还提供了便捷的角色管理功能,开发者可以方便地设定角色的各项属性、状态和行为,使角色在游戏中更加鲜活立体。

值得一提的是,Dialogic 2 内置了自动更新功能。这意味着开发者无需手动操心繁琐的更新事宜,插件会自动保持在最新版本,及时享受新功能与修复的漏洞,极大地提升了开发效率与稳定性。同时,Dialogic 2 采用单元测试确保代码质量,利用 gdUnit4 测试框架,开发者可在本地运行测试,为代码的可靠性保驾护航。

从应用场景来看,Dialogic 2 的适用性十分广泛。在视觉小说游戏开发中,它能快速构建起整个游戏架构,管理对话、角色和场景,使开发者专注于故事创作。在角色扮演游戏里,其丰富的对话系统可以支持多角色互动,创造出丰富多彩的剧情分支,为玩家带来沉浸式体验。冒险游戏通过它管理对话和角色,增强玩家代入感;教育游戏借助其对话与叙事功能,实现互动式学习体验,寓教于乐。

总的来说,Dialogic 2 以其易于使用的特性、强大的功能、自动化更新以及活跃的开源社区支持,成为游戏开发者打造精彩游戏对话与叙事的不二之选。无论你是经验丰富的行业老手,还是初涉游戏开发领域的新手,Dialogic 2 都能为你的游戏开发之旅增添助力,让你的创意通过精彩的对话与叙事完美呈现。

一、安装与激活​

Dialogic 2 要求 Godot 4.2 或更高版本。确认已安装合适版本后,按以下步骤安装插件:​

  1. 前往Dialogic 官方 GitHub 仓库的 Releases 页面,下载所需版本的 Dialogic 2 压缩包。​
  1. 解压下载的压缩包,找到其中的addons文件夹,该文件夹包含了 Dialogic 插件。​
  1. 将addons文件夹移动到你的 Godot 项目文件夹中。​
  1. 打开 Godot 项目,进入项目>项目设置,点击插件标签页。​
  1. 在插件列表中找到 Dialogic,勾选其旁边的启用按钮。​
  1. 重启 Godot 编辑器,至此 Dialogic 2 插件安装并激活完成。​

Dialogic 2插件下载地址:

https://github.com/dialogic-godot/dialogic/releases

二、认识编辑器界面​

成功安装并激活插件后,在 Godot 编辑器顶部会出现一个新的Dialogic标签页(位于2D、3D、脚本和资源库旁边)。点击进入,映入眼帘的是 Dialogic 主界面。界面顶部能看到 Dialogic 的不同编辑器选项;左侧边栏会展示最近使用过的角色和时间线;右上角有几个常用功能按钮,分别是添加时间线、添加角色、参考管理器和播放时间线 。​

三、创建时间线​

时间线用于编排游戏中的对话流程等事件,创建步骤如下:​

  1. 点击右上角的添加时间线按钮。​
  1. 在弹出窗口中,选择要存放时间线的文件夹,并输入文件名。时间线文件将以.dtl格式保存。​
  1. 点击保存后,编辑器右侧会出现事件面板,可从这里往时间线上添加各种事件。若想了解某个事件及其设置详情,右键点击该事件并选择文档即可查看说明。​
  1. 点击右上角的文本编辑器按钮,可切换到文本编辑模式编写时间线内容。关于文本格式时间线的编写规则,可在相关文档中进一步学习。​
  1. 完成时间线编辑后,点击右上角的播放时间线按钮,可测试当前时间线效果。​

四、创建角色​

为游戏创建角色的步骤如下:​

  1. 点击右上角的添加角色按钮。​
  1. 如同时间线操作,需选择保存角色的位置并命名。角色文件通常以.dchr格式保存。​
  1. 在角色编辑器中,可设置角色的各项属性,如名称、立绘(可添加多个不同表情的立绘)、初始状态等。这些设置将决定角色在对话和游戏场景中的呈现效果。​

五、为游戏添加对话​

  1. 在场景中添加一个Dialogic节点。你可通过在场景树中右键点击,选择添加节点,然后在搜索框中输入Dialogic来找到并添加该节点。​
  1. 选中添加的Dialogic节点,在其属性面板中,从下拉菜单里选择之前创建好的时间线。​
  1. 若要在游戏特定时机触发对话,可通过编写 Godot 脚本实现。例如,在某个场景脚本中添加如下代码,当场景准备好时启动名为ExampleDialog的对话:​
​extends Node2D

func _ready():

Dialogic.start('ExampleDialog')

通过以上步骤,你就能利用 Dialogic 2 插件在 Godot 游戏中搭建起基础的对话系统。随着对插件的深入使用,你还可探索其更多高级功能,如条件判断、多角色同时对话、对话分支剧情等,从而打造出更丰富精彩的游戏体验。

树莓派也能跑Godot了

非官方的,但因为官方开源。所以有人做了这个。好事情,普通2D游戏用它够了。

Unofficial Godot Engine for the Raspberry Pi

https://github.com/hiulit/Unofficial-Godot-Engine-Raspberry-Pi

有兴趣做Godot或Unity开发的请进群。

运行 Godot 游戏在树莓派上需要考虑的事项:

树莓派型号:

树莓派 3B/3B+: 可以运行一些简单的 2D 游戏,但性能可能有限。
树莓派 4/400: 性能更强,可以运行更复杂的 2D 游戏甚至一些轻量级的 3D 游戏。
树莓派 5: 最新型号,拥有更强大的性能,理论上可以运行更多类型的 Godot 游戏。


Godot 版本:

Godot 3.x: 对硬件要求相对较低,可能更适合在较老的树莓派型号上运行。
Godot 4.x: 提供了更多新特性和更好的性能,但在树莓派上可能需要更多的优化。建议使用最新的稳定版本。


操作系统:

推荐使用官方的 Raspberry Pi OS 或其他轻量级的 Linux 发行版。

导出设置:

平台: 选择 Linux/X11 作为导出平台。
架构: 根据你的树莓派型号选择正确的架构 (例如 ARMv7 或 ARM64)。
渲染器: 对于 2D 游戏,Forward+ 渲染器通常可以工作。对于 3D 游戏,可能需要尝试不同的渲染器设置以获得最佳性能。

优化: 启用导出优化选项,例如移除调试符号和压缩资源。
性能优化: 降低分辨率: 在项目设置中降低游戏的默认分辨率可以显著提高性能。
减少资源使用: 优化你的游戏资源,例如使用更小的纹理和更少的多边形。

使用轻量级的脚本: 避免在 _process 函数中进行过于复杂的计算。
考虑使用 GLES2 渲染器 (Godot 3.x): 如果你的游戏是 2D 的,并且在 GLES3 下性能不佳,可以尝试使用 GLES2 渲染器。

输入设备:

确保你的树莓派连接了合适的输入设备,例如键盘、鼠标或游戏手柄。

用树莓派Pico和镍铬丝制作电烙铁

1. 硬件准备

  • 树莓派Pico: 作为控制核心。
  • 镍铬丝: 作为加热元件。
  • MOSFET(如IRF520): 用于控制镍铬丝的电流。
  • 电阻(如220Ω): 用于限制Pico GPIO引脚的电流。
  • 电源: 提供足够的电流和电压。
  • 导线: 耐高温导线。
  • 烙铁头(可选): 可以将铜丝弯曲成烙铁头形状。
  • 隔热材料: 用于包裹镍铬丝,防止烫伤。

2. 硬件连接

  • 将镍铬丝连接到MOSFET的漏极(Drain)。
  • 将MOSFET的源极(Source)连接到GND。
  • 将树莓派Pico的GPIO引脚(例如GPIO15)通过电阻连接到MOSFET的栅极(Gate)。
  • 连接电源到镍铬丝和MOSFET。
  • 将隔热材料包裹在镍铬丝周围。

3. MicroPython编程

  • Thonny IDE: 推荐使用Thonny IDE,方便编写和上传MicroPython代码。
  • GPIO控制: 使用MicroPython的machine库,控制GPIO引脚输出高低电平,控制MOSFET的导通和截止。

示例代码:

from machine import Pin
import time

fire_pin = Pin(15, Pin.OUT)  # 点火引脚,连接到MOSFET栅极

def fire():
    fire_pin.value(1)  # 开启加热
    print("Heating...")

def stop_fire():
    fire_pin.value(0) # 关闭加热
    print("Stop Heating.")

while True:
    input_value = input("Enter '1' to heat, '0' to stop: ")
    if input_value == '1':
        fire()
    elif input_value == '0':
        stop_fire()
    else:
        print("Invalid input.")

4. 安全注意事项

  • 高温风险: 镍铬丝工作时会产生高温,务必小心操作,防止烫伤。
  • 电路安全: 大电流电路存在风险,务必小心操作。
  • 防火措施: 准备灭火器材,防止火灾发生。
  • 测试验证: 在实际焊接前,进行充分的测试验证。
  • 警告:
    • 电烙铁具有一定的危险性,请在安全的环境下操作。
    • 制作和使用电烙铁时,务必遵守相关安全规范。
    • 如果对于电子电路不是十分了解,请勿自行制作。请寻找专业人员的帮助。

5. 补充说明

  • 根据镍铬丝的电阻和电源电压,选择合适的MOSFET。
  • 可以添加温度传感器和PID控制算法,实现温度控制功能。
  • 关于烙铁头的制作:
    • 可以找一段粗的铜丝,然后用锤子敲打铜丝的一端,敲打成扁平状,然后打磨成自己需要的烙铁头形状。
    • 铜具有非常优秀的导热性,所以铜是制作烙铁头的优秀材料。

国内用Gradle构建Android APK

在中国内地,由于网络环境的特殊性,使用Gradle构建Android APK时,经常会遇到依赖下载缓慢或失败的问题。配置SOCKS代理确实是解决这一问题的有效方法之一。以下是一些关于如何为Java和Gradle添加SOCKS代理,以帮助您顺利构建APK的信息:

1. Gradle代理配置

  • gradle.properties文件:
    • 这是配置Gradle代理最常用的方法。您可以在用户主目录下的.gradle文件夹中找到或创建一个gradle.properties文件。
    • 在这个文件中,您可以添加以下属性来配置SOCKS代理:
      • systemProp.socks.proxyHost=your_socks_host
      • systemProp.socks.proxyPort=your_socks_port
      • systemProp.java.net.socks.username=your_socks_username (如果需要)
      • systemProp.java.net.socks.password=your_socks_password (如果需要)
    • 请将your_socks_hostyour_socks_portyour_socks_usernameyour_socks_password替换为您的SOCKS代理服务器的相应信息。
  • 注意事项:
    • 除了SOCKS代理,您可能还需要配置HTTP/HTTPS代理,因为Gradle在某些情况下可能会使用这些协议。
    • nonProxyHosts属性也非常重要,它可以指定不需要通过代理访问的主机。
    • Gradle是以JVM进程启动的,所有和java进程一样,可以提供系统参数,例如-Dproperty=value的形式。

2. Java代理配置

  • 由于Gradle是基于Java的,因此您也可以通过Java系统属性来配置代理。
  • 您可以在启动Gradle时,通过-D参数来设置这些属性。例如:
    • -DsocksProxyHost=your_socks_host
    • -DsocksProxyPort=your_socks_port
  • 但是,通常情况下,在gradle.properties文件中配置代理更为方便。

3. 解决常见问题

  • SOCKS代理与HTTP/HTTPS代理的配合使用:
    • 在某些情况下,您可能需要同时配置SOCKS和HTTP/HTTPS代理,以确保所有依赖项都能正确下载。
  • 代理软件的设置:
    • 确保您的SOCKS代理软件已正确配置,并且可以正常工作。
  • 网络环境的稳定性:
    • 即使配置了代理,不稳定的网络环境也可能导致构建失败。

总结

通过正确配置SOCKS代理,您可以显著提高Gradle在中国内地构建APK的成功率。建议您仔细检查代理设置,并根据您的网络环境进行调整。

DeepSeek近期线上服务受到大规模恶意攻击,注册一度被迫停止

2025年1月28日消息,DeepSeek于服务状态页面公告称:近期DeepSeek线上服务受到大规模恶意攻击,为持续提供服务,暂时限制了+86手机号以外的注册方式,已注册用户可以正常登录,感谢理解和支持。


其实1月27日晚上,即使是国内手机也是注册不进去的。估计是恶意攻击依然在进行中。

1月28日上午,终于注册成功。

有兴趣的朋友可以再试试。

DigitalOcean服务器:便宜可靠的云计算解决方案

在当今数字化时代,选择一个便宜又可靠的云计算服务提供商对于企业和开发者来说至关重要。DigitalOcean作为一家领先的云计算公司,以其高效、稳定和易用的服务赢得了广泛的赞誉。以下是推荐DigitalOcean服务器的几个理由:

高性能和稳定性
DigitalOcean的服务器采用最新的硬件技术,确保高性能和稳定性。无论是运行复杂的应用程序还是处理大量数据,DigitalOcean的服务器都能提供卓越的性能,保证业务的连续性和用户体验的流畅。

简单易用的界面
DigitalOcean提供了一个直观且用户友好的控制面板,使得服务器的管理变得简单。即使是没有太多技术背景的用户,也能轻松上手,快速部署和管理云服务器。

灵活的定价方案
DigitalOcean提供多种定价方案,满足不同用户的需求。最低的套餐6美元一个月。无论是个人开发者、小型企业还是大型企业,都能找到适合自己的方案。同时,DigitalOcean还提供按小时计费的灵活选项,帮助用户更好地控制成本。

丰富的功能和工具
DigitalOcean不仅提供基本的云服务器,还提供了丰富的附加功能和工具,如负载均衡、数据库托管、对象存储等。这些功能可以帮助用户更好地构建和管理自己的应用程序和服务。

强大的社区支持
DigitalOcean拥有一个活跃且热情的社区,用户可以在社区中找到大量的教程、指南和解决方案。而且他们的文档也是非常详细,很适合技术人员学习。此外,DigitalOcean的技术支持团队也非常专业,能够及时解决用户遇到的问题。

结论
总的来说,DigitalOcean以其高性能、易用性、灵活的定价方案和强大的社区支持,成为了云计算市场中的一股清流。无论你是开发者、企业主还是技术爱好者,DigitalOcean都能为你提供可靠的云计算解决方案,助力你的业务发展。

相关地址:

https://m.do.co/c/0a4e09145d2d

江浙沪猫窝设计概要

最近弄了一个室外的猫窝,理解了猫科动物对于卧室的要求。

猫的特点:敏感、警惕性高、爱干净、不喜潮湿、不喜光线直射、怕吵、怕冻、喜欢纸盒。

江浙沪特点:多雨潮湿、夏热冬冷、蛇虫鼠蚁多。

对应猫窝要点:结构简单牢固、防雨防晒、排水良好、透气性好、隐蔽性好、安全性高。

于是,我找了个餐厅用的304不锈钢大桶作为基础。灵感来自集装箱做的房子。

第一个版本的猫窝,没有特别布置,只在里面加上硬纸板。结果位置较低,下雨后里面进水,猫弹射跑路。(失败)

第二个版本,将大桶下方垫上两砖的高度,门口加矮墙。结果只能防小雨,雨一大,还是进水。猫坚持了五分钟,雨一大马上弹射跑路。(失败)

第三个版本,在桶内加垫料,增加床(大纸盒)的高度,床下留出排水通道。同时增加纵深,免得离门口太近。纸盒底部用透明塑料带加一隔水层。最后外面再挂一块布做门帘,遮阳加挡雨。(成功)

终于,大雨倾盆也不怕了。外面暴雨,它在里面踏实躺着梳理毛发。

Json文件的加解密

HTTPS可以防止传输过程中数据被偷看,但无法阻止客户端本地的攻击。比如Json之类的文件,如果完全明文,可能会让一些黑客看到敏感信息。

是否可以对其进行一层简单的加密?

以Python为例子,用一个加密库就可以。

首先执行:pip install cryptography

然后开始编写如下代码。

from cryptography.fernet import Fernet
import json

# 生成密钥
key = Fernet.generate_key()
cipher_suite = Fernet(key)

# JSON 数据
data = {
    "name": "Alice",
    "age": 30,
    "city": "Wonderland"
}

# 将 JSON 数据转换为字符串
json_data = json.dumps(data)

# 加密 JSON 数据
encrypted_data = cipher_suite.encrypt(json_data.encode())

print("加密后的数据:", encrypted_data)
print("密钥:", key)

它会输出:

加密后的数据: b’gAAAAABmraTSlRWANyVFWRKm4CgjpoJEhyLID-ri64K3RP2yItbM-4POPid1dVh_1mWVItoSzZy-bPC_pObCCDUJ-ktuxWbi5zAcSn8VDrTiYiyqwXWvygLcBHmwToapDEDoqA6RjHQs_WeOCKAZqPnge5Q-J4xNpw==’
密钥: b’MvHuTCwAj3SNz93MZtI_1Ww_tHn9XVUFxyARGyGLTxQ=’

要解密的时候怎么办呢?

from cryptography.fernet import Fernet
import json
daa = b'gAAAAABmraTSlRWANyVFWRKm4CgjpoJEhyLID-ri64K3RP2yItbM-4POPid1dVh_1mWVItoSzZy-bPC_pObCCDUJ-ktuxWbi5zAcSn8VDrTiYiyqwXWvygLcBHmwToapDEDoqA6RjHQs_WeOCKAZqPnge5Q-J4xNpw=='
key = b'MvHuTCwAj3SNz93MZtI_1Ww_tHn9XVUFxyARGyGLTxQ='
decrypted_data = cipher_suite.decrypt(daa).decode()
json_data = json.loads(decrypted_data)
print(json_data)

它会输出:
{‘name’: ‘Alice’, ‘age’: 30, ‘city’: ‘Wonderland’}

以上代码使用了 Fernet 加密算法,这是对称加密的一种实现。Fernet 是一种基于 AES(高级加密标准) 的加密方案,具体来说,它使用 AES-128 在 CBC(密码分组链接)模式 下进行加密,并结合 PKCS7 填充 和 HMAC(基于哈希的消息认证码) 来确保数据的完整性和保密性。

大疆微型无人机DJI Neo曝光 仅169g可飞行15分钟

有爆料人士在X(推特)上曝光了大疆的新款消费级无人机——DJI Neo。据了解,这应该是一款紧凑的,可折叠的微型无人机。

爆料人士展示了美国联邦通信委员会(FCC)注册的DJI Neo标签照片,型号为DN1A0626。标签上透露了该无人机配备的电池容量为1435mAh或10.5Wh。

此外,另一名X用户分享了一段视频,展示了这款无人机的实际飞行画面,可以看到该无人机采用了紧凑的设计,并预装了螺旋桨保护罩。

可以估计DJI Neo的重量约为169克,飞行时间大约为15分钟。这一信息意味着该无人机不仅便于携带,而且具有足够的飞行时间来进行简单的航拍任务。从这些信息来看,DJI Neo的定位应该不高,专注于自拍和简单的飞行操作。

据报道,DJI Neo Fly More Combo套装已经在沃尔玛上市,该套装通常包括额外的电池、充电集线器和手提箱,售价为329美元。

值得一提的是,除了DJI Neo,有传闻称大疆正在开发DJI Air 3S和DJI Mavic系列新品,但官方暂未宣布相关消息。

朝鲜黑客入职美国知名网络安全公司

朝鲜的高水平国家级黑客也许还有另外一个身份:某知名美国网络安全公司的高薪员工。
Knowbe4是美国著名安全意识公司,但某朝鲜黑客却通过并不复杂的社会工程、深度伪造技术和笔记本电脑农场顺利通过了该公司的招聘程序,打入该公司内部并险些酿成大祸。该事件凸显了当今AI增强网络攻击的复杂性,以及混合办公时代加强企业人力资源部门网络安全意识和流程的重要性。

用深度伪造技术顺利通过多轮面试和背调

据知情人士透露,一名朝鲜黑客冒充美国本土的IT专业人士应聘并渗透美国网络安全公司KnowBe4,但在成功进入公司内网前被发现。

周二,KnowBe4的首席执行官兼总裁Stu Sjouwerman在一份事件报告中披露,该公司发现一名新聘用的高级软件工程师实际上是朝鲜国家级黑客,企图入侵这家安全意识培训公司的系统。Sjouwerman强调,这名假冒的IT员工在加入KnowBe4内部AI团队之前,已经顺利通过了背景调查和多轮面试。

然而,自7月15日起,KnowBe4检测到与这名新员工的工作站电脑的诸多可疑活动。
朝鲜黑客冒充IT员工渗透美国企业的做法并不新鲜。2022年,美国政府联合发布的警告中曾提醒各组织注意这一威胁。

Sjouwerman在报告中说:“我们发布了职位招聘信息,收到了简历,进行了面试,进行了背景调查,核实了推荐信并聘用了此人。我们将Mac工作站电脑寄给了“新员工”,但设备收到后立即开始加载恶意软件。”

随后,KnowBe4的终端检测和响应工具(EDR)检测到了恶意活动,并向信息安全运营中心(SOC)发出警报。SOC联系了这名新员工,并询问是否需要帮助。根据不充分的响应和可疑活动,KnowBe4判断该新员工是“内部威胁/国家级黑客”。

“攻击者进行了各种操作来操控会话历史文件、传输可能有害的文件并执行未经授权的软件,还使用树莓派下载了恶意软件。”Sjouwerman在报告中说。

与Mandiant和FBI共同进行的调查显示,黑客使用深度伪造技术获得了这份工作,并使用VPN篡改了位置。Sjouwerman写道:“我们的人力资源团队曾四次通过视频会议对该黑客进行面试,确认此人与其求职申请表上的照片相符。此外,背景调查和所有其他标准的招聘前检查都未发现问题,因为黑客使用的是被盗的(真实)身份,且照片经过AI‘增强’。”

通过“笔记本农场”冒充美国本地员工,薪水上交朝鲜政府

调查还揭示了这个骗局的更多细节。Sjouwerman表示,这名假员工的工作站被寄送到一个作为“IT骡子笔记本农场”的地址。

KnowBe4的首席信息安全官Brian Jack解释了IT骡子笔记本农场的工作原理。

“这些试图获得工作机会的人大多数本人并不在美国。他们需要一个美国地址来接收公司发给员工的设备,”Jack说:“所谓笔记本电脑农场就是用于接受(美国企业邮寄给远程办公员工的)办公电脑的小型网络,运营该农场的美国本地个人会启动收到的电脑并配置远程访问。远在万里之外的黑客或非法务工人员随后会连接到笔记本农场网络,从那里远程访问公司设备。该人的安全和访问日志会显示为来自美国并且使用正确的设备。”

接下来,黑客会操控VPN位置,并在其工作所在地的夜间工作,使其看起来像是在美国的白天工作的美国本地人。

Sjouwerman在报告中说:“黑客实际上取得了在美国(非法)工作的机会,得到高薪并将大量收入交给朝鲜以资助其非法项目。这对我们构成了严重的风险。”

在2022年的警告中,政府机构还指出,这些假员工的目标是为朝鲜民主主义人民共和国筹集资金,以资助政府的武器开发等项目。

Sjouwerman提供了检测和防止此类骗局的建议,包括进行视频面试和扫描内部远程设备。他警告企业不要过于依赖电子邮件推荐信,并进行更彻底的背景调查。

他强调,这一内部威胁突显了企业需要部署更严格的审查流程,以防止APT黑客进入组织内部。

Sjouwerman在报告中说:“这一事件展示了攻击者在伪造可信身份、利用招聘和背景调查流程中的漏洞以及试图在企业系统内建立立足点方面精妙而有效的攻击技术。”


参考链接:
https://blog.knowbe4.com/how-a-north-korean-fake-it-worker-tried-to-infiltrate-us