Ren'Py против Pixi’VN
Comparison between Ren'Py and Pixi’VN engines for visual novel development, covering language, UI, performance, and flexibility.
Сравнение Ren'Py и Pixi'VN необходимо, потому что Ren'Py на сегодняшний день является самым распространенным движком для создания визуальных новелл.
Templates
This comparison was made by the Pixi’VN team, aiming to be unbiased. If you disagree with this comparison or think other features should be compared, create a new discussion.
Что такое Ren'Py?
Ren'Py - это движок для создания визуальных новелл, которым пользуются тысячи авторов со всего мира. Он помогает использовать слова, изображения и звуки для создания интерактивных историй, которые работают на компьютерах и мобильных устройствах. Это могут быть как визуальные новеллы, так и симуляторы жизни.
- Programming language:
Ren'Py language, a programming language that allows you to develop visual novels quickly, even without much programming knowledge. Он основан на Python. - Библиотека холстов:
Pygame_sdl2- это переработка Pygame API с использованием SDL2 и связанных библиотек. While it was originally meant to support multiple applications, it is now mainly used as the technology underlying Ren'Py. - Как это работает: Ren'Py - это полноценный движок визуальных новелл/фреймворк, который берет на себя создание проекта, его реализацию, распространение и многое другое.
Язык программирования
Ren'Py uses its own language, Ren'Py language, which is a superset of Python. Вы можете использовать операторы Python в языке Ren'Py.
Pixi’VN uses JavaScript/TypeScript, which are powerful and popular languages. To write the narration, you can use JavaScript/TypeScript or choose one or more narrative languages from those available.
| Язык программирования | Ren'Py | Pixi’VN |
|---|---|---|
| Простота обучения | Intended for people who do not know how to program | You can get started quickly using a template, but as you progress and need to integrate new features, you will need to learn some basics of JavaScript/TypeScript, NodeJS, and npm |
| Является ли типизированным языком? | ❌ (В Python можно использовать типы, но в компиляторе Ren'Py нет проверки типов. Также, большая часть родного кода Ren'Py не использует типы.) | ✅ |
| Can you use the debugger? | ❌ | ✅ |
| Менеджер пакетов/библиотек | ❌ | npm |
| Язык повествования | Ren'Py language and Python statements | JavaScript/TypeScript and various narrative languages (including Ren'Py language) |
| Реализация мини-игр | Вы можете использовать Ren'Py Creator-Defined Displayables (CDD) | Вы можете использовать PixiJS или установить другие библиотеки |
| Реализация пользовательского интерфейса | Вы можете использовать экраны Ren'Py | You can use PixiJS, React, Vue, etc. |
| Компоненты UI | Components provided by Ren'Py, usually based on images | Depending on the UI framework, you can use any component library (e.g., Material-UI, Bootstrap, PixiJS UI, etc.) |
Написание повествования
With Ren'Py, to write the narrative, you use the Ren'Py language. This language is simple and easy to learn. It is based on Python, and you can use Python statements in Ren'Py language.
With Pixi’VN, you can use JavaScript/TypeScript to write the narration. You can also use various narrative languages (potentially you can integrate any narrative language using PixiVNJson).
Пример Ren'Py:
label start:
"Hello, world!"
"This is a Pixi’VN tutorial."
"I hope you enjoy it!"Пример Pixi’VN:
const startLabel = newLabel("start_label_id", [
() => narration.dialogue = "Hello, world!",
() => narration.dialogue = "This is a Pixi’VN tutorial.",
() => narration.dialogue = "I hope you enjoy it!"
])=== start
Hello, world!
This is a Pixi’VN tutorial.
I hope you enjoy it!
->DONEРеализация мини-игр
With Ren'Py, for creating minigames with complex mechanics/animations, you need to use Creator-Defined Displayables (CDD). This is necessary because otherwise you will have performance problems. С помощью CDD вы можете создавать/управлять одним или несколькими графическими элементами через цикл рендеринга.
CDD is not very intuitive and is complicated to use. Существует очень мало примеров и разработчиков, использующих CDD. In fact, most minigames do not have complex logic and animations.
С помощью Pixi’VN вы можете использовать PixiJS для создания мини-игр. PixiJS - это очень мощная библиотека, которая позволяет создавать сложные анимации и механики. The documentation and examples are detailed, and there are many developers using PixiJS.
You can try some Ren'Py and PixiJS minigames to understand the difference:
Реализация пользовательского интерфейса
With Ren'Py, to create the user interface, you use screens and styles. Рекомендуемая реализация - нарисовать серию изображений и добавить их на холст с помощью графических компонентов. The graphic components are limited and not very intuitive.
With Pixi’VN, in addition to using the components of PixiJS, you can also use systems such as React, Vue, etc., and install component libraries such as Material-UI, Bootstrap, etc. Это позволяет создавать гораздо более сложные экраны пользовательского интерфейса с отличной производительностью.
Производительность и размер проекта
Performance and project size are important factors to consider when choosing a framework.
Используемые библиотеки холста:
Pygame_sdl2: This canvas is underperforming. Вы можете проверить это, вставив в Ren'Py множество двигающейся графики.- PixiJS: It is based on modern systems and has great performance. Это можно проверить непосредственно на этом примере:
** Производительность UI:**
- Интерфейс Ren'Py основан на компонентах холста, которые используют изображения внутри проекта.
- В Pixi'VN вы можете использовать фреймворки HTML и/или фреймворки JavaScript, известные своей производительностью и удобством, или холст. Компоненты HTML/JavaScript не обязательно основаны на изображениях, что приводит к уменьшению размера проекта.
Размер проекта:
- The entire UI of Ren'Py is based on "physical images", making the project size very large.
- Since Pixi’VN is a library, it does not determine the project size, but if you use vite or other tools, the project size will be very light.
Распространение на нескольких устройствах
Ren'Py is directly responsible for distributing the game on various devices.
Pixi’VN does not handle distribution. You can use various frameworks (Tauri, Electron, Cordova, etc.) to distribute the project on multiple devices. Pixi'VN предоставляет шаблоны, которые уже содержат необходимые конфигурации для распространения.
| Распространение на нескольких устройствах | Ren'Py | Pixi’VN |
|---|---|---|
| Простота использования | Very simple. Вы можете использовать пользовательский интерфейс Ren'Py для создания пакета для распространения | For less experienced users, it can be difficult to set up the project for multiple devices. Использование шаблонов может упростить этот шаг. |
| Настройки пакета | Основные | Very complete (you can choose if the package should be installed or run without installation) |
| Deployment automations with GitHub Actions or GitLab Pipeline | ❌ | ✅ |
| Системное Уведомление | ❌ | ✅ |
| Use connected devices (Camera, Flashlight, etc.) | ❌ | ✅ |
| Масштабирование пользовательского интерфейса в зависимости от типа устройства | ✅ | ✅ |
| Масштабирование пользовательского интерфейса в соответствии с размером экрана | ❌ | ✅ |
| Windows/Linux/Mac OS | ✅ (используя Ren'Py) | ✅ (using Tauri, Electron, Cordova, etc.) |
| Android/iOS | ✅ (используя Ren'Py) | ✅ (используя Ionic или Cordova) |
| Web | ✅ (in beta) | ✅ (natively supported) |
| Xbox/PlayStation/Nintendo Switch | ✅ (используя Sen’Py) | Only Xbox with UWP |
Возможности разработки
Ren'Py is an engine designed only for creating visual novels. Добавление сложной функциональности с помощью Python, выходящей за рамки разработки обычной визуальной новеллы, очень сложно и не рекомендуется командой Ren'Py. It does not have a package/library manager.
Pixi'VN - это библиотека npm, которая позволяет создавать визуальные новеллы. You can also use this library in a project that is not natively a visual novel. npm - это менеджер пакетов для JavaScript и крупнейший в мире реестр программного обеспечения.
Долговечность и простота внутренней разработки
Ren'Py was born in 2004 and is still used today. Это очень стабильный и зрелый проект.
Ren'Py, in addition to including the development of its own library for visual novels, also includes the development of Ren'Py language and Pygame_sdl2. Поскольку Ren'Py также занимается распространением проекта на различных устройствах, необходимо поддерживать систему в актуальном состоянии, выпуская обновления для поддерживаемых операционных систем.
This means that keeping Ren'Py updated is a constant and very complex process that "touches" many types of programming (parsing, graphics, etc.).
Pixi’VN родился в 2024 году. Это очень молодой проект. Pixi'VN - это всего лишь библиотека, которая использует PixiJS для создания холста. As well as providing functionality for visual novels, it doesn't handle anything else.
This means that keeping Pixi’VN updated is a very simple process and, once it reaches a stable version, it will not need constant updates to be compatible with the latest devices.
Заключение
In conclusion, if you know object-oriented programming and want to create a visual novel with many features, minigames, a very complex UI, etc., you should use Pixi’VN. If you are not a programmer, want to create your visual novel quickly, and are willing to learn knowledge over time that you can reuse later, consider Pixi’VN. If you want a unified framework that takes care of everything without you having to decide which libraries to use, then Pixi’VN is not for you—Ren'Py is a valid option. If you want a no-code framework, currently, neither Ren'Py nor Pixi’VN are for you.