Четверг, 24 Сентября 2026, 19:52

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
NoName Engine 2.5D
VuvkДата: Четверг, сегодня, 15:30 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Название: NoName Engine 2.5D (я просто не придумал название)
Жанровая направленность: Boomer Shooter
Язык программирования: Python + Cython
Платформа: Linux, Windows, вероятно MacOS, но не тестировал
Графический API: OpenGL
Зависимости: wxPython, pygame-ce, PyOpenGL
Лицензия: GNU GPL v3
Автор: Anton <Vuvk> Shcherbatykh

Паблик ВКонтакте
Зеркало паблика в Telegram

Исходный код:
Основной репозиторий на GitFlic
Зеркало на GitVerse

Сборки:
GitFlic
GitVerse

Всем привет! Я вдруг решил осветить своё текущее хобби и вести лог разработки дополнительно здесь. Надеюсь, не выгоните ))

NoName Engine 2.5D - это побочный продукт от желания разобраться как работает движок с портальным рендерингом от Кена Сильвермана Build (игры Duke Nukem 3D, Blood, ShadowWarior, Redneck Rampage и т.д.). В какой-то момент что-то стало получаться и я решил, что нужно делать инструментарий по работе с движком и тут понеслось...

Итак, это движок со встроенным редактором карт, выполненным в духе Build Engine: редактирование полигонов, стен, порталов и спрайтов в двумерном виде с мгновенным 3D-предпросмотром. Рендеринг построен на портальной отсечке невидимых полигонов и пакетном рендеринге на Legacy OpenGL (фиксированный конвейер + GLSL-шейдеры поверх). Критичные участки математики ускорены через
Cython, при этом движок полностью работоспособен и без ускорителей — используется чисто Python-запасной код.

═══════════════════════════════════════════════════════════════════════════════

ВОЗМОЖНОСТИ ДВИЖКА

• Портальная архитектура мира — полигоны, стены, перемычки (верхние и нижние части порталов), полы и потолки с независимым управлением высотами.
• Агрессивный куллинг видимых полигонов через 1D Z-буфер и обход соседей портала — рисуются только реально видимые поверхности.
• Пакетный рендеринг (BatchRenderer): один draw call на батч материала (glDrawArrays, клиентские вершинные массивы), запечённые нормали, порядок отрисовки и текстурные координаты.
• 3D-предпросмотр в стиле FPS со свободным обзором мышью.
• Шейдерный менеджер с кэшированием uniforms; шейдеры материалов: базовый (base) и «жидкость» (water) — для воды, лавы, слизи и т.п.
• Туман, освещение полигонов (яркость и цвет), отсечение задних граней, отключение текстур и wireframe-режим — всё переключается в предпросмотре.
• 3D-звук на основе pygame.mixer (пространственный аудио-менеджер) и 2D-звуки для событий игрока/меню и т.д.
• Спрайты с пивотами (bottom/center/top) и тремя режимами ориентации: биллборд (всегда лицом к камере), вращение вокруг оси, фиксированный поворот.
• Анимированные материалы и спрайты (кадры с префиксом «+»), анимация с настраиваемой частотой кадров.
• Цвет и яркость полигона накладываются на все спрайты внутри него.
• Эффекты полигонов: предустановленные (тряска, мерцание/пульсация освещения) и кастомные внешние скрипты на языке Python.
• Эффекты камеры: проседание при приземлении, тряска при сильном ударе, эффекты от подъёма на ступеньки.
• Физический движок: физические тела, столкновения с полигонами, гравитация, зашагивание на ступеньки до определённой высоты.
• Оружие в руках игрока: покачивание, наклоны, проседания, анимация, смена оружия с эффектом «выползания», стрельба через рейкастинг, кучность, количество пуль и дальность выстрела.
• Озвучка игрока: шаги, прыжки, приземления.
• BMP-шрифты, отображаемые прямо в OpenGL.

═══════════════════════════════════════════════════════════════════════════════

РЕДАКТОР КАРТ

• 2D-канва с сеткой, масштабированием и прокруткой (в том числе через Ctrl + колесо и Shift + колесо).
• Режимы: вершины (V), рисование сегментов (D), выделение сегментов (S), выделение полигонов (P), закраска материалом из предпросмотра (F), размещение спрайтов (X).
• Многоточечное выделение вершин (Ctrl + ЛКМ) и перенос с привязкой к сетке.
• Рисование сегментов с авторазбиением существующих сегментов в точке пересечения и корректным обновлением полигонов при разбиении.
• Удаление вершин, сегментов и полигонов; изменение высот пола/потолка как из редактора, так и прямо из окна предпросмотра (Home/End, PageUp/PageDown).
• Инструмент наложения любого материала на стены, порталы, полы и потолки одним кликом в предпросмотре.
• Размещение, перезапись и удаление спрайтов прямо с 2D-карты; приклеивание спрайта пивотом к полу, потолку или центру полигона.
• Выделение сегментов и полигонов в окне предпросмотра с подсветкой и синхронизацией
с редактором.
• Отображение положения камеры игрока на 2D-карте.
• Выбор материала, шейдера и настройка полигонов через поля ввода..

═══════════════════════════════════════════════════════════════════════════════

ГЕНЕРАТОРЫ МАТЕРИАЛОВ И СПРАЙТОВ

Отдельные инструмент автоматически создаёт из дерева текстур (png/jpg/bmp:

• Материалы (.mat) с шейдером, кадрами и анимацией. Имена с префиксом «+» группируются в анимированные материалы (кадры сортируются по числовому суффиксу). Имена, содержащие water/liquid/slime/sludge, получают шейдер «жидкость».
• Спрайты (.spr) с пивотом (bottom/center/top), режимом ориентации, осью и углом поворота. Пивот может переопределяться суффиксом в имени текстуры.

═══════════════════════════════════════════════════════════════════════════════

ПРОИЗВОДИТЕЛЬНОСТЬ И СБОРКА

• Горячая математика реализована дважды: в Cython (*.pyx) и в чистом Python (запасной код). При наличии собранных .pyd-модулей движок работает заметно быстрее.
• Сборка релизов через Nuitka: все программы (editor, runner) компилируются
в standalone-режиме под натив.

═══════════════════════════════════════════════════════════════════════════════

ПЛАНЫ В РАЗРАБОТКЕ

Взаимодействие физических тел между собой, HUD игрока, размещение сущностей
(включая игрока) и источников звука на карте, редактор материалов/спрайтов,
шейдер «металл», текстуры с прозрачностью и палитрой, отмена операций, вынос
параметров оружия в конфиги и многое другое.

Это всё ещё не готовый продукт, но уже можно скачать сборку и поиграться с редактором и средой запуска.

═══════════════════════════════════════════════════════════════════════════════

СКРИНЫ



═══════════════════════════════════════════════════════════════════════════════

ВИДЕО




Старое:






Сообщение отредактировал Vuvk - Четверг, 24 Сентября 2026, 17:03
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.info © 2008-2026