Это копия, сохраненная 25 октября 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Вкатываюсь в гд со своей магической экшон-рпг-роглайт со сложной системой стихий, кучей ЦИФЕРОК, использованием заклинаний для путешествий по разным планам за редкими ресурсами для покупки новых заклинаний и повышенным содержанием символизма и мистицизма (на скринах не представлено).
В обычной жизни — JS-разработчик. Пилю по вечерам с августа, мне помогает еще один человек. Не заебало. Юнити, пиксель-арт. Lich это рабочее название проекта, потому что он про безымянную криповую сорку.
Что уже есть:
— Общий диздок и подробно расписанный демо/онбоардинг
— Движок с абстракцями для мобов, игрока, заклинаний и т.д.
— Гибкий генератор данжей
— Дубовый генератор комнат
— Фреймворк для ИИ мобов на конечном автомате
— Спизженные из разных игр спрайты
— Изрисованный наполовину скетчбук с видением мира и всякими СКРЫТЫМИ СИМВОЛАМИ
— Стены, пол и двери для одной локации — наибанальнейшего данжа из камней
Сейчас работаю по двум направлениями:
— Переключиться с рисования графики на написание брифов и отдать ее тем, кто рисовать действительно умеет
— Написать редактор уровней, чтобы не возиться напрямую с JSON
И сразу же обосрался, приложив комнату без дверей.
Арт сочный, пиксели не поворачиваешь, мне нраица. Unity пугает — системные требования у игры с таким графоном всё равно завышены, я прав?
Да, скорее всего с этим будут. Я еще ГМ, смотрел мельком, но он мне показался слишком примитивным и там 30 фпс вроде, что не очень хорошо для экшона. А что бы ты выбрал?
Двощ не запоминает ОП-галку. Очень плохо.
Спиженно все, что только можно. Найди себе хужодника дизайнера полоумный.
Ну, я пользуюсь LWJGL3 c Kotlin, но я велосипедист-извращенец. С другой стороны, рогалику не нужны особые велосипеды.
Какая разница сколько кадров в анимациях? Ее вообще может не быть, отзывчивость управления от этого не зависит.
Пока не делал, но тоже очень хочу попробовать. В 60 фпс, впрочем, сомневаюсь.
Завел вебпак и нафигачил прототип редактора. Пока все, что он умеет — выделять тайлы по клику. Ну и интерфейс продумал. Меньше драг-энд-дропа, больше хоткеев: легче писать и быстрее работать.
Завтра продолжу.
Дык у него же арт спизжен из FFVI и Зельды.
Ты понимаешь, что все это время ты учился онанизму, вместо отношений с тянками?
Уже поздно пытаться стать нормальным. Смирись.
Он научился составлять библиотеку ассетов, и преобразовывать JSON уровня в его превью. Осталось сделать обратный процесс и допилить всякие мелочи вроде возможных слотов для дверей.
По поводу спрайтов — это просто временные заглушки для тестов кода и геймплея. Не думал, что нужно это уточнять.
Вопрос к тебе: если я картиночки всякие умею рисовать, но не в пиксель-арте - могу ли в команду влиться али не нужон?
>комната со скринов уж очень что-то напоминает, но вот что - не могу понять.
Legend of Zelda: A Link to the Past
>комната со скринов уж очень что-то напоминает, но вот что - не могу понять
Зельду, Айзека. С такой перспективой не очень-то много игр. Сейчас обычно делают вид сбоку (Crawl, Enter the Gungeon, Nuclear Throne), но я не хочу по геймплейным соображениями.
>Вопрос к тебе: если я картиночки всякие умею рисовать, но не в пиксель-арте - могу ли в команду влиться али не нужон?
Не надо, спасибо.
ОП, а разве Unity позволяет делать броузерные игры на JavaScript ???
Вообще можно писать на недо-JS и компилять под WebGL, но я на C# пишу. После первого языка остальные учатся намнооого легче.
Так я не понял, почему редактор у тебя открывается на localhost:7099, если ты на Unity делаешь? На выходе ведь должна .exe программа получаться?
Редактор вообще не связан с Юнити, все, что он него требуется это редактировать JSON-файлы. На шарпе я бы его в пять раз дольше писал.
Довольно некрасиво заполнять комнату подобными объектами. Сделал бы лучше тайлы.
Пример того как сделать красиво на быдлохабре: https://habrahabr.ru/post/227205/
Простая софтина, чтобы сделать ещё и быстро:
http://pixelatto.com/autotilegen/
>>329806
Не вижу особого выигрыша от такого способа.
Предвижу завтра веселье с попытками распрарсить JSON уровня в классы.
На выходных впихал редактор в Электрон, чтобы можно было работать напрямую с файлами из папки ресурсов, брать оттуда ассеты и сохранять уровни. Получилось годно, батя говорит маладца. Второй Кирилл тем временем пилил генератор данжей.
Технический фундамент игры начинает мне нравится. Следующая задача — написать генератор комнат и прикрутить к нему работу с лейаутами уровней.
А ты думал, в сказку попал что ли. Unity - говнище для школьников. Но другого нет.
Кирилл, ты ебанутый? Ты можешь кинуть любую managed dll в папку с ассетами и она сама подключится.
Возьми Newtonsoft.Json, в слегка урезанной для Юнити версии нет некоторой неработающей на айфонах хуйни и не еби мозги. Лежит на гитхабе где то.
И ещё раз. Шёл 2017 год, менеджеры пакетов там, нет? Не слышал? Закинул DLL блядь, лол.
жс-макака не может прожить без своего npm и кучи ненужного говна?
Не расстраивайся, для C# есть nuget.
Проблемав том, что UNYTI это слишком специальная программа, с своей кастомной и древней mono, в которой нет дохуя библиотек.
>жс-макака не может прожить без своего npm и кучи ненужного говна?
Да ещё какого говна, инструментарий JS - говнище уровня Unity, тащем-та. Просто опять же, лучше ничего и нет.
>Не расстраивайся, для C# есть nuget.
А я и пишу на C#.
А ты используешь не Perforce/Plastic для контроля версий? Зачем? Всякие там помойные гиты для бинарников не годятся. А в геймдеве большая часть всего - бинарники. Ну а в целом тут управление зависимостями живет постольку поскольку.
Галку забыл.
Немного поковырял камеру, выяснилось, что стиль пиксель-арта, который я выбрал, прекрасно скеилится. Даже если в сетке чередуются логические пиксели по 3 и 4 физических, то это совершенно незаметно. Приятный бонус. До этого хотел скейлить только до полностью кратных разрешений, теперь разрешу x2.5, x3.5 и т.д. (х1.5 выглядит все равно довольно стремно).
Второй Кирилл, тем временем, допил генератор уровня, который отвечает нашим планам.
>Даже если в сетке чередуются логические пиксели по 3 и 4 физических, то это совершенно незаметно.
Скинь, плз, примеры, как это выглядит.
Как видишь, в 2.5 пиксели на стенах ок, а на Тайге местами зафаченые. В 3.5 ок уже везде.
Пиксели разного размера в любом случае не ок.
Сука, сначала стараются, вырисосывают, а потом херят картинку в собственной игре.
Так трудно догадаться, что надо увеличивать в целое число раз, а потом уменьшать биленейным до пользовательского окна?
Ты попробуй, оно почти не заметно. Увеличивай ближайшим соседом во много раз, 4 например. Так делали в Megaman Legacy Collection.
Ок, спасибо за совет, попробую этот подход.
Прикрутив статичные спрайты, я принялся за анимации. Нагуглил аж 4 способа:
1. Написать корутину, которая будет менять спрайты по таймеру
2. Legacy Animation, который ОЧЕНЬ ЛЕГАСИ НЕ ИСПОЛЬЗЙТЕ ПЛЕС
3. Mecanim, который доступен только из редактора
4. Playable API, который экспериментальный и нестабильный
Первый способ — очевидный велосипед и хуита, легасиговно мы тоже не хотим, меканим оче переусложнен и ничего не может из рантайма, на последний толком нет примеров и вообще экспериментальные фичи — ну нахуй.
Кроме того, в Юнити тупо невозможно создать AnimationClip из спрайтов в рантайме. В игре 50 мобов? Будь добр сделать по десятку анимаций для каждого и закинь это все руками в контроллеры. Или пиши скрипты для редактора, которые все это будут делать за тебя. Собственно, последним я и занимался. Ура, теперь есть кнопка, которая собирает клипы из спрайтов. Осталось решить проблему с контроллерами и прикрутить это все к объектам.
Не могу сказать, что все это дрочево вместо программирования, собственно, геймлпея мне нравится, но делать такое руками — фу блять! Тем более, что Кирилл №2 все еще подпиливает скрипт генерации данжа.
рпгмейкер?
>В игре 50 мобов? Будь добр сделать по десятку анимаций для каждого и закинь это все руками в контроллеры
Если у этих мобов спрайтлист и анимация выполнена по одному шаблону то можно использовать один контроллер для всех. Меняешь спрайт в спрайтрендерере и всё будет работать.
>Первый способ — очевидный велосипед и хуита
Лол, дурачок. Animator просто меняет sprite в SpriteRender. Никто не запрещает тебе сделать свой компонент, который будет делать тоже самое.
Насколько я понял, это работает только если в анимации используется один спрайт. А у меня кейфреймы. AnimationClip в рантайме привязать или заменить нельзя.
>>381431
Зачем, чтобы еще сильнее страдать?
>>381463
Если анимировать персонажей, то меканим таки поудобнее будет. Тем более, что с процедурной генерацией контроллеров я уже разобрался.
Алсо, галка ОПа проебана навсегда вместе со старым ноутбуком.
>Если анимировать персонажей, то меканим таки поудобнее будет.
Если анимировать сложных 3Д персонажей. Тебе же только спрайты переключать надо.
Вот ради интереса набросал пруфес оф концепт
Ок, подумаю над этим, спасибо.
Просто пиздец, голова взрывается.
>Просто пиздец
Не умеешь - не лезь. Я НЕСоеды умирают. Делай казуально. Ебать палитру уже не модно, не оценят.
Обводки однозначно делай. Чем меньше палитра, тем больше шансов твоего спрайта потеряться на пике.
Я пользую fun16, но я убеждённый дебил.
Во-первых перерисовал стены, сделал палитру более мягкой и убрал верхнюю часть стен (извини, Зельда, но нет) и выработал для проекта принципы пиксель-арта, которых буду придерживаться в дальнейшем.
Во-вторых Кирилл #2 запилил генерацию данжа, да еще и настраиваемую по веткам. Лейауты берутся из базы, комнаты генерятся, переходы работают, примитивная карта рисуется. Красота!
Теперь планирую налечь на три направления:
1. Сделать персонажу анимацию, понять как это удобнее экспортировать в спрайтшит и настроить соответствующим образом сборку контроллера из этого спрайтшита. После этого можно будет сделать мобов.
2. Изменить генерацию стен, пола и дверей так, чтобы они не зависели друг от друга и сделать возможность динамически свопать палитру на них — в целях экономии двери и пол будут одинаковые во всей игре. Видимо через шейдеры? Пока не знаю.
3. Секретные геймплейные вопросы.
Лучше бы в кои-то веки сделал нормальную перспективу.
Разработка продолжается в обычном темпе, просто я ленюсь писать отчеты. За два месяца запилили систему управления ресурсами и автогенерацию анимаций и контроллеров, сделали нормальный пасфайндинг, нормальную миникарту, уточнили миллион геймплейных вопросов и заебошили несколько спрайтов. Все еще подгораю с Юнити и необходимости писать кучу тулинга самому. А ведь это время можно было бы потратить на программирование геймплея. Но, что уж есть.
Вместо простыней буду бампать картиночками мобов. Вот, например, грибомедуза — самый базовый овощной монстр.
Не знаешь, кстати, как в гимпе переконвертировать изображение в цвета с палитры?
Ебать я даун, нагуглил за 5 минут. Соре.
Хотел сегодня сделать новые анимейшен контроллеры для 1- и 2-направленных мобов, но вместо этого убил весь день на простейшую (казалось бы) задачу — вывести текст о состоянии ИИ рядом с мобом. Хуй знает какой индус делал систему гизмо в юнити — некоторые гизмо работают в гейммоде, некоторые — нет, гизмо для вывода текста тупо нет, если вызывать GUI из OnGUI, то он получает один скин, если из OnDrawGizmos, то другой... Опять весь день потрачен на тулинг вместо программирования геймплея.
Терпения и удачи тебе, ОП.
Конечно, стоит. Добра.
Да уж, делать столько времени никому ненужное вторичное говно это нужно много терпения
Из важного — запилена система заклинаний, которая позволяет гибко комбинировать эффекты (пик 2 — файрболл). Это важно, потому что спеллов планируется МНОГО — на их сборе и комбинациях и построена вся игра.
Кроме того произведена эпическая работа по переписыванию генератора анимаций и контроллеров, теперь он полностью контролируется JSON-данными, а не тупо именами файлов в папке.
Ближайшие планы — нормальные индикаторы здоровья и маны, основной геймлуп (база / данж / смерть), оставшиеся мобы и спрайты окружения.
Самую малость нечитабельно. Нужно как-то циферки разными делать. Или допустим от каждого спелла свой размер/цвет шрифта.
У меня вопрос - где ты берешь свободное время?
Я вот как и ты, пердак-пердукс макака, и напрограммировавшись за день на работе, сидеть еще и вечером за геймдевом у меня сил не остается. Хоть и хочется. Но башка уже не варит.
В итоге пилю свой тетрис только на выходных. И из за этого медленно получается.
>>403032
Спасибо, аноны, ваш фидбек согревает мое сердце.
>>403043
Немного по вечерам, вся суббота, иногда еще вечер воскресенья. Иногда удается попилить полдня в рабочее время, когда жду бэкенд и нет задач. Если башка не варит, то иду спать. У меня все тоже не быстро, знаешь ли; девятый месяц разработки и даже демки нет. Но я сразу планировал, что буду делать ДОЛГО и понемногу, так что особо не бугурчу — мне нравится процесс. И привычка сформировалась уже.
Тян только, такая же домосед-аутист. С детьми, мне кажется, нереал что-то пилить.
я не понимаю что тут происходит, но уверен что тебе нужна поддержка в качестве бессмысленных кукареков итт
А у меня вот жена и сыну 7 лет. Но жена на порядок больше времени и внимания тянет((
Ну если тебе 15 то несомненно будет отличная лол
ОП, можно к тебе саунд-дизайнером вписаться?
Навыки ниже среднего наверное, но я очень хочу попробовать себя в деле.
Сильно допилил код игрока, выкинул оттуда старый мусор, сделал кастайм и глобальный кулдаун. Неожиданно много времени заняла разработка такой простой внешне фичи, как определение направления каста по последней нажатой стрелке — ходить можно в 8 направлениях, а стрелять только в 4. Пришлось даже прибегнуть к помощи коллеги из Физтеха, но в итоге все сделано и работает прекрасно.
Хочу рассказать о некоторых фишках игры, которые отличают ее от Айзека. Там сходство больше внешнее на самом деле.
— Основа боевой механики — заклинания. Их много, они разных элементов, стоимости, мощности и т.д.
— Лич путешествует по разным мирам и выбивает из мобов ресурсы и использует их для покупки новых заклинаний в логове. Ресурсы пропадают при телепортации обратно в данж, но заклинания всегда остаются в собственности игрока.
— Все планы (данжи) игры связаны друг с другом, некоторые связи очевидные, некоторые секретные, некоторые требуют определенных заклинаний для прохода.
И две важные механические фишки:
— Магия нейтральна. Заклинанию все равно кто его скастовал, можно убиться об собственный файрболл или подставить моба под спелл, который скастовал другой моб.
— Магия материальна. У файрболла есть масса, он отбросит тело, в которое стукнулся, два файрболла взорвутся при столкновении. Взаимодействие между заклинаниями зависит от их силы и элемента.
>>404111
Подгоняю заморским конкурентом.
Думаю ок, надо делать через замену палитры шейдером, все равно это потом понадобится. Но чтобы сделать через замену палитры, надо чтобы исходный спрайт был нормализован, т.е. показатели красного канала располагались через равные промежутки, типа 0, 0.33, 0.66, 1. Руками вроде как делать не хочется. Пишу скрипт, который нормализует спрайты.
Попутно думаю — так, а что если у меня палитра у
Да, кстати, а чего-то у меня спрайты хранятся в разных ase-файлах? Я же могу их хранить в одном, но разные анимации под разными тегами, тогда и тестировать свопы будет проще и вообще как-то правильней получается. Тем более у Aseprite есть CLI, ща мы все через консоль экспортируем. Выясняется, конечно, что CLI недопилен и экспортировать по тегам может только в отдельный файлы, но не в спрайтшиты. Но меня уже не остановить, я нахожу либу чтобы дергать шелл из ноды, генерю через Aserprite CLI миллиарды промежуточных файлов с фреймами, собираю их нодой в спрайтшиты, нормализую палитру, и пишу на диск.
Потом еще полдня ковыряю шейдер и УРА, РАЗНОЦВЕТНЫЕ ЦИФРЫ.
Ебучий случай анон. Нахуй блядь это программирование с нуля. Цвет циферок поменять и такой невзъебенный квест с кучей геммороя. Я ебал.
Сделай для урона по мобам жёлтым цветом, белый не смотрится, плохо читается. А жёлтый это традиционно
Я обычный геймер и, имхо, не всегда отдельные циферки лучше суммы всего дамага за атаку или комбо.
Ого, лол, давно такого отборного говнокода не видел.
> коллеги из Физтеха
Шта? Не понял, ты коллегу из физтеха спрашивал, как сохранить последнюю нажатую стрелочкуя или что?
Две недели ковырял три вещи:
— UI, в частности генерик меню выбора чего-либо — сверстал, подобрал шрифт, сделал автоматическую подгонку размера по обоим осям, сделал для UI систему ивентов, адаптировал ее к инпуту игрока и т.п.
— NPC, сам класс, корутина, которая отслеживает ближайшего NPC и перехватывает инпут
— Класс с прогрессом, который потом можно будет записывать как сейв и отслеживание этого прогресса другими классами.
Плюс всякие менее значимые вещи, например перенос конфигурации всех материальных объектов в JSON. Кажется, что префабы уже практически не нужны, все генерится через код.
Это, кажется, самый большой коммит за всю историю проекта.
Спрайты все еще временные, не могу определиться со стилем, освещением и эффектами.
>>406073
Своп палитр планирую использовать повсеместно, так что думаю, что эти усилия оправданы. В любом случае, я рад что разобрался что такое шейдеры и как они работают.
>>406499
Согласен.
>>408449
Согласен, но это не в приоритете. Отдельный цифры сейчас потому что заклинания собраны из «эффектов». Например Fireball состоит из FireballProjectile и FireballBlast. И если проджектиль может попасть только в одного моба, то бласт вполне может задеть нескольких. Это сделано для того, чтобы можно было создавать сложные заклинания комбинируя простые эффекты.
>>408462
Из-за величины комьюнити, в основном.
>>408465
Игрок может ходить в 8 направлениях, а кастовать только в 4. Представь, что сначала он жмет вверх (идем вверх, кастуем вверх), потом не отпуская вверх, вправо (идем вправо-вверх, кастуем вправо), а потом отпускаем вправо (снова идем вверх и кастуем вверх, хотя последняя нажатая кнопка — вправо). Как решать будешь? Плюс еще есть интересные крайние случаи, когда сначала идем вверх, а потом вниз и влево — игрок нажал две кнопки в один фрейм, ничего невозможного. Тоже надо обработать.
Две недели ковырял три вещи:
— UI, в частности генерик меню выбора чего-либо — сверстал, подобрал шрифт, сделал автоматическую подгонку размера по обоим осям, сделал для UI систему ивентов, адаптировал ее к инпуту игрока и т.п.
— NPC, сам класс, корутина, которая отслеживает ближайшего NPC и перехватывает инпут
— Класс с прогрессом, который потом можно будет записывать как сейв и отслеживание этого прогресса другими классами.
Плюс всякие менее значимые вещи, например перенос конфигурации всех материальных объектов в JSON. Кажется, что префабы уже практически не нужны, все генерится через код.
Это, кажется, самый большой коммит за всю историю проекта.
Спрайты все еще временные, не могу определиться со стилем, освещением и эффектами.
>>406073
Своп палитр планирую использовать повсеместно, так что думаю, что эти усилия оправданы. В любом случае, я рад что разобрался что такое шейдеры и как они работают.
>>406499
Согласен.
>>408449
Согласен, но это не в приоритете. Отдельный цифры сейчас потому что заклинания собраны из «эффектов». Например Fireball состоит из FireballProjectile и FireballBlast. И если проджектиль может попасть только в одного моба, то бласт вполне может задеть нескольких. Это сделано для того, чтобы можно было создавать сложные заклинания комбинируя простые эффекты.
>>408462
Из-за величины комьюнити, в основном.
>>408465
Игрок может ходить в 8 направлениях, а кастовать только в 4. Представь, что сначала он жмет вверх (идем вверх, кастуем вверх), потом не отпуская вверх, вправо (идем вправо-вверх, кастуем вправо), а потом отпускаем вправо (снова идем вверх и кастуем вверх, хотя последняя нажатая кнопка — вправо). Как решать будешь? Плюс еще есть интересные крайние случаи, когда сначала идем вверх, а потом вниз и влево — игрок нажал две кнопки в один фрейм, ничего невозможного. Тоже надо обработать.
В направлении движения, если направление - диагональ, то по последней нажатой кнопке, не? Я как бы это и имел в виду.
Я тебе в после привет пример, где эта логика не работает. Мне это тоже сначала очевидным казалось, кек.
Зажать вверх
Зажать вправо
Отпустить вправо
Последняя нажатая кнопка — вправо, а кастовать надо вверх.
Перечитал, там глупость написана. Что значит «если направление - диагональ, то по последней нажатой кнопке»? У тебя нажатия кнопок не идут потоком, просто в каждом фрейме можно получить инпут для оси X и Y.
В кадре N тебе приходит инпут [0, 1], а в кадре N+1 — [-1, -1]. И что, какая кнопка тут была последней? Куда надо кастовать?
Какой 0, какой -1, наркоман? На клавиатурке тю-тю нулей и минус-единиц, але блять. Совсем со своим юнити поехали. Ты говорил о кнопках - я тебе про кнопки и ответил. Если у тебя вместо кнопок абстракция, которая тебе не подходит, то это совершенно другой разговор, это же очевидно.
А уж если у тебя абстракция, то спеллы всегда должны кастоваться в направлении движения, ибо мобилки, например. А если у тебя нет клавиатуры в коде, но ты ее выдумываешь обратно, то у тебя эта абстракция протекает - тоже очевидно, кстати.
Рад, что ты признал непонимание того, как и зачем устроен инпут в Юнити. На этом можно и закончить, наверно.
Тебя каждый пост надо просить перечитывать? Нет, ну все написано же - прочитай, потом отвечай. Я уж молчу про то, что описанный мной в первом посте способ работает точно так же и для твоих нулей с единичками, но ты опять не удосужился подумать об этом, прежде чем писать пост.
private int[] inputKeysInPreviousFrame = new int[2];
private string lastKey;
void Update()
{
inputKeys = input.keys() //та самая функция, которая выдает что-то типа [0, -1]
if (inputKeys[0] != inputKeysInPreviousFrame[0])
{
if (inputKeys[0] == 1) lastKey = "up";
if (inputKeys[0] == -1) lastKey = "down";
}
if (inputKeys[1] != inputKeysInPreviousFrame[1])
{
if (inputKeys[1] == 1) lastKey = "right";
if (inputKeys[1] == -1) lastKey = "left";
}
inputKeysInPreviousFrame = inputKeys
// остальной код
}
>>408518
О, код! Обычно сначала X, а потом Y идет.
Минус только один (довольно минорный) — приоритет одной оси даже в тех случаях, когда это не нужно, например при инпуте вида [0, 1] -> [-1, -1] хочется двигаться по той оси, где разница была больше, а просто по фиксированной.
Ну и через вычитание векторов таки покороче.
Я работаю над игрой!
Сейчас добиваю все куски движка и ассеты нужные для демки, потом, вероятно, долго будут ковырять геймплей, баланс и прочий флоу.
Что сделал с прошлого раза:
— Выпилил из ядра практически все следы императивщины, заменив их на ивенты. Стало намного понятнее что за чем идет, код ста менее связанным.
— Доработал UI — шрифты, обводки, ХП и МБ бары
— Сделал вариант меню из двух секций, добавил лайтбокс
— Сделал сохранение и удаление сейва
— Продумал основные положения вселенной игры и накидал несколько временных спрайтов (потом художник с руками перерисует)
Процесс движется черепашьими шагами, все еще куча времени уходит на инструментарий.
Что сделано:
— Дорисовал всем спрайтам тени, стало сильно лучше, но над полом еще надо поработать. Добавил работу с тенями в свой сборщик спрайтов, сейчас он просто следит за тем, чтобы все тени были одного цвета.
— Практически закончил покупку за лут NPC и заклинаний, скоро смогу наконец-то тестить главный геймлуп
— Нормальный инвентарь с иконками
— Перенес все ресурсы кроме уровней из JSON в ScriptableObjects, стало значительно удобнее в них копаться
Его делал Кирилл №2, так что на сто процентов точно не отвечу. Там стандартный A*, плюс, если я ничего не путаю, то если моб не видит пути до игрока, то идет к мобу, который ближайший к игроку. Какая-то очень простая логика, в общем.
По алгоритму хороший туториал вот: https://www.youtube.com/watch?v=-L-WgKMFuhE&list=PLFt_AvWsXl0cq5Umv3pMC9SPnKjfp9eGW
Спасибо, чекну.
Что сделал за последнюю неделю? А нихуя не сделал. На работе дикий дедлайн, ебошу до ночи. К счастью, это скоро кончится.
Работу раскидал, продолжаем.
Прошел через очередной цикл перепридумывания основных геймлупов и механик. Вроде справился, попустило.
Для реализации новых идей стало надо потюнить генератор уровней, но внезапно оказалось, что он намертво привязан к гейм обжектам. Пришлось переписать. Теперь можно гонять его прямо в редакторе, каеф.
Теперь игре надо нарастить немного мясца — задизайнить пару десятков комнат, расставить мобов, посмотреть что работает, а что нет.
Нет, у разных объектов разная перспектива.
Стены и пол нарисованы строго сверху, под 90°, в развертке.
Объекты, видимость который сортируется по оси Y — персонажи и большие препятствия за которые можно зайти, рисуются под углом в 45° в 3/4.
Объекты, которые просто лежат на полу и перекрываются персонажами всегда, вне зависимости от их положения по оси Y, рисуются под углом ~75°, т.е. почти полностью сверху.
Не все спрайты нарисованы строго так, но общая идея такая.
Но из-за разной перспективы фигня получается. Если смотреть незначительно верхней стены, то всё норм, а если на остальные, то похоже, что персонаж пьяный на карачках ползает.
Может тебе в старой доброй изометрии всё делать?
А что это у тебя за соль на карте?
Там графика был мельче чем у тебя... А судя по первым роликам ты вообще планируешь здоровые локации лепить.
Двачюю знатока. Когда видно всю комнату, такое еще прокатывает, а с большими уровнями хуйня выйдет
и это выглядит как полное безвкусное говно
Технически все ок — прикрутил генератор к игре, починил ряд багов. Даже веб-билд сделал (работает!). Но что-то поток идей подиссяк, геймплей кажется примитивным, не нравится сюжетная и арт-составляющая. Дело не бросаю, рисую в скетчбуке, пытаюсь вдохновиться всякими штуками. Думаю месяца на два это уйдет.
Спасибо, что бампаете тред :3
Если у тебя игра тайловая, то можно так, да.
Находить можно кучей разный путей — через коллайдеры, через отдельную сетку (при пасфайндинге), через выборку по тегу и последовательный опрос. Общий совет — делать это в отдельной корутине, например, 5 раз в секунду, а не в каждом кадре.
>тайловая
ага.
>Общий совет — делать это в отдельной корутине, например, 5 раз в секунду, а не в каждом кадре.
ну, она пошаговая к тому же, так что можно сверять только в ход объекта.
спасибо в общем, буду пилить.
бамп
В ГМе 60 фпс
бамп
Это копия, сохраненная 25 октября 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.