|
例如我会box2d,但是要做出一个游戏,还要什么? 光靠物理引擎是不够的吧。渲染什么是什么?物理引擎如何与其他的库结合使用?关注者
197
被浏览
9,949
关注问题写回答
邀请回答好问题
1 条评论
分享
<div class="Question-main"><div class="Question-mainColumn"><div id="QuestionAnswers-answers" class="QuestionAnswers-answers" data-zop-feedlistmap="0,0,1,0"><div class="Card AnswersNavWrapper"><div class="ListShortcut"><div class="List">11 个回答
默认排序
<div class="" role="list"><div class="List-item" tabindex="0"><div class="ContentItem AnswerItem" data-za-index="0" data-zop="{&quot;authorName&quot;:&quot;Milo Yip&quot;,&quot;itemId&quot;:52725913,&quot;title&quot;:&quot;游戏开发最基础的组成元素是什么?&quot;,&quot;type&quot;:&quot;answer&quot;}" name="52725913" itemProp="acceptedAnswer" itemType="http://schema.org/Answer" itemscope="">Milo Yip/path>
2016 年度荣誉答主
34 人赞同了该回答
<div class="RichContent RichContent--unescapable"><div class="RichContent-inner"><span class="RichText ztext CopyrightRichText-richText css-hnrfcf" options="[object Object]" itemProp="text">要回答开发游戏需要什么,有需要定义什么是(电子)游戏。 @空明流转 都猜得差不多了,但就缺少了一个很重要的因素──乐趣(fun)。例如一个专业飞行模拟软件可能有交互、规则、评价,但没有有趣的成分,可能只会当作一个模拟软件。但乐趣是很难定义的,见仁见智,或许有人使用那个专业飞行模拟软件也觉得很有乐趣,他可能会认为该软件也是一个游戏。
我节录《游戏引擎架构》一些相关的段落,这部分内容都在可下载的样章里( gea_excerpt.pdf)。
1.2 游戏是什么
“游戏”是什么,每个人多半都有自己非常直观的理解。“游戏”一词泛指棋类游戏(board game),如象棋和《大富翁(Monopoly)》;纸牌游戏(card game),如梭哈(poker)和二十一点(blackjack);赌场游戏(casino game),如轮盘(roulette)和老虎机(slot machine);军事战争游戏(military war game)、计算机游戏、孩子们一起玩耍的多种游戏等。学术上还有个“博弈论(game theory)”,它是指在一个明确的游戏规则框架下,多个代理人(agent)选择战略及战术,以求自身利益的最大化。在游戏主机及计算机娱乐的语境中,“游戏”一词通常会使我们的脑海里浮现一个三维虚拟世界,玩家可以控制人物、动物或载具。(老一辈的玩家可能会想起一些二维的经典游戏,如《乓(Pong)》、《吃豆人(Pac-Man)》、《大金刚(Donkey Kong)》等。)在《快乐之道:游戏设计的黄金法则(Theory of Fun for Game Design)》一书中,拉夫·科斯特(Raph Koster)把游戏定义为一个互动体验,为玩家提供一连串渐进式挑战,玩家最终能通过学习而精通该游戏[26]。科斯特的命题把学习及精通作为游戏的乐趣(fun)。这正如听一个笑话时,发现其中的奥妙,明白笑点的一瞬间该笑话变得有趣一样。
基于本书主旨,我们会集中讨论游戏的一个子集,子集里的游戏由二维或三维虚拟世界组成,并有少量的玩家(1~16个左右)。本书大部分的内容也可以应用到互联网上的Flash游戏、纯解谜游戏(如《俄罗斯方块(Tetris)》)或大型多人在线游戏(massivelymultiplayer online games,MMOG)。但我们主要集中讨论一些游戏引擎,这些游戏引擎可以用来开发第一人称射击、第三人称动作/平台游戏、赛车游戏、格斗游戏等。
1.2.1 电子游戏作为软实时模拟
大部分二维或三维的电子游戏,会被计算机科学家称为软实时(soft real-time)互动(interactive)基于代理(agent-based)计算机模拟(computer simulation)的例子。以下,我们把这个词组分拆讨论,以便理解。
在大部分电子游戏中,会用数学方式来为一些真实世界(或想象世界)的子集建模(model),从而使这些模型能在计算机中运行。明显地,我们不可能模拟世界上的所有细节,例如到达原子或夸克(quark)的程度,所以这些模型只是现实或想象世界的简化或近似版本。也因此,数学模型是现实或虚拟世界的模拟。近似化(approximation)和简化(simplification)是游戏开发者最有力的两个工具。若能巧妙地运用它们,就算是一个被大量简化的模型,也能非常接近现实,难辨真假,而能带来的乐趣也比现实更多。
基于代理模拟是指,模拟中多个独立的实体(称为代理)一起互动。此术语非常符合三维电子游戏的描述,游戏中的载具、人物角色、火球、豆子等都可视为代理。由于大部分游戏都有基于代理的本质,所以多数游戏采用面向对象(object-oriented)编程语言,或较宽松的基于对象(object-based)编程语言,也不足为奇了。
所有互动电子游戏都是时间性模拟(temporal simulation),即游戏世界是动态的(dynamic) 随着游戏事件和故事的展开,游戏世界状态随着时间改变。游戏也必须回应人类玩家的输入,这些输入是游戏本身不可预知的,因而也说明游戏是互动时间性模拟(interactive temporal simulation)。最后,多数游戏会描绘游戏的故事,并实时回应玩家输入,这使游戏成为互动实时模拟(interactive real-time simulation)。显著的反例是一些回合制游戏,如计算机化象棋及非实时策略游戏,尽管如此,这些游戏通常也会向用户提供某种形式的实时图形用户界面(graphical user interface,GUI)。因此基于本书的目标,将假设所有电子游戏至少都会有一些实时限制。
......
这本书虽然未必能直接回答「游戏开发最基础的元素是什么」,因为「什么是最基本」可能有不同的定义。但应该适合题主了解游戏开发(从技术上来说)的方方面面。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|