用Python写的3D OpenGL游戏能好看又运行快吗?

2024-03-21

我计划使用 jMonkeyEngine 在 Java 中编写一个简单的 3D(等轴测视图)游戏 - 没什么好看的,我只是想学习一些有关 OpenGL 的知识并编写高效的算法(随机地图生成算法)。

当我计划要做什么时,我开始考虑是否要转向 Python。我知道 Python 的出现并不是为了成为编写 3D 游戏的工具,但是用这种语言可以编写好看的游戏吗?

我想要 3D 图形、漂亮的效果和空闲的 CPU 时间来为游戏引擎的其余部分供电?我见过好看的 Java 游戏 - 老实说,当我看到 Runescape HD 中实现的细节水平时,我感到相当震惊。

另一方面,pygame.org 只有 2D 游戏,还有一些起始的 3D 项目。 python 有没有高效的 3d 游戏引擎? pyopengl 是唯一的选择吗? python 里好看的游戏不流行或者不可能实现?

如果有任何信息/反馈,我将不胜感激。


如果您担心 3D 性能:大多数性能关键部分将由 OpenGL 处理(在 C 库中甚至在硬件中),因此您用来驱动它的语言应该不会太重要。

要真正找出性能是否是一个问题,您必须尝试一下。但原则上没有理由不能发挥作用。

无论如何,您仍然可以使用 Python 或直接使用 C 来优化关键部分。对于大多数性能不太关键的游戏引擎,您仍然可以从 Python 中受益。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用Python写的3D OpenGL游戏能好看又运行快吗? 的相关文章

  • Python Numpy Reshape错误[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我在尝试重塑 3D numpy 数组时遇到一个奇怪的错误 数组 x 的形状为 6 10 300 我想将其重塑为 6 3000 我正
  • Python设置1和True的解释

    在 IPython 3 交互式 shell 中 In 53 set2 1 2 True hello In 54 len set2 Out 54 3 In 55 set2 Out 55 hello True 2 是因为 1 和 True 得到
  • sy.sympify(str(表达式)) 不等于表达式

    据我了解 str将 SymPy 表达式转换为字符串并sympify将字符串转换为 SymPy 表达式 因此 我希望以下内容成立 对于合理的表达 gt gt gt sy sympify str expr expr True 我尝试过这个 确实
  • 检查子字符串是否在字符串列表中?

    我之前已经找到了这个问题的一些答案 但它们对于当前的Python版本来说似乎已经过时了 或者至少它们对我不起作用 我想检查字符串列表中是否包含子字符串 我只需要布尔结果 我找到了这个解决方案 word to check or wordlis
  • 从字典中绘制直方图

    我创建了一个dictionary计算 a 中出现的次数list每个键的内容 我现在想绘制其内容的直方图 这是我想要绘制的字典的内容 1 27 34 1 3 72 4 62 5 33 6 36 7 20 8 12 9 9 10 6 11 5
  • 为什么拥有单独的投影矩阵但结合模型和视图矩阵会有好处?

    当您学习 3D 编程时 您会被告知用 3 个变换矩阵来思考是最简单的 模型矩阵 该矩阵对于每个模型都是独立的 它根据需要旋转和缩放对象 最后将其移动到 3D 世界中的最终位置 模型矩阵将模型坐标转换为世界坐标 视图矩阵 对于大量对象 如果不
  • Python sys.modules 包含尚未导入的模块

    我试图了解加载的模块与导入的模块之间的区别 如果有的话 我正在使用 Python 2 7 3 并且只是从命令行运行 Python 如果我执行 import sys sys modules 我得到一个列表 其中包括os 例如 文档说sys m
  • 如何将 Pyspark Dataframe 标题设置到另一行?

    我有一个如下所示的数据框 col1 col2 col3 id name val 1 a01 X 2 a02 Y 我需要从中创建一个新的数据框 使用 row 1 作为新的列标题并忽略或删除 col1 col2 等行 新表应如下所示 id na
  • Django 1.7 应用程序配置导入错误:没有名为 appname.apps 的模块

    我正在尝试按照以下文档为我的一个名为 文章 的 Django 应用程序设置自定义应用程序配置https docs djangoproject com en dev ref applications https docs djangoproj
  • 预测测试图像时出现错误 - 无法重塑大小数组

    我正在尝试使用 TensorFlow 和 Keras 在 Python 中进行图像识别 并且我已经关注了下面的博客 https stackabuse com image recognition in python with tensorfl
  • 我可以在 if 语句中使用“as”机制吗

    是否可以使用as in if类似的声明with我们使用的 例如 with open tmp foo r as ofile do something with ofile 这是我的代码 def my list rtrn lst True if
  • 更新 matplotlib 中颜色条的范围

    我想更新一个contourf在函数内绘制 效果很好 然而 数据的范围发生了变化 因此我还必须更新颜色条 这就是我未能做到的地方 请参阅以下最小工作示例 import matplotlib pyplot as plt import numpy
  • 操作错误:尝试在 ubuntu 服务器中写入只读数据库

    我正在使用 FlaskApp 运行mod wsgi and apache2在 Ubuntu 服务器上 我尝试运行烧瓶应用程序localhost成功 然后部署到ubuntu服务器上 但是当我尝试更新数据库时 出现错误 Failed to up
  • Python 或 C 语言中的 Matlab / Octave bwdist()

    有谁知道 Matlab Octave bwdist 函数的 Python 替代品 此函数返回给定矩阵的每个单元格到最近的非零单元格的欧几里得距离 我看到了一个 Octave C 实现 一个纯 Matlab 实现 我想知道是否有人必须用 AN
  • 异步异常处理程序:在事件循环线程停止之前不会被调用

    我正在我的异步事件循环上设置异常处理程序 但是 在事件循环线程停止之前 它似乎不会被调用 例如 考虑以下代码 def exception handler loop context print Exception handler called
  • Python matplotlib:将轴标签/图例从粗体更改为常规粗细

    我正在尝试制作一些出版质量的图 但遇到了一个小问题 默认情况下 matplotlib 轴标签和图例条目的权重似乎比轴刻度线重 是否有办法强制轴标签 图例条目与刻度线的重量相同 import matplotlib pyplot as plt
  • Python RE(总之检查第一个字母是否区分大小写,其余部分不区分大小写)

    在下面的情况下 我想匹配字符串 Singapore 其中 S 应始终为大写 其余单词可能为小写或大写 但在下面的字符串 s 是小写的 它在搜索条件中匹配 任何人都可以让我知道如何实施吗 import re st Information in
  • 在 anaconda 环境下运行 qsub

    我有一个程序 通常在 Linux 的 conda 环境中运行 因为我用它来管理我的库 指令如下 source activate my environment python hello world py 我怎样才能跑你好世界 py在与 PBS
  • 如何在supervisord中设置组?

    因此 我正在设置 Supervisord 并尝试控制多个进程 并且一切正常 现在我想设置一个组 以便我可以启动 停止不同的进程集 而不是全部或全无 这是我的配置文件的片段 group tapjoy programs tapjoy game1
  • python 日志记录替代方案 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 蟒蛇记录模块 http docs python org library logging html使用起来

随机推荐

  • okhttp 应用级 OkHttpClient 实例

    我想知道如果我创建一个 OkHttpClient 实例来为我的 整个 Android 应用程序 提供服务 是否会出现任何性能瓶颈或问题 即在我的 Application 类中 我创建一个静态公共变量 它将包含 OkHttpClient 的实
  • 如何检查 List 元素是否包含具有特定属性值的项目

    public class PricePublicModel public PricePublicModel public int PriceGroupID get set public double Size get set public
  • 如何解决垂直 RecyclerView 内水平 ViewPager2 和 RecyclerView 的滚动问题?

    我有一个 RecyclerView 比如说 rootRecyclerView 根据某些 API 响应 可以有不同类型的行 我实现了其中一个是水平的ViewPager2另一种是水平实现的RecyclerView say childRecycl
  • PHP 5 - 跨包含文件的变量范围没有类或函数

    我已经阅读了很多很多关于此的主题 但仍然无法理解它 这是我的基本问题 header php包括一个名为navigation php 之内navigation php previous and next被定义 使用 echo 语句我已经验证它
  • 将长元组拆分为较小的元组

    我有一个长元组像 2 2 10 10 344 344 45 43 2 2 10 10 12 8 2 10 我试图将它分成元组的元组 例如 2 2 10 10 344 344 45 43 2 2 10 10 12 8 2 10 我是 pyth
  • Angular 4 - 如何为 ngFor 循环内的标签拥有唯一的 id 值?

    我遇到了一个问题 我需要为我的数据行中的每个数据行提供一个唯一的 id 值 ngFor角度 4 中的循环 我的代码是这样的 div div row myValue div div 假设你的对象中有一个唯一的 id 值 那么你可以这样做 di
  • R data.table 是否记录为通过引用作为参数传递?

    检查这个玩具代码 gt x lt data table a 1 2 gt foo lt function z z b 3 4 gt y lt foo x gt x a b 1 1 3 2 2 4 看来 data table 是通过引用传递的
  • 如何抑制 webdriver-manager 日志

    我正在使用 webdrivermanager 来管理项目中的驱动程序 但在更新到最新版本 2 2 1 后 我的项目中充满了 webdrivermanger 日志 这些日志在日志中搜索我自己的内容时造成了麻烦 我怎样才能停止 抑制这些日志 通
  • 钻石问题真的能解决吗?

    面向对象编程中的一个典型问题是菱形问题 我有父类 A 和两个子类 B 和 C A 有一个抽象方法 B 和 C 实现它 现在我有一个子类D 它继承了BandC 现在的钻石问题是 D应该使用什么实现 B的实现还是C的实现 人们声称 Java 不
  • AJAX post JSON 数据到达为空

    这是我的 AJAX 请求 data JSON stringify data url base url index php home make order alert url var request ajax url url type POS
  • 如何将 python 添加到 Windows 中的 cmd [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我安装了 python 3 1 并且也将其添加到系统路径中 现在我可以打开 cmd 并输入 python 来启动 python 但是每当我
  • 像树一样渲染嵌套列表

    我如何使垂直边框停在最后一个元素处 它只能与 CSS3 现代浏览器兼容 但需要在各种背景下工作 即透明 http jsfiddle net ShgD6 http jsfiddle net ShgD6 由此 To this 我通过修改这个小提
  • 如何在猫头鹰旋转木马的角度中制定指令?

    你能告诉我如何在 Angular js 中制作指令吗 我需要在 js 中使用 owl carousel 插件 就像我在 jqm fiddle 中所做的那样http jsfiddle net ezanker o9foej5L 1 http j
  • Vuetify 离线文档

    我已经开始使用 Vuetify 添加 ui 组件并使用预定义的布局 问题是我必须时不时地查看在线文档 并且要求我永远连接到互联网 有没有办法获取 Vuetify 的离线文档 就像使用 doxygen javadocs 构建的 html 或
  • 如何使用 Scala 的 DataFrame 比较表中的每一列

    有两张桌子 一张是ID表1 一张是属性表2 Table 1 Table 2 如果表1中同一行的ID具有相同的属性 则得到数字1 否则得到0 最终得到结果表3 Table 3 例如 id1和id2具有不同的颜色和大小 因此id1和id2行 表
  • 如何在jQuery中选择所有本地链接

    我需要选择所有本地链接 无论是否以 path to page http mydomain com path to page https mydomain com path to page 并将它们替换为 path to page 感谢您的帮
  • 在仅附加表中设置版本列

    我们有一个表来存储记录的版本 这些列是 Id Guid VersionNumber int Title nvarchar Description nvarchar etc 保存项目将在表中插入具有相同 ID 和增量版本号的新行 我不确定如何
  • 如何使用attachEvent引用调用者对象(“t​​his”)

    使用方法 attachEvent 在 IE 中 如何引用调用者对象 触发事件的元素 this In normal浏览器 使用 addEventListener 变量this指向元素 而在 IE 中它指向window object 我需要它与
  • Visual Studio 2013 Update 2 无法打开 cshtml

    我安装了新的 VS2013 Update 2 只要我打开 cshtml 文件 VS 就会崩溃 I tried 修复VS 停用所有扩展 devenv exe ResetSkipPkgs 重置所有设置 没有成功 安装 Xamarin 后我遇到了
  • 用Python写的3D OpenGL游戏能好看又运行快吗?

    我计划使用 jMonkeyEngine 在 Java 中编写一个简单的 3D 等轴测视图 游戏 没什么好看的 我只是想学习一些有关 OpenGL 的知识并编写高效的算法 随机地图生成算法 当我计划要做什么时 我开始考虑是否要转向 Pytho