serafim / opengl-demo
简单的 PHP 游戏演示(使用 OpenGL/DX/Vulkan 通过 SDL)
0.0.1
2022-08-27 15:26 UTC
Requires
- php-64bit: ^8.1
- ext-ffi: *
- bic-engine/audio: ^1.0
- bic-engine/dispatcher: ^1.0
- bic-engine/foundation: ^1.0
- bic-engine/front-controller: ^1.0
- bic-engine/lib-bass: ^1.0
- bic-engine/lib-sdl2: ^1.0
- bic-engine/ui: ^1.0
- bic-engine/ui-sdl2: ^1.0
- bic-engine/var-dumper: ^1.0
- monolog/monolog: ^3.1
- symfony/cache: ^5.4|^6.0
- symfony/process: ^5.4|^6.0
- vlucas/phpdotenv: ^5.4
Requires (Dev)
- cache/filesystem-adapter: ^1.2
- jetbrains/phpstorm-attributes: ^1.0
- nunomaduro/collision: ^6.0
- phpunit/phpunit: ^9.5
- symfony/var-dumper: ^5.4|^6.1
- vimeo/psalm: ^4.24
This package is auto-updated.
Last update: 2024-09-08 16:35:55 UTC
README
请注意,这只是一个演示,可能包含非最佳、疯狂且完全令人难以置信的编程技术(好吧,除了代码是由一个从未接触过游戏开发的 PHP 🐒 开发者编写的这一事实)。
如果你的心理受到了伤害,请咨询医生。
和平 <3
哦对了,根据我的信息,没有人曾经在 纯 PHP 中做过这样的事情。
演示操作:https://www.youtube.com/watch?v=vsBbJbhKeeU
要求
- PHP 8.1+
- ext-ffi
- Composer
- Windows, Linux 或 Unix(通过 X11 和 Wayland),MacOS
额外要求(仅限 MacOS 和 Linux)
- SDL 2.0+
- SDL Image 2.0+
- SDL TTF 2.0+
安装
Windows
composer install
php app.php
Linux
sudo apt install libsdl2-2.0-0 -y
sudo apt install libsdl2-image-2.0-0 -y
sudo apt install libsdl2-ttf-2.0-0 -y
composer install
php app.php
MacOS
brew install sdl2
brew install sdl2_image
brew install sdl2_ttf
composer install
php app.php
Docker
docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=$DISPLAY -e XAUTHORITY=$XAUTHORITY $(docker build -q .)
一般信息
- “./engine/” 目录包含即将删除的旧代码(目前对于演示的正常运行是必需的)。所有实际代码目前包含在 “./libs/” 目录中,并且一些旧代码已经用当前版本替换。
- 计划将放弃单独安装二进制文件(SDL、SDL Image 等)并与应用程序一起提供。负责安装的 “./libs/binaries-downloader” 包负责它们的安装。组件可在 "assets" 部分找到:[https://github.com/SerafimArts/opengl-demo/releases/tag/0.0.1](https://github.com/SerafimArts/opengl-demo/releases/tag/0.0.1)
- 计划将放弃对 SDL 的支持并切换到原生 OpenGL API(这也是 MacOS 可以从可用的操作系统列表中消失的原因之一),然后是 Vulkan API。
- 在重新编写图形管线后,计划添加声音/音频引擎(我不知道如何做到这一点)。