用于游戏开发的顶级 PYTHON 框架

news2024/11/18 11:24:34

一、说明

        我们试图用python开发游戏,一旦产生这个念头,就伴随这样一个问题:当今用于构建游戏的领先 Python 框架有哪些?python下,支持游戏开发平台有哪些优势?我们在这篇博文中告诉你。

二、高级游戏平台简介

用于构建游戏的主要 Python 框架有哪些?如果你对游戏开发感兴趣,这是你在某个时候必然会面临的问题。(您可能还想查看我们关于当今领先游戏开发引擎的博客:Top 10 Game Development Engines in 2023。Python 是世界上最流行的编码语言,它被当今各行各业使用,包括游戏构建。事实上,许多 Python 框架被用作游戏开发的关键工具。这些是软件框架,通过帮助自动执行游戏开发中通常执行的多项任务来支持游戏/游戏应用程序的创建。例如,《战地风云 2》是一款使用 Python 框架制作的流行游戏。

那么,今年哪些是用于游戏开发的领先 Python 框架呢?下面分享的是顶级名称:

2.1 pygame

        Pygame 是一个开源的 Python 库,可帮助用户使用 Python 编程创建功能丰富的游戏和多媒体应用程序。从本质上讲,它是一组专为编写视频游戏而设计的跨平台 Python 模块,包括旨在与 Python 编程语言一起使用的计算机图形和声音库。它具有高度的可移植性,可在所有平台和操作系统上运行,并使用优化的 C 语言和汇编代码来实现核心功能。

        Pygame使用简单DirectMedia Layer(SDL)库,从而促进了实时计算机游戏开发,而无需C编程语言及其衍生语言的低级机制。使用 Pygame 的应用程序可以在 Android 手机和平板电脑上运行,并使用适用于 Android 的 Pygame Subset。Pygame还得到了一个强大的社区的支持,该社区为那些想要使用它的人创建了许多教程。

2.2 Pyglet

        Pyglet 还用于多个操作系统上的 Python 游戏开发和其他视觉丰富的应用程序。这是一个功能强大的开源、跨平台窗口和多媒体库,可以支持用户界面事件处理、窗口和全屏操作、多个显示器、来自库 OpenGL 的图形、操纵杆、加载图像和视频以及音频播放。Pyglet 在 Python 3.5+ 下运行,没有外部依赖关系,也不需要安装。

        它运行在Microsoft Windows,Mac OS X和Linux上,并在BSD许可下发布,基本上提供了一个面向对象的应用程序编程接口,用于构建游戏和其他多媒体应用程序。

2.3 熊猫3D

        Panda3D 是一个免费使用的引擎,用于构建实时 3D 游戏、可视化、模拟和实验。它包括图形、音频、I/O、碰撞检测和其他在制作 3D 游戏时派上用场的功能。它是修订后的 BSD 许可证下的开源软件。

        它用 Python 和 C++ 编写,拥有前一种语言提供的优势,例如快速开发和高级内存管理,即使它包括用于处理和优化源代码的命令行工具。同样有帮助的是,Panda3D 支持几个流行的第三方库,例如 Bullet 物理引擎、OpenAL、Assimp 模型加载器和 FMOD 声音库。

        Panda3D 的用户通常是商业游戏、一些开源项目和几门利用 Panda3D 较短学习曲线的大学课程的开发者。社区可能很小,但非常活跃。

2.4 PyKyra 

        基于软件和文档本地化 (SDL) 和 Kyra 引擎,PyKyra 据说是最快的 Python 游戏开发框架之一。它不仅支持 Kyra 框架的标准功能,还支持 MPEG 视频、直接图像读取、MP3、Ogg Vorbis、Wav、多声道模块文件等声音。

        此外,它还支持侧面对称和自上而下的平移。在这里,用户可以将屏幕划分为子窗口视图,每个视图都有自己的对象转换。这也有助于 Kyra 引擎速度快,并配备了用于渲染更新的专用编码算法。

2.5 基维Kivy

        Kivy 是一个开源和跨平台的 Python 库,可在 Linux、Windows、OS X、Android、iOS 和 Raspberry Pi 上运行。它带有多点触控应用程序;事实上,它有 20 多个可以轻松扩展的小部件。此外,它可以原生使用大多数输入、协议和设备,包括 WM_Touch、WM_Pen、Mtdev、Linux 内核 HID、Mac OS X 触控板和魔术鼠标以及 TUIO。它用于应用程序和软件的快速开发,是一个稳定的框架,带有完整文档化的 API 和编程指南,以帮助用户很好地使用它。

2.6 PyOpenGL的

        PyOpenGL 是图形库 OpenGL 和相关应用程序编程接口 (API) 的跨平台 Python 绑定。该绑定是使用标准 ctypes 库构建的,并在极其自由的 BSD 风格的开源许可证下提供。它可以与许多用于 Python 的外部 GUI 库互操作,例如 PyGame、PyQt、Raw XLib 等。

2.7 Python Ogre/PyOgre

        Python-Ogre / PyOgre 是用于 Ogre 3D 渲染引擎的 C++ 库的 Python 绑定,它具有令人印象深刻的功能集,并已用于创建令人印象深刻的游戏。因此,从本质上讲,PyOgre 包含两个库:Ogre3d 和 CEGUi,一个嵌入式 GUI 系统。PyOgre 是一个跨平台库,可在 Windows 和 Linux 下运行,兼具速度和灵活性。

2.8 Cocos2d的

        Cocos2d 是一个用 Python、C++ 和 Objective C 编写的开源软件框架,用于构建游戏、应用程序和基于 GUI 的跨平台交互式程序。Cocos2d 系列由 Cocos2d-objc、Cocos2d-x、Cocos2d-html5 和 Cocos2d-XNA 组成。

        Cocos2d 社区有一些独立的编辑者,他们在 SpriteSheet 编辑、粒子编辑、字体编辑和 Tilemap 编辑等领域做出了贡献,还有包括 SpriteBuilder 和 CocoStudio 在内的世界编辑器。

2.9 Ren’Py

        Ren是一个用 Python 和 Cython 编写的开源和跨平台引擎(Cython 代码主要用 Python 编写,带有可选的附加 C 启发语法,旨在提供类似 C 的性能)。它建立在 Pygame 之上,是一个用于创建视觉小说的自由软件游戏引擎。借助该引擎,可以将文字、图像和声音结合起来制作视觉和生活模拟游戏。它还支持 Python 脚本语言,因此使开发人员能够处理复杂的游戏逻辑,并在几乎所有计算机系统上运行。

        使用 任 的开发人员可以创建分支故事、保存文件系统、回滚到故事中的先前点以及执行许多场景转换。该引擎还支持全屏电影和动画精灵的影片播放。

三、后记

        其实每种平台有多大人气尚不明确,值得欣赏的是pygame和openGL的组合模式相当不错,推荐原因有两个:1)openGL是英伟达绑定的产品,是十足的游戏产品;2)pygame不仅支持openGL窗口,还有用户交互,这为游戏可操纵性带来方便。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1479076.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu20.04 ssh终端登录后未自动执行.bashrc

sudo vim ~/.profile输入以下内容 if [ -n "$BASH_VERSION" ]; then if [ -f "$HOME/.bashrc" ]; then . "$HOME/.bashrc" fi fi 执行 source ~/.profile重新测试 其他答案 如果你的~/.bashrc文件在Ubuntu中没有自动生效,…

【Sora原理与技术实战】Task1 Sora技术原理解析

本笔记来源:开源组织Datawhale24年组队学习 笔记链接:https://datawhaler.feishu.cn/wiki/LxSCw0EyRidru1kFkttc1jNQnnh 直播回看:https://www.bilibili.com/video/BV1wm411f7gf/ For the learner for the dreamer Sora技术原理解析 Sora具体…

Codeforces Round 930 (Div. 2)

Codeforces Round 930 (Div. 2) Codeforces Round 930 (Div. 2) A. Shuffle Party 题意: 给出长度为n的整数数组a, a i a_i ai​ i,对于k>2的下标进行运算,设d为k除本身外最大的除数, 操作为交换( a k a_k ak​…

智慧城市:打造宜居环境,引领未来可持续发展

随着科技的不断进步与创新,我们的城市正步入一个崭新的时代——智慧城市。智慧城市是指运用信息技术和大数据等现代科技手段,对城市基础设施、公共服务和社会管理进行智能化改造,实现城市各领域的智能化、信息化和高效化。今天,就…

.net 日志

一、Log4net 1、log4net写入文本 1、nuget引入log4net、Microsoft.Extensions.Logging.Log4Net.AspNetCore这2个 2、引入配置文件,可以直接去官网(log4net官网配置文件)复制下来,放到项目目录下面,设置成始终复制,因为这个文件最终要到我们项目运行目录下面去 3、要在pr…

NLP(一)——概述

参考书: 《speech and language processing》《统计自然语言处理》 宗成庆 语言是思维的载体,自然语言处理相比其他信号较为特别 word2vec用到c语言 Question 预训练语言模型和其他模型的区别? 预训练模型是指在大规模数据上进行预训练的模型,通常…

redis的基本数据类型(一)

redis的基本数据类型 1、redis1.1、数据库分类1.2、NoSQL分类1.3、redis简介1.4、redis应用1.5、如何学习redis 2、redis的安装2.1、Windows安装2.2.1、客户端redis管理工具 2.2、Linux安装🔥2.2.1、redis核心文件2.2.2、启动方式2.2.3、redis桌面客户端1、redis命令…

transformer--编码器2(前馈全连接层、规范化层、子层链接结构、编码器层、编码器)

前馈全连接层 什么是前馈全连接层: 在Transformer中前馈全连接层就是具有两层线性层的全连接网络 前馈全连接层的作用: 考虑注意力机制可能对复杂过程的拟合程度不够,通过增加两层网络来增强模型的能力 code # 前馈全连接层 class PositionwiseFeedForward(nn.Module):de…

LNMP架构(搭建论坛+博客)

目录 一、LNMP架构概述 1、LNMP架构的概念 2、LNMP架构的优点 二、编译安装nginx软件 1、准备工作 1.1 关闭防火墙 1.2 安装依赖包 1.3 创建运行nginx用户 1.4 压缩包解压 2、编译与安装 3、添加nginx自启动文件 三、编译安装mysql软件 1、准备工作 1.1 安装mysq…

HTTPS的加密过程

文章目录 前言一、为什么需要加密?二、只用对称加密可以吗?三、只使用非对称加密四、双方都使用非对称加密五、使用非对称加密对称加密六、引入证书1.如何放防止数字证书被篡改?2.中间人有可能篡改该证书吗?3.中间人有可能掉包该证…

环境配置 |Jupyter lab/Jupyter Notebook 安装与设置

ipynb使用Jupyterlab/Jupyter Notebook 来编写Python程序时的文件,在使用时,可以现转换为标准的.py的python文件 1.Jupyter Lab 1.1.下载安装 环境:Linux pip install jupyterlab 1.2.使用 jupyter lab 点击后进入 1.3.jupyter lab更换内核 因为我的是在anac…

arm板运行程序时寻找动态库的路径设置

问题:error while loading shared libraries: libQt5Widgets.so.5: cannot open shared object file? 第一种方法---- 解决: ①复制需要用到的arm库到板子上。 ②pwd指令获取该库的绝对路径,把路径复制到/etc/ld.so.conf文件 ③输…

google最新大语言模型gemma本地化部署

Gemma是google推出的新一代大语言模型,构建目标是本地化、开源、高性能。 与同类大语言模型对比,它不仅对硬件的依赖更小,性能却更高。关键是完全开源,使得对模型在具有行业特性的场景中,有了高度定制的能力。 Gemma模…

网络传输基本流程(封装,解包)+图解(同层直接通信的证明),报头分离问题,协议定位问题,协议多路复用

目录 网络传输基本流程 引入 封装 过程梳理 图解 报文 解包 过程梳理 图解 -- 同层直接通信的证明 总结 解包时的报头分离问题 举例 -- 倒水 介绍 自底向上传输时的协议定位问题 介绍 解决方法 协议多路复用 介绍 优势 网络传输基本流程 引入 首先,我们明确…

Python学习 --- 面向对象

1.什么是对象 1.Python中创建类的关键字是 class 2.类的成员方法 1.函数是写在类外面的,方法则是写在类里面的 1.上面这一段代码中就展示了如何在方法中访问类的成员变量: self.成员变量名 3.魔术方法 魔术方法其实就是python中的类中的内置方法,下面这几个只是我们比较常…

02| JVM堆中垃圾回收的大致过程

如果一直在创建对象,堆中年轻代中Eden区会逐渐放满,如果Eden放满,会触发minor GC回收,创建对象的时GC Roots,如果存在于里面的对象,则被视为非垃圾对象,不会被此次gc回收,就会被移入…

深度神经网络联结主义的本质

一、介绍 在新兴的人工智能 (AI) 领域,深度神经网络 (DNN) 是一项里程碑式的成就,突破了机器学习、模式识别和认知模拟的界限。这一技术奇迹的核心是一个与认知科学本身一样古老的思想:联结主义。本文深入探讨了联结主义的基本原理&#xff0…

阿里云启动实例进入了急救模式解决办法

相关文档 问题描述 通过远程连接软件无法登录Linux实例,通过使用管理终端连接Linux实例远程连接时,发现系统进入到急救模式(emergency mode),且出现报错。 CentOS实例报如下错误。 systemctl default to try again…

小(2)型土石坝安全监测设施配置详解

小(2)型土石坝的安全监测是确保大坝稳定、安全运行的重要环节。为此,合理配置安全监测设施显得尤为重要。以下是对小(2)型土石坝安全监测设施配置的详细介绍。 一、渗流量监测 渗流量是反映大坝安全状况的关键指标之一。为准确监测渗流量,我们采用仪器量…

PackagingTool_x64_v2.0.1.0图片转档打包二进制文件合并字库生成图片软件介绍

继去年12月份发布的打包软件PackagingTool v1.4.0.2之后,今年再度投入精力,完善了软件功能,同时开发了几个更加实用的工具,可助力UI界面的设计开发。当前最新版本为PackagingTool_x64_v2.0.1.0,该版本主界面如下&#…