Главная Юзердоски Каталог Трекер NSFW Настройки

Gamedev

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 34 12 16
Tiny 2D RPG Аноним # OP 07/07/20 Втр 07:16:35 681243 1
1ab5d07a76f4103[...].png 29Кб, 112x112
112x112
Сегодня решил сделать маленькую игру - вот прям сейчас сел и начал (так что не спрашиваете где тут демо, где тут скрины, где тут код - ничего нет).

Здесь буду вести дневник. Постараюсь не тянуть и сделать побыстрее... Но как получится.

=================================================
Жанрово это будет что-то типа рогалика-песочницы-рпг. Никакого сюжета, никаких целей.
Фишкой будет минимализм указанный в названии.
Примерный геймплей - у игрока есть хаб, из него он отправляется в данжи за лутом. В хабе он занимается всяким крафтом.
Остальное в геймплее по мере разработки, сейчас важнее базовые вещи сделать.

=================================================
Вдохновением в визуальном и геймплейном плане являются:
- forager
- Archvale (https://www.youtube.com/watch?v=P3T81N-b25Y) - хочу такой же быстрый геймплей
- dark souls - атмосфера

=================================================
Техническое
Репозиторий: https://github.com/deltafran/Tiny2DRPG
Язык: С++
IDE: Visual Studio 2019
Фреймворк: Raylib
Редактор карт: Tiled
Платформы: сейчас Windows (в будущем возможно Android и браузеры, Linux)

Я скорее программист, поэтому будет мало картинок и красивостей.

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

я собрал и проверил работу Raylib. Теперь надо подкрутить загрузку Tiled карты

=================================================
Вопросы

Почему не X движок?
Для таких проектов движки не нужны. Фреймворка хватит (фреймворк тоже не нужен, но мне лень возится с окнами, логами, спрайтами).

Почему С++, а не X?
Потому что я знаю C++, но не знаю X.

О скриптах типа луа/питон?
Не нужно. Вся логика будет на С++ (я не знаю луа/питон/etc).

О ecs?
Заметил что на дваче этим страдают. Но скорее всего нет, не нужно. Но посмотрим.
Аноним 07/07/20 Втр 12:39:37 681349 2
>>681330
В основном просто захотелось попробовать новенький raylib. Да и сообщество в дискорде у них активное, можно сразу спрашивать и получать ответ.
Аноним 07/07/20 Втр 15:10:19 681379 3
>>681330
Вангую, что ни одного скриншота ты не дождёшься.
Аноним 07/07/20 Втр 16:25:25 681399 4
изображение.png 33Кб, 887x679
887x679
>>681379
Ну вот первый скриншот

Доделал загрузку карты из tiled редактора. Ну и всякое по мелочи связанное с загрузкой карты и текстур

Уже завтра планирую сделать анимированные спрайты (и добить проблемы загрузчика tiled карт)

И где-то дальше можно сделать бегающего по карте человечка
Аноним 07/07/20 Втр 16:36:05 681400 5
изображение.png 32Кб, 818x656
818x656
На все окно
(сделал возможность масштабировать)
Аноним 07/07/20 Втр 17:47:32 681417 6
>>681243 (OP)
Удачи, анонче
Если релиз будет на Линуксах, я бы заценил
Аноним 08/07/20 Срд 00:46:10 681443 7
>>681400
Тайлсет откуда? Выглядит интересно. Удачи с проектом)
Аноним # OP 08/07/20 Срд 02:01:14 681447 8
Аноним # OP 08/07/20 Срд 09:19:19 681458 9
Сегодня получилось много кода
Пошерстил гитхабы на примеры, выдрал реализацию спрайта, буфера глубины для сортировки спрайтов (удобная штука) и аниматора.
Но сейчас приходится переписывать этот код под себя, так как не совсем точно то что мне надо.

Вытащил спрайты из forager. Собственно думаю, что пока нет своих спрайтов, юзать их. Это конечно нельзя и не законно - но кого это вообще волнует?

В идеале, в эти дни я хочу сделать такую же демку как на этом видео https://www.youtube.com/watch?v=omNRce_Xbnw


И сразу вопрос, кто-нибудь знает где взять такую же липкую камеру как в forager (и вроде на этом видосе). На любом движке, мне все равно.

Просто такая немножко не поспевающая за персонажем камера как раз и создает ощущение быстрого движения
q 08/07/20 Срд 14:25:51 681496 10
image.png 196Кб, 480x360
480x360
>>681243 (OP)
>Сегодня решил сделать маленькую игру
>Вдохновением в визуальном и геймплейном плане являются:
>- dark souls - атмосфера
Аноним 08/07/20 Срд 15:07:44 681503 11
дальше думой сам.png 4Кб, 753x132
753x132
плавненько.webm 881Кб, 1074x596, 00:00:16
1074x596
>>681243 (OP)
>Сегодня решил сделать маленькую игру - вот прям сейчас сел и начал
>>681458
>Пошерстил гитхабы на примеры, выдрал реализацию
>Вытащил спрайты
>где взять такую же липкую камеру
Ясно всё с тобой, ассет-флиппер от движкопись. Ты позоришь сам дух велосипедостроения, тьфу на тебя.

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

>липкую камеру
Это настолько тривиально, что мне даже лень тебе объяснять. Вкрутил эту фичу в свой "движок" за 5 минут.
Аноним 08/07/20 Срд 23:49:46 681597 12
>>681458
Ебашь, анонче. Похуй на нытиков.
Аноним # OP 09/07/20 Чтв 09:17:13 681623 13
>>681503
>Ты позоришь сам дух велосипедостроения, тьфу на тебя.
В велосипедстве велосипеды стоит писать там, где понимаешь что делаешь.

>>681567
>Отписался от треда
Зря-зря. Тред то про разработку игру, а не велосипеды движка.
Аноним # OP 09/07/20 Чтв 09:23:43 681625 14
изображение.png 131Кб, 1070x709
1070x709
Сегодня продолжаю облагораживать фреймворк для дальнейшей работы.
В своем проекте я хочу динамическое шейдерное освещение (ну и возможно еще какие-нибудь фишки на шейдерах). Вот прикрутил

Кстати, raylib в этом плане приятно радует - не понимаю как они этого добились, но очень легко сделать экранный шейдер, или шейдер для спрайта


Еще обдумывал о том как сделать анимации. Вроде в голове что-то вырисовывается. Это пока что последняя задача из кода фреймворка, дальше вплотную займусь геймплеем (а именно движение игрока, взмах оружия, враг, взаимодействие с окружением и врагом)
Аноним 09/07/20 Чтв 11:59:01 681647 15
>>681243 (OP)

Говно. Жанр - говно и графика отстойная. Задолбали с этим жанром уже. Куда ни кинь - всё одинаковое
Аноним 09/07/20 Чтв 13:09:59 681667 16
>>681623
>В велосипедстве велосипеды стоит писать там, где понимаешь что делаешь.
То есть
>реализацию спрайта, буфера глубины для сортировки спрайтов и аниматора
>липкую камеру
ты не понимаешь? Это ж вроде тривиальные вещи, тем более с готовым фреймворком.

>>681647
>графика отстойная
>Куда ни кинь - всё одинаковое
Это всё потому, что он
>Вытащил спрайты
Рисовал бы сам - может получилось бы что-то поинтереснее.
Аноним 09/07/20 Чтв 15:24:48 681688 17
icevideo2020070[...].webm 6148Кб, 1392x880, 00:00:11
1392x880
Доделал класс анимаций (класс умеет хранить несколько наборов анимаций и переключаться между ними)
Набросал первое движение перса
Извиняюсь за музыку в ролике, забыл выключить (я под нее кодил))) ), а сейчас уже спать иду.

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

>>681667
>ты не понимаешь?
У каждого движка/фреймворка свои особенности, raylib я не знаю, учусь по мере делания проекта.

>>681667
>Рисовал бы сам - может получилось бы что-то поинтереснее.
Когда-нибудь возможно я нарисую графику, но прям щас я кодю.
09/07/20 Чтв 16:08:37 681701 18
>>681688
Че за пиксельное аниме, сделай что-нибудь русское там из пластилина или шерстяных кукол графику.
Аноним 09/07/20 Чтв 22:46:31 681818 19
>>681688
А что ты там, собственно, кодишь?
Всё, что ты тут пока что описал, я сделаю в гамаке за 30 минут. В том числе и "липкую камеру" на которую ты ассет ищешь, блеат.

И вообще ты не тру велосипедист.Садись писать свои либы, чего ты чужие подключаешь?

Доставьте ёвамуси педал.webm
Аноним # OP 10/07/20 Птн 03:33:35 681878 20
>>681818
>А что ты там, собственно, кодишь?
1 день - подключал raylib. Начинал работу с загрузкой из tiled
2 день - доделал загрузку из tiled, начал анимацию/удобные спрайты/загрузчик ресурсов
3 день - доделал анимации и все что начинал ранее

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

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

Тот же формат карт из tiled - очень сложный, с разными нюансами
С анимациями - ведь недостаточно просто пробежаться от лева направо по тайлсету анимации, надо еще учитывать тайминги, иметь возможность ставить на паузу, сменять на другой тайлсет
Аноним 10/07/20 Птн 03:38:49 681880 21
>>681818
>А что ты там, собственно, кодишь?
Ты можешь сам посмотреть его код: >>681243 (OP)
>Репозиторий: https://github.com/deltafran/Tiny2DRPG
Я так понимаю, основной код игры нужно смотреть в /code/Game/

>>681818
>Садись писать свои либы, чего ты чужие подключаешь?
Читай его пост внимательнее >>681243 (OP)
>Постараюсь не тянуть и сделать побыстрее
>Для таких проектов движки не нужны. Фреймворка хватит
>мне лень возится с окнами, логами, спрайтами
tl;dr: движок не нужен, но нужно быстро и лень возиться
Это как IKEA, берём кусочки кода и собираем готовую программу)
Аноним 10/07/20 Птн 03:48:02 681882 22
>>681878
>Тот же формат карт из tiled - очень сложный, с разными нюансами
Tiled позволяет экспортировать в JSON, который ты наверняка можешь прочитать штатными средствами C++ (т.е. нужно только знать необходимые тебе ключи), к тому же можно экспортировать только собственно сетку тайлов и всё. Смысла в поддержке всех прибамбасов Tiled для конкретной игры мало, ты же не универсальный движок разрабатываешь. То же касается анимации и т.п. - нужно смотреть на конкретную задачу и решать только её, а не все возможные её модификации сразу.

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

Извини, если слишком критикую. Просто как-то задело за живое.
Аноним 10/07/20 Птн 05:25:46 681890 23
>>681880
>Это как IKEA, берём кусочки кода и собираем готовую программу)
Но ведь оно работает, а игрокам разницы нет.

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

>>681882
>Сделать игру любыми средствами
this, но также замечу что любыми средствами, но в пределах С++ языка (так как другие ЯП я не знаю)
Аноним 10/07/20 Птн 05:37:56 681891 24
icevideo2020071[...].webm 5193Кб, 1162x724, 00:00:11
1162x724
Выделил персонажа в отдельный класс Player
Сделал два вида анимаций - стояние и движение. При этом теперь работает в 4 направлениях.

Теперь сажусь за коллизии.
Аноним 10/07/20 Птн 05:39:08 681892 25
блин, почему метка ОПа отвалилась? Как сейчас на двачах оп ставится?
Аноним # OP 10/07/20 Птн 09:45:30 681899 26
icevideo2020071[...].webm 20509Кб, 1098x776, 00:00:38
1098x776
изображение.png 14Кб, 538x430
538x430
Механизм коллизий работает. Также сделал несколько слоев карты (чтобы персонаж ходил за деревьями).

Переделал карту. Теперь TiledMap просто грузит из tiled. А реальная карта в Map не привязана к файлу мапы и может по разному грузится (ну и код будет проще, но не сейчас - сейчас там такой копипастовый говнокод... завтра буду переписывать)

Ну и статистика:
Работаю 4 день (ранее не имея опыта в таком стеке, все для меня новое)
20 коммитов на гитхабе (не считая первый пустой)
2476 строк основного кода (ну тут итоговый код, еще было много временного кода, когда я что-то изучаю и проверяю, этот код удаляется)

Теперь надо:
- привязать карту к персонажу и сделать ее липкой
- вывести взмах оружия как в forager и клонах
- ввести вражеского моба
- сделать преследование игрока мобом
- ну и боевку между ними
Аноним 10/07/20 Птн 14:18:05 681973 27
>>681899
>Теперь надо:
Плохой план, пункты разного уровня сложности. Инертная камера с привязкой к игроку делается быстро, взмах оружием тоже; моб и логика его поведения - намного сложнее, а "боёвка" вообще подразумевает много работы, если это не примитив какой-то.

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

>>681890
Я понял твою позицию, всё норм. Сам хотел бы точно так же лепить игры на коленке, как пытался делать это лет восемь назад (кончилось всё лапшой, в которой я запутался), но мой перфекционизм не даёт мне уклониться от разработки "правильной архитектуры", и в итоге я застреваю на создании движка и проблемах выбранной архитектуры (и её преждевременной оптимизации)...
10/07/20 Птн 17:11:32 682046 28
>>681973
разработка это принятие огромного количества сложных решений.
перфекционизм это форма эскапизма, ухода от сложных некрасивых решений.
отводишь время на принятие решения и если не получается норм, то делаешь как проще.
Аноним # OP 13/07/20 Пнд 10:05:21 682540 29
Аноны, я не пропал. У меня близкий знакомый умер, не до игр сейчас.
Поэтому в ближайшее время будут либо паузы, либо очень мало работы (но надеюсь максимум на неделю)
Аноним 11/10/21 Пнд 15:41:46 772511 30
>>682540
>Аноны, я не пропал. У меня близкий знакомый умер, не до игр сейчас.
Поэтому в ближайшее время будут либо паузы, либо очень мало работы (но надеюсь максимум на неделю)
Как прогресс ОПчик?
Аноним 07/03/23 Втр 14:24:39 869059 31
>>682540
Восстановился после удара?
Аноним 07/03/23 Втр 14:39:06 869064 32
Аноним 07/03/23 Втр 15:31:22 869068 33
16604279368760.gif 2469Кб, 225x255
225x255
>>869059
Некромант раскопал драму.

Чел делал игру, а потом у него от этого друг умер.
Аноним 07/03/23 Втр 16:28:05 869075 34
Ответить в тред Ответить в тред

Check this out!

Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов