一、编程语境中的宏(Macro)
1. 定义
宏(Macro)是在编译或构建过程中,用于替换特定标识符为特定内容的一种机制。它常见于:
- C/C++ 预处理器宏(
#define
) - 构建系统变量(如 Makefile、CMake、MSBuild)
2. 示例:C++ 中的宏
#define PI 3.14159
#define SQUARE(x) ((x)*(x))
3. 示例:MSBuild(Visual Studio 构建系统)中的宏
引用自《Game Engine Architecture》中的原句:
"Macros are invoked by writing the name of the macro enclosed in parentheses and prefixed with a dollar sign (e.g., $(ConfigurationName))."
这类宏通常用于 .vcxproj
文件中,是 Visual Studio 的项目配置变量。例如:
<OutputPath>$(Configuration)\</OutputPath>
其中 $(Configuration)
表示当前的构建配置(例如 Debug 或 Release)。
4. 特点
- 编程宏偏向语法替换、构建流程控制
- 在 Visual Studio 和 MSBuild 中也被称为“属性宏”或“项目宏”
- 和 C++ 中的
#define
类似,但语义上更像是 “构建时的参数”
二、游戏语境中的宏观操作(Macro Play)
1. 定义
宏观操作(Macro Play) 是游戏术语,指玩家/团队在比赛中做出的 大局战略决策,包括地图控制、资源分配、节奏掌控等。
与之相对的是 微观操作(Micro Play),即个人操作层面,如走位、瞄准、技能释放等。
2. 示例:守望先锋(Overwatch)中的宏观操作
- 进攻节奏判断:团队是否集满技能/大招后再进场,还是尝试快速爆发一波?
- 位置与地图轮转:决定从正面推高地、侧翼绕后,还是直接跳点分割后排。
- 大招管理(Ultimate Economy):
- 分析敌方刚用了哪些大招,评估下一波进攻是否优势;
- 做出“卖一波”的策略(不交招故意输一波)来攒资源。
- 重生与集结(Regrouping):
- 某位队友阵亡后,是否应该全员撤退重新集结;
- 判断该不该等坦克复活或支援到位再进攻。
3. 特点
- 更侧重 团队配合与战略思考
- 注重 站位调度、节奏控制、信息判断
- 是高水平对局中取胜的关键因素
小结对比
项目 | 编程中的宏 | 游戏中的宏观操作(Overwatch) |
---|---|---|
英文术语 | Macro | Macro Play |
所属领域 | 软件开发 / 编译系统 | 游戏 / 电子竞技 |
功能 | 代码/变量替换 | 战术决策与地图控制 |
关键词 | #define , $(...) |
战略、位置、技能节奏 |
对比术语 | 无(仅有预处理器) | Micro Play(微操) |
提示:虽然两个“macro”的意思不同,但都有一个共同点 —— 抽象出简洁的表示来应对更复杂的内容或行为,一个是代码层面,一个是策略层面。