Many Ways to Kill an Orc (or a Hero)
1.26 MB
202 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
英语 | .pdf | 3 |
摘要 | ||
文档探讨了两种游戏编程方法的对比:传统方法和基于variant的方法。传统方法中,角色(Character)的内存占用分别为48字节,英雄(Hero)72字节,怪物(Monster)64字节,兽人(Orc)72字节,1e9次攻击耗时5222730微秒。而基于variant的方法中,Monster和Orc的内存占用分别降为48字节和56字节,1e9次攻击耗时3649402微秒。此外,文档展示了如何通过共享库实现英雄与兽人的战斗逻辑,以及角色之间的攻击和受伤机制。 | ||
AI总结 | ||
《Many Ways to Kill an Orc (or a Hero)》是一篇关于游戏编程的讲座资料,作者是Patrice Roy。以下是文档的核心内容和关键信息总结:
1. **游戏编程的核心问题**:
- 讲座讨论了游戏编程中处理战斗逻辑的不同方法,特别是英雄(Hero)和兽人(Orc)之间的战斗。
- 通过共享库的传统方法与基于变体(variant)的方法进行了对比。
2. **传统方法与variant-based方法的对比**:
- **传统方法**:
- 内存占用:`Character`占48字节,`Hero`和`Orc`各占72字节,`Monster`占64字节。
- 性能:处理10^9次攻击时耗时为5222730微秒。
- **variant-based方法**:
- 内存占用:`Character`占48字节,`Hero`和`Orc`各占56字节,`Monster`占48字节,相比传统方法节省了内存空间。
- 性能:处理10^9次攻击时耗时为3649402微秒,性能有所提升。
- 每个`Monster`对象占用了传统方法中等效对象的75%内存空间。
3. **角色与战斗逻辑**:
- `Hero`和`Orc`继承自`Character`类,分别实现了`hit`函数,用于攻击对方。
- `Hero::hit(Orc &)`和`Orc::hit(Hero &)`分别定义了攻击逻辑。
- 通过`attack`函数可以实现单个或多个目标的攻击,增加了战斗的灵活性。
4. **示例与实现细节**:
- 主函数中展示了如何创建受害者列表(包括`Orc`、`Furniture`和`Bystander`),并通过`attack`函数处理战斗。
- 角色具有名称、生命值等属性,统一了角色状态的管理(如存活、死亡等)。
5. **设计与扩展性**:
- 讲座提出了一些设计问题,如所有角色是否都应支持受伤或治疗等。
- 未来计划包括实现角色穿戴护甲的功能,进一步丰富游戏机制。
总结来说,这篇讲座通过对比传统方法和变体方法的优劣,探讨了游戏编程中战斗逻辑的实现与优化,并提供了实际的代码示例和设计思路。 |
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余
190 页请下载阅读 -
文档评分