serafim/opengl-demo

简单的 PHP 游戏演示(使用 OpenGL/DX/Vulkan 通过 SDL)

0.0.1 2022-08-27 15:26 UTC

This package is auto-updated.

Last update: 2024-09-08 16:35:55 UTC


README

PHP 8.1+ Latest Stable Version Latest Unstable Version License MIT

请注意,这只是一个演示,可能包含非最佳、疯狂且完全令人难以置信的编程技术(好吧,除了代码是由一个从未接触过游戏开发的 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。
  • 在重新编写图形管线后,计划添加声音/音频引擎(我不知道如何做到这一点)。