pdf文档 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 页请下载阅读 -
文档评分
请文明评论,理性发言.