ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

OpenFootManager自定义联赛完全教程:用JSON定义文件打造你的专属球队与世界数据库

OpenFootManager自定义联赛完全教程:用JSON定义文件打造你的专属球队与世界数据库

【免费下载链接】openfootmanager

An open source soccer/football manager game

项目地址:https://gitcode.com/gh_mirrors/op/openfootmanager
点击查看免费下载

OpenFootManager 是一款开源足球经理游戏,你可以通过JSON 定义文件和世界数据库两种方式自定义联赛、球队与球员名字池。本教程面向新手,带你用最简单的 4 步打造专属球队与世界数据库——无需编程基础,只要会复制粘贴 JSON 即可。

两种自定义方式,先搞懂区别

OpenFootManager 提供了两套机制,官方说明位于 docs/DEFINITIONS.md:

方式文件作用适合谁
🧩定义文件default_names.json/default_teams.json生成世界的"模板",每次开新游戏随机生成球队、球员想换联赛阵容和国籍名字池的玩家
🌍世界数据库任意*.json完整快照一个固定的世界:球队、球员、职员全部预先确定想导入/分享完整自制的玩家

一句话:定义文件控制"怎么生成",世界数据库就是"生成好的成品"。

一键定位:定义文件放哪里?

游戏按以下顺序查找定义文件(找不到就静默使用内置默认值):

  1. 内置数据:应用资源目录下的data/文件夹
  2. 硬编码兜底:编译进二进制的默认值

内置模板就在仓库里,直接照着改最省事:

  • 球员名字池模板:src-tauri/data/default_names.json
  • 球队模板:src-tauri/data/default_teams.json(默认 16 支欧洲球队)
  • 用户导入的世界数据库目录说明:src-tauri/databases/README.md

💡 提示:JSON 写错时游戏会静默回退到默认值——如果修改没生效,先用 JSON 校验工具检查一下语法。

自定义球队模板 default_teams.json 最快配置方法

每个球队对象就是一个"球队卡片",核心字段一览:

字段必填说明
name/city/country✅队名、城市、ISO 国家代码(如"GB"、"ES")
colors.primary/secondary✅主色/辅色,CSS 十六进制色值
short_name⬜2-3 字母缩写,缺省自动从队名生成
play_style⬜战术风格:Attacking/Defensive/Possession/Counter/HighPress/Balanced
stadium_name⬜球场名,缺省为<城市> Arena
reputation_range⬜声望随机区间(0-1000),如[600, 900]
finance_range⬜开局资金随机区间

一段最小球队示例(完整结构可参考 default_teams.json):

{ "name": "London FC", "short_name": "LFC", "city": "London", "country": "GB", "colors": { "primary": "#dc2626", "secondary": "#ffffff" }, "play_style": "Possession", "stadium_name": "London Arena", "reputation_range": [600, 900], "finance_range": [3000000, 10000000] }

3 个必须记住的规则

  • 球队数量必须是偶数(4、8、12、16、20…),否则赛程无法生成
  • 每队自动获得 22 名球员(2 门将 / 7 后卫 / 7 中场 / 6 前锋)+ 4 名职员
  • 球员国籍按60% 本队国家、40% 随机池加权抽取,所以名字池里要有对应国家

用 default_names.json 给球员换上地道名字

名字池按ISO 3166-1 alpha-2国家代码组织,每个国家提供first_names和last_names两个数组:

{ "version": 1, "description": "My custom name pools", "pools": { "ES": { "first_names": ["Sergio", "Pablo", "Carlos"], "last_names": ["Garcia", "Rodriguez", "Martinez"] } } }
  • 国家代码必须大写,常用代码:GB英国、ES西班牙、DE德国、BR巴西、AR阿根廷
  • 建议每个国家至少10 个名字 × 2个姓,保证多样性
  • 某国籍没有对应池时,系统会从随机池兜底取名

字段定义对应 Rust 结构体,见 generator/definitions.rs,字段名与 JSON 完全一致,改名不会踩坑。

世界数据库:导出、导入、分享的完整流程

如果你不想依赖随机生成,而是想要一个固定的完整世界,就用世界数据库——它是teams+players+staff的完整 JSON 快照(结构体定义在 definitions.rs)。

导出世界数据库

  1. 游戏中打开Settings(设置)
  2. 点击Export World Database,选择保存位置
  3. 得到一个包含全部球队、球员、职员的 JSON 文件

导入世界数据库

  1. 新游戏流程走到选择世界界面(对应前端组件 WorldSelect.tsx),选择Custom Database / Import
  2. 选中你的 JSON 文件,写入用户数据目录的databases/文件夹
  3. 重启新游戏流程,即可在列表中看到你的世界(显示队数、球员数)

扫描逻辑见 commands/world.rs:游戏同时扫描内置databases/与用户数据目录下的databases/,把里面的.json都列出来。

4 步上手清单:从复制模板到开球

  1. 复制模板— 把 default_teams.json 和 default_names.json 拷一份出来改名
  2. 编辑内容— 任意文本编辑器修改球队、城市、颜色、名字池(记得删掉多余逗号)
  3. 放入目录— 定义文件放进data/,世界数据库放进databases/
  4. 开新游戏验证— 观察选队界面是否出现你的球队和名字风格

排错小技巧

  • ❓ 修改没生效 → 99% 是 JSON 语法错误,游戏静默回退默认值;粘贴到 JSON 校验工具检查即可
  • ❓ 赛程报错/开不了比赛 → 检查球队数是否为偶数
  • ❓ 球员名字不符合预期 → 确认country代码大写且名字池里存在该代码

相关资源汇总

资源路径
定义文件官方文档docs/DEFINITIONS.md
新手游戏入门指南docs/GETTING_STARTED.md
名字池模板src-tauri/data/default_names.json
球队模板(16 队示例)src-tauri/data/default_teams.json
世界数据库目录说明src-tauri/databases/README.md
生成器源码src-tauri/crates/ofm_core/src/generator/

按照上面的清单动手,10 分钟就能拥有一个写着你自己城市名和俱乐部颜色的联赛——祝你在 OpenFootManager 里早日捧杯!🏆

【免费下载链接】openfootmanager

An open source soccer/football manager game

项目地址:https://gitcode.com/gh_mirrors/op/openfootmanager
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进