Делаю свой RimWorld: Игровая логика | Разработка Grim Wild #5
Пятая серия дневников разработчика Grim Wild полностью посвящена логическим компонентам. Они не только являются отправной точкой в реализации многих идей игры, но и имеют необычную реализацию.
00:00 - Вступление
00:48 - Логические компоненты
02:47 - Компоненты: принцип работы
05:54 - Генная инженерия
07:58 - Как работает колония и фракция игрока
09:28 - Итоги и туманные перспективы
❤️Поддержать меня:
👉 Boosty: www.boosty.to/teedeezet
👉 DonationAlerts: www.donationalerts.com/r/teed...
📣Соцсети:
Discord-сервер: / discord
Telegram-канал: t.me/teedeezet
Группа VK: vk.com/teedeezet
Дзен: dzen.ru/teedeezet
🕹️Grim Wild:
Доска "Идеи": www.trello.com/b/T2lRhI00
Доска "Обновления и планы": www.trello.com/b/6kmn3LRO
Доска "Идеи зрителей": www.trello.com/b/iQTUdoeM
"Делаю свой..." - это рубрика, в которой я беру за основу уже существующие игры и делаю на их основе новые проекты.
Инструменты:
Unreal Engine 5 (движок игры)
JetBrains Rider (среда разработки)
C++ (язык программирования)
Trello (органайзер идей)
GitHub (контроль версий)
Photoshop (растровая графика)
Figma (векторная графика)
Мои другие каналы:
Гейминг: / @teedeezet-gaming
Жизнь: / @teedeezet-life
Лучшее (клипы): / @teedeezet-clips
#RimWorld #GrimWild #teedeezet
Мне очень нравится, что автор показывает на графах архитектуру игры. Это может быть очень полезно тем, кто пытается делать игры и не знает, как начать
ну для этого есть специальные видео, называются гайды. их полно на ютубе, по любому движку.
@@knyaz770 гайды в основном показывают как делать конкретные механики, а вот как делать архитектуру - это совсем другое, более продвинутое, такую инфу хрен найдешь.
В любом случае со старта нужно освоить теорию, че такое алгоритмы и циклы, а дальше уже практиковаться делать свой кал
Надеюсь не Артемах?
ООП всеравно никто не поймет , кто не учился ему целенаправленно ранее)
Надеюсь ты не забросишь этот проект, у тебя много потенциальных идей)
идеи ничего не стоят, главное реализация, надеюсь все получится реализовать
@@onlinegameboomzстоят, да еще как
@@onlinegameboomzа материалистов можно пускать на полезное в быту мыло 🤫
@@dmitridonika6189 поспорить нельзя.
@@onlinegameboomz "Идеи нечего не стоят" Думаю геим-дизайнеры с тобой не согласятся...
Теперь хочу узнать секретные картофелные данные. Что этот корнеплод себе позволяет? Секреты имеет, того глядишь против власти попрëт
У луковицы больше шансов пойти против власти)
Уже захватил власть в одной стране
Мне нравится идея, что можно начать в том же мире, где и закончил. Придти в поселение, которое разграбили рейдеры и зачистить его, либо торговать/грабить свои поселения. Но оригинальной римке не очень раскрыта тема войны между фракциями. Города спавнятся в рандомном месте как прыщи, а также дружественная и враждебная в перемешку, без четких границ, как у государств. Было бы прикольно, чтобы можно выставлять лимиты производства как в Towns, с поправкой, что там любая пешка может выполнять любые работы, а в римке нет, и добавить автоматические караваны для снабжения между поселениями, в римке каждый караван собирать это геморрой. Так, например можно будет профилировать поселения под определенные ресурсы, в одном, допустим есть шахта с бесконечной сталью, в другой почва, на которой может расти дьяволонитник/генная кукуруза, а после идти и отжимать ресурсы у вражеских поселений
Минутка фактов: на 03:31 говорится, что "нет смысла копировать одни и те же данные", но это означает, что на каждый факт чтения калорийности будет происходить две операции: чтение указателя, сравнение значения В то время, как в целях оптимизации компиляторы заменяют ссылки на статические значения самим значением, и встраивают его вместо операции чтения, уменьшая код на 1 инструкцию. Потому что нет смысла хранить 4/8 байт адреса данных, которые тоже весят 4/8 байт. Есть смысл копировать лишние данные, если это сэкономит ценнейшие наносекунды времени отрисовки кадра
На самом деле, разницы нет, копируется ли данные о картошке для каждого экземпляра или нет, в любом случае будет как минимум один прыжок по ссылке. К тому же, если вдруг появится скрипт, который хочет сделать много дейтвий для разных картошек, данные из разных экземпляров картошечки не смогут попадать в кеш, а это уже серьёзные тормоза. Ссылание на один экземпляр это скорее про оптимизацию памяти, которой у компьютера на самом деле не так много, как хотелось бы.
Так в люди случае каждый экземпляр объекта "картошка" будет находиться в куче, хоть он 1, хоть их 100, и будет каждый раз чтение из кучи, но если это один кусок данных, он останется в кэше процессора, и для часто вызываемых данных доступ к ним будет мгновенным для процессора, что значит что будет меньше простоев процессорного времени, плюс нет лишнего мусора в оперативной памяти
Например в python первые 256 чисел интерпретируются как ссылки на эти числа, вместо непосредственно чисел
@@KawaiiSelbstsBox вот по-этому я скрипты очень не люблю. Даже все движки на с++ грешат тем, что включают в функционал то, что нельзя убрать перекомпилировав с другими параметрами. А уж скрипты, там полный атас. Процессор, которого хватает на выполнение миллионов инструкцией кода во мгновение, умудряется загружаться на сотку от игр парадоксов, обрабатывая несколько фракций и их юнитов. И нет, там не юнитов много -- мусорных данных. А чо, моддинг сделан полностью на хардкоде. Движок вообще не умеет адаптироваться, и хранит килотонну строчных данных, чтение которых замедляется в геометрической прогрессии для каждого уравнения
@@levovix вот из-за "дополнительного прыжка по ссылке" я и начал оптимизировать логику классов. Их можно сделать встраиваемыми. Поскольку процессор сам по себе обладает памятью, то отправляя ему значения вместо ссылок, ты экономишь также на использовании оперативки. Как и копирования данные по одному байту вместо максимально возможного размера через оптимизированные функции -- я как-то замерил, разница в сто наносекунд. Для сравнения -- нажатие кнопки в imgui съедает 20 наносекунд. А 100 можно тратить, если очистить буффер для строки побайтово, а не через memset. А ведь в миллисекунде всего миллион наносекунд, и надо уложиться в серебрянные 12 лямов или золотые 4,5
Твой подход к разработке меня поражает. Ягами Лайт от мира геймдева. Это прекрасно. Сразу видно, человек очень умный, и способный
Скорее трудолюбие
👋
Значит ли это, что конец teedeezet ждёт такой же, как Лайта? Хммм
И упоротый, раз не взял юньку или годот для такой игры))) щас бы уже в альфе был))
@@ARH Интересно, а как Unity или Godot могли бы помочь мне? В них из коробки написан нужный для меня код?
Автор просто супер молодец. Знаю, что он невероятно много времени и сил вкладывает в свой проект и видеоролики. Очень хотелось бы, чтобы больше людей обратили внимание...Ведь работы для одного человека здесь очень много, требуется огромная поддержка и помощь со стороны аудитории. Надеюсь, что проект станет полноценной, очень интересной и узнаваемой игрой во всём мире!!
Главное чтобы игра не ворочилась на одном ядре, а в остальном желаю удачи.
Твои видел о разработки очень интересно слушать))) Аж как-то и захватывающе, и мотивирующе
Действительно классно наблюдать, что кто-то ещё делает игры не просто ради просмотров, таких в ру ютубе мало
Оч люблю твой визуально наглядный editing, и чистый writing - каждое слово по делу.
Ура, я дождался!) Буду ждать релиз игры с нетерпением, пожалуйста не забрасывай проект.
ОМАГАД! Именно это я ощутил когда услышал о том что можно будет создать несколько фракций на карте. Это же обалдеть какой симулятор бога. Заберите все мои деньги, но дайте мне эту игру!! ps. Как веб-разработчик и человек создающий свою вселенную, обожаю фичи от некоторых компаний по типу "Сорян, ты русский, благодаря тому что мы тебя заблочим, один человек не получит 1 патрон от пистолета Макарова. Нам поебать что ты можешь потерять работу которая кормит тебя и твою семью, но не дай бог твоя копейка улетит на военную ситуацию"
Огромный респект за такую работу! Я очень благодарен за то, что ты делишься процессом работы с нами несмотря на все трудности, это меня очень вдохновляет. Я начинающий разработчик и изучаю работу с Unreal Engine и я крайне благодарен тебе как минимум за то, что ты мне помогаешь определить вектор моего развития, с помощью твоих видео проясняются некоторые моменты, помогающие лучше понимать и Unreal, и разработку игр в целом. Спасибо тебе большое за работу, с нетерпением жду следующих твоих видео!
Привет! С нетерпением жду каждый твой ролик! Ты сделал огромную работу, и, надеюсь, она окупится!
6:22 оно прекрасно!
Мужик, работай дальше, будущее у проекта точно есть
Бро, я не разработчик, но наблюдать за тем, как ты создаешь игру очень интересно! Спасибо тебн!
Как гром среди ясного неба.
Это очень круто! Буду тебя поддерживать как смогу, чтоб ты не забросил проект.
Удачи в разработке, ждём новых роликов!
Спасибо за видео. Всем сердцем верю в вас и вашу идею!!!
Есть одна идея. В Rimworld мне не нравятся килбоксы. Я понимаю их преимущества, но согласитесь, что это либо облегчение себе игры, либо сама игра не подстраивается под тебя и просто приводит рейд, который намного сильнее поселения А идея заключается в том, чтобы рейдеры определяли не лёгкий путь до своей цели, а именно время и сколько урона они получат. Если им быстрее проломить стену, то ломаем стену. Если же им быстрее пройти через киллбокс, то получат ли они меньше урона от него, чем если будут ломать стену? Если больше, то опять же ломаем стену На вопрос «а как они будут понимать, что в киллбоксе получат больше урона?» скажу, наверное, банальную вещь. Все киллбоксы построены на статических элементах: турели, ловушки и так далее. Мы заранее можем определить, какой урон потенциально можем получить. Да, от передвигающейся опасности (поселенец с оружием) сложно просчитать заранее, но возвращаемся к тому, что киллбоксы построены на статических элементах Пример с киллбоксом из видео. Мы заранее знаем, что там есть кукуруза, которая наносит урон. Мы знаем, что она наносит урон каждые 5 секунд в размере 5 единиц. Всего такой кукурузы высажено, например, 10 штук. Чтобы пройти нам через этот киллбокс понадобится 60 секунд. Получается за это время мы получим 60 единиц урона с одной кукурузы, а значит со всего киллбокса 600 единиц урона Но из-за добавления генной инженерии появляется новый нюанс - знание об этом растении. Ранее такой кукурузы другие поселения не встречали, а значит они и не могут знать, что она наносит урон. А значит враг пойдёт через киллбокс, ибо для него там безопасно и проще. Но уже после пары таких рейдов (или после того, как подобный сорт оказался доступен не только нам) данная тактика будет известна врагу, и он заранее будет понимать, что через киллбокс идти опасно, а значит выберет вариант ломания стены Надеюсь, что всё понятно описал в своей идеи. Будут вопросы - пишите в комментах, я на них отвечу для лучшего понимая. Да и просто для разгона и улучшения идеи А если есть желание оставить киллбоксы, как вариант защиты, то подобную вещь можно добавить либо при настройке мира (условно добавить включение «улучшенная тактика рейдеров»), либо при выборе сложности
Если посмотреть все 5 серий моего ролика, то можно понять, что все мои идеи говорят о том, что от киллбоксов надо отказываться и делать то, что ты предложил. Пока что моя основная идея заключается в том, что у каждой клетки есть "счётчик смертей". Если к нам пришёл рейд из 100 человек, и 20 из них умерли на одной клетке, то остальные должны понять, что туда идти не надо
@@teedeezet Хм, видимо, я упустил это (или позабыл). И, черт возьми, идея с записыванием количества смертей на клетку звучит куда оптимизированнее моей идеи. И к ней куда проще прикрутить условное событие «разведка» у рейдеров. Круто!🔥 Мне в голову этот вариант даже близко не пришёл
Наконец-то мы дождались!
Очень здорово и в монтаже-подаче самих видео, и тем более интересно, как нарастает игра и идеи для неë! Уже год прошëл или сколько там с первого видео... И прогресс хоть не какой-то очень быстрый, но явно обдуманный и мне лично импанирует твой подход. Проще говоря, ждëм!
Не останавливайся, очень интересно и познавательно :)
Ролики с объяснением подкапотной механики работы разных проектов - это тот контент который действительно интересно смотреть начинающим разработчикам игр. Поэтому, мне очень нравится твой контент)
Спасибо тебе за работу, мужик, продолжай в том же духе, всё получится!
Удачи в развитии проекта 👍
Какое всё плавное, глаза говорят спасибо✊
Надеюсь у тебя все получится!👍
Абсолютно согласен про генную инженерию животных и пешек. Поиграл в Rimworld с новым DLC про гены и рождение - дальше одного поколения не шло ничего, потому как растут долго даже в таком урезанном виде. К концу игры дай бог первые дети вырастут. Ну и какое здесь может быть планирование, хз. С другой стороны... генная инженерия для животных и пешек может быть нужна не для обдуманного селекционирования, а для случайного, бездумного. В чём и будет заключаться прелесть и реиграбельность игры. Как в Darf Fortress. Генератор историй. Две собаки поженились и их дети стали уродцами и умерли, пешки расстроились, пришлось похоронить и пр.
Огонь! Давай-давай-давай. Круто. Ждëм! Мне как разрабу было интересно слушать)
Просто великолепно. На моих глазах ты создаёшь мою старую мечту о квинтесенции лучшего из римки и дварф фортреса❤
Такие видео очень вдохновляет меня на создание своих проектов (хоть я и ничего не умею). Удачи, бро. Уверен, у тебя всё получится!
Спасибо
Посмотрел все серии, мне очень понравилось. Спасибо за видосики!
нереально крутой монтаж. все по полочкам. красава!
Балуюсь себе с OpenGL, заскучал чего-то. Захожу, а там новая серия разработки Grim Wild. Спасибо за контент и вдохновение :)
Очень жду игру, проделанная работа впечатляет! Сам учусь на разработчика игр и поэтому понимаю насколько это тяжкий труд, главное не утонуть в рутине... Могу пожелать тебе только удачи и крепких нервов, чтоб код запускался с первого раза и задумки воплотились в жизнь.
Удивительный объем работы
Уже жду не дождусь как буду проектировать ловушки на рейдеров, удачи
Ура,мы дождались
Ура, новое видео, новая революция и новые показы технологий!
ООО даааа дождался видео о игре)
опа, это офигенно. сразу лайк
Безумно жду твою игру и каждый новый ролик очень познавателен и виден громаднейший труд, держу за тебя и гримвайлд лапки
Благодаря тебе начал разработку игр❤
Очень крутой проект получается. Продолжай в том же духе !
Красавчик коммент для продвижение удачи бро
Базаду! Прекрасный ролик объясняющий логические компоненты
Мы ждали, уже успели состариться, и вот - 5 серия Grim Wild!
Анимации и представление получились отличными. Надеюсь сообщество которое ты собираешь под конец разработки зарешает и сделает часть визуала, саунда и так далее.
Это прекрассно, продолжай в том же духе
Надеюсь в будущем все у тебя будет хорошо, удачи в геймдеве.
очень надеюсь, что увижу счастливое продолжение истории grim wild
смотрю каждое видео, все ещё поражает как ты в соло этим занимаешься, ты просто гений от мира геймдева, надеюсь не сгоришь и проект увидит свет!
Этот проект просто имба! Чувак, твои идеи и планы заслуживают уважения, а будущие игры ярким, чем у RimWorld. Продолжай в том же духе
Очень жду Grem W. очень интересно следить за продвижением стадий проекта! ❤
очень круто! Мне всегда не нравилось что в римке фракции почти не взаимодействуют между собой и не развиваются так как должны
Красава эээ! Продолжай в том же духе!
Надеюсь у тебя всё получится иди вперёд и мы тебя поддержим надеемся что всё пройдёт .
Боже мой! Идея с изменением фракции внутри одной игры - это гениально!!! Я ненавидел Rimworld именно из-за этого (в основном). Когда хочешь продолжить историю, но не можешь, из-за того, что фракция такая же
Даже как то позабыл а тут видео новое
ура, время ожидания не прошли зря!
Продолжай! Никто не делает таких проектов с такой красивой подачей)
как всегда всё на высшем уровне, надеюсь ситуация улучшится и разработка пойдёт легче
Ситуация и сейчас нормальная. Да, пришлось скорректировать планы, но это несмертельно
Ура наконец новый видос
Комментарий для продвежения! Очень интересно наблюдать за такими отчетами.
Тидизед,сделай экологию в Grim wild,механика простая:генераторы на угле,дереве,и т.д будут загрязнять атмосферу,взрывы и огонь тоже будут загрязнять атмосферу,но и нагревать планету(что может вызвать разные катаклизмы)также массовая охота на животных и вырубка деревьев может тоже навредить P.s другие фракции также могут вредить планете
Да, это уже давно в идеях
Урааа😊 новое видео
Я успел закончить школу пока вышло видео
Очень жду ваших роликов. Интересно наблюдать за развитием огромного проекта и по-возможности учиться. Было бы здорово, если бы было больше технических деталей, но даже без них объем работы над роликами впечатляет. Удачи!
Давай, давай, молодец! Побольше бы такого
лучший канал в сфере геймдева в снг уж точно, потрясает качество видео, а идеи и стремление их реализовать 100/100
Надеюсь у тебя все получиться❤❤❤❤❤❤
помоему я наконец-то смогу сказать, что за разработкой этой игры я следил с самого начала) блин будто вчера первую серию просмотрел, а уже почти год прошел ^^
Бомба фантастик, удачи с продолжением разработки :JoeNiceMan:
Смотрю с первой серии , но честно я и думать не мог , что проект не забросится через год. А ведь человек целый год совмещал с работой (Думаю врядли автору хватает денег с бусти и туба хотябы на еду) , с личной жизнью и прочим. Вообщем я в шоке , успехов во всём и большого везения!
"Там мы могли двигать камерой и приказывать людям ходить по разным клетка". Также я. - "Иди туда мой холоп, я приказываю тебе.". Я рад, что проект развиваеться. Жду недождусь, когда смогу погамать)
Ура, возвращение легенды.
ёмаё, я так и думал что через 3 дня выпустят видео!
Отличное видео! Смотря его я ловил себя на мыслях, что автор просто машина. Это ж надо, с кучей разных проблем успевать работать, изучать разработку и разрабатывать, так еще и делать видео, сценарий к нему писать и монтировать. Надеюсь что проект не умрет и дойдет до конца, удачи и успехов автору!
🤖
Комментарий для поддержки отличного видеоролика!
Даёшь больше видео по архитектуре проекта!
Эта идея с заимосвязанными ивентами крутая. Такого очевидно римке не хватает и было бы. Круто увидеть как кто то сделает мод по твоей концепции цепочек событий.
Опа, новое видео! Интересно :)
Воскресенье, самое время для нового ролика, чтобы новая неделя у всех началась хорошо
Ураааа наконец дождался)
Урааа ты жив :)
Мы ждём и верим, что Вы сможете закончить работу над проектом, только не останавливайтесь, я уверен Вы справитесь с всеми сложностями, как в разработке, так и в жизни
Подумал про картофель (да, странно, но такой уж я): что, если её реализовать чуть иначе? Та же картошка ИРЛ может быть размером с горох или с кулак. Так, может, привязать калории не к виду «картофель», а к массе, что 1 кг - сколько-то ккал? А дальше это позволит рандомизировать и навешивать эффекты. Вот, например, мод, с которым картошку можно селекционировать. И тогда с куста их столько же в штуках (в среднем), но они с кулак, а не с горох: больше средняя масса каждой картофелины->больше питательности с куста без необходимости моддеру прикручивать 100 вариантов различающейся только питательностью «картошки:56». Этот подход в свое время покалечил майнкрафт, и потребовался глубинный рефакторинг, чтобы такое убрать. Туда же - возможность задавать каждой картофелине дополнительные атрибуты индивидуально. То есть (опять же, пример мода или фичи), чем дольше лежит на свету, тем выше у картофеля получить свойство «позеленевшая» (шанс отравиться). Понимаю, что это может ударить по производительности по сравнению с вашей схемой «все картофелины одинаковы и взаимозаменяемы», но тот же римворлд с этим как-то справляется, позволяя запоминать параметры и свойства (хотя бы некоторые, вроде времени до гниения) для каждой конкретной картофелины из тысяч, и ничего страшного не происходит.
Индивидуальные компоненты определённой картошке пристыковать можно. Про привязку калорийности к массе ничего сказать не могу
Очень жду игры! Надеюсь, не забросишь её разработку!
Блин, вы задели мой белорусский дух, автор явно знает , что-то про картошку.
бро, не забрасывай проект!!
ура новый выпуск!😍
1 видео заменяет часы уроков информатики
многообещающе👍
лучший симулятор хождения пешками получает апдейт! прекрасно
Хмм... Видео интересное, и мотивирующие. Спасибо
Омагат новая серия