cthangover

Мод-ориентированная платформа для визуальных новелл с элементами RPG

О проекте

cthangover — это визуальная новелла с элементами RPG, построенная на уникальной мод-ориентированной архитектуре. Проект написан на Godot 4.6 (C# / .NET 8) и распространяется под лицензией MIT.

В Godot-проекте практически нет ресурсов. Лёгкое C#-ядро собирает готовую игру в рантайме из модов, расположенных в папке mods/. Моды содержат сцены, сценарии, ресурсы, а также C#-код в исходном виде — он компилируется «на лету» через Roslyn. Убирая или дополняя моды, можно удалять или добавлять сцены, механики и целые игровые подсистемы.

Это открывает дорогу в бесконечный моддинг и разработку собственных проектов на базе ядра. Для доработки модов не требуется даже наличие Godot или SDK — достаточно текстового редактора и базовых знаний JSON.

Ключевые возможности

Что уже работает в базовой поставке

Шейдерное время суток

Один задник — вместо сотен вариаций. Автоматический расчёт фаз дня и ночи прямо на GPU, без лишних ресурсов.

2D-освещение

Динамические источники света, карты глубины и перетаскиваемая лампа игрока оживляют каждую сцену.

DSL-сценарии

Собственный предметно-ориентированный язык для написания сценариев. Простой синтаксис, 26 команд, расширяется модами.

RPG-системы

Персонажи с 6 атрибутами, уровни, опыт, квесты, инвентарь, крафт, скиллы и коллекционные карты редкости.

Карточный бой

Пошаговая карточная битва с атакой, защитой, оглушением и статус-эффектами. Второй вариант — FF-стиль (в разработке).

Система модов

Игра собрана из прозрачных «кирпичиков». Каждый мод можно рассмотреть, вынуть и увидеть, как меняется игра.

Мод-ориентированная архитектура

Ядро (C#)

Лёгкое ядро без ресурсов. Загружает и активирует моды, компилирует C#-код (Roslyn), разрешает конфликты.

Моды (mods/)

Сцены, сценарии (.scenario), текстуры, звуки, шейдеры, JSON-данные, исходный C#-код. Всё, из чего состоит игра.

Игра

Собирается в рантайме из активных модов. Убрал мод карточного боя — пропала боевая система. Добавил мод с квестом — появился новый квест.

Скриншоты

Скриншот 1
Скриншот 2
Скриншот 3
Скриншот 4

Видео

Освещение и время суток

Сюжет

Cthangover (Cthulhu + Hangover) — это история о том, как великий Аль-Азиф, известный как «Книга Мертвых», встретил своего единственного и непобедимого врага — хронического алкоголика.

Главный герой, пропащий субъект из параллельной реальности, случайно прочёл пару строк на незнакомом языке, после чего небосвод пошёл трещинами, а в прогалы хлынули щупальца, когти и неописуемые формы из миров за гранью сна. Человечество погрузилось в хаос, но виновник апокалипсиса безучастно ковыряет в носу, принимая рёв космических ужасов за галлюцинации.

Смертоносное проклятие Некрономикона, ломающее психику сильнейших магов, разбивается о «непробиваемую» тупость и химическую зависимость пьяницы. Сама Книга, запертая в этой абсурдной связке, впервые в своём существовании оказывается в тупике: она бессмертна, но обречена делить вечность с существом, которому на неё плевать.

Чёрный юмор, грязные словечки, абсурдные ситуации и необычный сюжет.

Ключевые подсистемы

Каждая система — это набор C#-классов, Godot-сцен и JSON-данных, задокументированных и расширяемых через моды.

Присоединяйся

Проект с открытым исходным кодом под лицензией MIT.

Нужна конструктивная критика, свежий взгляд и обратная связь. Если тебе интересны визуальные новеллы, моддинг, Godot или просто необычная архитектура — загляни на GitHub.