Сап Двач.Вкатываюсь в гд со своей магической экшон-рпг-роглайт со сложной системой стихий, кучей ЦИФЕРОК, использованием заклинаний для путешествий по разным планам за редкими ресурсами для покупки новых заклинаний и повышенным содержанием символизма и мистицизма (на скринах не представлено).В обычной жизни — JS-разработчик. Пилю по вечерам с августа, мне помогает еще один человек. Не заебало. Юнити, пиксель-арт. Lich это рабочее название проекта, потому что он про безымянную криповую сорку.Что уже есть:— Общий диздок и подробно расписанный демо/онбоардинг— Движок с абстракцями для мобов, игрока, заклинаний и т.д.— Гибкий генератор данжей— Дубовый генератор комнат— Фреймворк для ИИ мобов на конечном автомате— Спизженные из разных игр спрайты— Изрисованный наполовину скетчбук с видением мира и всякими СКРЫТЫМИ СИМВОЛАМИ— Стены, пол и двери для одной локации — наибанальнейшего данжа из камнейСейчас работаю по двум направлениями:— Переключиться с рисования графики на написание брифов и отдать ее тем, кто рисовать действительно умеет— Написать редактор уровней, чтобы не возиться напрямую с JSON
>>327577 (OP)Арт сочный, пиксели не поворачиваешь, мне нраица. Unity пугает — системные требования у игры с таким графоном всё равно завышены, я прав?
>>327590Да, скорее всего с этим будут. Я еще ГМ, смотрел мельком, но он мне показался слишком примитивным и там 30 фпс вроде, что не очень хорошо для экшона. А что бы ты выбрал?
>>327616Ну, я пользуюсь LWJGL3 c Kotlin, но я велосипедист-извращенец. С другой стороны, рогалику не нужны особые велосипеды.
>>327838Какая разница сколько кадров в анимациях? Ее вообще может не быть, отзывчивость управления от этого не зависит.
Начал писать редактор уровней. Посколько все, что он должен делать это открывать и записывать JSON, решил не упариваться в интерфейсы на Юнити и нафигачить его на хорошо мне известном Реакте, а потом просто запихать в Электрон. Или даже так оставить. Дополнительный профит — легко шарить редактор онлайн.Завел вебпак и нафигачил прототип редактора. Пока все, что он умеет — выделять тайлы по клику. Ну и интерфейс продумал. Меньше драг-энд-дропа, больше хоткеев: легче писать и быстрее работать.Завтра продолжу.
>>327838Вот, пожалуйста, типчный представитель фауны.>>327869Еще один.>>328188И младший брат-долбоеб тоже на месте.
>>328284Спасибо. Я ожидал подобной реакции, не первый проект на дваче пилю. Мою самооценку такой ерундой не пошатнуть.>>328188Фронтенд тоже когда-то был не моим. Ничего, научился.
>>328317Ты понимаешь, что все это время ты учился онанизму, вместо отношений с тянками?Уже поздно пытаться стать нормальным. Смирись.
Продолжаю писать редактор, хочу закончить приемлемую для работы версию сегодня-завтра.Он научился составлять библиотеку ассетов, и преобразовывать JSON уровня в его превью. Осталось сделать обратный процесс и допилить всякие мелочи вроде возможных слотов для дверей.По поводу спрайтов — это просто временные заглушки для тестов кода и геймплея. Не думал, что нужно это уточнять.
Привет, анончик. Интересные вещи тут делаешь, правда, комната со скринов уж очень что-то напоминает, но вот что - не могу понять.Вопрос к тебе: если я картиночки всякие умею рисовать, но не в пиксель-арте - могу ли в команду влиться али не нужон?
>>328878>комната со скринов уж очень что-то напоминает, но вот что - не могу понять.Legend of Zelda: A Link to the Past
>>328878>комната со скринов уж очень что-то напоминает, но вот что - не могу понятьЗельду, Айзека. С такой перспективой не очень-то много игр. Сейчас обычно делают вид сбоку (Crawl, Enter the Gungeon, Nuclear Throne), но я не хочу по геймплейным соображениями.>Вопрос к тебе: если я картиночки всякие умею рисовать, но не в пиксель-арте - могу ли в команду влиться али не нужон?Не надо, спасибо.
>>329171Вообще можно писать на недо-JS и компилять под WebGL, но я на C# пишу. После первого языка остальные учатся намнооого легче.
>>329173Так я не понял, почему редактор у тебя открывается на localhost:7099, если ты на Unity делаешь? На выходе ведь должна .exe программа получаться?
>>329177Редактор вообще не связан с Юнити, все, что он него требуется это редактировать JSON-файлы. На шарпе я бы его в пять раз дольше писал.
Добавил в редактор возможность размещать и удалять ассеты из библиотеки, горячие клавиши для перемещения по сетке и сохранение в локал сторейдж. Остались двери, добавление и удаление уровней и экспорт в JSON. Всякую мелочевку, типа возможности поворачивать ассеты, пока нафиг.
>>329308Довольно некрасиво заполнять комнату подобными объектами. Сделал бы лучше тайлы.Пример того как сделать красиво на быдлохабре: https://habrahabr.ru/post/227205/Простая софтина, чтобы сделать ещё и быстро:http://pixelatto.com/autotilegen/
Редактор допилен, экспорт в JSON работает, уровни рисуются. Настало время вернуться к пикселям, запилить несколько брифов и озаботиться поисками приличного пиксель-артиста за монету. Потому что сам все это рисовать я точно ебанусь.>>329806Не вижу особого выигрыша от такого способа.
Ковырял несколько часов спрайты, в попытках сделать нормальные камни из нескольких пирамид. Даже сделал по-быстрому рендер в Блендре, но на таком размере хрен нарисуешь сколько-либо сложную форму. Результат пока не радует.
Проебался несколько вечеров с Юнити, в частности с автоматизированной загрузкой ресурсов — одни предлагают папку ресурсов, другие ассет бандлы, третьи — захуячить расширения для редактора чтобы собирать. Кто во что горазд, короче. Попутно горю от многословности, дубовости и императивности C#.Предвижу завтра веселье с попытками распрарсить JSON уровня в классы.
Ожидаемое веселье с JSON действительно было — убогий парсер Юнити может только в массивы и заранее предопределенные структуры. Отдельный багет доставляет полное отсутствие культуры внешних библиотек и управления зависимостями — только ассет стор, где нормальный парсер стоит 25 баксов. Безумие какое-то. Впрочем, через некоторое время JSON сдался.На выходных впихал редактор в Электрон, чтобы можно было работать напрямую с файлами из папки ресурсов, брать оттуда ассеты и сохранять уровни. Получилось годно, батя говорит маладца. Второй Кирилл тем временем пилил генератор данжей.Технический фундамент игры начинает мне нравится. Следующая задача — написать генератор комнат и прикрутить к нему работу с лейаутами уровней.
>>359966Кирилл, ты ебанутый? Ты можешь кинуть любую managed dll в папку с ассетами и она сама подключится.
>>359966Возьми Newtonsoft.Json, в слегка урезанной для Юнити версии нет некоторой неработающей на айфонах хуйни и не еби мозги. Лежит на гитхабе где то.
>>360588>>360943И их придется в репозитории держать? Вот это я имел в виду, говоря про отсутствие культуры управления зависимостями. В любом случае, спасибо за советы.
>>360972жс-макака не может прожить без своего npm и кучи ненужного говна?Не расстраивайся, для C# есть nuget. Проблемав том, что UNYTI это слишком специальная программа, с своей кастомной и древней mono, в которой нет дохуя библиотек.
>>360973>жс-макака не может прожить без своего npm и кучи ненужного говна?Да ещё какого говна, инструментарий JS - говнище уровня Unity, тащем-та. Просто опять же, лучше ничего и нет.>Не расстраивайся, для C# есть nuget. А я и пишу на C#.
>>360945А ты используешь не Perforce/Plastic для контроля версий? Зачем? Всякие там помойные гиты для бинарников не годятся. А в геймдеве большая часть всего - бинарники. Ну а в целом тут управление зависимостями живет постольку поскольку.
>>360973>жс-макака не может прожить без своего npm и кучи ненужного говна?Да ((((9npm заебись же, ну ты чо>>361003Гит использую, про Perforce/Plastic почитаю, спасибо.
>>361003>>361010>PerforcePerforce это боль. У нас его использовали на работе, но год назад перешли на гит.
Не особо производительные три дня, еще и на работе адок; допиливал редактор, настраивал для него сборку (вайн ставился полтора часа), причесал все проекты и слил на гитхаб и прочее такое. Посмотрел альтернативные VCS, не впечатлился. Тяжелых бинарников у меня не особо много, графон-то уровня NES. Так что обойдусь гитом.
Сделал генерацию комнат из ресурсов. Делаю комнату в редакторе, сохраняю, сразу же смотрю в игре, красота. Теперь нужно прикрутить к ресурсам лут и мобов. Наверно, надо будет из кода генерить анимации и их контроллеры.Немного поковырял камеру, выяснилось, что стиль пиксель-арта, который я выбрал, прекрасно скеилится. Даже если в сетке чередуются логические пиксели по 3 и 4 физических, то это совершенно незаметно. Приятный бонус. До этого хотел скейлить только до полностью кратных разрешений, теперь разрешу x2.5, x3.5 и т.д. (х1.5 выглядит все равно довольно стремно).Второй Кирилл, тем временем, допил генератор уровня, который отвечает нашим планам.
>>373049>Даже если в сетке чередуются логические пиксели по 3 и 4 физических, то это совершенно незаметно.Скинь, плз, примеры, как это выглядит.
>>374464Пиксели разного размера в любом случае не ок.Сука, сначала стараются, вырисосывают, а потом херят картинку в собственной игре. Так трудно догадаться, что надо увеличивать в целое число раз, а потом уменьшать биленейным до пользовательского окна?
>>380999Ты попробуй, оно почти не заметно. Увеличивай ближайшим соседом во много раз, 4 например. Так делали в Megaman Legacy Collection.
Чем же занимался ОП каждый вечер это недели? Охуевал от Юнити, конечно.Прикрутив статичные спрайты, я принялся за анимации. Нагуглил аж 4 способа:1. Написать корутину, которая будет менять спрайты по таймеру2. Legacy Animation, который ОЧЕНЬ ЛЕГАСИ НЕ ИСПОЛЬЗЙТЕ ПЛЕС3. Mecanim, который доступен только из редактора4. Playable API, который экспериментальный и нестабильныйПервый способ — очевидный велосипед и хуита, легасиговно мы тоже не хотим, меканим оче переусложнен и ничего не может из рантайма, на последний толком нет примеров и вообще экспериментальные фичи — ну нахуй.Кроме того, в Юнити тупо невозможно создать AnimationClip из спрайтов в рантайме. В игре 50 мобов? Будь добр сделать по десятку анимаций для каждого и закинь это все руками в контроллеры. Или пиши скрипты для редактора, которые все это будут делать за тебя. Собственно, последним я и занимался. Ура, теперь есть кнопка, которая собирает клипы из спрайтов. Осталось решить проблему с контроллерами и прикрутить это все к объектам.Не могу сказать, что все это дрочево вместо программирования, собственно, геймлпея мне нравится, но делать такое руками — фу блять! Тем более, что Кирилл №2 все еще подпиливает скрипт генерации данжа.
>>381015>В игре 50 мобов? Будь добр сделать по десятку анимаций для каждого и закинь это все руками в контроллерыЕсли у этих мобов спрайтлист и анимация выполнена по одному шаблону то можно использовать один контроллер для всех. Меняешь спрайт в спрайтрендерере и всё будет работать.
>>381015>Первый способ — очевидный велосипед и хуитаЛол, дурачок. Animator просто меняет sprite в SpriteRender. Никто не запрещает тебе сделать свой компонент, который будет делать тоже самое.
>>381437Насколько я понял, это работает только если в анимации используется один спрайт. А у меня кейфреймы. AnimationClip в рантайме привязать или заменить нельзя.>>381431Зачем, чтобы еще сильнее страдать?>>381463Если анимировать персонажей, то меканим таки поудобнее будет. Тем более, что с процедурной генерацией контроллеров я уже разобрался.Алсо, галка ОПа проебана навсегда вместе со старым ноутбуком.
>>381466>Если анимировать персонажей, то меканим таки поудобнее будет.Если анимировать сложных 3Д персонажей. Тебе же только спрайты переключать надо.Вот ради интереса набросал пруфес оф концепт
Решил нарисовать нормальные спрайты игрока и порядком подвис на выборе стилистики и палитры. Очевидно, что уровень Super Metroid или Minish Cap мне не осилить, так что пока выбор из двух стульев — честная палитра NES без нормальных красных цветов и с полным отсутствием приличного темного цвета для фона кроме черного и, с оговорками, темно-бирюзового (на пике) или более мягкие и ламповые тона SNES, но все равно с жестким ограничением по количеству цветов. Последнее посложнее и уже готовые стены придется сильно перерисовывать, чтобы контраст был поменьше. Отдельный вопрос — делать обводки или нет?Просто пиздец, голова взрывается.
>>381934>Просто пиздецНе умеешь - не лезь. Я НЕСоеды умирают. Делай казуально. Ебать палитру уже не модно, не оценят.
>>381934Обводки однозначно делай. Чем меньше палитра, тем больше шансов твоего спрайта потеряться на пике.Я пользую fun16, но я убеждённый дебил.
>>381974>>381934Забыл сказать: цветная (тёмно-фиолетовая как на пике или ещё какая) обводка делает всё на 20% круче.Ещё и сажа приклеилась.
>>381974>>381976Спасибо за советы. Я не сторонник слишком маленьких палитр, потому что там приходится делать миллионы дизеринга, а я его терпеть не могу. Надеюсь, что уложусь в 64 цвета или около того.
Чуть не неделю не писал апдейтов, а тем временем сделали кучу всего.Во-первых перерисовал стены, сделал палитру более мягкой и убрал верхнюю часть стен (извини, Зельда, но нет) и выработал для проекта принципы пиксель-арта, которых буду придерживаться в дальнейшем.Во-вторых Кирилл #2 запилил генерацию данжа, да еще и настраиваемую по веткам. Лейауты берутся из базы, комнаты генерятся, переходы работают, примитивная карта рисуется. Красота!Теперь планирую налечь на три направления:1. Сделать персонажу анимацию, понять как это удобнее экспортировать в спрайтшит и настроить соответствующим образом сборку контроллера из этого спрайтшита. После этого можно будет сделать мобов.2. Изменить генерацию стен, пола и дверей так, чтобы они не зависели друг от друга и сделать возможность динамически свопать палитру на них — в целях экономии двери и пол будут одинаковые во всей игре. Видимо через шейдеры? Пока не знаю.3. Секретные геймплейные вопросы.
Оп на связи. Хорошо, что тред не утоп еще.Разработка продолжается в обычном темпе, просто я ленюсь писать отчеты. За два месяца запилили систему управления ресурсами и автогенерацию анимаций и контроллеров, сделали нормальный пасфайндинг, нормальную миникарту, уточнили миллион геймплейных вопросов и заебошили несколько спрайтов. Все еще подгораю с Юнити и необходимости писать кучу тулинга самому. А ведь это время можно было бы потратить на программирование геймплея. Но, что уж есть.Вместо простыней буду бампать картиночками мобов. Вот, например, грибомедуза — самый базовый овощной монстр.
Окай, вот гифочка.Хотел сегодня сделать новые анимейшен контроллеры для 1- и 2-направленных мобов, но вместо этого убил весь день на простейшую (казалось бы) задачу — вывести текст о состоянии ИИ рядом с мобом. Хуй знает какой индус делал систему гизмо в юнити — некоторые гизмо работают в гейммоде, некоторые — нет, гизмо для вывода текста тупо нет, если вызывать GUI из OnGUI, то он получает один скин, если из OnDrawGizmos, то другой... Опять весь день потрачен на тулинг вместо программирования геймплея.
Чем больше я читаю эти блоги разработки игр, тем меньше у меня веры что мне стоит заниматься геймдевом. Терпения и удачи тебе, ОП.
Сегодня большую часть дня пилил отлетающие цифры, куча времени ушла на подбор приятных кривых. Плюс сделал так, чтобы направление разлета зависело от положения игрока в комнате.Из важного — запилена система заклинаний, которая позволяет гибко комбинировать эффекты (пик 2 — файрболл). Это важно, потому что спеллов планируется МНОГО — на их сборе и комбинациях и построена вся игра.Кроме того произведена эпическая работа по переписыванию генератора анимаций и контроллеров, теперь он полностью контролируется JSON-данными, а не тупо именами файлов в папке.Ближайшие планы — нормальные индикаторы здоровья и маны, основной геймлуп (база / данж / смерть), оставшиеся мобы и спрайты окружения.
>>400245Иди на хуй, у него отлично получается. Будет отличная игра.>>402803Хочу айзека без какашек и с приятными персонажами!
>>402803Самую малость нечитабельно. Нужно как-то циферки разными делать. Или допустим от каждого спелла свой размер/цвет шрифта.
Ух ты, ОП, у тебя тут серьезное дерьмо.У меня вопрос - где ты берешь свободное время?Я вот как и ты, пердак-пердукс макака, и напрограммировавшись за день на работе, сидеть еще и вечером за геймдевом у меня сил не остается. Хоть и хочется. Но башка уже не варит.В итоге пилю свой тетрис только на выходных. И из за этого медленно получается.
>>402887>>403032Спасибо, аноны, ваш фидбек согревает мое сердце.>>403043Немного по вечерам, вся суббота, иногда еще вечер воскресенья. Иногда удается попилить полдня в рабочее время, когда жду бэкенд и нет задач. Если башка не варит, то иду спать. У меня все тоже не быстро, знаешь ли; девятый месяц разработки и даже демки нет. Но я сразу планировал, что буду делать ДОЛГО и понемногу, так что особо не бугурчу — мне нравится процесс. И привычка сформировалась уже.
>>327577 (OP)я не понимаю что тут происходит, но уверен что тебе нужна поддержка в качестве бессмысленных кукареков итт
>>327577 (OP)ОП, можно к тебе саунд-дизайнером вписаться?Навыки ниже среднего наверное, но я очень хочу попробовать себя в деле.
Оп на связи. Неделя довольно продуктивная, сделал базовый UI на канвасе, контроллер к нему, ивенты и т.д.Сильно допилил код игрока, выкинул оттуда старый мусор, сделал кастайм и глобальный кулдаун. Неожиданно много времени заняла разработка такой простой внешне фичи, как определение направления каста по последней нажатой стрелке — ходить можно в 8 направлениях, а стрелять только в 4. Пришлось даже прибегнуть к помощи коллеги из Физтеха, но в итоге все сделано и работает прекрасно.Хочу рассказать о некоторых фишках игры, которые отличают ее от Айзека. Там сходство больше внешнее на самом деле.— Основа боевой механики — заклинания. Их много, они разных элементов, стоимости, мощности и т.д.— Лич путешествует по разным мирам и выбивает из мобов ресурсы и использует их для покупки новых заклинаний в логове. Ресурсы пропадают при телепортации обратно в данж, но заклинания всегда остаются в собственности игрока.— Все планы (данжи) игры связаны друг с другом, некоторые связи очевидные, некоторые секретные, некоторые требуют определенных заклинаний для прохода.И две важные механические фишки:— Магия нейтральна. Заклинанию все равно кто его скастовал, можно убиться об собственный файрболл или подставить моба под спелл, который скастовал другой моб.— Магия материальна. У файрболла есть масса, он отбросит тело, в которое стукнулся, два файрболла взорвутся при столкновении. Взаимодействие между заклинаниями зависит от их силы и элемента.>>404111cone-of-cold@ya.ru
На той неделе решил сделать простую задачу — покрасить цифры, которые вылетают при ударе в разные цвета. Белый для урона по мобам, зеленый для лечения и красный для урона по игроку.Думаю ок, надо делать через замену палитры шейдером, все равно это потом понадобится. Но чтобы сделать через замену палитры, надо чтобы исходный спрайт был нормализован, т.е. показатели красного канала располагались через равные промежутки, типа 0, 0.33, 0.66, 1. Руками вроде как делать не хочется. Пишу скрипт, который нормализует спрайты.Попутно думаю — так, а что если у меня палитра у Monster@Move.png и Monster@Idle.png будет разная? Может там какие-то цвета используются только в анимации атаки, например? Тогда палитра свопаться будет криво. Ок, значит надо склеивать спрайты с одинаковым именем, но разными действиями и делать для них единую нормализованную палитру.Да, кстати, а чего-то у меня спрайты хранятся в разных ase-файлах? Я же могу их хранить в одном, но разные анимации под разными тегами, тогда и тестировать свопы будет проще и вообще как-то правильней получается. Тем более у Aseprite есть CLI, ща мы все через консоль экспортируем. Выясняется, конечно, что CLI недопилен и экспортировать по тегам может только в отдельный файлы, но не в спрайтшиты. Но меня уже не остановить, я нахожу либу чтобы дергать шелл из ноды, генерю через Aserprite CLI миллиарды промежуточных файлов с фреймами, собираю их нодой в спрайтшиты, нормализую палитру, и пишу на диск.Потом еще полдня ковыряю шейдер и УРА, РАЗНОЦВЕТНЫЕ ЦИФРЫ.
>>406019Ебучий случай анон. Нахуй блядь это программирование с нуля. Цвет циферок поменять и такой невзъебенный квест с кучей геммороя. Я ебал.
>>406019Сделай для урона по мобам жёлтым цветом, белый не смотрится, плохо читается. А жёлтый это традиционно
>>406019Я обычный геймер и, имхо, не всегда отдельные циферки лучше суммы всего дамага за атаку или комбо.
>>404138> коллеги из ФизтехаШта? Не понял, ты коллегу из физтеха спрашивал, как сохранить последнюю нажатую стрелочкуя или что?
О, вовремя тред бампанули.Две недели ковырял три вещи:— UI, в частности генерик меню выбора чего-либо — сверстал, подобрал шрифт, сделал автоматическую подгонку размера по обоим осям, сделал для UI систему ивентов, адаптировал ее к инпуту игрока и т.п.— NPC, сам класс, корутина, которая отслеживает ближайшего NPC и перехватывает инпут— Класс с прогрессом, который потом можно будет записывать как сейв и отслеживание этого прогресса другими классами.Плюс всякие менее значимые вещи, например перенос конфигурации всех материальных объектов в JSON. Кажется, что префабы уже практически не нужны, все генерится через код.Это, кажется, самый большой коммит за всю историю проекта.Спрайты все еще временные, не могу определиться со стилем, освещением и эффектами.>>406073Своп палитр планирую использовать повсеместно, так что думаю, что эти усилия оправданы. В любом случае, я рад что разобрался что такое шейдеры и как они работают.>>406499Согласен.>>408449Согласен, но это не в приоритете. Отдельный цифры сейчас потому что заклинания собраны из «эффектов». Например Fireball состоит из FireballProjectile и FireballBlast. И если проджектиль может попасть только в одного моба, то бласт вполне может задеть нескольких. Это сделано для того, чтобы можно было создавать сложные заклинания комбинируя простые эффекты.>>408462Из-за величины комьюнити, в основном.>>408465Игрок может ходить в 8 направлениях, а кастовать только в 4. Представь, что сначала он жмет вверх (идем вверх, кастуем вверх), потом не отпуская вверх, вправо (идем вправо-вверх, кастуем вправо), а потом отпускаем вправо (снова идем вверх и кастуем вверх, хотя последняя нажатая кнопка — вправо). Как решать будешь? Плюс еще есть интересные крайние случаи, когда сначала идем вверх, а потом вниз и влево — игрок нажал две кнопки в один фрейм, ничего невозможного. Тоже надо обработать.
>>408482В направлении движения, если направление - диагональ, то по последней нажатой кнопке, не? Я как бы это и имел в виду.
>>408483Я тебе в после привет пример, где эта логика не работает. Мне это тоже сначала очевидным казалось, кек.
>>408485Зажать вверхЗажать вправоОтпустить вправоПоследняя нажатая кнопка — вправо, а кастовать надо вверх.
>>408489Перечитал, там глупость написана. Что значит «если направление - диагональ, то по последней нажатой кнопке»? У тебя нажатия кнопок не идут потоком, просто в каждом фрейме можно получить инпут для оси X и Y.В кадре N тебе приходит инпут [0, 1], а в кадре N+1 — [-1, -1]. И что, какая кнопка тут была последней? Куда надо кастовать?
>>408490Какой 0, какой -1, наркоман? На клавиатурке тю-тю нулей и минус-единиц, але блять. Совсем со своим юнити поехали. Ты говорил о кнопках - я тебе про кнопки и ответил. Если у тебя вместо кнопок абстракция, которая тебе не подходит, то это совершенно другой разговор, это же очевидно.А уж если у тебя абстракция, то спеллы всегда должны кастоваться в направлении движения, ибо мобилки, например. А если у тебя нет клавиатуры в коде, но ты ее выдумываешь обратно, то у тебя эта абстракция протекает - тоже очевидно, кстати.
>>408492Рад, что ты признал непонимание того, как и зачем устроен инпут в Юнити. На этом можно и закончить, наверно.
>>408495Тебя каждый пост надо просить перечитывать? Нет, ну все написано же - прочитай, потом отвечай. Я уж молчу про то, что описанный мной в первом посте способ работает точно так же и для твоих нулей с единичками, но ты опять не удосужился подумать об этом, прежде чем писать пост.
Я другой анон, не понял, из-за чего у вас тут спор, хочу понять. Объясните, например, в чем минусы такого нахождения последней кнопки (псевдокод):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 // остальной код}
А, да, при касте еще должна идти проверка, движется ли сейчас персонаж по диагонали. Если да - используем эту нашу lastKey, если нет - используем направление движения.
>>408517>>408518О, код! Обычно сначала X, а потом Y идет.Минус только один (довольно минорный) — приоритет одной оси даже в тех случаях, когда это не нужно, например при инпуте вида [0, 1] -> [-1, -1] хочется двигаться по той оси, где разница была больше, а просто по фиксированной.Ну и через вычитание векторов таки покороче.
>>408537Я работаю над игрой!Сейчас добиваю все куски движка и ассеты нужные для демки, потом, вероятно, долго будут ковырять геймплей, баланс и прочий флоу.Что сделал с прошлого раза:— Выпилил из ядра практически все следы императивщины, заменив их на ивенты. Стало намного понятнее что за чем идет, код ста менее связанным.— Доработал UI — шрифты, обводки, ХП и МБ бары— Сделал вариант меню из двух секций, добавил лайтбокс— Сделал сохранение и удаление сейва— Продумал основные положения вселенной игры и накидал несколько временных спрайтов (потом художник с руками перерисует)
Сегодня без гифок, извините.Процесс движется черепашьими шагами, все еще куча времени уходит на инструментарий.Что сделано:— Дорисовал всем спрайтам тени, стало сильно лучше, но над полом еще надо поработать. Добавил работу с тенями в свой сборщик спрайтов, сейчас он просто следит за тем, чтобы все тени были одного цвета.— Практически закончил покупку за лут NPC и заклинаний, скоро смогу наконец-то тестить главный геймлуп— Нормальный инвентарь с иконками— Перенес все ресурсы кроме уровней из JSON в ScriptableObjects, стало значительно удобнее в них копаться
>>429299Его делал Кирилл №2, так что на сто процентов точно не отвечу. Там стандартный A*, плюс, если я ничего не путаю, то если моб не видит пути до игрока, то идет к мобу, который ближайший к игроку. Какая-то очень простая логика, в общем.По алгоритму хороший туториал вот: https://www.youtube.com/watch?v=-L-WgKMFuhE&list=PLFt_AvWsXl0cq5Umv3pMC9SPnKjfp9eGW
>>436227Спасибо, чекну.Что сделал за последнюю неделю? А нихуя не сделал. На работе дикий дедлайн, ебошу до ночи. К счастью, это скоро кончится.
ТАК БЛЭТРаботу раскидал, продолжаем.Прошел через очередной цикл перепридумывания основных геймлупов и механик. Вроде справился, попустило.Для реализации новых идей стало надо потюнить генератор уровней, но внезапно оказалось, что он намертво привязан к гейм обжектам. Пришлось переписать. Теперь можно гонять его прямо в редакторе, каеф.Теперь игре надо нарастить немного мясца — задизайнить пару десятков комнат, расставить мобов, посмотреть что работает, а что нет.
>>440468Нет, у разных объектов разная перспектива.Стены и пол нарисованы строго сверху, под 90°, в развертке.Объекты, видимость который сортируется по оси Y — персонажи и большие препятствия за которые можно зайти, рисуются под углом в 45° в 3/4.Объекты, которые просто лежат на полу и перекрываются персонажами всегда, вне зависимости от их положения по оси Y, рисуются под углом ~75°, т.е. почти полностью сверху.Не все спрайты нарисованы строго так, но общая идея такая.
>>440501Но из-за разной перспективы фигня получается. Если смотреть незначительно верхней стены, то всё норм, а если на остальные, то похоже, что персонаж пьяный на карачках ползает.Может тебе в старой доброй изометрии всё делать?
>>441077Там графика был мельче чем у тебя... А судя по первым роликам ты вообще планируешь здоровые локации лепить.
>>441462Двачюю знатока. Когда видно всю комнату, такое еще прокатывает, а с большими уровнями хуйня выйдет
>>441462>>441465Говорю же - не шаришь.Обширные комнаты были и в цепи в прошлое и в ораклах, и в миниш кепе. я не ОП
>>443272Технически все ок — прикрутил генератор к игре, починил ряд багов. Даже веб-билд сделал (работает!). Но что-то поток идей подиссяк, геймплей кажется примитивным, не нравится сюжетная и арт-составляющая. Дело не бросаю, рисую в скетчбуке, пытаюсь вдохновиться всякими штуками. Думаю месяца на два это уйдет.Спасибо, что бампаете тред :3
Раз тут рпг тред спрошу здесь. Как хранить\находить объекты на карте? Завести каждой ячейки карты список, и для каждой ячейки обновлять список, если на ячейке что-то находится?
>>445289Если у тебя игра тайловая, то можно так, да.Находить можно кучей разный путей — через коллайдеры, через отдельную сетку (при пасфайндинге), через выборку по тегу и последовательный опрос. Общий совет — делать это в отдельной корутине, например, 5 раз в секунду, а не в каждом кадре.
>>445390>тайловаяага.>Общий совет — делать это в отдельной корутине, например, 5 раз в секунду, а не в каждом кадре.ну, она пошаговая к тому же, так что можно сверять только в ход объекта.спасибо в общем, буду пилить.