littlebot
Published on 2025-04-03 / 0 Visits
0

【源码】基于PythonC++的DoomTime项目

项目简介

本项目旨在借助蓝牙(BLE)技术,将DOOM、Strife、Heretic或Hexen等经典游戏从Linux系统流传输到PineTime智能手表上。项目结合了Python和C++技术,利用BlueZ蓝牙栈实现数据传输,同时运用图像处理技术使游戏画面适配PineTime的小屏幕。

项目的主要特性和功能

  • 跨平台通信:运用Python和C++实现Linux与PineTime之间的蓝牙通信。
  • 游戏流传输:支持将DOOM等经典游戏画面实时传输到PineTime智能手表。
  • 低延迟优化:通过BlueZ的定制补丁和PID控制器优化数据传输,保证低延迟和高帧率。
  • 图像处理:把游戏画面转换为适合PineTime显示的格式,并进行颜色深度优化。
  • 多游戏支持:支持多种经典游戏,可依据不同游戏调整帧率和数据传输策略。

安装使用步骤

复制项目

sh git submodule update --init

编译和安装BlueZ

安装依赖

sh sudo apt install build-essential automake libtool pkg-config libglib2.0-dev libell-dev libdbus-1-dev udev libudev-dev libical-dev libreadline-dev systemd

复制BlueZ源码并打补丁

sh git clone -b 5.55 --depth=1 https://git.kernel.org/pub/scm/bluetooth/bluez.git patch -d bluez -p1 < chocolate-doom/doomtime/patches/bluez.patch

编译BlueZ

sh cd bluez ./bootstrap ./configure --prefix=$PWD/_install --enable-external-ell make

编译Chocolate Doom和客户端应用

安装依赖

sh sudo apt install cmake libsdl2-dev libsdl2-mixer-dev libsdl2-net-dev libeigen3-dev libboost-dev libopencv-core-dev libopencv-dev libpython3-dev clang python3-dbus python3-numpy

配置并编译

sh cmake -S . -B _build -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ cmake --build _build

编译PineTime固件

安装依赖

sh apt install python3-numpy

下载并配置GNU Arm Embedded Toolchain,并将其路径添加到环境变量中

使用newt工具编译固件

sh newt build boot-pinetime newt build doomtime

运行项目

启动蓝牙守护进程

sh sudo systemctl stop bluetooth sudo bluez/src/bluetoothd

使用bluetoothctl连接PineTime设备

启动Chocolate Doom并等待客户端连接

sh cd chocolate-doom ._build/src/chocolate-doom

启动客户端应用

sh python ./_build/doomtime/host/client/client.py

完成上述步骤后,即可在PineTime智能手表上体验DOOM等经典游戏的实时流传输。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】