标签: panda3d

用于联网世界模拟/ AI沙箱的3D游戏引擎

5年多以前,我正在玩DirectSound和Direct3D,我发现它真的令人兴奋,尽管用C++花了很多时间才能获得一些好的结果.那时我还是一名大学生.现在我主要拥有C#和PHP的企业开发经验,而且我是为了生活而做的.我们国家的游戏开发真的没有机会赚钱.每天越来越多我发现我错过了什么.所以我决定每天花一个小时左右来编程以获得乐趣.

所以我的想法是建立一个世界模拟.我想从一些简单的东西开始 - 一些类似人类的生物 - 就像模拟人生3一样,但更简单,基本的需求,基本的动画,最小的图形资产 - 我想它不会是一个城市,而只是一个大房子开始.我们的想法是拥有某种服务器应用程序,它将世界数据存储在MySQL数据库中,以及一些客户端应用程序 - 无体AI机器人模拟运动以及与世界和彼此的一些交互.但没有3D它就不会有趣.所以也有3D客户端 - 我可以进入虚拟世界并看到AI机器人的生活.当机器人进入可见区域时,它变成了材料 - 加载网格和动画,所以我可以看到它.当我离开时,机器人再次失去了他们的3D网状物体,但他们的虚拟生命仍在继续.

随着时间的推移,我希望能够像一些可扩展的脚本沙箱一样来试验各种AI算法等等.但我并不打算创建一个成熟的MMORPG:D

我已经寻找了许多我需要的东西(免费和开源),现在我必须做出选择:

  • OGRE3D + enet(或RakNet).旧的好C++.但是它不会让我慢下来,以至于我不再玩得开心吗?

  • CrystalSpace.正式不是游戏引擎,但非常接近.再次使用C++.

  • MOgre(用于.NET的OGRE3D包装器)+ lidgren(已在某些游戏项目中使用的网络库).好 - 我喜欢C#,它适合快速编程,也可以用于编写脚本.

  • XNA似乎只是一个框架,而不是引擎,所以真的有疑虑,我应该看看XNA游戏工作室:(

  • Panda3D - 具有正反馈的完整游戏引擎.我真的很想将所有工具集放在一个软件包中,它作为一个初学者友好的引擎有很好的评论...如果你了解Python.在C++方面,Panda3D几乎不存在文档.我有使用Python的经验,但我听说它很容易学习.如果它会很有趣又充满挑战,那么我想我会从另一种编程语言的经验中受益.

你会建议哪一个,不是因为高级功能或良好的平台支持,而是为了有趣,简单的工作流程和可扩展性,因此我可以创建和集成我需要的所有组件 - 服务器与数据库,AI机器人和3D客户申请?

xna ogre3d game-engine panda3d

6
推荐指数
0
解决办法
1855
查看次数

如何在Panda3D中更改窗口大小?

一个Panda3D的程序具有一定的窗口大小打开.我在GraphicsWindow中找不到任何调用来设置或更改窗口大小.

如何更改窗口大小?

panda3d

5
推荐指数
1
解决办法
1172
查看次数

熊猫3d导入模块错误

我正在努力学习熊猫3D,但我收到了这个错误

importerror no module named direct.showbase.showbase
Run Code Online (Sandbox Code Playgroud)

我在windows xp上使用最新版本的panda 3d 1.7.2,python 2.7,如何修复错误?

python panda3d activepython python-2.7

4
推荐指数
1
解决办法
2966
查看次数

如何制作python ursina引擎的立方体纹理

我想知道如何在 Python Panda3D 包装器、ursina引擎库中制作简单的立方体纹理。这是我尝试过的代码。

from ursina import *

app = Ursina()
window.fps_counter.enabled = False


class Voxel(Button):
    def __init__(self, position=(0,0,0), texture='red.png'):
        super().__init__(
            parent = scene,
            position=position,
            model='cube',
            origin_y=0.5,
            texture=texture,
            color=color.color(0,0, random.uniform(0.9, 1.0)),
            scale = 1.0
        )


for x in range(3):
    for y in range(3):
        for z in range(3):
            voxel = Voxel(position=(x,y,z))
EditorCamera()
app.run()
Run Code Online (Sandbox Code Playgroud)
  1. 我想知道如何制作 uv 贴图(我制作的一张非常糟糕)。
  2. 我想知道将 uv 贴图转换为ursina引擎立方体纹理。

python 3d texture-mapping game-engine panda3d

4
推荐指数
1
解决办法
5279
查看次数

Panda3D中的模特/背景

当我在Panda3D中加载任何鸡蛋文件作为模型时,背景的颜色仍然是白色.即使使用灯光,纹理/背景的颜色也不会出现.为什么会这样?另外,从哪里可以找到用作Panda3D模型/演员的egg文件?我已经尝试将obj文件转换为egg文件并将3ds/max文件导出为obj.

panda3d

3
推荐指数
1
解决办法
879
查看次数

游戏 Ursina 的第三人称视角

我正在尝试与 ursina 制作一款角色扮演游戏。我想让摄像机始终跟随角色的背部。我尝试使用camera.look_at(player),但在旋转时无法让相机旋转到角色的背面。

app = Ursina()

class character(Entity):
    def __init__(self):
        super().__init__(
            model = load_model('cube'),
            color = color.red,
            position = (-0, -3, -8)
        )

player = character()

print(player.forward)

print(player.forward)
camera.look_at(player)
player.rotation_y =180
def update():
    if held_keys['a']:
        player.rotation_y -= 2
    if held_keys['d']:
        player.rotation_y += 2


app.run()```
Run Code Online (Sandbox Code Playgroud)

python panda3d

2
推荐指数
1
解决办法
3235
查看次数

Panda3d 模型旋转

我有一个基于教程编写的程序:

from direct.showbase.ShowBase import ShowBase

class MyApp(ShowBase):

    def __init__(self):
        ShowBase.__init__(self)

        # Load the environment model.
        self.environ = self.loader.loadModel("models/misc/rgbCube")
        # Reparent the model to render.
        self.environ.reparentTo(self.render)
        # Apply scale and position transforms on the model.
        self.environ.setScale(10, 10, 10)
        self.environ.setPos(-8, 42, 0)



app = MyApp()
app.run()
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西:

self.environ.rotate(旋转轴,旋转度数)

我在谷歌上进行了广泛的搜索,唯一看起来像它会起作用的是:http : //www.panda3d.org/manual/index.php/Position,_Rotation_and_Scale_Intervals 猜猜看!它没有。你能给我指一个深入解释 Hpr 的网站,或者只是在这里解释一下?谢谢。

python panda3d

1
推荐指数
1
解决办法
2955
查看次数