Skip to content

ismism-learner/ismism-

Repository files navigation

IsmSim:一个程序化意识形态模拟器

IsmSim 是一个复杂的、由数据驱动的模拟系统。它能够程序化地生成一个由NPC组成的社会,其中每个NPC都拥有独特且不断演化的心理和意识形态档案。项目背景设定在一个“哲学化的古代”世界,旨在探索个人信念、经济压力、社会关系和个人欲望如何相互作用,从而创造出一个动态且不断涌现的社会结构。

本模拟器基于客户端-服务器架构,拥有一个强大的Python后端来运行世界模拟,以及一个基于Godot的可视化前端。

核心特性

  • 动态的意识形态生命周期: 这是当前系统的核心。NPC不再拥有单一、固定的意识形态,而是同时持有多种相互竞争的意识形态。他们的行为会反过来强化其核心信念,而被忽略的思潮则会逐渐消亡。当经历重大事件时,新的、激进的意识形态可能会“诞生”,导致NPC陷入“内在斗争”并最终完成人格的蜕变。
  • 深度的心理模型: NPC的行为由一个三层体系驱动:(1) 生物性的需求(如饥饿);(2) 意识形态驱动的诉求(源于其信仰的目标);(3) 基于精神分析理论的欲望(深层的野心与创伤)。
  • 自运转的经济系统: 世界拥有一套完整的经济循环。NPC在不同地点工作以生产资源、赚取金钱,并通过业余爱好制造商品,最终在市场出售。他们的财务状况(包括债务)会直接影响其压力水平和决策。
  • 涌现的社会动态: NPC之间会根据互动形成复杂的关系(如同志、对手等)。这些由其核心意识形态决定的关系,主导了他们会信任谁、反对谁,以及在社交场合中的具体行为。
  • 数据驱动与可扩展性: 模拟的几乎所有方面——从哲学信条、角色原型到地点、互动和可制造的物品——都由外部的JSON和Excel文件定义,这使得整个世界高度可定制和可扩展。

系统架构

  • 实体-组件-系统 (ECS): 模拟器的核心采用了ECS架构。这种设计将数据与逻辑分离,实现了高度的灵活性和性能。在ECS中,“系统”(如 NeedsSystem)会基于实体所拥有的“组件”(如 FinancialComponent)来执行相应的逻辑。
  • 客户端-服务器:
    • 世界服务器 (world_server/): 一个基于 websockets 的Python服务器,负责逐帧运行整个模拟。它处理所有NPC逻辑、世界事件和经济计算。
    • Godot 可视化工具 (godot_visualizer/): 一个Godot项目,它连接到世界服务器以接收世界状态更新,并实时渲染模拟画面。

如何开始

环境要求

  • Python 3.8+
  • Godot 引擎 (用于运行可视化工具)

安装

  1. 克隆本仓库:

    git clone <repository_url>
    cd <repository_directory>
  2. 安装所需的Python依赖包:

    pip install -r requirements.txt

运行模拟

  1. 生成主义数据: 如果 isms_final.json 文件缺失,或者你更新了源数据,请运行解析器:

    python excel_parser.py
  2. 启动世界服务器:

    python -u world_server/server.py

    推荐使用 -u 标志来禁用输出缓冲,以便实时查看日志。服务器将启动并监听 ws://localhost:8765

  3. 运行可视化工具:

    • 在Godot引擎中打开 godot_visualizer/ 项目。
    • 运行主场景。客户端将自动尝试连接到正在运行的服务器。

核心系统详解:意识形态生命周期

这是NPC心智的核心,也是我们当前工作的重点成果。它取代了过去静态的“突变”模型。

  • 内在斗争 (Internal Struggle): NPC的最终决策矩阵是其所有活跃意识形态,根据各自的“强度”进行加权平均后的结果。一个拥有两种强大且对立的意识形态的NPC,其行为将充满矛盾且难以预测。
  • 诞生 (Birth): 当一个NPC在某种新的思维方式上获得了足够的经验(IXP)后,一个新的意识形态会从其主导思想中“诞生”。母体思想的强度会与新生的子思想进行分配(例如,49% vs 51%),从而立即创造出一场内心冲突。
  • 强化 (Reinforcement): 当NPC执行一个行动时(如“工作”、“抗议”、“创作艺术”),与该行动关联的关键词会强化相应的意识形态,增加其强度,固化其信念。
  • 遗忘与死亡 (Decay & Death): 没有被行动所强化的意识形态,其强度会缓慢衰减。如果一个意识形态的强度降至某个阈值以下,它就被判定为“死亡”,并被NPC彻底遗忘。这是NPC经历漫长时间真正改变想法的方式。

About

主义主义沙盒化的一个小小尝试

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors