RenPy
Установка
Скачиваете архив https://www.renpy.org/latest.html формата tar.bz2
Распаковываете в любом месте
Запускаете через sh скрипт
Профит
Ну и кароч, вместо пакета я написал скрипт
#!/bin/bash
set -e
# Параметры
URL="https://github.com/renpy/renpy/releases/download/8.4.1.25072401/renpy-8.4.1-sdk.tar.bz2"
ARCHIVE_NAME="renpy-8.4.1-sdk.tar.bz2"
DEST_DIR="/opt"
DESKTOP_FILE="/usr/local/share/applications/renpy.desktop"
usage() {
echo "Использование: $0 [--remove]"
echo " Без параметров — устанавливает Ren'Py SDK."
echo " --remove — удаляет установленные файлы и пункт меню."
exit 1
}
remove() {
echo "Удаление Ren'Py..."
rm -rf "$DEST_DIR"
rm -f "$DESKTOP_FILE"
# Обновляем кэш приложений, если доступен
if command -v update-desktop-database &> /dev/null; then
update-desktop-database /usr/local/share/applications 2>/dev/null || true
fi
echo "Ren'Py успешно удалён."
exit 0
}
install() {
echo "Скачивание архива..."
cd /tmp
rm -f "$ARCHIVE_NAME"
if ! wget --show-progress "$URL" -O "/tmp/$ARCHIVE_NAME"; then
echo "Ошибка: не удалось скачать архив."
exit 1
fi
# Определяем имя папки внутри архива (берём первую запись верхнего уровня)
TOP_DIR=$(tar -tjf "$ARCHIVE_NAME" --exclude '*/*' | head -n1 | sed 's:/$::')
if [ -z "$TOP_DIR" ]; then
echo "Ошибка: не удалось определить корневую папку в архиве."
exit 1
fi
echo "Распаковка архива в /opt..."
tar -xjf "$ARCHIVE_NAME" -C /opt
# Удаляем старую /opt/renpy, если существует
if [ -e /opt/renpy ]; then
rm -rf /opt/renpy
fi
# Переименовываем распакованную папку в /opt/renpy
mv "/opt/$TOP_DIR" /opt/renpy
if [ "$EUID" -eq 0 ] && [ -n "$SUDO_USER" ]; then
TARGET_USER="$SUDO_USER"
TARGET_GROUP="$(id -gn "$SUDO_USER")"
else
TARGET_USER="$(whoami)"
TARGET_GROUP="$(id -gn)"
fi
chown -R "$TARGET_USER:$TARGET_GROUP" /opt/renpy
ICON_PATH="$DEST_DIR/renpy-8.4.1-sdk/doc/_static/navbar-logo.png"
echo "Создание пункта меню приложений..."
mkdir -p "$(dirname "$DESKTOP_FILE")"
cat <<EOF | tee "$DESKTOP_FILE" > /dev/null
[Desktop Entry]
Name=Ren'Py
Comment=Ren'Py Visual Novel Engine SDK
Exec=$DEST_DIR/renpy-8.4.1-sdk/renpy.sh
Icon=$ICON_PATH
Terminal=false
Type=Application
Categories=Development;Game;
StartupNotify=true
EOF
chmod +x "$DESKTOP_FILE"
if command -v update-desktop-database &> /dev/null; then
update-desktop-database /usr/local/share/applications 2>/dev/null || true
fi
rm -rf /tmp/renpy*
echo "Установка завершена. Ren'Py доступен в меню приложений."
}
# Основная логика
if [ "$(id -u)" -ne 0 ]; then
echo "Этот скрипт должен запускаться от имени root (или через sudo)."
exit 1
fi
case "${1:-}" in
--remove)
remove
;;
"")
install
;;
*)
echo "Неизвестный параметр: $1"
usage
;;
esacЗапускаем под рутом. Если запустиь его без параметров, он установит RenPy 8.4.1 (на 17.10.2025 это текущая стабильная версия), если же с параметром --remove, то скрипт удалит всё, что создал.
Как вскрыть игру, чтобы сделать руссификатор
(УСТАНОВКА этой софтины)
pip3 install unrpaРаспкаовка архива:
unrpa archive.rpa -p ./archive.pack --mkdirНе нужно для сборки игры
(УСТАНОВКА этой софтины)
wget https://github.com/shizmob/rpatool/blob/master/rpatool
sudo cp rpatool /usr/local/bin/
sudo chmod +x /usr/local/bin/rpatool
rpatool -c archive.rpa -d archive.packУпаковка архива:
rpatool -c archive.rpa -d archive.pack(УСТАНОВКА этой софтины)
pip3 install git+https://github.com/CensoredUsername/unrpyc.gitдекомпиляция одного файла
unrpyc.py s001.rpycдекомпиляция всех файлов в папке
for f in *.rpyc; do unrpyc.py -c "$f"; doneкомпиляция файлов происходит уже в RenPy SDK, для этого удаляем всё, кроме папки ./game/*, распаковываем всё, что можем (все файлы из архивов data.rpa, script.rpa, archive.rpa сбрасываем в ./game/), находим версию RenPy SDK равную версии, в которой собиралась игра, добавляем эту игру как проект, создаём перевод, после чего как обычно собираем игру
В качестве руссификатора нам достаточно отдавать эти архивы: data.rpa, script.rpa, archive.rpa
