回答
正如你已经想通了,这种游戏的核心部件是比赛模拟引擎。由于Spence said so,你希望模拟“看起来正确”而不是“正确”。
我前段时间从事橄榄球游戏模拟,有一种方法效果很好。你的匹配是一个有限状态机。每个游戏阶段都是一个状态,有一个结果转化为相变或游戏状态的变化(分数,替换......)。 添加一个事件/监听器系统来处理与您正在模拟的游戏结构并不严格相关的事物,并且您有一个好的结构(每次在模拟中发生某种事情时,例如犯规,发生事件;听众可以是评论生成系统或负责团队策略的人工智能)。
您可以从一个粗略的模拟引擎开始,使用平均玩家的统计数据在团队级别处理事情,然后转到更详细的模拟玩家等级的事情。我认为这种迭代方法非常适合游戏模拟,因为您希望它看起来是正确的,只要一个元素看起来正确,您就可以停止迭代并在系统的另一部分上工作。
随机当然是游戏的一部分,因为如你所说,你不希望游戏过于可预测。一个非常简单的事情就是让虚拟骰子在执行特定动作(例如抛球)时对阵玩家和团队统计。
编辑:我假定我们正在讨论像Hattrick这样的管理游戏,在这里管理名册并模拟游戏结果而不是2D/3D图形模拟。
通常计时加上随机性使游戏重复编辑澄清我的意思是当球场到达你的时候,如果确切的话你可以学会完美地玩,你需要一个小的随机性你挥舞的时间让游戏有机会)。 AI在这方面有很大的作用,如果你做曲线球之类的事情,增加偷垒等的能力。
让游戏“对”不是设计或数学的一个因素,而是一种感觉。你会尝试一些,玩它,看看它是否有趣。如果它没有尝试不同的算法或游戏玩法,直到你做对了。
模拟是一个非常想象的世界,因为您可以创建代表想象世界的各个方面的类。您需要为玩家建模,指定游戏规则和游戏动态。
http://cplus.about.com/b/2008/05/31/nathans-zombie-simulator-in-c.htm
看看这里的基于代理模式:http://www.montemagno.com/projects.html
人工智能可能是个好主意。 – Victor 2009-07-28 20:06:50
这是关于概率和统计。你根据你分配的某些属性设定发生事件的机会,然后在游戏过程中出现随机因素,使事情变得更难以预测和更有趣。一般来说,您会从某些外部来源获取统计资料,将它们编码到您游戏的数据库中,然后编写一个系统,将随机数与这些统计数据进行比较,以生成与统计数据基于的实际观察值近似的结果。过于简单的例子:假设你的比赛有Babe Ruth,他在8.5%的时间内打本垒打,还有一些小个子打了4%的时间。这些是您测试的属性。所以对于你模拟的每个音调,选择一个0到100%之间的随机数。如果它小于或等于该属性,则击球手获得本垒打,如果它大于该属性,则不会。经过几场比赛之后,你会开始看到Babe Ruth的质量表现相对于其他人,因为他倾向于打两次本垒打。
实际上,你会有超过1个属性,这取决于投球的种类。另一名球员可能会选择使用哪种救援投手来尝试并利用击球手的能力弱点。所以游戏玩法来自于这些不同属性之间的相互作用,你试图最大化属性测试对你有利的机会。
PS。对于任何关于棒球的错误抱歉:我是英国人,所以不能期望理解这些东西。 ;)
创建自己的游戏的一个伟大的事情是,你得到决定游戏逻辑如何工作。如果你想让游戏有高度的运气你可以在中进行设计。如果你不想让游戏有高度的运气,那么你可以设计出来。
这是你的游戏,你得到弥补的规则。
不错,只是收集一些想法。 – Victor 2009-07-28 20:04:23
你说的是你玩的棒球游戏还是游戏模拟器?棒球比赛可以是街机般的或幻想般的体育运动或混合体。
当Front Page体育棒球制成时,我在Dynamix。这是基于统计的,这意味着你可以使用各种球员的统计数据来进行比赛和赛季。这意味着许可大联盟的数据。它使用统计数据来影响结果。
有一个常规模式和一个“快速模拟”模式,可以更快速地通过游戏。
我认为Kylotan有正确的策略。棒球有一切的统计资料。将游戏模拟为您可以管理的最详细级别。结合球员统计数据来确定每个结果的百分比机会。使用随机性来决定结果。
例如:击球的几率基于击球平均数,投手的ERA等。对手球队的投篮命中率决定出局成为错误的几率。
在选择阵容时,您显示给'经理'的每个属性应该对游戏性有所影响 - 否则经理会根据误导性信息做出决定。
你应该查看特许球。有一个可浏览的演示。
- 1. 在动作模拟交易卡游戏
- 2. 骰子滚动游戏模拟器
- 3. Box2d + CoCos2d:自动移动对象以模拟游戏中的计算机运动
- 4. Java3D游戏动作
- 5. 游戏/动画模型/原型工具
- 6. 使用Rails制作AS3游戏动态
- 7. 定时运动java游戏
- 8. C#跳棋游戏运动
- 9. 如何在游戏中模拟mouseMovement?
- 10. 游戏制作工作室:当我运行游戏
- 11. MVC游戏模式:动画?
- 12. 模具滚动游戏
- 13. 我的html5游戏不能在BB10模拟器中工作
- 14. 按键模拟游戏[C++]
- 15. 用Python模拟游戏杆
- 16. 游戏循环模拟Golang
- 17. 桥梁模拟游戏
- 18. 加倍游戏模拟
- 19. 游戏模拟器超时
- 20. 胡扯模拟游戏java
- 21. TRACEBACK Python模拟游戏
- 22. 在Flash游戏中实现动态的游戏内广告
- 23. 模拟3D游戏中的鼠标移动?
- 24. 控制iphone游戏图像的运动
- 25. C中的小行星游戏运动#
- 26. 蛇游戏中的蛇运动
- 27. 多人游戏中的运动同步
- 28. 游戏编程中的运动
- 29. 如何为coco2dx游戏制作模拟器屏幕截图
- 30. 如何在批量模拟游戏中制作时间系统?
是的,它应该是管理游戏。 – Victor 2009-07-28 20:06:00