超过5年前我在玩DirectSound和Direct3D我找到它真的很令人兴奋尽管它花了太多的时间来获得一些好的结果用C++。我是个大学生。现在我有主要企业发展经验在C#PHP,我这样做为生活。真的没有机会赚钱,与严重的游戏发展在我们的国家。每天都有越来越多的我发现我错过的东西。所以我决定要花一个小时左右的每一天做的编程的乐趣。

所以我的想法是建立一个世界模拟。首先,我谨简单的东西-有些人喜欢的生物,自己的生活-像模拟3但更简单,只是满足基本需求,基本动画,最小的图形资产-我想它不会是一个城市,但只是一个大房子为一个开始。这个想法是有某种类型的服务器应用程序存的世界数据中的数据库,并且某些客户应用程序-身体-小艾机器人,模拟运动和一些相互作用,与世界和对方。但它不会是有趣的而不3D。所以还有3D客户-我可以进入虚拟世界和看到艾机器人的生活。当机器人进入可见的地区,它变材料装载网和动画,那么我可以看到它。当我离开时,机器人会失去他们的3d目的机构了,但它们的虚拟的生活仍在继续。

有时我希望使它像一些可膨胀的脚本化的沙盒试验各种AI算法等。但我不是旨在创建一个完全成熟的世界:D

我已经看许多可能的事情我会需要(自由和开放源),现在我必须做出选择:

  • OGRE3D+硅谷动力(或RakNet).老好C++。但不是我慢下来这么多,我就不会有乐趣吗?

  • CrystalSpace.正式而不是一个游戏的引擎,但非常接近。C++。

  • MOgre(OGRE3D包装。净额)+lidgren(联网图书馆,它已经用在一些游戏项目)。良好的-我喜欢,这是好的快速规划,也可以用于编写脚本。

  • 署似乎只是一个框架,而不是一个发动机,所以很有疑问,应当我甚至看署和游戏室:(

  • Panda3D-全部的游戏机带积极的反馈。我真的很喜欢想法有所有的工具集中在一个软件包,它具有良好的评论,作为一个初学者友好型的发动机...如果你知道蟒蛇。在C++侧,Panda3D几乎已不存在的文件。我0经验,蟒蛇,但是我听说过这容易学习。如果它将有趣和富有挑战性的然后我猜我会从中受益的经验,在一个更多编程语言。

哪些您会建议,不是因为先进的功能,或很好的平台支持,但主要是为了好玩,简单的工作流程和可扩展性,这样我就可以创建和集成所有的部件我需要的-服务器的数据库,大赦国际的机器人和3D客户应用程序?

有帮助吗?

解决方案

如果你喜欢蟒蛇,有绑定的食人魔。检查了 蟒蛇怪.我已经使用这一点并且它似乎足够稳定地使用。但是你将遇到的偶然的缺陷,因为用户的基础不大。

我有更多的经验与普通C++怪,这是我喜欢用很多。我不认为这会减慢你的速度,很多。它看起来象你的项目可能扩展到一个相当大的水平,并且你将需要大量的性能做到这一点。在这种情况下C++永远不会是一个糟糕的选择。

无论如何,一旦引擎完成的,这是几乎所有有关脚本。你可以做到的是,在一个高水平的语言,如果你想要的。

其他提示

我只用于部署,所以我真的不能给你一个很好的比较的其他人。我会说,虽然部署仅仅是一个框架, TorqueX3D 是一个引擎。你获得的TorqueX2D和3D引擎的二进制文件的时候你签署了开发署(100美元/年)。

我还没有工作的3D发动机,但我有用的2D引擎。我会说,该文件在API可以是一个有点稀少,但他们有一些很好的介绍教程,和一个相当有用的和积极的论坛的问题,没有回答的教程。

你的经验C#显然将会非常方便。你必须坚持Windows发展虽然因为你不会有权访问网络堆(或数据库)的Xbox360.

一旦我的工作通过教程,并得到了使用扭矩的风格,我发现这是很有趣的工作。这是非常容易添加物体/行为。声音支持已得到改善,并作出真正简单的一些部署框架的最新版本。它有一个很好的编辑2D,我认为3D编辑是体面的作为很好(有没有真的尝试过)帮助你开始创建的水平。我猜测它是缺乏在网络/数据库部门,虽然,你必须使用的标准。净的东西,或带来其他图书馆的工作。

我认为这将是值得你花时间来看看吧无论如何,它比其他人。我相信你可以下载的免费(30日)审判,即使没有签署署如果你想玩弄它。祝你好运!

Panda3D看起来要有保证,因为它具有一种方式来修改网在运行时(这种特征是缺乏的,车或者难以使用,在许多3D引擎)这将是你需要什么互动的客户的侧目记录的变化的公共服务器。在你的数据库是一定要包括一个时间戳上的修改,所以你可以运行适当的查询,以产生贴片,为客户得到更新网的信息,因为它改变。

使用少你可以做表的东西喜欢我的SQL可能是关闭,但这给这个想法:

create table `vertex` (
  `id` bigint(15) not null auto_increment,
  `when` timestamp default now() not null,
  `x` number not null,
  `y` number not null,
  `z` number not null,
  `cR` number default 0.0 not null,
  `cG` number default 0.0 not null,
  `cB` number default 0.0 not null,
  `cA` number default 1.0 not null,
  `u` number default 0.5 not null,
  `v` number default 0.5 not null
) primary key (id) ENGINE=InnoDB;

create table triangles (
  `p1` bigint(15) not null references (vertex.id) on delete restrict on update cascade,
  `p2` bigint(15) not null references (vertex.id) on delete restrict on update cascade,
  `p3` bigint(15) not null references (vertex.id) on delete restrict on update cascade,
  `when` timestamp default now() not null
) primary key (p1,p2,p3) ENGINE=InnoDB;

id顶点id当时间戳是让你做的更新补丁 x、y、z是3d的顶点点 cR,cG,cB,cA是RGBA顶点颜色 u,v为顶点的坐标 p1,p2,p3提到顶点在顶点表形成的三角形,指出这些外交关键的参考资料...少让我们防止未定义的顶点(即:一致性)的相关问题,因此可以使用它。如果这是可以接受删除所有的三角形与一个被删除的顶点在你的情况改变,限制'到'级'(限制使得错误删除一个顶点与三角形,使用这)

作为机器人网算法,基本上你是implemententing LOD剔除机器人不在图。许多引擎已经能为你做这个了。例如,所有机器人的剥/动画网可以由儿童的机器人的外目的在Panda3D和如果机器人的外目的是选出可见的范围后来没有的儿童被引用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top