【问题标题】:What do I need to write a Physics Engine?我需要什么来编写物理引擎?
【发布时间】:2013-10-11 05:32:44
【问题描述】:

这是一个非常基本的问题。我想开始写一个物理引擎。我找到了一堆网站告诉我怎么做,但我还没有找到我需要的什么

我想知道的是我需要什么软件来编写物理引擎并查看它的工作原理(查看相互碰撞的形状)。我的电脑上有 Eclipse,可以用吗?

【问题讨论】:

  • 那么,您需要什么?除了物理学,就是这样。
  • 我很好奇我需要写它的软件。我找到了 sn-ps 的代码来帮助我入门,但是我需要什么才能查看我创建的物理形状并观看模拟?
  • 您熟悉哪些编程语言和工具?
  • 我最精通VB.net,但我也有一些Java和C++的经验
  • 我不了解 VB.net 中的图形,但假设您在二维中工作并使用 Java,那么 Java2D API 怎么样? docs.oracle.com/javase/tutorial/2d

标签: physics-engine


【解决方案1】:

顺便说一句,最好将其发布到https://gaming.stackexchange.com/

不过,顾名思义:

  1. 您需要了解物理学。您希望研究的深度取决于您,因为物理学是对自然世界的研究,因此它自动涵盖对非常大的事物(星系团、星系、星云等)到非常小的事物(原子、夸克)的研究, ETC。)。因此,物理学很快变得非常奇特(即你开始处理量子力学、弦论、相对论力学等)。但是,需要记住的是,游戏引擎中的大多数物理都使用 Newtonian Mechanics。所以,我的建议从这里开始。

  2. 接下来,您必须决定您的引擎将使用哪种语言。大多数人通常使用与编写游戏逻辑的语言相同的语言来设计引擎。但是,这不一定是正确的。主要是,除了引擎的速度、易用性、易于开发、可维护性等之外,您开发引擎所使用的语言将仅限于您希望引擎解决的问题。正如您所料,这通常意味着物理引擎的开发是一项雄心勃勃且耗时的工作,因为引擎的大部分方面都为游戏的设计方式设定了限制。

  3. 一旦你做出了所有这些选择,接下来你必须弄清楚你希望如何实现你的引擎(例如,使用过程与面向对象的方法相比)。但是,这又将限于您选择的语言。但是,应该注意的是,每种方法都有其优点和缺点。您必须根据您希望在游戏引擎中解决的问题来研究这些方法。示例:如果您的游戏所做的只是弹丸运动,那么创建一个游戏来实现方程来求解弹丸运动方程。

当然它比这更复杂,但它应该让你知道从哪里开始以及做什么。而且,应该注意的是,这要牢记标准的软件开发方法应始终得到解决:可维护性、单元测试、代码备份(通过存储库)等。

总结:

  • 您的引擎将受限于您开发它所使用的语言。
  • 您开发它所使用的语言将仅限于您希望通过引擎解决的问题。问题包括:速度、易于开发、准确性、可维护性等。
  • 大多数物理引擎都基于经典力学。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-10
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多