本文目录
一、python游戏引擎有哪些
在国内外,业界盛传有十大开源游戏引擎,分别是OGRE、Irrlicht、Panda3D、CrystalSpace、jME、BlenderGameEngine、RealityFactory、TheNebulaDevice2、RealmForge、OpenScene-Graph。我们对这十款开源游戏引擎深入进行分析。
(1)OGRE是面向对象图形渲染引擎(Object-OrientedGraphicsRenderingEngine)的缩写,采用C++开发,以MIT许可证发布,可以在Windows、Linux、Mac上运行。OGRE自己也说明本身不是游戏引擎。
其主要特征如下:
面向对象,插件扩展架构,具有文档支持。
支持脚本。可以通过脚本管理材质资产并进行多路渲染。
支持物理碰撞检测。
支持顶点灯光、像素灯光、灯光映射。
支持阴影映射、三维阴影。
支持多纹理、凹凸贴图、多重材质贴图、立体投影。
支持顶点、像素、高级着色。
支持场景管理,具有多种数据结构。
支持逆向运动动画、骨架动画、变形动画、混合动画及姿态动画。
支持网格加载、皮肤、渐进网格。
支持环境映射、镜头眩光、公告牌、粒子、运动模糊、天空、水、雾、丝带轨迹、透明对象。
支持XML文件转换。
引擎特性全面(),稳定性好(),支持全面(),不容易上手和使用()。
(2)Irrlicht采用C++开发,以zlib/libpng许可证发布,可以在Windows、Linux、Mac、Solaris、FreeBSD、Xbox上运行。Irrlicht自己也说明本身不是游戏引擎。
其主要特征如下:
面向对象,插件扩展架构,具有文档支持。
支持内建场景、灯光、GUI编辑器。
支持物理碰撞检测。
支持顶点灯光、像素灯光、灯光映射。
支持阴影映射、三维阴影、模板缓冲区阴影。
支持多纹理、凹凸贴图、多重材质贴图、立体投影。
支持顶点、像素、高级着色。
支持场景管理,具有多种数据结构,允许无缝集成室内及室外场景。
支持骨架动画、变形动画及混合动画。
支持网格加载。
支持环境映射、公告牌、粒子、天空、水、雾。
支持地形渲染。
引擎特性全面(),稳定性好(),支持全面(),容易上手和使用()。
(3)Panda3D采用C++和Python开发,以BSD许可证发布,可以在Windows、Linux、Mac、SunOS上使用。Panda3D是一个完整的游戏引擎。
其主要特征如下:
面向对象,脚本扩展架构,具有文档支持。
支持内建场景、粒子、关卡编辑器。
支持物理碰撞检测,可以用于运动物体。
支持顶点灯光、像素灯光、灯光映射。
支持阴影映射、三维阴影、模板缓冲区阴影。
支持多纹理、凹凸贴图、多重材质贴图、立体投影。
支持顶点、像素、高级着色。
支持场景管理,具有多种数据结构。
支持骨架动画。
支持网格加载及皮肤。
支持环境映射、公告牌、粒子、雾、火。
支持地形渲染。
支持“客户端/服务器”网络模式。
支持2D、3D和流音效。
支持有限状态机、人工智能。
引擎特性全面(),稳定性很好(),支持很全面(),很容易上手和使用()。
(4)CrystalSpace采用C++开发,以LGPL许可证发布,可以在Windows、Linux、Mac上使用。CrystalSpace是一个完整的游戏引擎。
其主要特征如下:
面向对象,组件扩展架构,具有文档支持。
支持内建场景、灯光、GUI编辑器。
支持物理碰撞检测,可以用于运动物体。
支持顶点灯光、灯光映射。
支持阴影映射、三维阴影。
支持多纹理、多重材质贴图。
支持顶点、像素着色。
支持场景管理,具有多种数据结构。
支持骨架动画、帧动画、变形动画。
支持网格加载、渐进网格。
支持环境映射、镜头眩光、公告牌、粒子、天空、镜像。
支持地形渲染。
支持2D、3D音效。
支持游戏世界管理。
通过有限状态机、行为树、神经网络、遗传算法支持人工智能。
引擎特性很全面(),稳定性好(),支持很全面(),不容易上手和使用()。
(5)jME是jMonkeyEngine的缩写,采用Java开发,以BSD许可证发布,可以在Windows、Linux、Mac上使用。JME的目标是提供一个Java语言3D游戏引擎,但业界目前也有人认为jME还不是一个游戏引擎。
其主要特征如下:
面向对象,插件扩展架构,具有文档支持。
支持内建游戏世界编辑器。
支持物理碰撞检测。
支持顶点灯光、灯光映射。
支持三维阴影。
支持多纹理、多重材质贴图。
支持顶点、像素、高级着色。
支持场景管理,具有多种数据结构。
支持骨架动画、帧动画。
支持网格加载及皮肤。
支持环境映射、镜头眩光、公告牌、粒子、天空、水、火、爆炸、雾。
支持地形渲染。
支持3D音效。
引擎特性全面(),稳定性好(),支持很全面(),容易上手和使用()。
(6)Blender游戏引擎是采用C++和Python开发,以GPL许可证发布,可以在Windows、Linux、Mac、Solaris、FreeBSD、Irix上使用。Blender是一个完整的游戏引擎。
其主要特征如下:
面向对象,插件及脚本扩展架构,具有文档支持。
支持内建工作流、GUI、数据库、角色等编辑器。
支持物理碰撞检测,可以用于运动物体。
支持顶点灯光、像素灯光。
支持阴影映射。
支持多纹理、凹凸贴图。
支持顶点、像素着色。
支持场景管理,具有多种数据结构。
支持逆向运动动画、帧动画。
支持网格加载及皮肤。
支持环境映射、粒子、天空、水、雾。
支持地形渲染。
支持“客户端/服务器”网络模式。
支持2D及3D音效。
通过脚本方式支持人工智能。
引擎特性基本全面(),稳定性基本不错(),支持全面(),不容易上手和使用()。
(7)RealityFactory是采用C++开发,以MIT许可证发布,可以在Windows上使用。RealityFactory自称游戏无需编程。
其主要特征如下:
面向对象,脚本扩展架构,具有文档支持。
支持内建几何形体编辑器。
支持物理碰撞检测。
支持顶点灯光、像素灯光、辐射灯光、三维灯光。
支持阴影映射。
支持多纹理、凹凸贴图、多重材质贴图、投影。
支持顶点、像素着色。
支持场景管理,具有多种数据结构。
支持骨架动画、帧动画及混合动画。
支持网格加载及皮肤。
支持环境映射、公告牌、粒子、天空、水、火、爆炸、雾、贴花、天气、镜像。
支持地形渲染。
支持“客户端/服务器”网络模式。
支持3D及流音效。
通过路径查找、决策及脚本方式支持人工智能。
引擎特性基本全面(),稳定性基本不错(),支持基本全面(),容易上手和使用()。
(8)TheNebulaDevice2是采用C++开发,以MIT许可证发布,可以在Windows、Linux上使用。NebulaDevice是一个完整的游戏引擎。
其主要特征如下:
面向对象,插件及脚本扩展架构,具有文档支持。
支持内建几何形体编辑器。
支持物理碰撞检测。
支持顶点灯光、像素灯光、灯光映射、光泽映射。
支持阴影映射。
支持多纹理、凹凸贴图、多重材质贴图、投影。
支持顶点、像素、高级着色。
支持场景管理,具有多种数据结构。
支持骨架动画、帧动画、变形动画及混合动画。
支持网格加载及皮肤。
支持环境映射、镜头眩光、公告牌、粒子、天空。
支持地形渲染。
支持“客户端/服务器”、P2P网络模式。
支持2D、3D及流音效。
通过脚本方式支持人工智能。
引擎特性全面(),稳定性好(),支持基本全面(),不容易上手和使用()。
(9)RealmForge是采用C#在OGRE上开发,以LGPL许可证发布,可以在Windows、Linux、Mac、Solaris、HP/UX、FreeBSD上使用。RealmForge是一个完整的游戏引擎,现在已经转入商业化运作。
其主要特征如下:
面向对象,插件及脚本扩展架构,具有文档支持。
支持内建游戏编辑器。
支持物理碰撞检测,可以用于运动物体。
支持顶点灯光、像素灯光、灯光映射。
支持阴影映射、投影面、立体投影。
支持多纹理、凹凸贴图、多重材质贴图、投影。
支持顶点、像素、高级着色。
支持场景管理,具有多种数据结构。
支持骨架动画、帧动画、面部动画及混合动画。
支持网格加载、皮肤及渐进网格。
支持环境映射、镜头眩光、公告牌、粒子、天空、水、火、爆炸、贴花、雾、天气、镜像。
支持地形渲染。
支持“客户端/服务器”、P2P网络、主控服务器模式。
支持3D及流音效。
通过路径查找、决策、优先状态机、脚本、神经网络等方式支持人工智能。
引擎特性全面(),稳定性基本不错(),支持基本全面(),不容易上手和使用()。
(10)OpenSceneGraph是采用C++开发,以LGPL许可证发布,可以在Windows、Linux、Mac、Solaris、SunOS、FreeBSD、Irix、Playstation上使用。OpenSceneGraph是一个完整的游戏引擎。
其主要特征如下:
面向对象,插件及脚本扩展架构,具有文档支持。
支持内建场景编辑器。
支持物理碰撞检测。
支持顶点灯光、各向异性灯光。
支持投影面、立体投影。
支持多纹理、多重材质贴图、投影。
支持顶点、像素、高级着色。
支持场景管理,具有多种数据结构。
支持骨架动画、帧动画及混合动画。
支持网格加载及皮肤。
支持环境映射、公告牌、粒子、镜像。
支持地形渲染。
支持“客户端/服务器”、P2P网络、主控服务器模式。
支持2D、3D及流音效。
引擎特性全面(),稳定性好(),支持还可以(),上手和使用比较难()。
一般说来,选择开源游戏引擎一定需要获取源码、好的文档及开放式支持。稳定性对于商业化运作是一个双刃剑,利于产品的开发运营,但需要有效引入新的游戏技术革新。引擎涵盖特性是一个积累过程,可以不断添加和改进。上手和使用性也反映了设计开发游戏引擎的团队的内在价值取向——以技术为主,还是以应用为主。
游戏开发商都希望研制、运营一个万众瞩目的游戏产品,但是,使用按照不同许可证发布的游戏引擎开发的游戏产品需要遵循相应的知识产权法规。因此,游戏引擎的软件许可证成为选择时的一个极其重要的考虑因素。
二、python能做什么游戏
Python是一门高级且有趣的编程语言,除了网络爬虫、人工智能、数据分析之外,Python还可以进行游戏开发,为大家介绍五个支持Python的2D、3D游戏开发库。
1、Cocos2d:是一系列开源软件框架,用于构建跨平台2D游戏和应用程序,由cocos2d-x、cocos2d-js、cocos2d-xna和cocos2d多种框架组成,像大鱼赌场、城堡冲突等小游戏,就是用此框架开发出来的。
2、Panda3D:是由迪士尼开发的3D游戏引擎,一个用于Python和C++程序的3D渲染和游戏开发框架,并由卡内基梅陇娱乐技术中心负责维护,使用C++编写的,针对Python进行了完全的封装。
3、Pygame:它是一组Python模块,用来编写游戏,可支持Python3.7,游戏例子有:纸牌游戏、超级马里奥、击球等多种游戏。
4、Pyogre:ogre 3D渲染引擎的Python绑定,可以用来开发游戏和仿真程序等任何3D应用,它的API更加稳定,也非常快速灵活。
5、RenPy:一个视觉小说引擎,被世界各地的成千万的创造者所使用,它可以帮助你使用文字、图像和声音来讲述电脑和移动设备上的故事。RenPy是开放源码的,可免费的商业用途,易于学习的脚本语言任何人都能有效地编写大型视觉小说,它的Python脚本足以用来模拟游戏。
三、python可以做游戏吗
是可以的。python可用来
Web开发
数据科学:包括机器学习、数据分析和数据可视化
脚本
你可以用PyGame来开发游戏,但这并不是最受欢迎的游戏引擎。你可以用它来开发业余爱好项目,但如果你对游戏开发很认真,建议不要选它。
我建议使用Unity的C#,这是最受欢迎的游戏引擎之一。它能让你为许多平台开发游戏,包括Mac、Windows、iOS和Android。
四、Python都编过什么游戏(大游戏)
没有什么大型游戏。由于效率和稳定性的原因,几乎没有桌面软件和游戏会使用Python开发。
真正的商业游戏开发,从来都只有两种选择,C++和C#。另外用JS系列(含Typescript、ActionScript),可以制作一些页游项目。除了以上三者之外,其他语言(包括Python)只适合写一些俄罗斯方块之类的小游戏。
扩展资料:
Python的设计目标之一是让代码具备高度的可阅读性。它设计时尽量使用其它语言经常使用的标点符号和英文单字,让代码看起来整洁美观。它不像其他的静态语言如C、Pascal那样需要重复书写声明语句,也不像它们的语法那样经常有特殊情况和意外。
Python开发者有意让违反了缩进规则的程序不能通过编译,以此来强制程序员养成良好的编程习惯。并且Python语言利用缩进表示语句块的开始和退出(Off-side规则),而非使用花括号或者某种关键字。
五、python能开发游戏吗
能,但不适合。
用锤子能造汽车吗?谁也没法说不能吧?历史上也确实曾经有些汽车,是用锤子造出来的。但一般来说,还是用工业机器人更合适对吗?
比较大型的,使用Python的游戏有两个,一个是《EVE》,还有一个是《文明》。但这仅仅是个例,没有广泛意义。
一般来说,用来做游戏的语言,有两种。一是C++。。一是C#。。
Python理论上,不仅不适合做游戏,而是只要大型的程序,都不适合。只适合写比较小型的东西,比如一个计算器,一个爬虫等。
主要有2个方面,一是速度慢,二是语法缺陷。
也许你一定觉得,Python的语法又干净,又优雅,怎么还有缺陷?但仔细想想,为什么别的语言没有这么干净?没有这么优雅?明明可以直接a=123干嘛非要写成 int a=123;呢?难道是其他语言的设计者,都有强迫症吗?道理很简单,有得必有失。
如果数据类型,只有字符串和数字,省略掉声明变量的过程,当然不是问题。但只要逻辑一复杂,情况就完全不同了。。。游戏中,你用C#或C++写起来,大概会是这样。
技能 a=xxxx;
武器 b=xxxx;
角色 c=xxxx;
药水 d=xxxx;
音乐 e=xxxx;
而Python呢?大概是这个样子
a=xxxx
b=xxxx
c=xxxx
d=xxxx
如果你的代码很少,显然是Python比较方便。但如果你创建几百个对象,代码超过1万行。。。写到几千行的时候,遇到一个叫x的对象,你还知道它到底是个啥吗?是一把武器?还是一瓶药水?还是一张图片?一段音频?一盏灯光?一座房子?
不要以为1万行代码很多。。。。1万行连个《斗地主》都写不完。。
用Python写大程序的感觉就是,当你第一天,只写了50行代码,创建了3个类,5个对象。你会觉得太爽了,这绝对是世界上最好的语言。。。第二天,你又创建了2个类,5个对象的时候,就觉得有点晕晕的了。第三天,又创建了2个类之后,你会发现自己必须非常仔细的看一遍注释,否则就不会写了。第四天,你一整天都在看注释。。。。
这就是动态语言的劣根性。一开始代码量少,看不出任何缺点,各种省事,各种爽。代码量越多,脑子越乱。一般500行以上,效率就会被JAVA,C#之类的语言反超。。1000行,就必须要各种加注释才能看懂了。。2000行,注释比代码还多了。。5000行,注释已经完全不管用了,自己根本看不懂自己的代码,需要准备弃坑了。