Gamedev


Ответить в тред Ответить в тред

<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
51 15 26

Говорят рогалики можно кирилить десятилетиями. #2 Поехали! https://arhivach.ng/thread/441819/ #1 Аноним # OP 19/05/20 Втр 11:10:52 6710181
image.png (46Кб, 1115x1003)
1115x1003
Аноним 19/05/20 Втр 11:37:28 6710222
19/05/20 Втр 13:50:52 6710773
Аноним 19/05/20 Втр 14:03:03 6710844
>>671077
Нихуя ты вспыхнул
16pixel 24/05/20 Вск 21:15:17 6724745
progress3.gif (620Кб, 1113x631)
1113x631
progress2.gif (1080Кб, 1113x630)
1113x630
progress.gif (404Кб, 1113x630)
1113x630
Такс, что тут у нас за неделю:

Сделал отрисовку инвентаря. Переделал сам инвентарь, вынеся его в отдельный класс, потому что начал охреневать от количества функций класса creature.

Прошел все круги ада с адекватной реализацией функций "подними/выброси/используй/экипируй предмет" - и это я еще функцию "метни предмет" сознательно проигнорировал. Под это дело пришлось также перерабатывать обработку ввода команд.

Сделал нормально переход с этажа на этаж. Нормально = через лестницы и с сохранением персонажа.

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

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

Вывел полоску ХП и ее расчет на экран, сделал лечилки. А, и заодно сделал возможность умереть и ньюгейм после этого. Теперь формально это действительно рогалик. Делать в игре по-прежнему почти нефиг, но зато появилось ощущение некоего интереса ну или я просто упоролся уже.

А ваши дела как?
Аноним 25/05/20 Пнд 05:57:27 6725456
>>672474
>А ваши дела как?
хуже твоих
16pixel 30/05/20 Суб 19:27:25 6736527
progress4.gif (2218Кб, 1113x630)
1113x630
Вопрос бывалым - чем вообще занять себя в данже? У меня какой-то блок наступил, после того, как я ловушки сделал. Есть какие-то интересные механики кроме "пизди монстров - собирай голду"? inb4 можно трупы жрать
Аноним 30/05/20 Суб 21:03:55 6736608
>>673652
Качаться же. У тебя какая система ролевая (есть ли вообще)?
Сделай стрельбу, смену оружия, разных монстров.
Вообще, хорошо делаешь, надо разгребать работу и тебя догонять.
>>669124 →-кун
Аноним 30/05/20 Суб 21:09:48 6736619
>>673652
> Вопрос бывалым - чем вообще занять себя в данже?
Секретные комнаты

Предметы которые игроку не помогут, но могут ввести в игру некий "лор" (какие-нибудь свитки с текстами)

Какая-нибудь скрытая последовательность которая приведёт к некоему эвенту
Например потушить все факелы (или зажечь) в подземелье откроет куда-то проход
Аноним 30/05/20 Суб 21:13:21 67366410
>>673652
сделай чтоб можно было монстров насиловать
16pixel 31/05/20 Вск 01:04:15 67371111
progress5.gif (19272Кб, 1113x630)
1113x630
>>673664
Лол, как только я написал прошлый пост, я подумал что вот это самое мне и насоветуют в первую очередь. Если объяснишь как это геймплейно оправдать, попробую ебануть

>>673661
Секретные комнаты - уже сделал. Открытие их по событию тоже сделал - пока выбор из двух вариантов, может рычаг сгенериться где-нибудь, а может скрытая плита в полу.

Про лор пока вообще не думал, хотел сначала механики реализовать пока они внезапно в голове не закончились.
А с факелами зачет идея, спасибо. Возьму в работу Это что, освещение лепить? И сами факелы нужно рисовать, а чтобы норм было надо анимацию делать нормальной а не через жопу, бляяяяя в целом наверное в brogue че-нить можно подсмотреть как будто я недостаточно пиздил из pixel dungeon

>>673660
Точно, качаться! Пока никакую не использую, все больше велосипедю. Все налеплено от балды - от хп монстров до дамага оружия. Есть чего посоветовать почитать на тему?
Смена оружия есть (даже на гифке к прошлому посту), стрельбу - да, найс идея, даже прикинул, как можно сделать - попробую.

Спасибо котаны, добавил в бэклог, лол.

>Вообще, хорошо делаешь, надо разгребать работу и тебя догонять.

Давай конечно! А то я себя чувствую Семеном в треде. Нужно больше рогаликов.
Аноним 31/05/20 Вск 01:29:32 67372512
.png (254Кб, 642x600)
642x600
Аноним 31/05/20 Вск 01:31:51 67372713
>>673725
Или просто спрайт круга рисовать который чуть мерцает
Аноним 31/05/20 Вск 09:39:18 67374814
Аноним 31/05/20 Вск 13:07:57 67377815
>>673711
>Если объяснишь как это геймплейно оправдать, попробую ебануть
Это и есть геймплей. Подкрадываешься к монстрам и ебёшь их.
16pixel 31/05/20 Вск 16:07:55 67383116
was-is.png (32Кб, 669x760)
669x760
>>673748
Познавательно, почитал. Переделал расчет урона. Хотя я не сильно испытывал неудобство с предыдущим, нормальное распределение выглядит получше.
Но когда ты говорил про прокачку, я думал ты про левелинг какой-нибудь - на каком уровне как происходит прирост хп и статов, и т.д.

Аноним 01/06/20 Пнд 23:45:51 67413717
>>673778
Или они тебя, как в старой, доброй и классичееской «Watch out you behind hunter!» Вообще можно было бы развить идею той игры. А лор, что это силы тьмы масоны педофилы и тебе надо как воину альянса спасти детей от педофилов - рептилоидов из подземелий. Уф бля! Адренохрома ебануть надо.
Аноним 02/06/20 Втр 14:58:33 67422018
>>674137
>>673778
Если ОП не хочет делать такую игру, я сам сделаю. Или нет
16pixel 03/06/20 Срд 21:53:07 67458419
progress.gif (255Кб, 1113x631)
1113x631
Такс ну короче сделал возможность иметь разные тайлсеты на разных уровнях и возможность бросать предметы. Та же механика будет использоваться для стрельбы, спеллкастинга и хз чего еще, потенциально даже ходить можно через нее.

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

Короче, как сделано на текущий момент:
У меня есть действия, которые тратят ход и есть действия, которые не тратят. Например, move тратит ход, а открытие инвентаря - нет.

Я ввел для игрока стейты (states, состояния): "обычное", "копаюсь_в_инвентаре", "выбираю_цель_для_броска". Сделано это для того, чтобы можно было одни и те же кнопки действий использовать по-разному и не конфликтовать.
Еще сделал новый класс pointer, который создается, когда игрок входит в стейт "выбираю_цель_для_броска" и удаляется, когда игрок из него выходит. Для pointer сделал отдельный move, который позволяет перемещать его по тайлам только в поле зрения (fov) игрока. Этот move не тратит ход.

Итак:
Игрок находится в состоянии "обычное".
Открываешь инвентарь - игрок переходит в состояние "копаюсь в инвентаре". В этом стейте кнопки которые обычно отвечают за перемещение, отвечают за скроллинг инвентаря.
Жмешь кнопку "метнуть предмет". игрок переходит в стейт "выбираю_цель_для_броска". Инвентарь закрывается. Создается новый pointer, положение по умолчанию - тайл, на котором стоит игрок.
Двигаешь поинтер кнопками, жмешь кнопку броска - происходит действие броска и переход в стейт по умолчанию, поинтер удаляется. Отмена - также реализована, но без броска.

Как такие вещи по нормальному делать?
Аноним 04/06/20 Чтв 11:47:18 67463920
>>674584
А щас-то чё на по нормальному? Работает - значит норма.
>Еще сделал новый класс pointer, который создается, когда игрок входит в стейт "выбираю_цель_для_броска" и удаляется, когда игрок из него выходит. Для pointer сделал отдельный move, который позволяет перемещать его
Делал также. Только перемещение не ограничивал.
А ты зачем? У тебя же FOV и FOW. Всё равно чего не надо не увидит. У кидать предметы/стрелять в пустоту иногда нужно или весело. Помнишь как в UFO было?
Аноним 04/06/20 Чтв 11:48:33 67464021
>>674584
Алсо, посмотри Doom Roguelike. Там идеальная стрельба и вообще боёвка. Но, насколько я помню, там +- так же как у тебя механика стрельбы реализована.
16pixel 04/06/20 Чтв 17:48:49 67470322
>>674639
Ну, на самом деле перемещение по fov это костыль, потому что по сути происходит не бросок предмета а удаление его из инвентаря и добавление на выбранный тайл. Если не ограничивать, то легко можно, например, в соседнюю комнату телепортнуть предмет.

Чтобы нормально сделать бросок, надо наверное кастить прямой луч с позиции игрока до выбранного тайла, и где он прерывается по пути к тайлу(стена там или моб), там и спавнить предмет. Кстати, это довольно неплохая идея...

>>674640
Не знал что Doom RL с открытыми исходниками лежит, кстати. Ознакомлюсь обязательно.
16pixel 05/06/20 Птн 22:13:40 67497723
progress.gif (1146Кб, 1113x630)
1113x630
line drawing.png (31Кб, 750x882)
750x882
Такс, во-первых, отлично задрочил DoomRL. Нраица.

Во-вторых - про
>кастить прямой луч с позиции игрока до выбранного тайла
я сделяль. Подход использовал с https://www.redblobgames.com/grids/line-drawing.html. Код на питоне и гифон процесса - на скринах. Как будто змею выпускает, лол, збс


Аноним 05/06/20 Птн 22:40:58 67498724
>>674137
Ещё можно сделать, чтоб можно было перейти на сторону педофилов.
16pixel 07/06/20 Вск 03:26:54 67515925
progress.gif (644Кб, 1113x630)
1113x630
progress2.gif (1798Кб, 1113x630)
1113x630
Пофиксил броски и управление прицелом. Теперь бросок остановится перед закрытой дверью или стеной, а прицел можно перемещать как угодно вокруг, в рамках +-8 тайлов.
Еще сделал запоминание последней цели, если бросок был не просто в тайл, а в монстра - также в DoomRL происходит при стрельбе. Собственно, похоже у меня готова стрельба. Осталось пушку добавить.
Аноним 07/06/20 Вск 11:39:45 67518426
>>675159
Красавчик, что тут ещё можно сказать?
16pixel 08/06/20 Пнд 15:27:28 67543827
progress.gif (1381Кб, 1047x637)
1047x637
>>675184
Спасибо!
Буду пореже постить, а то весь тред засрал.

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

Кстати, 16 числа на r/roguelikedev будет очередной tutorial series - https://www.reddit.com/r/roguelikedev/comments/grccvt/roguelikedev_does_the_complete_roguelike_tutorial/
Аноним 08/06/20 Пнд 21:41:24 67549228
Допустим, хочу написать рогалик, кодить не умею. Начинаю гуглить и нахожу миллион туториалов по написанию рогалика на питоне. Но анон о питоне отзывается с насмешкой. Тогда встает вопрос, на чем же писать, какой язык учить. Мне важен сам процесс создания чего-то типа своей dwarf fortress. Чтобы она быстро работала, мало весила, легко расширялась. Ни для чего другого кодить не собираюсь, только вот такую игру, типа рогалик, но с глобальной симуляцией. Чего анон посоветует?
Аноним 08/06/20 Пнд 22:22:47 67550729
>>675492
> какой язык учить
> Мне важен сам процесс создания чего-то типа своей dwarf fortress
Тогда учи язык, а не игру делай
Аноним 08/06/20 Пнд 23:52:05 67552930
>>675492
>анон о питоне отзывается с насмешкой
О БОЖЕ, КАКОЙ УЖОС!!!
>быстро работала, мало весила
C++, asm
Аноним 08/06/20 Пнд 23:52:59 67553031
>>675438
>Буду пореже постить, а то весь тред засрал.
Нет. Это называется "годный контент".
16pixel 09/06/20 Втр 00:10:10 67553232
progress.gif (4251Кб, 1046x637)
1046x637
>>675492
Ты это я в январе этого года.
Когда я только начал, я очень плохо знал язык и ничего не кодил ни разу толком. И рогаль начал пилить исключительно с целью научиться. А теперь хуярю тонны говнокода как не в себя, ссука, как это выключить

Короче раз уж я состоявшийся рогаликописатель, бля, только не бейте посоны, вот тебе мое экспертное мнение:

1. Поставил цель - держись ее. Не слушай анонов которые говорят тебе выучить другой язык, применить другую парадигму, говна пожрать и так далее. Хочешь кодить - начинай. Хочешь на питоне - возьми питон. Мой рогаль - на питоне. В r/roguelikedev в основном советуют начинать на питоне. Ничего плохого не вижу пока. Хотя если ты хочешь рогаль писать только для того, чтобы тебя аноны уважали, то конечно начинай сразу на расте, телки течь будут, шишка встанет и уйдет, забьешь на программирование нахуй, успех короче.
2. Подучи язык. >>675507-анон в чем-то прав. Мне охуенно помог курс на repl.it (вот этот - https://repl.it/student/classrooms/17929). Без ебанины, сидишь, решаешь задачки, от мегапростых (допиши принт) до довольно головоломных - и заодно учишь основные структуры и термины, и руку набиваешь. И нет резких скачков типа "нарисуй два овала - нарисуй остальную сову".
3. Уменьшай цель. Чтобы сделать ДФ, нужно сделать 10 обычных рогаликов. Тарн до ДФ дохера игр наговнокодил (пруф - https://www.youtube.com/watch?v=ZMRsScwdPcE). Kyzrati убил 10000 часов на игру которую даже не выпустил, до того как сделал cogmind (https://www.youtube.com/watch?v=9yJflbg0V38), а теперь он с него живет. Поставь для начала цель сделать простую игру - рандомный лабиринт, игрок, перемещение. Хотя бы с этого начни.
4. Задавай себе вопросы, ставь маленькие цели. Я ни один туториал не прошел до конца - либо моего мозга хватало только на половину того, что в них показывают, либо другая крайность, вида "возьми библиотеку типа tcod, напиши "import roguelike" и у тебя готов охуенный рогалик." Это не научит тебя ничему. Есть другой вариант: спрашивай себя "а как я могу реализовать вот это или вон то? Как сделать карту? Как сгенерить рандомные комнаты на карте? Как их соединить коридорами? Как сделать, чтобы они не пересекались?" И т.д. и т.п.
Думай, гугли, смотри видосы, читай статьи, спрашивай анонов. Здесь дают охуенные советы Ну или залупу на воротник накидывают, тоже бывает, это психотронная тюрьма, что ты хотел . И не пойми меня неверно, туториалы тоже смотри. Впитывай инфу.
5. Ну и старайся делать то, что тебе интересно. Я реально в эту тему влез, потому что всего лишь интересно было сделать лабиринт из квадратных комнат рандомно сгенеренный, и на экран его вывести. А потом было интересно, как походить по нему. А потом сделать комнаты не квадратные. А потом я посмотрел https://youtu.be/Uo9-IcHhq_w... Ну ты понял.

И в тред пиши. Особенно про прогресс. Будешь семеном, как я.
Аноним 09/06/20 Втр 02:23:12 67555333
Аноним 09/06/20 Втр 08:57:01 67561534
>>675529
>>675532
Ок. Вы одно не поняли: мне неважно, какой язык анон считает самым лучшим - важно только то, на каком, по его прикидкам, оптимально делать такой рогалик. И не как первый блин, а вообще, потому что для меня не стоит никакого дедлайна и я не стремлюсь зарабатывать 300кк в наносекунду кодигом никогда. Вот буду сидеть и ковырять плюсы, например, несколько лет, пока простейшую генерацию пещер сделаю - меня это устраивает, если в итоге это пойдет на пользу игре.
>>675507
>учи язык
>какой не знаю
Аноним 09/06/20 Втр 09:11:15 67562035
Аноним 09/06/20 Втр 10:02:17 67562236
>>675620
Скобку с точкой убери
Аноним 09/06/20 Втр 10:54:37 67562837
>>675622
Пчел, специально без скобочки с точкой зацитировал же.
Аноним 09/06/20 Втр 11:20:57 67563738
>>675628
У меня открылось. Попробуй зарегаться.
Или зайти на https://repl.it/student и поискать Auto-Graded Course with Solutions (python)
Аноним 09/06/20 Втр 11:33:52 67563939
87654876549764.gif (263Кб, 512x288)
512x288
Аноним 11/06/20 Чтв 14:52:37 67608140
>>675615
Предлагаю тебе язык Rust. Сам горю такой же идеей как и у тебя. Но покатолько много накириллил
16pixel 12/06/20 Птн 01:21:58 67616241
progress.gif (4470Кб, 1047x636)
1047x636
Сделал освещение и факелы. Анон, который это предложил - респект тебе, отличная идея была, да и получилось даже лучше, чем я ожидал. Правда фреймрейт падает чем больше карты отрисовано, так что надо оптимизировать, да.

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

Еще переделал анимацию - сделал отдельную функцию, которая по тику в игровом цикле сменяет кадры каждому энтити. Следовательно, начал потихоньку вкуривать в системы, которые S в ECS. Отслеживание уровня освещения тут же засунул во вторую систему.
Аноним 14/06/20 Вск 03:06:45 67651542
.png (38Кб, 552x486)
552x486
>>676162
У тебя как-то странно факелы освещают через стенку?
Аноним 14/06/20 Вск 11:28:49 67654343
>>676515
Вангую, что это отражённые лучи через дверь. ВАУ, РТХ!!!
Аноним 14/06/20 Вск 11:39:03 67654744
>>676543
Просто в той комнате тоже могут быть факелы.
16pixel 15/06/20 Пнд 00:28:32 67668345
progress.gif (2847Кб, 1046x637)
1046x637
Просто лучи света проходят сквозь стены и двери. Согласен, так себе решение, но если их останавливать стенами - выглядит это еще хуже.

Может можно накостылить кастинг лучей света только в одну комнату, но комнаты часто генерятся как на пикрил - когда разделение одной стеной - так что хз что с этим делать
Аноним 18/06/20 Чтв 06:05:24 67742146
>>676683

Какие пакеты-фреймворки?
Тоже хочу на питоне рогалик писать, ты меня замотивировал.
Аноним 18/06/20 Чтв 09:18:59 67742647
>>677421
Он же вроде писал, что PyGame.
16pixel 19/06/20 Птн 00:28:36 67760148
Все так, без пакетов и фреймворков, чистый питон + pygame
Аноним 22/06/20 Пнд 07:51:20 67816449
16pixel 23/06/20 Втр 01:22:09 67833250
>>678164
Вообще без проблем, а цель какая? Там такая содомия, что хоть санитаров вызывай мало что понятно, если ты не я.

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

Ссылку на код кину, как с компа зайду и залью в гит какой-нибудь
Аноним 24/06/20 Срд 05:18:59 67846751
>>678332
>цель какая?
Интересны некоторые способы реализации, которые сам не вдупляю немного.
Например, движение камеры или героя неужто нет ничего лучше чем все остальные объекты сдвигать в противоположную сторону (если герой всегда по центру) и как оно всё влияет на поиск пути и прочую парашу.
>Надо?
Давай.
Аноним 20/07/20 Пнд 18:30:50 68376252
почему тред умер?
неужели рогалики больше никому не интересны?
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов