Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр «Рыбный дождь 2» — это игра-симулятор рыбалки, где вы почувствуете себя настоящим рыбаком на берегу реки, озера или морского побережья.

Рыбный дождь 2

Симуляторы, Спорт, Ролевые

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
9
TehnoMagEG
TehnoMagEG
Лига Разработчиков Видеоигр
Серия Relict Engine

RelictEngine: DevLog 20250402⁠⁠

8 месяцев назад

и опять коротким ченджлогом ( потерпите, пожалуйста, еще немного - чуть-чуть осталось xD)

Короткий список изменений:

  • Добавлена возможность запустить движок без запуска основного цикла

  • Добавлен макрос IMPLEMENT_CONSOLE_APP для создания консольного приложения (утилиты)

    Этот макрос разворачивает функцию main с необходимым кодом.

  • Изменена процедура регистрации C++ класса в стеке Lua

    Теперь заместо таблицы класса, в глобальной таблице находится объект userdata, по которому Виртуальная машина Lua уже находит нужные метатаблицы и создает непосредственно объект (еще бы саму таблицу из __metatable запрятать подальше, чтобы не было возможности получить доступ к таблице методов без объекта, и будет совсем хорошо. Сейчас ее можно получить по строковому имени класса).

  • Упрощена функция NewObject со стороны Lua

    Благодаря изменению выше удалось сократить издержки на поиск нужно класса.

UPD:

Все еще не придумал, что делать с наследованием классов со стороны C++. Нужно пересмотреть структуру ScriptClass таким образом, чтобы он мог понимать, что у переданного ему класса есть родители - и проходится по ним, в случае, если для них существует собственный ScriptClass

Показать полностью
[моё] Разработка Gamedev Инди Игровой движок Текст
0
4
TehnoMagEG
TehnoMagEG
Лига Разработчиков Видеоигр
Серия Relict Engine

RelictEngine: DevLog 20250330⁠⁠

8 месяцев назад

И вновь коротеньким ченджлогом

Короткий список изменений:

  • Добавлена возможность передавать объект, связанный с объектом C++ из Lua в основную программу.

    Теперь возможно без всяких дополнительных кастов получить аргумент функции в нужном нам типе

  • Добавлена возможность передавать объекты из C++ в Lua в качестве возвращаемого значения вызванной функции.

    Возвращаемый объект успешно регистрируется в Lua как экземпляр ранее зарегистрированного класса со всеми заранее определенными полями.

  • Исправлено формирование названия метатаблиц Lua для регистрируемых классов.

    Теперь, для формирования имени используется полное квалифицированное имя, чтобы Lua могла различить одинаковые классы в разных неймспейсах. Например Game::test::Class и Game::test2::Class зато вылезла снова проблема с уникальными названиями объектов (типа GtClass). Буду думать.

  • Исправлена теоретически возможная ошибка доступа по нулевому указателю в стеке Lua

UPD:

  • Добавлен функционал поиска созданного объекта по имени

  • Добавлена глобальная функция Lua FindObject для поиска экземпляра объектов.

    Работает только с "заскриптованными" объектами, без флага NoInstantiate. Вернет либо экземпляр объекта, либо nil

UPD2:

  • Добавлена глобальная функция Lua NewObject для создания экземпляров зарегистрированных объектов

    Работает только с "заскриптованными" классами. Классы, созданные прямо в скрипте не понимает (пока что)

Показать полностью
[моё] Разработка Gamedev Инди Игровой движок Текст
4
5
TehnoMagEG
TehnoMagEG
Лига Разработчиков Видеоигр
Серия Relict Engine

RelictEngine: DevLog 20250324⁠⁠

8 месяцев назад

пост все еще короткими логами (но уже скоро)

Короткий список изменений:

  • Исправлено формирование ObjectName в случае, если Класс находится в Namespace.

    В этом случае у Объекта появляется префикс из первых букв всех неймспейсов в которые он входит. Наример: Если мы создали класс Game::Characters::Humanoid, то имена экземпляров этого класса будет выглядеть как GCHumanod_#, где # порядковый номер объекта (или S, в случае, если класс имеет флаг NoInstantiate, или D для DefaultClassObject). Имя класса ClassName сохранит полное квалифицированное имя, т.е. Game::Characters::Humanoid

  • Добавлены Namespace в Lua

    Lua теперь формирует свою связанную с классом таблицу с оглядкой на C++ namespace этого класса. Все namespace формируются таблицами (в прочим как и почти все в Lua). Например, если мы регистрируем класс Game::Characters::Humanoid, то в Lua он создаcт таблицы Game, Game.Characters и Game.Characters.Humanoid, где последняя и будет нашим классом.

  • Устранены утечки памяти стека Lua

    Пока делал namespace обнаружил, что не все поля удаляются из стека после их использования. исправил.

По сути осталось сделать только создание объекта из Lua, их удаление, и поиск по созданным объектам в C++ (не думаю, что стоит морочится и сразу прокидывать их в скрипт при создании на стороне C++). И на этом основная работа в общем-то закончена. Конечно, нужно будет еще посмотреть, что из luaL библиотек выбросить (скорее всего все). Потихоничку делать Lua обертку для glm математики, ну и прочее (тики, евенты, итд). Но это уже можно будет все сделать по ходу дела по необходимости. Отдельно еще стоит задача реализации Lua RAT ассетов, но это будет сильно позже, когда RAT формат в принципе будет введен в движок.

Показать полностью
[моё] Разработка Gamedev Инди Игровой движок Текст
0
5
TehnoMagEG
TehnoMagEG
Лига Разработчиков Видеоигр
Серия Relict Engine

RelictEngine: DevLog 20250323⁠⁠

8 месяцев назад

Посты пока все-еще короткими логами

Важное: Отпуск закончился, теперь времени будет меньше. Думаю вернусь к графику один пост в неделю/две

Короткий список изменений:

  • Окончательно приведен в порядок метод Demangle для формирования имен классов с учетом кроссплатформенности

    Вернулся в итоге к вызовам abi::__cxa_demangle в linux, который, увы, невозможно использовать на этапе компиляции, но с другой стороны он нам там теперь особо и не нужен. Для windows (msvc) проблем изначально не было, т.к. typeid возвращает сразу нормальное название (нужно лишь отбросить первые 6 символов)

  • Частично добавлена возможность передавать объект, связанный с объектом C++ из Lua в основную программу

    Пока что на вход можно подать только указатель на базовый Object (т.е. надо использовать dynamic_cast/reinterpret_cast в теле C++ функции, чтобы получить нужный нам объект). Думаю, как реализовать нормальное приведение к нужному типу.

  • Частично добавлена возможность передавать объекты из C++ в Lua в качестве возвращаемого значения вызванной функции

    Объект передается (вылетает по assert, если класс возвращаемого объекта не был зарегистрирован), но нужно придумать, как проверить, есть ли экземпляр этого объекта уже в стеке Lua, чтобы не плодить сущности.

  • Исправлен недочет имплементации ScriptClass<ObjectBasedClass>, при которой класс объекта не регистрировался в Lua, в случае, если у него нет ни одного функционального поля

Показать полностью
[моё] Разработка Gamedev Инди Игровой движок Текст
0
6
TehnoMagEG
TehnoMagEG
Лига Разработчиков Видеоигр
Серия Relict Engine

Relict Engine: DevLog 20250319⁠⁠

8 месяцев назад

Посты пока все-еще короткими логами

Короткий список изменений:

  • Обнаружена и исправлена ошибка повторного создания DefaultClassObject

    Из-за несвоевременного вызова Demangle для очистки имен классов от мусора, проверка на то, существует ли DefaultClassObject или нет проходило с некорректным "искалеченным" названием класса, что приводило к повторным созданиям DO.

  • Исправлена ошибка контекста создания Подсистем

    Из-за использования шаблона с singleton методом создание объекта подсистемы происходило в том контексте, где было обращение к ней, что приводило к множественным созданиям объекта. Так-же связано с исправленной ошибкой выше.

  • Добавлена новая сущность SubsystemManager

    Для удобного хранения сущностей Подсистем и централизированного управления ими.

  • Добавлена возможность определить стадию запуска подсистемы

    Теперь, на выбор есть несколько точек входа в подсистему (автоматического вызова Startup)
    - Early - подсистема запускается сразу при запуске приложения (до main функции). Подсистема Script - является Early подсистемой.

    - BeforeConfig - после того как движок был запущен, но еще не инициализирована конфигурация (после стадии PreInit Приложения).
    - AfterConfig - после стадии Init Приложения.
    - Manual - запуск подсистемы осуществляется в ручную.

Показать полностью
[моё] Разработка Gamedev Инди Игровой движок Текст
0
5
TehnoMagEG
TehnoMagEG
Лига Разработчиков Видеоигр
Серия Relict Engine

Relict Engine: DevLog 20250317⁠⁠

8 месяцев назад

На достаточно длительное время отваливался от проекта, поэтому снова коротенький ченджлог, более подробнее будет позже, после окончания основного массива работ над lua

Короткий список изменений:

  • Адресована ошибка контекста создания подсистемы Script

    Проблема связана с использованием шаблона для создания объекта подсистемы. Будет исправлено чуть позднее.

  • Заменен Атом Scriptable на связку классов ScriptClass и ScriptField

    Это необходимо для того, чтобы структура классов регистрировалось сразу при запуске движка. В противном случае шаблон класса объекта не успевает полностью раскрыться, что приводит к ошибкам исполнения. Плюс это дает более гибкий механизм управления скрипт сущностями

  • Добавлен отдельный функционал для классов с флагом NoInstantiate

    Если флаг установлен, то Lua сразу создаст userdata для этого объекта и не будет пытаться создавать отдельные экземпляры таблицы в случае вызова спецметода lua


Работы с Lua еще достаточно много. Как минимум нужно еще связать сборщики мусора и создания экземпляров таблиц с таковыми же сущностями движка, а так-же решить вопрос с наследованием. Тем не менее работа над функционалом уверено движется к финалу и как только доведу все до презентабельного состояния обязательно сделаю пост на эту тему. А паралельно с этим смотрю, что было сделано в недавнем релизе SDL3, на предмет возможности использовать его в качестве прослойки к еще не существующей графической подсистеме.

Думаю, заняться ей паралельно с фреймворком сцен сразу после Lua. Да и вам будет интереснее посмотреть уже на картинки, а не на пустой текст в перемешку с кодом, как сейчас )

Показать полностью
[моё] Разработка Gamedev Инди Игровой движок
0
HorrorClassics
HorrorClassics
Лига Геймеров

Где взять движок для Визуальных романов?⁠⁠

9 месяцев назад

Периодически встречал самодельные игры в жанре Визуальных романов на основе очень похожего движка. Хочу сам попробовать сделать нечто подобное. Есть у кого то опыт в этом деле, можете посоветовать бесплатный движок и немного рассказать как он работает. Не особенно люблю ковыряться в неизвестном программном коде, предпочитаю графические редакторы игр. Рисовать не умею, но есть возможность сгенерировать персонажей в другом редакторе и перенести на новый движок. Диалоги будут на русском, обязательна поддержка движком кириллицы. Цель всего этого мероприятия скорее новый опыт получить, чем заработать. )

Изначально вопрос был о Игровом движке. Привлек одних Линуксофилов ) Разговаривать с ними бесполезно, что не напиши получишь - 1, независимо от смысла написанного )))

Инди Игры Игровой движок Текст
42
6
PontiffSulyvahn
PontiffSulyvahn
Лига Разработчиков Видеоигр
Серия Игры

VK хочет избавиться от Nau Engine⁠⁠

9 месяцев назад
VK хочет избавиться от Nau Engine

А помните, был есть такой Nau Engine? Это отечественный движок, которые некогда прочили чуть ли не в заменители забугорных Unity и Unreal Engine. В ноябре 2024 года разработчики представили бета-версию 0.1.0 и с тех пор о них не было слышно.

Кажется, этому нашлось объяснение. VK, владелец Nau Engine, хочет передать техническую поддержку движка Санкт-Петербургскому университету ИТМО и Ассоциации профессионалов индустрии оперирования и разработки игр (АПРИОРИ).

Как написали сами разработчики в своём ТГ-канале, Nau Engine ждёт новый, захватывающий этап:

Заждались? Команда Nau Engine на связи! Нас ждет новый, захватывающий этап.

Мы внимательно изучили каждый комментарий, совет, отзыв, и множество разнонаправленных запросов по развитию движка.

Мы совершаем качественный переход к community-driven подходу: движущая сила разработки меняется и переходит от команды к сообществу.

Техническое сопровождение проекта будет осуществлять Школа разработки видеоигр ИТМО. Помните, мы говорили, что в треке образования этот ВУЗ станет нашим испытательным полигоном?

Этот шаг позволит уже на этапе беты использовать Nau Engine как инструмент R&D в образовательном процессе. Экспертную поддержку игровой индустрии, как и раньше, будет осуществлять АПРИОРИ. А еще мы заручились поддержкой Prototype.Indie и Института Развития Интернета.

Community-driven подход позволит развиваться движку более эффективно и разнопланово, чем при стандартной коммерческой разработке, и с сохранением технической экспертизы за теми, кто стоял у истоков.

Призываем силу Open Source! Решающее слово за вами.

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

Ничего удивительно в случившемся нет. То, что Nau Engine в условиях конкуренции (заблокировать другие движки — это совсем не то, что заблокировать замедлить YouTube) просто не вытянет, не говорил только ленивый. Мало того, даже крупные компании всё чаще отказываются от своих движков, переходя на UE или Unity.

Работать в сыром, малофункциональном продукте с неясными перспективами никто просто не захотел. Чтобы Nau Engine смог составить конкуренцию хотя бы Godot, требуется несколько лет кропотливой тяжёлой работы. Миллиарда рублей, который VK инвестировал в разработку, явно не хватило.

P.S. Ещё у меня есть бессмысленные и беспощадные ТГ-каналы (ну а как без них?):

О науке, творчестве и прочей дичи: https://t.me/deeplabscience

Об играх и игровой индустрии: https://t.me/gameprodev

Показать полностью
[моё] Компьютерные игры Игровой движок
6
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии