从web开发者的角度来看游戏开发的问题

时间:2009-11-04 21:36:30

标签: language-agnostic

我一直在制作网络应用程序并使用各种服务器端语言,如php,ruby,perl一段时间了。我一直对游戏开发感到好奇,这实际上是我打算做的,但我最终进入了网络开发。我正试图过渡到GD,但我不禁看到来自网络开发POV的游戏。

GD =游戏开发 WD = Web开发

技术问题。

  1. 如何在游戏中设计UI?在WD你有CSS,并需要最少的图形来创建一个快速菜单。 GD中有类似的工具或概念吗?

  2. 您如何处理存储数据?你使用平面文本文件吗?或者是否有类似MySQL或sqlite的东西用于存储有关对象,用户等的信息?

  3. 常用的游戏引擎是什么?有没有使用脚本语言?我只懂VB和对C的基本理解。

  4. 随着Iphone和Android的普及,J2ME是否会被逐步淘汰手机?

  5. 打开3D网络即将到来。您对从浏览器本地运行3d应用程序有何看法?

  6. 使用哪些工具可以轻松创建3D对象,关卡,游戏环境以及动画角色等等?

  7. 我在哪里可以找到有关服务器/客户端,客户端/客户端和MMORPG网络如何工作的更多信息?

  8. 我在哪里可以获得或找到通用或常用的游戏流程?对于多人游戏?

  9. 你如何处理物理?您可以使用免费的算法或库吗?

  10. 游戏中如何实时过场动画?

  11. 市场问题。

    1. 您应该进入哪个市场?手机,iphone,wii,PSP,DS,android,ps3,PC等 难道你不应该总是进入移动市场,因为很容易自己制作小游戏而且卖得很多?有没有资源我可以找到更多关于每个市场的信息?

    2. 您对Steam内容分发有何看法?它是未来的分销模式吗?传统的出版商/经销商模式有什么问题?传统模型如何正常工作?

    3. 网页游戏市场有多大? ex)Flash游戏。

    4. 游戏开发与其他任何软件开发或网站开发有何不同?

    5. 我还有很多......但是那些是我最近一直在思考的问题。

      非常感谢您的阅读!

4 个答案:

答案 0 :(得分:7)

  1. UI开发

    取决于游戏 - 它是动画还是板式游戏?通常,UI资产创建为图像,精灵或故事板。

  2. 数据

    再次,取决于游戏类型。实时游戏需要快速访问,因此您希望将数据存储在本地数据库中并尽可能地缓存它。基于文件的本地数据库往往是自定义或现成的标准数据库,例如SQLLite。

  3. 发动机

    有大量的引擎用于3D,电路板等.Popcap使他们的C ++游戏引擎成为开源。其他包括Unity,Ogre3D ......

  4. J2ME

    我不会将此平台作为游戏目标。

  5. 对“Open 3D Web”了解不多,但听起来非常依赖于浏览器,因此浏览器的里程可能会有所不同。

  6. 您可以使用Google Sketchup和Caligari Truespace进行3D游戏。 Truespace被微软收购并免费使用。

  7. 再次,大量的引擎用于联网。示例:Microsoft的XNA框架具有一些您可以利用的网络位。

  8. 不确定你的意思。

  9. 我提到的一些游戏引擎内置了物理引擎,你可以使用外部引擎。

  10. 曾几何时,使用3D Studio Max或Maya预渲染实时保留。这些天游戏中的渲染通常足以用于过场动画:看看最新的Halo 3:ODST游戏。所有过场动画都使用游戏内引擎。

  11. <强>市场

    今年早些时候,我研究了游戏开发。休闲游戏对我来说就像一个增长的行业 - 高容量,相对较低的开发成本。 PC上的Big Fish Games就是一个很好的例子 - 他们发布了一些游戏并转售了大部分游戏。

    我认为手机游戏开发是一个巨大的潜在市场,但进入壁垒很高,因为它将是一个拥挤的空间。 iPhone游戏是800磅大猩猩,但Android正在上市。 PSP和其他人的受众人数有限,而且非常困难。

    我在研究中学到的最重要的事情是游戏开发是一种爱的劳动。这是一个巨大的多学科:你需要编程,艺术,概念,制作。它更像是制作电影而不是其他任何东西。由于所有这些开销,赚取利润也很粗糙。如果你想进入它,我建议加入游戏开发者学习业务。一旦您有了经验,您就可以将其推广到更大的出版商的大型演出。最终你可以开始攻读一个重要的AAA冠军,之后你就可以自己编写自己的门票了。

答案 1 :(得分:2)

我会坚持回答技术问题:

1 - UI通常是完全定制的,没有任何类似于标准的内容,就像HTML / CSS是Web开发标准一样。有些人使用基于Flash的ScaleForm,但这并不常见。

2 - 数据通常存储在平面文件中 - 很少是文本,更常见的是二进制文件。同样,这些几乎总是完全定制的格式。有时它们会聚合到使用zip格式或类似内容的存档文件中。有时,某些程序可能使用sqlite,而在线游戏通常使用SQL数据库。

3 - 使用了许多游戏引擎,尽管“常见”的定义含糊不清。有像Unreal或Source引擎这样的知名产品,包括Panda3D或Torque等鲜为人知的产品。其中一些主要集中在3D上,并将其余大部分功能留给其他软件包(或游戏开发者自己)。大多数都可以与脚本语言一起使用,或者带有一个内置语言。 (例如,UnrealScript)。

4 - J2ME - 不能说,这不是我工作的部门。

5 - 3D网络在准备就绪时会很有趣,但最先进的游戏目前需要数十亿字节的客户端数据。在浏览器中运行应用程序无法绕过该下载,因此这不是一个很大的好处。在相当长的一段时间内,它也不可能像专用的3D游戏渲染器一样高性能。因此,虽然它打开了许多门,但它并没有显着改变游戏的状态。

6 - 3D艺术资产通常使用3D Studio Max或Maya制作,但还有其他一些相关工具。

7 - MMORPG网络首先需要了解基本网络(即剥去所有HTTP漏洞并直接进入套接字级别)。从Beej开始,进行处理。从那里开始,您最好阅读会议上的讲座和阅读大型多人游戏开发书籍,将其与传统游戏网络上的任何内容相结合。 2个好的起点是Source Multiplayer Networking docs和Gaffer的Networking for Games Programmers。不要期望在您第一次阅读时理解所有内容。请记住,这是一个正在进行研究的领域,问题还远未解决。而且它也是一个“如果你不得不问,你还不能做到”的领域。强调尚未

8 - 我不知道你的游戏流程是什么意思 - 这不是我以前用过的术语。

9 - 有几个物理库可用,包括Havok,ODE,Bullet,PhysX,Box2D等。有些是免费的,有些则不是。你也可以为简单的游戏编写自己的物理,因为它并不是那么难,事实上这是每个人直到最近才做的事情。

10 - 实时过场动画通常要么像3D Studio Max那样预先制作动画,要么在游戏引擎中运行。

答案 2 :(得分:1)

这在很大程度上取决于您正在开发的平台。一些游戏引擎或平台已经内置了平台特定的创建UI系统的方法。一个例子是为360开发,其中有SDK工具提供的专有UI系统。

但是,像这样的系统将您绑定到特定平台,这可能是不可取的。

另一种替代方案是像Scaleform这样的跨平台库,它提供用于显示UI元素的游戏端库,以及跨不同平台编辑和创建UI系统的常用方法。

答案 3 :(得分:1)

电子游戏中UI的复杂程度差别很大。看看像Peggle这样的东西,比如Codemaster的Dirt或者EA的Dead Space。因此,每个系统的实现方式不同

有些人使用3D软件包和标准游戏引擎来动画和渲染用户界面。其他人实现Flash。其他人推出自己的定制解决方案没有简单的选择或像CSS这样的标准我害怕!

希望这有帮助,

- 汤姆

相关问题