8

Relict Engine: DevLog 20250825

Список изменений на сегодня:

  • Перенесена и обновлена дорожная карта с Trello на yougile

    Ссылка для ознакомления: https://yougile.com/board/8o3quozyj1in

  • Добавлен механизм синхронизации асинхронной задачи с родительским потоком.

    Метод Await() у класса AsyncTask

  • Добавлен механизм LoadOnDemand для StaticMesh ассета

При обращении к BulkData ассета, если задача на загрузку не запускалась или была сброшена, то ставит задачу на исполнение, и возвращает nullptr указатель, если задача не исполнена.

  • Добавлен механизм "Сброса" асинхронной задачи

Сбрасывает состояние задачи на Created, возвращает возможность вызова метода Run(), и, по необходимости, очищает связанные с задачей данные.

  • Исправлено удаление объекта из глобального тикера, в случае, если объект удален.


Небольшие новости по Linux сборке:

Посмотрел я на выходных еще раз в сторону SDL и GLFW, и, все-таки пришел к выводу, что придется писать все самостоятельно. Что SDL, что GLFW создает около 5-6 внутренних потоков на стадии инициализации (для обмена данными; чтения ввода, итд). Это автоматически ломает суть ThreadManager с его max_concurrent_tasks. В итоге буду писать сам. С Windows то все просто - там не так много кода, а вот с Linux придется посидеть. Посмотрел я, как работает Wayland, и мне, откровенно не понравилось. Нет, оно конечно очень гибко, но там даже для самого простого окна получается достаточно много кода. Есть, правда, libwaylandpp, который это дело упрощает... Посмотрю, может через него удастся.

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

Вы смотрите срез комментариев. Показать все
0
Автор поста оценил этот комментарий

Пилишь свой движок? А зачем?

раскрыть ветку (8)
0
Автор поста оценил этот комментарий

Необходимость такая есть.

Вся наша жизнь спираль: Итоги 2024
Relict Engine: У нас было два пакетика травы


А если просто: мне надоело лепить костыли.

раскрыть ветку (7)
2
Автор поста оценил этот комментарий

Ну, довольно классическая история. "Сделаю свое, будет хорошо". Конец таких историй так же известен, и проверен временем.

раскрыть ветку (6)
0
Автор поста оценил этот комментарий

Время покажет. Я в любом случае в минусе не останусь )


"Сделаю свое, будет хорошо"

Но все-таки не совсем так. Хоть и близко )

раскрыть ветку (5)
1
Автор поста оценил этот комментарий

Я в любом случае в минусе не останусь )

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

Писать на выходных 3д движок, ориентируясь на анрил, для своего пет проекта мечты, это не рационально и не продуктивно.

Вместо того чтобы делать игру, и бороться с костылями. Ты выбрал не делать игру, и посвятить костылям все свое время.

Нужно снизить аппетиты, порезать хотелки, скачать сраный юнити (если у вас нет средств даже на железо) и выпустить хотя бы базовый функционал своей идеи. А потом ее развивать.

Можешь в принципе не отвечать, это так, скорее беседа самого с собой, я прекрасно понимаю, что тебе виднее, и в твоем случае все обязательно получится.

раскрыть ветку (4)
0
Автор поста оценил этот комментарий

Вот давай только без токса. Можно обсудить, если есть желание.


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

Ну можно было бы побухать да, но зачем? Я лучше скилл подниму. Тыж понимаешь, что я это не ради денег делаю, да? Меня работа кормит прекрасно.


Писать на выходных 3д движок, ориентируясь на анрил, для своего пет проекта мечты, это не рационально и не продуктивно.

Я не пишу второй анрил. Я ж не просто так посты скинул... Все очень сильно проще и только то, что нужно. Да, я подглядываю в анрил (на самом деле уже мало, ибо что хотел, то уже взял оттуда) - ибо зачем писать велосипеды там, где можно взять уже написанное хорошо? Но не только туда. Я много куда подсматриваю.


Вместо того чтобы делать игру, и бороться с костылями. Ты выбрал не делать игру, и посвятить костылям все свое время.

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


Нужно снизить аппетиты, порезать хотелки, скачать сраный юнити (если у вас нет средств даже на железо) и выпустить хотя бы базовый функционал своей идеи. А потом ее развивать.

Все именно так. Именно базовый функционал без костылей и не реализовать. Понимаешь, в чем шутка: то, что ребята на коленке делали в 1996 году, на анриле сделать нереально. И на юнити тоже. Они просто не предназначены для этого. В лучшем случае у тебя на выходе будет малоудобное, сложновыебанное поделие, которое крайне сложно дебажить, и которое будет стыдно приложить даже в портфолио (Black Propecy не даст соврать).

Можно конечно переписать то, что не нравится - opensource жиж. Но. там архитектура такая, что переписывая одно, ломается второе, т.к. оно было подвязано на первое. И так это тянется тянется, пока ты по сути не перепишешь половину анрила. Так блин, раз один хрен страдать, то уж лучше сразу нормально написать. Да и быстрее получится, ибо не нужно тратить время на поиски созависимых участков кода (а поверь в анриле их дохуя, и они не всегда интуитивны [всякие колбаки через поинтер посредник типа void*, который нехрена не отслеживается по таблицам вызовов]).

При этом я не намерен и не горю желанием ругать Анриал. Это офигенный универсальный инструмент. Но вот именно в его универсальности и проблема. Как только ты выходишь за рамки современного шаблона геймдева, то ты упираешься в стену. И, как грицо, ебись как хочешь (а занимаясь Риликтом, я хотя бы удовольствие получаю).

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

Можно обсудить, если есть желание.

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

Ну можно было бы побухать да, но зачем? Я лучше скилл подниму.

Ты искусственно ставишь свое поведение в один ряд с чем-то однозначно негативным (алкоголизм). На этом фоне твоя собственная активность начинает казаться не такой уж и плохой. Ты создаешь ложный выбор "или я буду заниматься своим делом, или буду бухать". А то, что есть третий, конструктивный вариант (заняться полезным делом), полностью игнорируется. Это позволяет тебе снизить тревогу и чувство вины за непродуктивность.

Тыж понимаешь, что я это не ради денег делаю, да?

Проблема в том, что ты и сам не понимаешь, зачем ты это делаешь.

Знаешь как это всё называется? Гиперболическим обесцениванием.

Ты сильно обесцениваешь ту деятельность, которая требует усилий прямо сейчас (работа с неидеальным движком, написание костылей), и, наоборот, гиперболически переоценивать выгоду от альтернативы, которая кажется более приятной и фундаментальной, но отложена по времени (создание своего "идеального" движка). Задача "сейчас", это справиться с трудностью (костыли), воспринимается как очень болезненная, скучная, неприятная. Задача "потом", создать что-то грандиозное с нуля, воспринимается тобой как творческая, интересная, правильная, дающая полный контроль. И поэтому мозг выбирает тот вариант, который сейчас кажется более вознаграждающим, даже если объективно на создание своего движка уйдет в 100 раз больше времени и сил. Ты избегаешь одной важной, но сложной задачи (создание игры), занимаясь другой, кажущейся не менее важной и продуктивной задачей (создание движка). Таким образом, получаешь иллюзию прогресса, занимаясь чем-то сложным и техническим. Это уже называется "продуктивное избегание".


Все недостатки существующего движка видятся тебе огромными, а все его преимущества и готовые решения игнорируются. В то же время, все гипотетические преимущества собственного движка видятся ярко и четко, а все будущие трудности и подводные камни затуманиваются.

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


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


А что касается самого кода. Ты просто дергаешь "решения" из различных источников, хорошо сдабривая их своими неидеальными знаниями в данной теме, что заставляет тебя по большей части идти на ощупь. Но огромное количество мелких задач (и генерируемых детских болячек подобных систем на начальных этапах), решаемых тобой на первых порах, идеально подходят для реализации того самого продуктивного избегания, позволяя получать эндорфин от их выполнения. Но проблема в том, что с ростом сложности и снижением темпа разработки, ты неизбежно схватишь чувство потери контроля и компетентности. Прогресс практически остановится, и все сведется к бесконечному латанию дыр. Это приведет к умственной усталости, а мозг пытаясь защитится, просто отключит тебе интерес и мотивацию. И все, привет апатия. И выйти из этого состояния будет той еще морокой.


Я наблюдал такое ни один раз, к сожалению.


7 лет с момента первого поста. У тебя с учетом этого времени можно считать нет практически ничего (хоть ты никогда с этим и не согласишься). Тут по хорошему нужно принимать (и уже давно) волевое решение о похоронах этой затеи. Но первый проект мечты так сложно отпустить...

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

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


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


7 лет с момента первого поста. У тебя с учетом этого времени можно считать нет практически ничего (хоть ты никогда с этим и не согласишься). Тут по хорошему нужно принимать (и уже давно) волевое решение о похоронах этой затеи. Но первый проект мечты так сложно отпустить...

Ты абсолютно прав. Заместо того, чтобы пытаться на Анриле 7 лет сделать то, что он явно не может переварить, нужно было взять старый, писанный под FFED3D инструмент, и еще тогда начать писать на нем, потому что там все это работало. Каюсь, это моя ошибка. Но хотелось красивостей. И чтобы было попроще (хех).


Я вот одного не понимаю. Ты проецируешь свои неудачи, или просто заняться нечем? Я предложил обсудить проблемы и причины моего решения, а не разводить психоанализ. Все таки тематика сообщества несколько другая.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

По сути да, мне просто нечем заняться.

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

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку