📖 Больше деталей и рабочего процесса в блоге: t.me/+oNTh-Tsp…Наконец-то придумал название для игры. Раскрываю сюжет и показываю, как продвигается разработка. Ну и конечно, куда без трудностей, их тоже обсудим.
Демо игры на 1 апреля. Провалить стыдно, поэтому рассказываю всем
Как человек, который любит архитектуру и продумывать всё до мелочей (даже если это никому не нужно), я знаю, что разработка новой игры может сильно затянуться. Мой публичный путь, как пинкиДемо игры на 1 апреля. Провалить стыдно, поэтому рассказываю всем
Как человек, который любит архитектуру и продумывать всё до мелочей (даже если это никому не нужно), я знаю, что разработка новой игры может сильно затянуться. Мой публичный путь, как пинки под зад, чтобы я не переставал двигаться, чувствовал ответственность за продукт, а не проект, учился ставить и соблюдать дедлайны.
Так вот: сейчас я попал в некую вязкость по проекту и мне нужен пинок. Декларирую: на 1 апреля выход демки. Уже в конце месяца предоставлю ссылку моим тестерам на игру с демо-контентом. Я думаю, это возможно, сделать минимум один этаж и даже часть меты. С графикой не понятно, но демке не нужна чистовая графика.
Очень скоро я закончу базовый черновик лора игры и расскажу подробнее, что это за вселенная.
📖 Больше деталей и рабочего процесса в блоге: t.me/+oNTh-Tsp…
Я не могу и не хочу хранить весь контент игры в оперативной памяти. По орочьи это расточительно.
Изначально я планировал использовать SQLite, чтобы брать только те данные, с которыми нужно работать прямо сейчас. Данные игроков при этом сохранялись бы на Я не могу и не хочу хранить весь контент игры в оперативной памяти. По орочьи это расточительно.
Изначально я планировал использовать SQLite, чтобы брать только те данные, с которыми нужно работать прямо сейчас. Данные игроков при этом сохранялись бы на сервер GamePush.
Но возникла проблема: на клиенте (в браузере) невозможно реализовать SQLite. Можно использовать IndexedDB, но если хранить в нем контент игры, теряется весь смысл оптимизации, ведь придется каждый раз загружать game.json, чтобы заполнить базу.
Я долго ломал голову и пришел к выводу, что не обойтись без собственного сервера под игру. Это будет сервер контента, который будет отдавать части контента по запросам.
Что из этого?
❌ Зависимость от второго сервера (помимо GamePush)
❌ При высокой нагрузке это может стать узким местом
✅ Можно менять баланс без сборки и модерации
✅ Возможность создать админку контента игры
Идеальных решений не существует, приходится чем-то жертвовать. Итог: cервер контента для игровых данных + GamePush для данных игрока.
📖 Больше деталей и рабочего процесса в блоге: t.me/+oNTh-Tsp…
Все эти красивые схемы из книжек и ютуба: концепт, прототип, тесты, полировка, релиз. Идут на трубу.
Чтобы идти по этапам как пишут, надо точно знать финальный результат. Как у книг, которые пишут с конца. Но игра - это другое. Такие этапы ты можешь разлоВсе эти красивые схемы из книжек и ютуба: концепт, прототип, тесты, полировка, релиз. Идут на трубу.
Чтобы идти по этапам как пишут, надо точно знать финальный результат. Как у книг, которые пишут с конца. Но игра - это другое. Такие этапы ты можешь разложить по важности только в конце своего пути. И если ты не слепо копируешь свой предыдущий опыт, то откуда тебе знать результат, который должен получиться? Переменных слишком много, вопросов еще больше. Их может закрыть только опыт.
Поэтому реальная разработка выглядит как прыжки туда-сюда: от дизайна к тестам, от тестов к концептам, а от концептов может быть сразу релиз. 😳
Вот она, реальная разработка игр. Ее не знают только новички. Ну ты знаешь... ты не такой. Но тоже хочешь таким быть.
📖 Больше деталей и рабочего процесса в блоге: t.me/+oNTh-Tsp…
Когда игроки зависят друг от друга не по прихоти сюжета, а по воле системного дизайна, в игру вступает магия. Это не просто кооператив. Это социальный контракт. Тот самый инструмент, о котором я обещал рассказать.
Как это выглядит?
Ивенты гильдий. ПропусКогда игроки зависят друг от друга не по прихоти сюжета, а по воле системного дизайна, в игру вступает магия. Это не просто кооператив. Это социальный контракт. Тот самый инструмент, о котором я обещал рассказать.
Как это выглядит?
Ивенты гильдий. Пропустил день и подвёл 20 человек. Ролевая зависимость. В рейде нужен именно ты. Без тебя всё пропало. Общий котёл. Ресурсы копятся миром, важен вклад каждого.
Почему работает? Социальные механики дают космический retention. Люди не уходят, потому что не могут бросить друзей.
Но есть нюанс. Если гильдия развалится, игрок уходит навсегда. С чувством, что его предали.
Что делать? Пути отступления, чтобы игрок не чувствовал ловушку. Умный подбор тимейтов. Мягкий вход и выход из кланов без потери прогресса. Соло контент как подушка безопасности.
Социальные контракты инструмент, конечно, мощный. Но важно не передавить.
Наша цель: чтобы, закрыв игру, игрок думал не "Добби свободен", а "Было круто, ребята. Я скоро вернусь".
📖 Больше деталей и рабочего процесса в блоге: t.me/+oNTh-Tsp…
С начала года я был очень занят закрытием старых проектов и работой. Всё ждал возможности постучаться в геймдев со дна и вот пришёл тот час, настал тот день, когда мой стук звучит громче тишины.
📖 Больше деталей и рабочего С начала года я был очень занят закрытием старых проектов и работой. Всё ждал возможности постучаться в геймдев со дна и вот пришёл тот час, настал тот день, когда мой стук звучит громче тишины.
В приложениях обычно есть три типа данных: удаленные (на сервере), локальные (на устройстве) и временные (в памяти). Данные постоянно меняются.
Нажал кнопку и получил предмет в инвентарь. Победил босса и получил опыт, уровень вырос. Данные меняются, пользВ приложениях обычно есть три типа данных: удаленные (на сервере), локальные (на устройстве) и временные (в памяти). Данные постоянно меняются.
Нажал кнопку и получил предмет в инвентарь. Победил босса и получил опыт, уровень вырос. Данные меняются, пользователь реагирует, цикл замыкается.
Простая схема! Но когда начинаешь проектировать игру, понимаешь: за этой простотой скрываются большие архитектурные вопросы.
Создание игр через Data-Driven практично, но сложно, а на Component-Driven построены игровые движок и это просто, но не всегда эффективно. Что выбрать, чтобы игра имела глубину, но разработка не превратилась в ад? Идеального решения нет.
Чтобы пост не был водой вот что выбрал я. Мой опыт веба не позволяет беспечно относиться к данным и памяти, создавая огромный game.json или зашивая всё в компоненты.
Data-Driven я выбрал для баланса игры (характеристики, прогрессия, связи). Component-Driven для визуала (анимации, эффекты и прочее)
📖 Больше деталей и рабочего процесса в блоге: t.me/+oNTh-Tsp…