Исповедь начинающего геймдевелопера.

Темы, связанные с проектированием и программированием roguelike-игр

Модераторы: Sanja, Максим Кич

Аватара пользователя
Loinon
Сообщения: 43
Зарегистрирован: 19 июл 2016, 18:20

Re: Исповедь начинающего геймдевелопера.

Сообщение Loinon » 21 ноя 2016, 15:26

Artorias писал(а):То есть, если что-то годами не вылезает из головы - это твоё, и его можно считать надежным заделом для творчества.
Надеюсь, что так. В целом, вы правы... Мысль создания игры вынашивалась годами. Для этого и начал изучать программирование. Сначала космо-симулятор в юнити, потом рогалики на разные тематики (от терминатора до игры престолов). Когда созреваешь, в один прекрасный день понимаешь, что пора бы уже начать делать игру мечты) И видеть то, как она растет - это как идти к своей мечте. Мотивирует, в общем.
Стоит только захотеть...

Аватара пользователя
Loinon
Сообщения: 43
Зарегистрирован: 19 июл 2016, 18:20

Re: Исповедь начинающего геймдевелопера.

Сообщение Loinon » 21 ноя 2016, 23:28

Итак, отважно пробираясь через нечитабельный код и пару костылей, я сделал полноценный (почти) дискретный FOV. Почему почти? Потому что чертова стыковка октантов на диагоналях не позволяет мне задать видимость в уже известную половину. По сути, из-за него пришлось сделать костыль, чтобы это не было так заметно, когда стоишь впритык двух диагонально расположенных стен. Есть еще некоторые смежные, с этим артефакты, когда центр с углом препятствия образуют угол в 45 градусов. Как считаете, нужно ли это решать сейчас или начать двигаться дальше?
Ну, а чтобы было что пощупать прикладываю демку FOV'a.
Для запуска нужен Net Framework 4.5.
Поле из 80х60 клеток, стенки появляются рандомно при запуске.
Клавиши q и e регулируют радиус.
Мышкой передвигаете центр.
Стрелочками можете управлять появляющимся из воздуха в центре карты препятствием (только не выходите за пределы карты с ним, забыл поставить условия)
Можете также переразмерять окно (кстати, оно сохраняет свой размер при закрытии).
Выходим эскейпом, альт+ф4 или крестиком - как угодно.
В папке Recources пока особо нет ничего, но если там что-то удалить - демка не запустится, это так, к слову.
Хочется узнать мнение о таком fov: имеет ли оно право на жизнь? Я так поглядел, если очень узкий просвет, выглядит немного размазано. Не будет ли это мешать игре? Ввести округление, конечно не трудно, скажем, видимость от 0 до 9.
Вложения
FOV demo.7z
(520.94 КБ) 174 скачивания
Последний раз редактировалось Loinon 22 ноя 2016, 01:54, всего редактировалось 1 раз.
Стоит только захотеть...

Аватара пользователя
Cfyz
Сообщения: 776
Зарегистрирован: 30 ноя 2006, 10:03
Откуда: Санкт-Петербург
Контактная информация:

Re: Исповедь начинающего геймдевелопера.

Сообщение Cfyz » 22 ноя 2016, 01:06

Когда-нибудь я сяду и напишу честный векторный FOV, чтобы раз и навсегда закрыть вопрос артефактов, симметрий и прочих проблем дискретности =).
Пытается раскуклиться


Аватара пользователя
kipar
Сообщения: 2120
Зарегистрирован: 10 мар 2010, 13:16
Откуда: Москва

Re: Исповедь начинающего геймдевелопера.

Сообщение kipar » 22 ноя 2016, 06:50

Loinon писал(а):Потому что чертова стыковка октантов на диагоналях не позволяет мне задать видимость в уже известную половину.
В общем фов получился специфический.
- Нельзя заглянуть между двумя диагональными стенами. Если пройти при этом между ними можно, то шаг придется делать в никуда, даже не видя монстр там, стена или пустота. И наоборот, оттуда могут ударить хотя ты уверен что там стена.
- когда стоишь впритык к колонне, она закрывает четверть поля. В принципе реалистично, но если частью игры будут перестрелки и прятанье за колоннами для перезарядки\выпивания снадобий, то такой фов будет сильно на это влиять. При этом стоящего за колонной вполне можно увидеть находясь в этой невидимой для него четверти - хотя никто не заставляет делать LoS монстров таким же как и FoV игрока.
- ну и надо добавить возможность кликами ставить препятствия, или просто несколько типичных шаблонов на карту - ряд колонн, комната с дверями, коридор с изгибом, возможно на некоторых станут видны странности.

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

Аватара пользователя
Anfeir
Сообщения: 876
Зарегистрирован: 14 дек 2007, 09:29
Контактная информация:

Re: Исповедь начинающего геймдевелопера.

Сообщение Anfeir » 22 ноя 2016, 09:24

Loinon писал(а):Хочется узнать, что вы думаете о проекте. Может, стоит взяться за что-нибудь попроще?
Может, и стоит попроще. Если делать серьезный и большой проект, неизбежно будешь расти. Старое может уже не устраивать. Может захотеться реализовать совершенно другой проект, и т.д.
Как уже было сказано, сначала не помешал бы proof of concept. Это, кстати, очень хорошо добавляет мотивации - видеть реальный результат.
Если в планах цивилизации, история мира, религия, государства, но сложность и кучу вопросов вызывает уже банальный FOV, это настораживает.
Скрытый текст: ПОКАЗАТЬ
Это всё равно, что если бы человек планировал стать гонщиком, но не представляет, что такое руль. А как подержит его в руках, может, и не в гонки потянет, а, например, водить карьерный самосвал.
Я вот сделал FOV обычной "клюшкой" - и счастлив, и забыл о нём. ИМХО, если делать действительно "крутую вещь" со свистелками, то мелочи жизни типа Fov, инвентаря, организации карты должны быть чем-то само собой разумеющимся. Но какие-то вопросы по "тюнингу" могут возникать, конечно.
Детальное планирование имеет свои плюсы (на определённом этапе). У меня было так: в голове план типа "монстры будут жить своей жизнью, например npc торговцы будут путешествовать между городами". Дак вот, во-первых, никаких абстракций, никаких "например", только конкретный список того, что и как будет реализовано. Далее, при углублении в реализацию, то, что казалось простым, неизбежно будет обрастать кучей деталей...

Аватара пользователя
Loinon
Сообщения: 43
Зарегистрирован: 19 июл 2016, 18:20

Re: Исповедь начинающего геймдевелопера.

Сообщение Loinon » 23 ноя 2016, 08:26

Я думаю над тем, как FoV будет взаимодействовать с миром. Основная сложность создания этой игры в том, что чем ближе хочешь сделать игру похожей на реальный мир, более глубокой и проработанной, тем сильнее этому противостоит дискретность мира.
kipar,
По-первой проблеме.
Скрытый текст: ПОКАЗАТЬ
Пройти между двумя диагональными стенами будет нельзя, это я могу сказать точно. Но только в том случае, если эти стены полностью занимают тайл, т.е. их размер соответствует размеру тайла. Вполне возможно ввести препятствия, которые будут меньше размера тайла, и между ними можно будет пройти (и смотреть), FoV это позволяет сделать. Правда, есть там небольшая неувязка со сглаживанием теней, но тоже решаемо. Скажем, пусть игрок проходит между деревьями, расположенными на диагональных клетках. В таком случае нужно будет вводить размер (площадь?) игрока. Пусть это будет просто квадрат для простоты. Нужно будет проверять, чтобы "диагональ" его размеров была меньше диагонали между углами двух диагонально расположенных препятствий. Но опять же, придется из тайла, который является простейшим кирпичиком в игре, делать сложную структуру, отходя от дискретности.
По второй проблеме.
Скрытый текст: ПОКАЗАТЬ
Насчет этого, если честно, я не размышлял. Это действительно так, клетка видна на сколько-то процентов, и поделить ее нельзя, из-за чего складывается ситуация, когда при прочих равных условиях первый наблюдатель, стоящий за колонной, не видит второго наблюдателя, который стоит подальше от колонны и видит первого за колонной, но не более, чем на половину.
Я вижу два варианта решения проблемы: простой и сложный.
Простой способ - это начало сложного. Он заключается в том, прямая, образованная двумя центрами двух тайлов, на которых стоит игрок и моб, не пересекается с препятствием (в этом случае можно аналогичный FoV для мобов, благо дело он достаточно быстрый), а не пересекается эта прямая в том случае, если тайл виден более, чем наполовину. От FoV во многом, правда, тогда останется лишь визуальная часть. Тогда зрение игрока будет в согласии со зрением моба. Это в простом случае, если моб и игрок - это просто две мат. точки, а не предметы с размерами. Если заморачиваться с размерами, решая и первую, и вторую проблему, то будет сложнее, но интереснее. :). Еще я не определился, делать ли мобов прозрачными или усложнить себе жизнь.
Ну а насчет демки, то особо ее не подготавливал. Нужно решить проблему с 45 градусами, и есть один лаконичный способ, как решать подобную проблему, сделать возможность задавать направление обзора и границы конуса обзора. После этого уже можно будет тестировать и играться =)

Anfeir, Не сказал бы, что FoV - это банальная вещь, которая решается просто, тем более когда опыта работы с ним почти нет. И мелочью жизни я бы тоже ее не назвал - все таки эта вещь одна из наиболее используемых вещей, и уж если ее делать, то делать как нужно.
Да, в планах есть цивилизации, расы, религия и прочая проработка мира, но она будет представлена в виде описаний к предметам, сюжета и диалогов. Не пойму, как процесс создания алгоритма FoV связан с процессом создания вымышленного мира? Если я конечно правильно понял вас...
Последний раз редактировалось Loinon 23 ноя 2016, 09:23, всего редактировалось 1 раз.
Стоит только захотеть...

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: Исповедь начинающего геймдевелопера.

Сообщение Jesus05 » 23 ноя 2016, 09:13

Я может был не внимательный... а для чего тебе направленный FOV как ты планируешь его использовать? т.е. мой вопрос "А тебе точно необходим направленный FOV?"

Аватара пользователя
Loinon
Сообщения: 43
Зарегистрирован: 19 июл 2016, 18:20

Re: Исповедь начинающего геймдевелопера.

Сообщение Loinon » 23 ноя 2016, 09:29

Jesus05 писал(а):Я может был не внимательный... а для чего тебе направленный FOV как ты планируешь его использовать? т.е. мой вопрос "А тебе точно необходим направленный FOV?"
Нужен. И необходим. В реал-тайм режиме управляется мышкой, в пошаговом, действием.. Его использование примерно такое же, как в Ultima Ratio Regum. Только там можно выбирать направление с разницей в 45 градусов. Все таки нет же у нас глаз на затылке? =)
Стоит только захотеть...

Аватара пользователя
BreakMT
WANDER Team
Сообщения: 933
Зарегистрирован: 27 ноя 2006, 12:16

Re: Исповедь начинающего геймдевелопера.

Сообщение BreakMT » 23 ноя 2016, 10:39

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

Аватара пользователя
Jesus05
Сообщения: 1840
Зарегистрирован: 02 дек 2009, 07:50
Откуда: Норильск, сейчас Санкт-петербург.
Контактная информация:

Re: Исповедь начинающего геймдевелопера.

Сообщение Jesus05 » 23 ноя 2016, 11:16

Loinon писал(а):
Jesus05 писал(а):Я может был не внимательный... а для чего тебе направленный FOV как ты планируешь его использовать? т.е. мой вопрос "А тебе точно необходим направленный FOV?"
Нужен. И необходим. В реал-тайм режиме управляется мышкой, в пошаговом, действием.. Его использование примерно такое же, как в Ultima Ratio Regum. Только там можно выбирать направление с разницей в 45 градусов. Все таки нет же у нас глаз на затылке? =)
(я понимаю что мои посты врядли что-то изменят :) но все-же напишу)
Прекрасно.
Как это влияет на геймплей?
В реалтайме кто-то будет красться сзади и нападать пока ты его не видишь?
Монстры реально смогут прятаться от твоего взгляда? (ты уверен что такой АИ тебе по силам? )
Ты точно уверен что элементы стелса именно завязанные на зрении тебе необходимы, без них игра не будет той которую ты хочешь сделать? (может проще стелс сделать иначе?)
Действительно пользователю будет необходимо иногда куда-то смотреть или выгодно будет в реалтайме крутить головой просто во все стороны что-бы видеть все?
В пошаговом режиме действительно будут ситуации когда взгляд будет решать выиграешь ты бой или проиграешь?
Исключаем редкие ситуации, именно 90% боев будут ли зависить от того куда смотрит герой?

адд: посмотрел видео Ultima Ratio Regum есть ощущение, что там это фишка ради фишки. и геймплейно ничего не несет.

Аватара пользователя
Loinon
Сообщения: 43
Зарегистрирован: 19 июл 2016, 18:20

Re: Исповедь начинающего геймдевелопера.

Сообщение Loinon » 23 ноя 2016, 13:03

Jesus05 писал(а): В реалтайме кто-то будет красться сзади и нападать пока ты его не видишь?
Монстры реально смогут прятаться от твоего взгляда? (ты уверен что такой АИ тебе по силам? )
В реалтайме кто-то, возможно, будет красться, да. Но писать специально для AI поведение, чтобы они специально заходили со спины, скорее всего, не буду. По-крайней мере для начала. Если и будут заходить со спины, то неосознанно =) Если кто-то в реалтайме навредит персонажу, игра автоматом перейдет в пошаговый режим. В бою , думаю, сделать AI, по которому мобы окружают игрока, будет не слишком сложно. Но не узнаешь, пока не попробуешь :)
Jesus05 писал(а): Ты точно уверен что элементы стелса именно завязанные на зрении тебе необходимы, без них игра не будет той которую ты хочешь сделать? (может проще стелс сделать иначе?)
Суть ограничения обзора больше будет влиять на бой, о стелсе я пока не думаю. В частности, пока один моб в достаточном поле зрения, известно, что он делает. Дает немного простора для тактики - придется выбирать положение ГГ так, чтобы видеть остальных.
Jesus05 писал(а): Действительно пользователю будет необходимо иногда куда-то смотреть или выгодно будет в реалтайме крутить головой просто во все стороны что-бы видеть все?
Поворот оси зрения тоже занимает время, т.е. не получится очень быстро промотать мышкой вокруг ГГ, чтобы сразу все увидеть. Честно говоря, я не продумал до конца, как будет происходить поворот головы или корпуса, или вообще и того, и того.
Jesus05 писал(а): В пошаговом режиме действительно будут ситуации когда взгляд будет решать выиграешь ты бой или проиграешь?
Исключаем редкие ситуации, именно 90% боев будут ли зависить от того куда смотрит герой?
Вот это хороший вопрос. Очень хочется, чтобы зрение игрока влияло на геймплей и "чувствовалось" игроком. Как писал выше, возможны ситуации, когда игрок находится между двумя мобами и двух сразу ему в поле зрения не взять. Возможны ситуации, когда определенные предметы не видны, если видимость тайла будет низкой (ключи от двери в траве, например).
Впрочем, ограничение обзора не мешает алгоритму работать во всех 360 градусов. Если данное ограничение не будет нести геймплейной нагрузки, всегда можно откатить снова на круговой обзор. Мне нужно будет еще подумать, как сделать обзор в игре с одной не раздражающим и с другой - геймплейной фичей. Пока ориентируюсь на ограничение. Хочется, чтобы игрок чувствовал персонажа, а не наблюдал за ним от третьего лица.
Стоит только захотеть...

Аватара пользователя
karagy
Сообщения: 1271
Зарегистрирован: 10 янв 2007, 14:13

Re: Исповедь начинающего геймдевелопера.

Сообщение karagy » 23 ноя 2016, 17:54

В кравле, например, не рискнули вводить стелс мобам. Это "плохо для бизнеса" -)

Аватара пользователя
Anfeir
Сообщения: 876
Зарегистрирован: 14 дек 2007, 09:29
Контактная информация:

Re: Исповедь начинающего геймдевелопера.

Сообщение Anfeir » 24 ноя 2016, 07:09

Направленное поле зрение будет съедать много внимания игрока и может напрягать. Оно больше подходит для реального 3д вида из глаз.
Впрочем, наверно, можно это сделать мягко и ненавязчиво: внимание не заостряем, но пусть игрок знает, что иногда не мешало бы оглянуться.
Если есть желание - делайте, опыт в любом случае будет полезным.
Честно говоря, я не продумал до конца, как будет происходить поворот головы или корпуса, или вообще и того, и того.
Стоит продумать, имхо. Не забывая о балансе "реализм vs играбельность vs 2д-дискретность".
Играбельность имеет смысл поставить на первое место. Отсутствие реализма игроки простят, а вот однообразность - не факт. Можно дойти до того, что сделать разными командами "переставляем левую ногу, переставляем правую ногу".

Аватара пользователя
Максим Кич
Администратор
Сообщения: 1642
Зарегистрирован: 03 дек 2006, 20:17
Откуда: Витебск, Беларусь
Контактная информация:

Re: Исповедь начинающего геймдевелопера.

Сообщение Максим Кич » 24 ноя 2016, 13:22

Anfeir писал(а):Можно дойти до того, что сделать разными командами "переставляем левую ногу, переставляем правую ногу".
Я просто оставлю это здесь )))
Dump the screen? [y/n]

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя