Войти
ФлеймФорумПроЭкты

[заморожено] Строй лестницы, чтобы лазить по пещерам (в Клон-gnh20-рог) (4 стр)

Страницы: 13 4 5 69 Следующая »
#45
8:54, 20 мая 2015

Suslik
> нарисовать отдельный тайл для горизонтальных веток
Тогда смотрелось бы намного лучше. Но для меня это проблематично. Я беру за основу спрайты из оригинального gnh20 и допиливаю каждый (потому что там тайлы вылазят за пределы клеток), и усилий это требует довольно много.
Сейчас для меня важнее писать основной функционал игры, тот же инвентарь для предметов, и мне не хотелось бы сильно отвлекаться на графику. Тем более что я себя считаю скорее программистом, чем художником.

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

> тонких веток и листочков
Да, можно было бы сделать этот переход к краю связанного тайла листвой. Спасибо, мысль хорошая. Но и в этом случае придётся много рисовать. Кроме того, я возможно сделаю "мёртвые", засохшие деревья, на которых нет листвы. Сейчас спрайты для такого подходят, потому что есть отдельно ветки и отдельно листья. А тонкие ветки с листвой будут мешать такой задумке, надо будет отдельный набор спрайтов тонких веток без листвы.

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


#46
10:24, 20 мая 2015

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

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

#47
13:05, 20 мая 2015

Импортнул тайлсет в tiled, вот что получилось:

+ Показать

надо создать карту с тайлами 26 на 26 и добавить новый тайлсет с тайлами 50 на 50, только надо удалить у тайлов черный и фиолетовый фон и сохранить в png, чтобы фон был прозрачным.

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

#48
23:34, 20 мая 2015

angru
> т.к. сейчас тайлы никак не связаны, как будто просто висят в воздухе отдельно
> друг от друга
пруф, или не было!

> Я думаю стоило разобраться как Сергей работает с тайлами
У него тайлы вылазят за рамки и налазят на соседние тайлы, это видно в игре и это видно по спрайтам в файле.
Я не могу использовать такие тайлы, потому что у меня немного другой подход: у меня между блоками могут быть связи. Если между блоками есть связь, то надо их рисовать впритык один к другому, без зазоров. А если между блоками нет связи, то надо чтобы у этих спрайтов по краям была полоска пустоты. Тогда игроку будет видно что между этими блоками связи нет. А ещё мне не нравится подход когда тайл налазит на соседние тайлы.
За скин с Tiled спасибо, может быть гляну его когда-нибудь потом.

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

#49
8:33, 21 мая 2015

soflot
> пруф, или не было!

+ Показать

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


soflot
> Я знаю что внешний вид тайлов можно улучшать, но у меня сейчас есть более
> приоритетные задачи.

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


p.s. жаль, что разработка продвигается так медленно, хотелось бы почаще читать обновления по проекту, ну или просто чтобы какая-то дискуссия была.

#50
10:07, 21 мая 2015

angru
> ну или просто чтобы какая-то дискуссия была.
темы для дискуссии есть:

- Расчёт разрыва связей. В оригинале его нет, в клоне есть, и для меня это очень важная часть. Он работает медленно. Мне DeMoney уже предложил более быстрый алгоритм, но всё равно при большом размере уровня расчёт в моей реализиации этого алгоритма идёт медленно. Если бы кто-то помог мне сделать более быстрый расчёт разрыва связей, то было бы круто. Хотя это и не критично, пока можно и с таким быстродействием пожить.

- боевая система. В оригинале она мне не нравится. Хотелось бы что-то более насыщенное в плане тактики. Есть что предложить?

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

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

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

#51
23:06, 21 мая 2015

я тут с деревьями играюсь

+ Показать

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

потом планирую заняться генерацией мира.

по остальным пунктам, пока сказать нечего.

#52
18:22, 22 мая 2015

sb3d
> Либо ты сам вместо работы год пилишь код. В убытке - год жизни и незаработанные за год деньги.

а если не вместо работы, а после работу, ну и вообще в свободное время

#53
18:49, 22 мая 2015

sinoby
> > Либо ты сам вместо работы год пилишь код. В убытке - год жизни и
> > незаработанные за год деньги.
> а если не вместо работы, а после работу, ну и вообще в свободное время
На дату процитированного сообщения посмотри, это и будет ответом. :)

angru
Круто! Лучше, чем мои оригинальные получаются!

#54
21:44, 22 мая 2015

Как и обещал - вот код:
tree_generator
это класс ответственный за собственно генерацию
конфиг файл

код конечно не ахти и ценность его стремится к нулю, но как говорится: чем богаты...

Его еще можно пилить и пилить, но не думаю, что сейчас это целесообразно.

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

+ финальный вариант видео

Улучшал, улучшал, а в итоге не сильно отличается от первого варианта ((


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

{
    type: ground,  # земля, известняк, камень, etc...
    sides: [left, right....]  #  стороны, которыми тайл может соединяться с другими тайлами
}

Физику не планирую, боюсь мы с питоном ее не понятем: питон медленный, а я слабоват. А вот какое-нибудь освещение хотелось бы.

Если кому-нибудь есть что добавить, буду рад.

#55
0:29, 23 мая 2015

angru
> Как и обещал - вот код
что-то я не понял, это ты предлагаешь мне такое в существующий код клоно-рогалика добавить, или это ты уже свой рогалик начал писать? :-)
я в недоумении, даже не знаю с каких вопросов начать.

Ты в курсе что я уже начал писать клон, что у меня есть код на С/С++, есть демка, есть наработки?
Ты понимаешь что в рогалике с перемещением по клеточкам мне надо вписывть игровые объеты в эти клеточки? Что я не могу просто так сделать в игре толщину дерева 0.5 клетки, 0.6 клетки, 1.237 клетки?
Как ты себе представляешь, что я смогу сделать с твоим кодом генерации дерева, как смогу его использовать?

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

По поводу деревьев, для встраивания в мой клоно-рогалик деревья должны быть построены из крупных блоков. Ты ведь видел мои скриншоты и видел оригинал. Блоки лучше делать однотипные - ствол, ветви, листва. Не стоит смешивать ствол с листвой. Тогда игроку будет непонятно что это за блок такой смешанный из ствола и веток, он прочный как ствол или ненадёжный как листва.
Следует подумать не только над тем, как выглядит дерево в полный рост, но и подумать как оно будет выглядеть если игрок срубит половину веток, или если подрубит ствол, или если взрывом снесёт всю верхушку дерева. И подумать как это дерево будет расти, от небольшого ростка (корень + верхушка) до полноразмерного дерева, и всё это пошагово, и на каждом шаге по нему может лазить главный герой или какие-нибудь персонажи.

angru
> Сейчас займусь генерацией мира
Если ты хочешь чтобы это было для меня полезно, то нужно учесть такие условия:
размер мира можно принять 100х100, или 200х200, или максимум 500х500
мне не нужны тайлы, мне нужны числа - тип содержимого для клетки. Главное это внести массив 200х200 со значениями в игру, или сгенерировать его в игре, а отрисовывать тайлы вокруг ГГ будет уже существующий код.
Если ты сможешь записать полученный уровень по клеткам в текстовый файл, в XML, CSV, JSON или простой бинарный файл - то я смогу это прочитать в игре, если алгоритм генерации будет не слишком сложный, то я смогу его переписать на С/С++ и сразу встроить в игру.
Не нужно указывать какой тайл соответствует клетке - код клоно-рогалика сам посмотрит какие соседние клетки у текущей клетки и нарисует для неё нужный тайл из набора.
не обязательно указывать какая клетка с какой соединяется. По умолчанию принимается что если возле клетки камня есть впритык ещё одна клетка камня, то между ними есть связь - существующий код клоно-рогалика уже умеет такое делать.

#56
11:59, 23 мая 2015

soflot
> что-то я не понял, это ты предлагаешь мне такое в существующий код
> клоно-рогалика добавить, или это ты уже свой рогалик начал писать? :-)

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

soflot
> Ты в курсе что я уже начал писать клон, что у меня есть код на С/С++, есть
> демка, есть наработки?
> Ты понимаешь что в рогалике с перемещением по клеточкам мне надо вписывть
> игровые объеты в эти клеточки? Что я не могу просто так сделать в игре толщину
> дерева 0.5 клетки, 0.6 клетки, 1.237 клетки?

Да, я в курсе всего этого. У меня все тайлы одинаковые, 0.5 - это просто масштабирование всех тайлов, просто так удобнее - в конфиге всем этим управлять.

soflot
> Как ты себе представляешь, что я смогу сделать с твоим кодом генерации дерева,
> как смогу его использовать?

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

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

Я пока не готов целенаправленно помогать проекту, только косвенным образомю

soflot
> По поводу деревьев, для встраивания в мой клоно-рогалик деревья должны быть
> построены из крупных блоков. Ты ведь видел мои скриншоты и видел оригинал.
> Блоки лучше делать однотипные - ствол, ветви, листва. Не стоит смешивать ствол
> с листвой. Тогда игроку будет непонятно что это за блок такой смешанный из
> ствола и веток, он прочный как ствол или ненадёжный как листва.
> Следует подумать не только над тем, как выглядит дерево в полный рост, но и
> подумать как оно будет выглядеть если игрок срубит половину веток, или если
> подрубит ствол, или если взрывом снесёт всю верхушку дерева. И подумать как это
> дерево будет расти, от небольшого ростка (корень + верхушка) до полноразмерного
> дерева, и всё это пошагово, и на каждом шаге по нему может лазить главный герой
> или какие-нибудь персонажи.

С деревьями вообще все сложно. В моем представлении: по ним нельзя лазить, если рубить - то целиком, рост и воздействие взрыва по идее не должны отличаться и от твоей реализации дерева.

soflot
> Если ты хочешь чтобы это было для меня полезно, то нужно учесть такие условия:....

Вполне реализуемо, если добьюсь успеха с генерацией мира, то обязательно сделаю экспорт в JSON.

#57
0:31, 24 мая 2015
+ midpoint displacement + cellular automata
#58
12:38, 25 мая 2015
+ Показать

Лава какая-то стремная, даже не знаю что с ней делать.

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

#59
1:33, 26 мая 2015

angru
Прикольные уровни получаются. Можешь кстати их выдавать в виде картинки, я такое тоже прочитать смогу (хотя конечно в XML/JSON мне читать проще).
По самим уровням: наверно стоит делать больше пещер и меньше пустого места вверху. Ведь основной игровой процесс идёт в пещерах, а не в воздухе над землёй.

А я тут пока что разбираюсь с guichan-ом, прикручиваю для GUI. А дальше буду делать инвентарь.

Страницы: 13 4 5 69 Следующая »
ФлеймФорумПроЭкты

Тема в архиве.