Прогресс: январь 2024
Начался новый год, так что открываем нашу регулярную рубрику.
Делимся абсолютно любыми наработками: идеями, зарисовками, отчётами об изучении новых инструментов. Скриншотами, гифками, музыкальными треками и видеороликами.
Обсуждаем, комментируем, показываем варианты, даём советы, устраиваем ролевые игры и делаем всё остальное, на что у меня самого ни за что не хватило бы фантазии.
Если администрация не будет против, то в конце года для всех будут значки! Минимальный значок хотел бы выдать всем, кто отпишется хотя бы один раз, максимальный — тем, кто будет постить прогресс каждый месяц до конца года.
Ну что, «Прогресс 2024» — поехали!
- 18 января 2024, 01:49
- 017
Изучаю GD Script, хочу сделать свой набор скриптов для упрощённой разработки игр типа Битси на годот, для прототипирования, но более продвинутого, чем можно себе позволить в Битси:
Ещё продолжаю страдать с мокапами (экспериментирую с палитрой):
Сегодня попрактиковался рисовать в казуальном стиле Playrix, вдруг появятся шансы найти работу,
ну или просто для себя.
Слева-направо:
1) Оригинал, с какой-то их игры кажется, ну или в их стиле в инете нашёл
2) Перерисовал лицо более анимешнее, ибо люблю няшность, ну и пытался понять как они красят
3) Сделал лайн по своему, более динамично
4) Покрасил (у меня мало работ без лайнарта в покраске, и мало с этим практики пока ещё)
Ещё сделал скетч 3-х катсцен-концовок для гаминаторской игры Мышеловка,
которые я так и не дорисовал уже давно.
Сделал подкомнаты, для теста на одну кнопку открывается подкомната, а на вторую закрывается.
Это будет для меню, для мини игр или например пошаговой боёвки аля JRPG.
Это будет новый Битси экспириенс, который не получить в самом Битси,
мне кажется очень удобно для прототипирования.
Только у меня тут косяк, я забыл что скроллинг общий для всех комнат, и открывая новую подкомнату камера движется, а надо было наверное новую под комнату создавать по центру от камеры, но это потом исправлю ^_^'
Ого, можно игронизацию фильма Начало сделать
Меня посещала идея сделать игру, где мы хакаем программу и попадаем внутрь, а внутри есть ещё программы и т.п. И поскольку у программ есть разные шины коммуникации, то по ним можно ходить, как по порталам (из любого уровня вложенности одной программы в любой уровень вложенности другой, если такой портал заложен разработчиком). При этом программы могут передвигаться, как в стелс игре или в стратегии, где рабочие собирают ресурсы. А ещё они, возможно, могут то и дело запускаться и завершаться вместе со своими внутренними мирами.
Но я не знаю, как наглядно объяснить игроку, что сейчас происходит. Если кто-то другой решит такое сделать, то потом покажете. :D И ещё я приметил, что самые понятные игры про хакинг имеют два мира - мир реальности и кибермир. А если только вложенные кибермиры без реального, то будет смотреться, как авангард, скорее всего.
Ну ты видел наверное
Да, но это же головоломка про сокобан. А я говорю про реалтайм игру, как для геймеров типа. Ближе будет какая-нибудь Recursed, но это тоже головоломка хардкорная.
Сделал двери и столкновение с тайлами и объектами вообще без коллайдеров, а просто проверкой координаты. Проверка столкновений без коллайдеров и перемещение без ригидбоди это одна из главных целей была у меня в годоте, пошаговому перемещению по клеткам это не обязательно.
Весь код столкновения выглядит так, я запихал в списки все интерактивные объекты и тайлы.
Хз насколько оптимизированно, это потом потестирую на своей дешёвой мобиле за 4 к ру.
А зачем. Ну ригидбоди тебе точно не нужен, статикбади для стен и карактербади для персонажа. И зачем вообще без коллайдеров то делать? А если у нас все по сетке и стоит на месте, мы же можем словарь объектов просто оформить и по нему проверять без перебора.
Ну кстати колайдеры больше нужны для сложных форм, для квадратов и кругов легко проверять пересечение по формуле, нет особого смысла хранить в каждом объекте ещё и объект колайдера.
1) Ну вначале я долго за годот не хотел браться изучать, потому-что чтобы создать коллайдер и ригидбоди в юнити надо объекту добавить 2 скрипта, а в годоте надо добавить 2 чайлда со скриптами, это меня до сих пор ломает, но я чуть более почти смирился с таким положением дел.
2) И вследствии чего, я решил попробовать на годоте для начала сделать что-то более простое, иначе бы может быть и не начал изучать GD Script.
3) В одном из примеров у меня есть многослойность, когда я открываю новый слой подкомнаты, то
у меня обитатели новых подкомнат не сталкиваются со стенами других комнат вообще, а с коллайдерами мне пришлось бы изрядно поломать голову как каждый раз отключать и включать коллайдеры, а вместо этого у меня лишь проверка скриптом активной комнаты (самой верхней) без включений и выключений всех коллайдеров и ригидбоди в комнате
4) Пришлось бы настраивать ещё и коллизию каждому объекту и каждому тайлу, а это лишнее время при создании объекта, это не совсем философия Битси, я хотел восоздать тот самый опыт с Битси, когда я мини РПГ на Bitsy / Mosi делал за пару дней, с юнити и всеми этими коллайдерами я и за месяц часто могу не сделать тот же объём игры, что сделал на Битси за пару дней
Ты можешь добавлять колижен через скрипт. Если они все одинаковые (квадратные и одного размера в данном случае) можно вообще наследовать все игровые элементы от одного объекта или отдельно колижен шейп сохранить и его всем устанавливать через скрипт.
Можно ставить на паузу неактивные элементы
Выше уже писал про добавление через скрипт всем одинакового колижена. Ну а без колиженов, если в одном месте один объект, просто забить координаты хоть в 2д массив, хоть в словарь. Не думаю что будут проблемы с быстродействием.
Кажется доделал Битси Фреймворк, заодно запихал асинхронное передвижение в пошаговой игре, где за один шаг можно пройти много шагов.
А что это за тазики с водой, на которых поскальзывается и ускоряется колобок?
А ну это пока абстракция, по идее это должны быть какие-то ускорялки типа Соника.
Получается можно делать пошагового Соника :')
Но ведь уже февраль
Я всё-таки предлагаю, чтобы пост был актуален до появления следующего. Те, кому хочется еще что-то вложить (таких, как видим, совсем немного) — пусть выкладывают, это же здорово, не обязательно ждать еще полмесяца.
Алекс вообще чемпион с детоксом этим своим ;)
Пост за февраль будет где-то в конце февраля — в соответствии с результатами голосования.
Пусть будет так. Мне казалось, что как отчётность это вроде отчитался и до следующего поста, тогда действительно под конец месяца надо. А если можно дополнять между постами, хм. Не знаю. Но если это кому-то надо, то может так и надо.
На этом фреймворке сделал игру на годоте, был такой челленж, я ребятам с группы годота в телеге сказал что сделаю игру за 2 дня, но не сделал :'D , пришлось целую неделю провозиться с этой мини РПГ.
Fixed. ;)
А вот это я вообще не понял, погуглю, без примера кода я вообще сложно улавливаю на слух такие вещи.
Типа если у тебя резкий скачок из клетки в клетку всегда (шахматы), то для любой координаты можно вычислить номер клетки (x + ширина_уровня * y), и по этим номерам хранить в массиве все объекты (а где нет объекта, то null). Но если у тебя, допустим, на одной клетке могут быть свиток на земле и птица в воздухе, то будет немного посложнее, надо уже хранить не сами объекты в массиве, а снова массивы объектов. :)
А то есть без коллайдера, а просто массивом?!
Я пока не совсем понял как Тайлы записывать в массив, нашёл какой-то пример, но пока не тестил его.
только я думал сделать 2д массив, или он медленнее?!
Делай, как удобнее.
Я бы сказал, что медленно, когда элементы в массиве лежат по горизонтали, но часто в коде по ним ходишь по вертикали. Или наоборот, когда в массиве по вертикали, а в коде ходишь по горизонтали.
Но возможно, в одном массиве будет тоже быстрее, чем в нескольких, хз.
Подкомнаты получили развитие, и теперь из них сделал меню и диалоговую систему.
Только прикол в том что тут нет кнопок, это не кнопки и курсор, а те же самые тайлы и протагонист,
просто Grid другой, и та же самая механика, что и в основной игре.
Задача была сделать что угодно в подкомнатах, но с той же самой пошаговой Битси механикой,
не добавляя новых скриптов, где фиолетовым это всегда Аватар, а синим это интерактивные объекты