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客户申请?
一个Panda3D的程序具有一定的窗口大小打开.我在GraphicsWindow中找不到任何调用来设置或更改窗口大小.
如何更改窗口大小?
我正在努力学习熊猫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 包装器、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)
ursina
引擎立方体纹理。当我在Panda3D中加载任何鸡蛋文件作为模型时,背景的颜色仍然是白色.即使使用灯光,纹理/背景的颜色也不会出现.为什么会这样?另外,从哪里可以找到用作Panda3D模型/演员的egg文件?我已经尝试将obj文件转换为egg文件并将3ds/max文件导出为obj.
我正在尝试与 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) 我有一个基于教程编写的程序:
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 的网站,或者只是在这里解释一下?谢谢。