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

Спрятано в 2024

Поиск предметов, Казуальные

Играть

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

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

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

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

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

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

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Игровой движок

С этим тегом используют

Gamedev Разработка Инди Игры Unity Компьютерные игры Unreal Engine Все
120 постов сначала свежее
8
TehnoMagEG
TehnoMagEG
9 дней назад
Лига Разработчиков Видеоигр
Серия Relict Engine

Relict Engine: DevLog 20250623⁠⁠

Сегодня маленький пост без больших подробностей.

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

  • Переименован класс RATPackFS в RelictFS

  • Для SystemFS добавлена возможность задать корень через DefaultEngine.ini

  • Добавлен функционал сбора "индексов" файлов в файловой системе

  • Добавлен функционал опознавания файла как ассета

  • Добавлен функционал регистрации конкретного ассета в AssetManager с привязкой к конкретному RelictClass объекту

    Эта штука будет нужна для механизма "умной" загрузки/выгрузки ассета в/из памяти, и если заработает как надо, то этот-же метод будет применен при работе со скриптовыми объектами.

В общем случае, сейчас все сводится к тому, что каждый Asset в движке будет иметь свой экземпляр, производный от интерфейса IAsset в памяти, связанный с конкретным файлом. В нем уже будет находится контейнер с самим ассетом, но подгружаться с диска он будет только тогда, когда это будет необходимо. И выгрузит только тогда, когда пользоваться им никто не будет (все это без прямого участия конечного программиста).

[моё] Разработка Gamedev Инди Игровой движок Текст
0
362
AlexKud
AlexKud
Переводы разных веб-комиксов
Лига Геймеров
13 дней назад

Взгромоздившись над реальностью⁠⁠

Взгромоздившись над реальностью Перевел сам, Комиксы, Юмор, Игровой движок, Unreal Engine 5, Penny arcade, Длиннопост
Взгромоздившись над реальностью Перевел сам, Комиксы, Юмор, Игровой движок, Unreal Engine 5, Penny arcade, Длиннопост
Взгромоздившись над реальностью Перевел сам, Комиксы, Юмор, Игровой движок, Unreal Engine 5, Penny arcade, Длиннопост
Показать полностью 3
[моё] Перевел сам Комиксы Юмор Игровой движок Unreal Engine 5 Penny arcade Длиннопост
55
8
TehnoMagEG
TehnoMagEG
14 дней назад
Лига Разработчиков Видеоигр
Серия Relict Engine

Relict Engine: Файловая система и DevLog 20250618⁠⁠

Решил все таки отложить работу над рендером и заняться тем, что в этот рендер передавать, т.е. Ассетами (от слова ass, хе-хе). А для ассетов нужна файловая система.

В Relict Engine предусмотрено две файловые системы. Первая - системная (SystemFS) - это обычный каталог с обычными же файлами, которые движок грузит как есть (ну почти)

Вторая - т.н. RAT Packed FS, или Relict AsseT Packed File System. Она представляет собой нечто, отдаленно похожее на pak Анрила, но работает несколько иначе. О ней подробнее расскажу позже отдельным постом.

Каждая файловая система представляет собой отдельный класс в пространстве имен Relict::FS и должна поставлять (кроме логичных Find, Load итд) два основных метода Mount и uMount. Mount монтирует каталог (или файл, или сетевой ресурс) в т.н. точку монтирования, и представляет файловую структуру в виде posix подобного дерева, где корень дерева - это "/". uMount, соответственно, эту точку монтирования удаляет.

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

Relict Engine: Файловая система и DevLog 20250618 Разработка, Gamedev, Инди, Игровой движок

В первую очередь мы будем искать запрошенный файл в SystemFS и только потом в RATPack

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

  • Переделан Атом Tickable (но все еще он работает не так, как мне хочется)

  • AssetManager для управления ассетами.

  • Добавлен интерфейс IAsset для прототипирования классов ассетов.

  • Добавлен механизм привязки класса ассета к MagicNumber файла ассета

  • Добавлен класс FSManager для управления файловыми системами

  • Добавлен интерфейс IFileSystem для прототипирования классов файловых систем

  • Добавлены классы SystemFS и RATPackFS

  • Все интерфейсы собраны в подкаталог Interface для удобства

  • Добавлена возможность инициализировать переменные массивы через атом Configable

    Новые типы переменных: CVT_ABOOL, CVT_AINTEGER, CVT_ANUMBER и CVT_ASTRING

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

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

Как бросить курить и не сорваться: инструкция от тех, кто смог⁠⁠

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

Как бросить курить и не сорваться: инструкция от тех, кто смог Курение, Борьба с курением, Зависимость, Telegram (ссылка), ВКонтакте (ссылка), Длиннопост

История 1 — отражение

@ holoroad

Маленькая дочка почти научилась ходить и всюду телепалась за мной. Я не курил при ней. Ходил на балкон, а она, прильнув к стеклу, смотрела на меня и ждала, когда я докурю и выйду к ней. И в какой-то момент она начала повторять за мной вот эти движения. Маленький человечек, ей было года полтора или два, прикладывала воображаемую сигарету к губам, а потом делала вид, что выпускает дым. И весело так на меня смотрела, сквозь стекло балконной двери. Ей нравилось все, что со мной связано, и она подражала всем моим действиям. Я курил уже двадцать лет и, конечно, делал множество попыток бросить до этого. Но в этот раз у меня в первый раз появилась по-настоящему важная причина бросить. Это важно для человека, который безгранично мне доверяет. С тех пор прошло почти десять лет, в течение которых я не сделал ни одной затяжки.

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

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

История 2 — список

@ maxneb

Беременность жены, рождение ребенка, здоровье, деньги — ничего не было веским поводом бросить окончательно. Постоянно срывался. Помогло составить список, что теряю и что получаю от сигарет, и понимание, что хотя бы одна затяжка — и все насмарку: пару месяцев буду курить. Только список и его осознание. Для каждого он свой. И постоянное обращение к нему. После составления списка курил еще. Но он как заноза висел в голове с вопросом «зачем?»... Так, что-то щелкнуло и сейчас не тянет. Иногда тянет физически, но осознание бесполезности курения сразу глушит позывы. Полгода, полет нормальный...

Бросать на авось — идея, которая подойдет не всем. Нужно понимать, что делать в трудные моменты:

  • Определите дату отказа. Подготовьтесь морально, уберите сигареты, зажигалки, пепельницы.

  • Замените привычки. Сигарету в руках можно заменить орешками, палочками морковки, жвачкой или даже кубиком льда.

  • Займите время. Вспомните, чем вы любили заниматься: спорт, хобби, прогулки.

  • Планируйте, что делать при тяге. Она длится всего 3–5 минут. Дыхательные практики или звонок другу помогут пережить сильное желание закурить.

  • Откажитесь от «наградных сигарет». Одна затяжка и вы откатитесь назад.

Можно бросить резко, «с понедельника», или постепенно, снижая количество сигарет до нуля. Главное — определиться и не отступать.

История 3 — переключение

@ Spaka

45 лет, стаж 30. Пытался завязать много раз, потом понял, что после каждой попытки бросить, курить начинаешь больше. Как ребенок, которому не дают вкусняшку, а она случайно попала ему в руки. Из чего мозг сделал вывод: не уверен — не бросай. Потом стал замечать, что организм уже стал сам просить перестать курить. По утрам было очень неприятно во рту, удовольствие после сигареты стало короче, а негатив, приходящий следом, ощутимее: неприятные ощущения в горле, боли миндалин, страх схватить онкодиагноз. Хотя врачи говорили, что все ок, в голове-то гоняешь мысли. Я решил попробовать обмануть сам себя. Не делать из процесса отказа какого-то события. Бросить так, как будто это и должно было произойти, но ты не знаешь когда. Про себя помолился, как сумел, и попросил помощи, хитро прищурил глаз и в момент, когда забыл купить про запас (оставалась пара штук в пачке), просто перестал курить. Мне теперь даже странно, как я раньше это делал. Так и живу почти два года. Кстати, раньше в момент завязки курящих ненавидел, дым был очень противен, до тошноты. Теперь все равно. Присоединяйтесь ;)

Есть несколько стратегий отказа от курения:

  • Резкий. Эффективный и решительный подход.

  • Постепенный. Сначала — меньше сигарет, потом — меньше затяжек. И так до нуля.

  • Психологическая замена. Каждая сигарета — это ритуал. Найдите для каждого из них «здоровую замену».

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

Каждый, кто хочет оставить зависимость в прошлом, может обратиться в центры здоровья, которые работают при поддержке нацпроекта «Продолжительная и активная жизнь», и получить необходимую помощь специалистов. Адреса доступны на официальном портале Минздрава России о здоровье: takzdorovo.ru. Также можно позвонить на горячую линию по отказу от зависимостей 8 800 200-0-200.

История 4 — форма

Аноним

Курила электронки 2 года как замену обычным сигаретам. Думала, что это не так дорого, не так вредно да и для девушки вроде более привлекательно: не пахнут волосы и руки. А потом решила привести свое тело в форму. Стала ходить в зал и поняла, что задыхаюсь на первом же упражнении, хотя женщины гораздо старше меня бодрячком. Было очень тяжело слезть. Друзья советовали заменять сигаретами. А потом уехала в отпуск в страну, где нельзя покупать электронки, отвлеклась, и после возвращения уже не тянуло. Даже на тусовках, где все дымят.

За модными гаджетами и фруктовыми ароматами скрывается химическая бомба, разрушающая организм быстрее, чем обычные сигареты. Электронные сигареты активно продвигаются производителями как «безопасная» альтернатива сигаретам. Но курение вейпа может обернуться серьезными проблемами: от кашля и одышки до поражения сосудов и дыхательных путей.

«Особую тревогу вызывает рост потребления табачных изделий и электронных сигарет. Согласно исследованию, проведенному в нашем Центре, 36,8% курильщиков потребляют одновременно и табак, и электронные сигареты. Среди молодежи в возрасте 25-39 лет этот показатель превышает 45%. Электронные никотиносодержащие и безникотиновые устройства поражают сердце, сосуды, дыхательную систему и ДНК организма не менее пагубно, чем традиционные сигареты, а в ряде случаев способны вызывать острые состояния, включая сосудистые поражения и летальные исходы» – рассказывает руководитель Центра профилактики и контроля потребления табака НМИЦ терапии и профилактической медицины Минздрава России Маринэ Гамбарян.

История 5 — пари

@ kernima

Вроде не было никаких серьезных предпосылок, чтобы бросить. Да и чтобы начать: просто все вокруг курили, думал, это сейчас тренд. А потом как-то сидели в баре и решили поспорить с некурящим другом. Он затирал, что моя жизнь из-за электронки катится ко дну, я — доказывал, что это всего лишь маленькая шалость. В общем поспорили на пять тысяч. Чтобы было легче и можно было отвлечься, начал бегать по утрам. Друг проиграл, а я возвращаться к курению не стал. Вдруг снова у еды появился вкус, я начал высыпаться и больше не устаю на втором лестничном проеме. Короче, советую!))

Сульфат никотина, один из компонентов электронных сигарет, раньше использовали как пестицид, но запретили из-за высокой токсичности. Жидкость для «электронок» содержит и опасные химикаты вроде пропиленгликоля, ацетальдегида и акролеина — промышленных веществ, способных вызывать воспаления, поражения органов и мутации клеток. Ароматизаторы, создающие иллюзию безвредности, на деле могут привести к более тяжелой интоксикации, чем при курении сигарет. А еще вейпы содержат не природный, а синтетический никотин — солевой. Он быстрее всасывается, дольше выводится и вызывает зависимость стремительнее.

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

История 6 — связь

Аноним

Устал курить, понял, что мне это мешает заниматься спортом и в целом комфортно себя чувствовать. Пошел через ассоциации: покурил во время головной боли, и потом через самовнушение дал себе установку, что голова болела от курения. Звучит странно, конечно, но это сработало. Никотиновую зависимость снижал постепенно через редкое курение кальяна (2-3 раза в неделю с последующим уменьшением).

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

Разберитесь, что именно тянет вас к сигарете: скука, стресс, привычка? Когда вы это осознаете, будет легче подобрать альтернативные действия — прогулку, книгу, разговор с близким. Учитесь распознавать моменты, когда особенно хочется закурить, и переключаться на что-то другое. Можно подключиться к программам или группам поддержки — это поможет не сдаваться. И главное: уберите из дома все сигареты.

История 7 — вершина

Аноним

Поднимался с сыном по Пушкинской тропе на гору Железная. Мне лет сорок пять было, идем общаемся, сын бегает туда-сюда. Ну идем короче, а сзади нас догоняет семейная пара, мирно о чем-то щебеча между собой. Догнали и обходят. И так спокойно удаляются… Все бы ничего, но им лет по шестьдесят, если не больше. Я попробовал в их темпе, но задыхаться стал. Короче, поднялся я на гору, спустился, смял пачку и выкинул в мусорную урну. Вот уже 13 лет не курю. Стаж 27 лет.

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


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

Хорошая новость в том, что вы не одни. В сообществе «Давай бросать» (ВКонтакте и мессенджере Telegram), который работает при поддержке нацпроекта «Продолжительная и активная жизнь» знают, каково бороться с триггерами, искать замену привычке и удерживать себя от срыва. Здесь делятся историями тех, кто смог, поддерживают тех, кто только начал, и помогают разобраться в главном: как пережить отказ без мучений.

Социальная реклама. АНО «Национальные приоритеты», ИНН: 9704007633

Показать полностью
Курение Борьба с курением Зависимость Telegram (ссылка) ВКонтакте (ссылка) Длиннопост
7
TehnoMagEG
TehnoMagEG
1 месяц назад
Лига Разработчиков Видеоигр
Серия Relict Engine

Relict Engine: DevLog 20250509⁠⁠

С праздником! А мы продолжаем продолжать )

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

  • Исправлено поведение Атома Tickable для Дефолтных объектов

    Тем не менее, этот атом еще будет пересмотрен.

  • Добавлен флаг Final для RelictClass

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

  • Класс окна вынесен из подсистемы в Реликт Engine в виде интерфейса

  • Добавлен платформозависимый Реликт PlatformEngine

    В нем содержатся платформозависимые имплементации отдельных классов (например окна)

  • Пересмотрена система сборки проектов. Теперь подсистемы собираются в отдельные DLL, в случае, если конфигурация не продуктовая (для удобства дебага и пересборки)

  • Добавлен Новый атом Configable для работы с ini файлами

Атом Configable

Этот атом создан для быстрой подгрузки переменных из внешних конфигурационных ini файлов (или сохранения в него).
ini файлы расположены в двух местах. В директории Config корневой директории проекта и в Директории Save. В целом это работает примерно так-же, как и в UnrealEngine. Сначала смотрится значение в Default конфиге в Config директории, потом, если это разрешено настройкой, то смотрится override в Save.
Управляется так:

Relict Engine: DevLog 20250509 Разработка, Gamedev, Инди, Игровой движок

Загрузка разрешения окна из конфига Config/DefaultUserSettings.ini с возможностью переопределения в Save/Config/UserSettings.ini из секции Display

Показать полностью 1
[моё] Разработка Gamedev Инди Игровой движок
0
Вопрос из ленты «Эксперты»
HorrorClassics
HorrorClassics
2 месяца назад
Лига Геймеров

Движок рен ру. Как поставить gif (реального размера) поверх другого фона?⁠⁠

Растягивать на весь экран не хочу файлы разного размера. Хочу поставить в центр экрана при этом остальное пространство или черный фон или заданный рисунок под гифкой.

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

Relict Engine: DevLog 20250419⁠⁠

Пока нарабатываю теорию по рендерпайпу и работы с устройствами ввода, решил написать быстрозатычку для рендера OpenGL, чтобы понять есть все-же смысл в сторонней библиотеке или нет. Немножко баша для генерации статичного лодыря для glext/wglext и в принципе работает без всяких библиотек.

Увы, у меня пока нет возможности протестировать код под Linux (до этого момента пользовался WSL, но теперь потребуется что-то более нормальное, да с аппаратным ускорением). Нужно готовить окружение для тестов на базе виртуалки [или собрать образ под WSL2, хотя там будет не наглядно](хотя бы, хотя лучше , наверное, ноутбук купить [давно обновиться пора было]).

Relict Engine: DevLog 20250419 Разработка, Gamedev, Инди, Игровой движок

Результат работы рендера-затычки (все доступные расширения загружены; отключен vsync через расширение)

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

  • Исправлено поведение указателя на экземпляр Object после перехода в стадию GC_DESTROYED

  • Добавлена подсистема Renderer

  • Добавлена работа с окнами с учетом кроссплатформенности (не тестировалось)

  • Добавлен рендер затычка на базе OpenGL 4.6 (glClear + Swap) для теста загрузки функций - расширений собственным кодом

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

  • Адресована проблема с Tickable Object. В тикере регистрируется даже Дефолтный объект, что не есть хорошо. Нужно будет исправить

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

Relict Engine: ослик Иа или Ввод и Вывод⁠⁠

В преддверье начала работ над графическим процессором предлагаю поговорить о таких фундаментальных вещах, как ввод и вывод. Т.е. ввод с клава/мыши или контроллера и вывод на экран графической информации. Казалось бы все просто. Бери SDL или glfw и пиши - там это все есть, но не все так просто.

Архитектура Relict Engine подразумевает, что ввод и вывод должны быть прописаны в разных модулях(или подсистемах), и, возможно, в разных потоках. Что означает, что с высокой долей вероятности придется отказаться от готовых библиотек и писать подсистемы для работы с вводом и выводом самостоятельно. В принципе это не страшно, но займет какое-то дополнительное время.

И если мы берем этот метод, соблюдая заложенный концепт архитектуры, то у нас получится примерно следующая структура:

Ввод:

  • Subsystem.Input - подсистема для работы с устройствами ввода

  • Реликт Input.Raw - модуль для работы с клавиатурой и мышью (в том числе с высоким DPI)

  • Реликт Input.Xinput - модуль для работы с Xinput (для поддержки контроллеров) [опциональный]

Вывод:

  • Subsystem.Renderer - некий универсальный api для работы непосредственно с графикой

  • Реликт Renderer.Window - модуль универсального api для работы с окнами

  • Реликт Renderer.Window.WinAPI - модуль для работы с окнами Windows

  • Реликт Renderer.Window.XWindow - модуль для работы с окнами Xorg

  • Реликт Renderer.Window.Wayland - модуль для работы с окнами Wayland (замена Xorg) [и вот еще нужно почитать нужны ли они будут обе, или достаточно только одной, ибо с Wayland еще не работал никогда]

  • Реликт Renderer.Null - модуль-затычка, на случай, если нам нужно только окно, но не рендер (ну и как прототип для GL и VK)

  • Реликт Renderer.GL - для работы с OpenGL

  • Реликт Renderer.VK - для работы с Vulkan

В случае, использования SDL/glfw, нам придется его зашивать намертво в модуль Engine, как прямую зависимость. Кода будет сильно меньше, но при этом мы несколько потеряем в гибкости (плюс SDL забирает на себя еще и работу со звуком, при этом F·Mod туда впиливается через непонятно кем написанный плагин, что не очень хорошо [хотя в принципе непонятно, на кой фиг это надо, т.к. F·Mod всегда был вещью в себе]).

В общем, пока думаю и читаю документации к api. А непосредственно работу начну, наверное, не раньше мая.

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

Даже получать удовольствие ты должен с коммерческой выгодой для себя ©⁠⁠

Так говорил греческий судовладелец, миллиардер Аристотель Онассис. Миллиардеры, конечно, живут немножко иначе, но этот принцип вполне распространяется и на «простых смертных». Давайте посчитаем, какую выгоду вы получаете.

Посчитать

Бизнес Выгода Текст
7
TehnoMagEG
TehnoMagEG
2 месяца назад
Лига Разработчиков Видеоигр
Серия Relict Engine

Relict Engine: Первая бинарная сборка 0.0.1 и DevLog 20250409⁠⁠

Перед началом работы с графикой решил поиграться с правилами CMake и попробовать собрать все в релизной конфигурации.

Что из этого получилось:

Движок собирается в пакет CMake, подключается стандартным образом через директиву find_package.
Поставляется в виде набора заголовочников, внешних библиотек (ThirdParty) и объектных (obj) библиотек самого движка. Почему именно объектных: Задумка следующая - программист сам выбирает как ему использовать движок (в виде DLL/so или собирать все в единый EXE/bin), и с какими конкретно модулями. Модули собраны в пространство имен CMake и подключаются довольно просто (потом напишу библиотеку для CMake чтобы еще больше это упростить), ну а пока это выглядит вот так:

Relict Engine: Первая бинарная сборка 0.0.1 и DevLog 20250409 Разработка, Gamedev, Инди, Игровой движок

Пример сборки приложения(игры) с dll движком

Пока, конечно, все сыровато, есть вещи которые я в дальнейшем еще пересмотрю, но в целом работает.

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

  • Добавлен typedef TRelictClass на RelictClass

Теперь, вместо public RelictClass<Class, BaseClass, ClassFlags>::Type можно писать public TRelictClass<Class, BaseClass,ClassFlags> при оглашении игровых классов

  • Классы подсистемы вынесены на уровень выше в пространство имен Subsystems

  • Переработана работа SubsystemManager для удобства доступа к классу подсистемы

Теперь, для обращения к подсистеме нужно обращаться к менеджеру, а не к самому классу подсистемы: auto SS = SubsystemManager::Get<Subsystems::ScriptSubsystem>("ScriptSubsystem");

  • Исправлена работа функции FindObject со стороны Lua

После изменения регистранта Lua на UserData функция не была переписана. Упс.

  • Часть функций Виртуальной Машины Lua вынесены в глобальное пространство имен и больше не доступны для прямого вызова из вне.

  • Отключены стандартные библиотеки Lua за ислючением необходимого минимума.

  • Класс Application перенесен из модуля GameFramework в модуль Engine

Это было сделано, т.к. в бинарной сборке нарушался принцип наследования зависимостей.

  • Добавлены правила CMake для цели install

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