Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Открой для себя волшебный мир реальной рыбалки. Лови реальную рыбу на реальных водоемах! Исследуй новые рыболовные места и заполучи заветный трофей.

Реальная Рыбалка

Симуляторы, Мультиплеер, Спорт

Играть

Топ прошлой недели

  • Oskanov Oskanov 8 постов
  • alekseyJHL alekseyJHL 6 постов
  • XpyMy XpyMy 1 пост
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Новости Пикабу Помощь Кодекс Пикабу Реклама О компании
Команда Пикабу Награды Контакты О проекте Зал славы
Промокоды Скидки Работа Курсы Блоги
Купоны Biggeek Купоны AliExpress Купоны М.Видео Купоны YandexTravel Купоны Lamoda
Мобильное приложение

Libgdx

С этим тегом используют

Android Gamedev Open Source Все
41 пост сначала свежее
7
NeuralNet.2025
NeuralNet.2025
1 месяц назад
Лига Разработчиков Видеоигр

Каменный "Сапёр" в 3D. Выбор движка под идею⁠⁠

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

Каменный "Сапёр" в 3D. Выбор движка под идею Игры, Прототип, Godot, Libgdx, Нейронные сети, Длиннопост

Почему бессмертная? - Относительно простая реализация, высокая вариативность дизайна. Можно добавлять новые элементы в правила. Или просто добавить еще одно измерение и освещение, текстуры - привнести сюда 3D и кубики, которые хочется рассмотреть вблизи и поклацать. Несмотря на весь прогресс в графике игр кликеры остаются востребованными, особенно если скомбинировать старую идею с каким-нибудь новым элементом.

В ходе генераций изображений FLUX-dev почти случайно создалась такая картинка и стало интересно, а что если Сапер облачить в такую форму?

Каменный "Сапёр" в 3D. Выбор движка под идею Игры, Прототип, Godot, Libgdx, Нейронные сети, Длиннопост

Рендер основы для игрового поля. Выдвинутые - не открытые, задвинутые - открытые.

Нужно выбрать на чем написать такой minesweeper, чтобы упор был на 3D дизайн и свет. Кубики, которые пользователь вдавливает, чтобы проверить есть ли там бомба выглядят как настоящий камень и все они немножко разные. Используем эффекты полета над игровым полем с минами, пролета рядом с кубиками (между ними есть небольшое расстояние)
Оценим на чем проще это сделать на примерах LibGDX или Godot используя генерацию кода в Сursor


Так как основной упор делается на 3D дизайн, детализацию текстур (гранитные или мраморные кубики, выглядящие как настоящий камень и немного разные) и зрелищные caméra эффекты (полёт над полем, пролёт между кубиками), Godot Engine является значительно более подходящим выбором по сравнению с LibGDX.

Давайте разберем почему:

  1. 3D Возможности и Визуальный Дизайн:

    • Godot: Это полноценный 3D-движок. У него есть интегрированный 3D-редактор, который позволяет легко расставлять объекты (кубики, свет, камеру), настраивать материалы с поддержкой PBR (Physically Based Rendering), работать с различными источниками света (направленный, точечный, прожектор), тенями и даже глобальным освещением (GI - Global Illumination, что может сильно улучшить реалистичность света, как на вашей картинке). Создавать и настраивать детализированные "каменные" материалы из текстур (диффузная, нормали, шероховатость/металличность) в Godot очень удобно через встроенные шейдеры и материальную систему. "Немного разные" кубики легко реализовать либо путем использования нескольких вариаций меша/текстур, либо путем незначительных рандомных изменений параметров материала или трансформаций каждой копии кубика прямо в редакторе или коде.

    • LibGDX: Это, скорее, 3D-фреймворк. У него есть модуль для работы с 3D, но у вас нет полноценного визуального редактора сцены, материалов или света. Все приходится делать кодом. Настройка PBR, сложного освещения, теней требует значительно больше ручной работы, написания шейдеров или использования сторонних библиотек. Хотя сделать детализированное 3D можно, объем работы и сложность будет гораздо выше, чем в Godot.

  2. Камера Эффекты и Анимация:

    • Godot: Имеет мощную встроенную систему анимации с визуальной временной шкалой. Вы можете легко анимировать положение, вращение, параметры камеры, а также любые свойства объектов (например, опускание кубика при нажатии). Создание сложных траекторий для полёта камеры (например, по кривой Безье или пути) в Godot интуитивно понятно через инструменты редактора.

    • LibGDX: Для анимации вам придется писать код, использующий интерполяцию. Создание сложных траекторий камеры потребует программной реализации. Нет удобного визуального инструмента для создания и редактирования анимационных клипов или путей движения.

  3. Удобство Работы и Скорость Разработки (для ваших задач):

    • Godot: Благодаря интегрированному редактору, сцене, системе нодов, визуальному редактору материалов и анимации, вы сможете гораздо быстрее собрать прототип, настроить внешний вид, свет и анимации. Работа с Godot будет более визуальной и интуитивной, что соответствует вашему упору на дизайн и свет. GDScript (основной язык Godot) прост в изучении и хорошо интегрирован с движком.

    • LibGDX: Поскольку это фреймворк, вам придется писать гораздо больше "инфраструктурного" кода для управления сценой, рендерингом, загрузкой ассетов, обработкой ввода в 3D-контексте. Это дает больше низкоуровневого контроля, но увеличивает время разработки, особенно когда приоритет на быстрый и красивый визуальный результат.

  4. Генерация кода в Cursor:

    • Этот аспект не зависит от движка/фреймворка напрямую, а зависит от того, насколько хорошо Cursor умеет генерировать код на языках, используемых в этих инструментах. Cursor (или любой другой AI-ассистент) может помочь писать код как на Java/Kotlin для LibGDX, так и на GDScript или C# для Godot. Наличие или отсутствие этой возможности в Cursor не влияет на пригодность самого движка/фреймворка для 3D задач.

Итоговый выбор:

Для создания Minesweeper с сильным акцентом на визуальный 3D дизайн, реалистичные текстуры, сложные эффекты освещения и зрелищные движения камеры, Godot Engine подходит гораздо лучше. Его встроенные инструменты для 3D-моделирования (в плане сцены), материалов (PBR), освещения, теней и анимации интуитивны и значительно ускоряют процесс достижения желаемого визуального качества по сравнению с LibGDX, где почти всё приходится делать кодом.

Хотя LibGDX является мощным и гибким фреймворком, он требует гораздо больше низкоуровневой работы и понимания OpenGL ES для достижения такого уровня 3D-детализации и эффектов, что делает его менее оптимальным выбором, когда основной приоритет — это быстро и качественно реализовать именно визуальную часть 3D.


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

Каменный "Сапёр" в 3D. Выбор движка под идею Игры, Прототип, Godot, Libgdx, Нейронные сети, Длиннопост
Каменный "Сапёр" в 3D. Выбор движка под идею Игры, Прототип, Godot, Libgdx, Нейронные сети, Длиннопост

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

Показать полностью 4
Игры Прототип Godot Libgdx Нейронные сети Длиннопост
5
16
BXJIAM
BXJIAM
2 года назад
Лига Разработчиков Видеоигр

Первая работа в команде. Проект «Коммерсант»⁠⁠

О проекте.


Жанр: экономический симулятор.


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

Сутки в игре длятся 24 секунды, предусмотрены регулярно возникающие события развлекательного и экономического характера. Отличием от подобных разработок является реалистичная динамика биржевых цен и цен на недвижимость, влияние на игру экономических параметров.

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

Ссылка на посвящённый идеям и разработке телеграм канал: https://t.me/comersnt


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

Часть первая. Погружение в историю.


В девяностых годах, десятиклассником, я познакомился с «Коммерсантом», знаменитой в то время игрой авторства Владимира Харченко. Отсиживался в оборудованном машинами Gold Star (ныне LG) компьютерном классе взамен уроков (кто сказал что я прогульщик?) и играл преимущественно в «Dangerous Dave» 1 и 2 части, да «Коммерсанта». Между делом, конечно же, изучал программирование на QBasic и Pascal (так что я не совсем прогульщик, а может даже совсем не прогульщик). Доброе время, светлые денёчки, всем привет.

Первая работа в команде. Проект «Коммерсант» Длиннопост, Gamedev, Libgdx, Приложение, Симулятор жизни, Android разработка, Биржа, Финансы, Экономика, Мат

Главное окно «Коммерсанта» 1991 года.


Ссылку на «Коммерса», как мы его называли, не вставляю. По поиску «играть онлайн коммерсант 1991» легко можно найти и запустить даже браузере. И никаких дискет 5.25.

Суть игры отражена в названии. Игроку необходимо богатеть, торгуя нефтью и землёй. Так сказать, основной способ заработка спекуляция.


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


Именно с тех самых времён голопузого моего детства за мной неотступно следует призрак «Коммерсанта», желание написать свою версию, своё «казино с блэк-джеком и дамами». Расширить и углубить, вникнуть и увеличить, показать и дать возможность.


Этим и занимаемся.

Часть вторая. Начало.


В 2020 году обсуждали идею с друганом, оба прониклись, заразились и преисполнились. Но незаконченные разработки, работа, текущие дела и прочая суета не позволяли засесть за детализацию. Но в декабре прошлого года пришло просветление и, наконец, сели за разработку «Коммерсанта».


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


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

Первая работа в команде. Проект «Коммерсант» Длиннопост, Gamedev, Libgdx, Приложение, Симулятор жизни, Android разработка, Биржа, Финансы, Экономика, Мат

Схема проработки одного из многоступенчатых событий.


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


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


Например, я долго ломал голову, как сделать «многоступенчатые события»: когда реакция на текущее событие вызывает то или иное следующее, каждое из следующих может также вызывать то или иное, и так далее по дереву вариантов. Но придумалось.


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

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


Эти вроде бы простые выводы на самом деле заложили довольно серьёзную основу для действий. В процессе принимать решения приходится «на ходу», и здесь важно, чтобы каждый из нас владел ситуацией целиком и полностью.


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

Часть третья. Теоретическая практика.


В декабре 21-го года начали «давать продукт»: набрасывать первые варианты. Выбрали онлайн доску с возможностью лепить схемы и соединять их путеводными стрелками. И чтобы было бесплатно и красиво.


Заметил одну такую вещь: красиво (по своим меркам) и аккуратно нарисованное вдохновляет продолжать работу. Тогда как сваленная в кучу информация, набросанная «на коленке» только путает и раздражает, как беспорядок в доме.


Суровая реальность показала, что на 100% детализировать проект нам не удалось, тут бы хотя бы процентов семьдесят вытащить...

Первая работа в команде. Проект «Коммерсант» Длиннопост, Gamedev, Libgdx, Приложение, Симулятор жизни, Android разработка, Биржа, Финансы, Экономика, Мат

Первоначальная детализация данных биржи.


В процессе разработки (она сейчас в активной фазе) начали всплывать всякие мелочи, предвосхитить которые не хватило опыта.


Например, по плану «Кабак» должен поправлять настроение и немного снижать здоровье игрока безальтернативно, в момент посещения. Когда начали реализовывать, то пришли к мнению, что удобней предоставить игроку выбор «из меню». Подешевле – водочка, подороже – коньячок. Размер настроения и здоровья меняется в зависимости от выбранного. Но основная идея кабака сохранилась, что уже хорошо.

Первая работа в команде. Проект «Коммерсант» Длиннопост, Gamedev, Libgdx, Приложение, Симулятор жизни, Android разработка, Биржа, Финансы, Экономика, Мат

Одна из версий главного экрана.


Нас спасло то, что мы следовали советам «из учебников» и не ленились тратить время на работу над схемами и прототипами. Затраченное окупилось организационным преимуществом и тем, что вся наша команда чётко понимает, что мы делаем. И даже отчасти «видит» в виде схем и графиков. Безусловно, можно доносить смысл проекта словами, жестами и энергичным матом. Но лучше один раз увидеть...


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


Как работали над частями целого? Первым шагом описываем абстрактные механики (например, «Глобальные цели», которые должен профинансировать игрок для победы), после начинаем их детализировать. Надеюсь, что к финалу схема изменится не принципиально, а лучше не изменится вообще. Коней же на переправе не меняют, в конце концов.

Первая работа в команде. Проект «Коммерсант» Длиннопост, Gamedev, Libgdx, Приложение, Симулятор жизни, Android разработка, Биржа, Финансы, Экономика, Мат

Одна из глобальных целей и этапы для её достижения.


Очертили границы? Детализируем каждую подцель. Например, финансирование проекта «Светофор на перекрёстке» потребует порядка 50000 единиц внутриигровой валюты и две внутриигровых недели на реализацию (а как долго ставят светофор в реальности?)


Итого: в разработке нам очень помог онлайн сервис, где чертили схемы и диаграммы. Описали всё, что только возможно – в цифрах, примерах, расчётах на Python (для отслеживания зависимостей). Даже проработали изменение биржевых цен и построение графиков.


Пусть код на Python не попадёт в андроид-версию, но зато мы увидели на графиках, как поведут себя цены при работе наших алгоритмов. И заранее скорректировали.

Часть четвёртая. Практическая практика.


Для реализации решили использовать Java и Android Studio, плюс движок LibGDX.


Можно долго спорить на счёт целесообразности инструментов. Отмечу лишь, что выбор обусловил опыт разработки именно с помощью указанного. Будем делать с минимальным привлечением сторонних библиотек, контролируя каждый шаг алгоритма. К тому же, у нас в планах реализовать только минимально рабочую версию (MVP). Надо обрести осознание, насколько интересным выйдет продукт и, если что, продолжить его, расширяя и углубляя хотя бы по графике.


Почему не Unity? Мне кажется оно громоздко и не даёт полного контроля над обработкой данных так, как нам надо. Да и опыта в Unity совсем мало.

Первая работа в команде. Проект «Коммерсант» Длиннопост, Gamedev, Libgdx, Приложение, Симулятор жизни, Android разработка, Биржа, Финансы, Экономика, Мат

Часть схемы биржевых фаз и расчёта динамики стоимости активов.


В процессе расчёта формул и создании механик первое, с чем мы столкнулись, - нехватка информации. И непонимание, насколько наша идея «зайдёт», особенно во времена всеобщей любви к разного рода «три в ряд», «шарикам», «собери слово» и разным кликерам. Но сомнения оставили. Раз лично нам идея нравится, значит, она понравится ещё хотя бы одному человеку. Будем самореализовываться, выражая свои интересы и стремления.


Но замечу, что коммерческую составляющую (при разработке «Коммерсанта», ага) мы не просчитывали «от и до», проект отчасти носит энтузиастовый... энтузиазный... энтузиазочный характер.


Чтобы получить отклики, отзывы, комментарии и порицания, создали телеграм-канал (ссылка в начале поста), всех приглашаю, где планируем время от времени выкладывать отчёты о разработке.


Надо признать, что отзывы до реализации офигенная штука. В своё время демо-проектом я разрабатывал (опубликовано в Google Play) «Супер-защитник Земли от хищных инопланетян» на манер Space Invaders. Когда код был готов и протестирован, создал чат с посылом «подскажите, что ещё можно сделать». И поразился до глубины души (в положительном смысле), когда мне посоветовали внедрить боссов (привет, Андрей!) и добавить настраиваемую вибрацию на выстрелы и смерть врагов (привет, Илья!) (Подсказали ещё с десяток улучшений, перечислять их уже не буду). Всё успешно внедрено и реализовано, благо архитектура кода позволила сделать это без глобальной перекройки.


Так вот. Поразило меня то, что я вроде бы и сам знал, что можно сделать «боссов», понимал, как реализовывать вибрацию, но в голову не приходило вставить эти механики в игру! Почему – без понятия. Вот просто мозг не сработал. Супор какой-то. Чёрная дыра. Задним умом сижу думаю, блин, да вообще на изичах можно прописать боссов, вибрацию, дополнительные настройки, а в момент разработки идеи игры и написания кода вообще на ум не пришло!

Первая работа в команде. Проект «Коммерсант» Длиннопост, Gamedev, Libgdx, Приложение, Симулятор жизни, Android разработка, Биржа, Финансы, Экономика, Мат

Босс в «Супер-защитнике…»


Если первой трудностью выступает нехватка информации, то второй выделю отсутствие дизайнера и звукорежиссёра. Мы, одинокие разработчики, в душе своей универсальны – и музыку пишем, и картинки какие-никакие рисуем (или знаем, где скачать). И код тестируем, и правим, и ругаемся. Но для идеи «Коммерсанта» нужны более-менее профессионалы, а не нарисованные хвостом непокорного мула иконки, кнопки и пиктограммы.


Профессионалов нанять в нашем случае не по карману, поэтому обратились с просьбой на посвящённом разработке игр форуме. Несколько дней переписок и договариваний на переправе, - и в команде появились ещё два человека.


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


В общем, приобрёл опыт. Пусть не останавливает то, что вы сами не обладаете в нужной мере какими-то навыками. Если поступить с умом, то можно найти себе в проект неравнодушных людей, которым требуется портфолио/пет-проекты и/или практика. А то и удастся найти спецов, вдохновлённых идеей.


Задумку надо обязательно обсуждать, показывать её, сообщать о неё. Да, будут и негативные отзывы, но в таких случаях я вспоминаю фразу Гёте: «Самое смешное желание - это желание нравиться всем». Не надо нравиться всем. Ерунда это. Люди имеют право не любить и меня, и мои идеи, как бы это иронично не звучало. Важно лишь, чтобы идея нравилась самим, чтобы был хотя бы один единомышленник. Но написанное отнюдь не означает, что нужно игнорировать мнения, ведь мы делаем не для себя, любимых, а стараемся заинтересовать как можно больше людей!

Часть пятая. Организационные трудности.


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


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


У нас нет UI/UX дизайнера, поэтому приходится делать всё самим. Основываясь на опыте и понимании прекрасного, вдвоём с друганом размечаем экраны в известном приложении на «ф». Далее экраны попадают в руки художника, которая вносит свои замечания и вчерновую рисует необходимое. После черновиков обсуждаем, пойдёт или нет, а дальше каждый занят своим делом.

Первая работа в команде. Проект «Коммерсант» Длиннопост, Gamedev, Libgdx, Приложение, Симулятор жизни, Android разработка, Биржа, Финансы, Экономика, Мат

Экран поликлиники «до» и «после». Возможно (надеюсь, нет), что он ещё изменится.


На самом деле нам очень повезло с художницей и звукорежиссёром. На удивление ребята ответственные, сроки и слова держат, не нужно постоянно им напоминать, мол, ещё надо сделать это или то. Степень самостоятельности высокая, решения в своей сфере принимать умеют, что, на мой взгляд, является одним из важнейших качеств специалиста. С вами приятно работать, Эля и Алексей!


Помимо описанного, важно иметь или уметь придумать на ходу чёткий план действий. Нарисовали и реализовали в коде главный экран – а что дальше? Кабак или поликлиника? Или биржа? Или книжный магазин? Воистину, нужно быть не только хорошим специалистом в области управления, но и необходимо понимать логику и последовательность (в плане удобства) при разработке алгоритмов.


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


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

Первая работа в команде. Проект «Коммерсант» Длиннопост, Gamedev, Libgdx, Приложение, Симулятор жизни, Android разработка, Биржа, Финансы, Экономика, Мат

Экраны перехода в локации в зависимости от наличия у игрока автомобиля.


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


Здесь следующий вывод: нужно делать как можно больше «скелетов» - разметок, набросков, формул, расчётов, которые пусть потом изменяются с допуском плюс/минус в десяток процентов. Дизайнеры и художники должны иметь точное представление что им и в каком стиле отображать: подойдут скрины других разработок, на которые хочется быть похожими.

Так что если готовы реализовать свой командный проект – сделайте опорный материал для единомышленников.

Часть шестая. Мотивация.


Зарплата работающим над проектом людям неоспоримый инструмент и мотивация. В конце концов, это некий дополнительный пряник, который легко откусить или добавить. Но, как говорится, с деньгами и дурак сможет.


Если вы собираетесь реализовать свою великую идею и написать сногсшибательную игру в команде, то приготовьтесь стать паровозом, стержнем, тем, кто будет постоянно двигать процессы вперёд. Напоминать, уговаривать, хвалить и поддерживать. Это на самом деле нелегко и от этого просто устаёшь. Вы должны очень сильно любить своё дело и свою идею, чтобы ваша эмоциональная преданность заражала других и поддерживала на плаву всю глыбу проекта.


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


Пусть хотя бы символически.

Первая работа в команде. Проект «Коммерсант» Длиннопост, Gamedev, Libgdx, Приложение, Симулятор жизни, Android разработка, Биржа, Финансы, Экономика, Мат

Толком ничего ещё не сделано, а количество обслуживающих классов зашкаливает.


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

Часть седьмая. Обобщение.


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


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


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

Первая работа в команде. Проект «Коммерсант» Длиннопост, Gamedev, Libgdx, Приложение, Симулятор жизни, Android разработка, Биржа, Финансы, Экономика, Мат

Экран кабака. А сегодня пятница... Не пора ли за здоровье?


Словом, если есть желание делать и воплощать – делайте и воплощайте! Это аксиома. Лучше проиграть в реальном споре, чем вести спор внутренним голосом.


А мы продолжаем тянуть лямку реализации, «дневник разработчика», события и новости ждут вас в канале (ссылка в начале поста), лично приглашаю вас поучаствовать, поделиться опытом, сделать замечания или просто понаблюдать, как оно происходит в реальности. Добро пожаловать, и спасибо за внимание, дорогие пикабушники! Буду держать вас в курсе!


P.S. Тут такой внутренний голос – ну ёпта, можно было ограничиться текстом седьмой части, просто обобщить и не плодить простыни, загаживая интернет рассказами о себе.


A.P.S. Нет. Было написано в надежде, что кого-нибудь вдохновит реализовывать свою мечту, побудит к действию и в мире станет больше прекрасных игр, разработок и вообще всего!

Показать полностью 11
[моё] Длиннопост Gamedev Libgdx Приложение Симулятор жизни Android разработка Биржа Финансы Экономика Мат
9
97
BXJIAM
BXJIAM
3 года назад
Лига Разработчиков Видеоигр

Как чувак (я) головоломку придумывал...⁠⁠

Всем принтов, здравствуйте!


По профессии я учитель информатики, но тащусь по разработке, алгоритмизации и программированию, просто мёдом не корми, дай что-нибудь пописать.


В последние несколько лет замечаю ужасную, с моей точки зрения, тенденцию. Даже ученики десятого-одиннадцатого класса очень слабо разбираются в арифметике. «Не чувствуют числа», я себе так говорю. Школьники помладше - там вообще тёмный лес. Без калькулятора большинство из них мало на какие вычисления способны :(


Дело даже не в знании формул и каких-то манипуляций с этими самыми формулами. Проблемой является элементарное неумение считать «на лету» без калькулятора, хотя бы числа в пределах сотни-другой. А в программировании много математики, и от меня требуют детей научить. Нет, слово «требуют» - это одна сторона вопроса, скорее, официальная. Мне самому, как преподавателю, приятно, когда мои же воспитанники делают успехи, добиваются, удивляют... и когда с ними можно начать обсуждать и продвигать какие-то интересные идеи в коде.


Решил встать на святой путь борьбы за сильную арифметику. Как? Сделать головоломку! Суть которой достаточно проста - манипулируй числами и добивайся единичек. Механика проста: есть два вида чисел - оранжевые и синие. Оранжевые, тёплые, - положительные числа. Синие, холодные, отрицательные.

Как чувак (я) головоломку придумывал... Android, Libgdx, Java, Приложение на java, Длиннопост

То есть если к положительному 15 прибавить отрицательное 3, то результатом будет 12. А если прибавить отрицательное 14, то получится искомая единица.


Комбинации могут быть совершенно простыми (на первых уровнях), и неявными, требующими некоторых перестановок. Например, суммирования чисел 3, 4, 5 и вычитания из результата числа 11: вжух! Появилась единица.


Операции инициируются перетягиванием чисел одно на другое; под игровым полем есть очередь следующих чисел.

Как чувак (я) головоломку придумывал... Android, Libgdx, Java, Приложение на java, Длиннопост

Чтобы немного разнообразить игру, ввёл «инверсию». Это поле, получающееся при результате -1 (например, +10 -11). Предназначение поля - инверсия знака перемещённого на него числа.


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

Как чувак (я) головоломку придумывал... Android, Libgdx, Java, Приложение на java, Длиннопост
Как чувак (я) головоломку придумывал... Android, Libgdx, Java, Приложение на java, Длиннопост
Как чувак (я) головоломку придумывал... Android, Libgdx, Java, Приложение на java, Длиннопост

Искренне надеюсь, что эта нехитрая головоломка по самопальным правилам немного разовьёт чувство числа у детей (да и у взрослых), буду благодарен за подсказки и комментарии.


Технически: реализовано на LibGDX. Текстуры, звуки, вся «анимация» - моё, из инструментов Android Studio, Gimp и Audacity. Предложил друзьям написать музыку, что они и сделали (спасибо большое!)


Схематично алгоритм прост. Есть двумерный массив, хранящий классы фишек. Числа для всех, кроме последнего, уровней берутся из заранее подготовленных «датасетов» (слово громкое).

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


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


Алгоритм и реализация не так сложны, как рождение идеи и правил головоломки.

Первую версию написал с "делением и умножением" вместо "сложения и вычитания". Результирующие числа получались огромными и неявными, было очень сложно подбирать комбинации для получения единицы.


Перешёл на "сложение и вычитание", ввёл экспериментальные «бриллианты», появляющиеся в том случае, если в результате операции получался ноль. Но что с этим нулём делать так и не придумал, выпилил (закомментировал). Сейчас нули получать нельзя.


Первоначально «инверсия» работала как «чёрная дыра». Суть «чёрной дыры» заключалась в «проглатывании» единичек. Обобщённое правило звучало так: надо получить единицу, закинуть в чёрную дыру и так 15 раз. Было довольно сложно, ведь сначала надо получить чёрную дыру, потом единицу... даже я, не жалующийся на арифметику, дымился в поисках комбинаций так, чтобы за три хода была сделана либо дыра, либо единица.


Механику выпилил (закомментировал :D)


Сейчас единицы автоматически улетают с поля, когда собираются по четыре штуки на означенных выше "зелёных линиях сборки" (ничего умней не придумал, чего уж...)


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

Как чувак (я) головоломку придумывал... Android, Libgdx, Java, Приложение на java, Длиннопост

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


А ещё большая мораль: продумывайте всё от начала и до конца! Иначе уложите кучу времени на доделки и переделки.


Затрачено времени: две недели на программный код и валяние на диване с тестированием программы, две недели на идею, в итоге проект забрал месяц работы по вечерам.


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


Игра бесплатная, но с рекламой перед запуском, начиная со старших уровней. Страница головоломки в Google Play: https://play.google.com/store/apps/details?id=ru.vgtrofimov....

Показать полностью 6
[моё] Android Libgdx Java Приложение на java Длиннопост
22
111
Aterniad
Aterniad
4 года назад
Pixel art

Первые опыты в пиксельной анимации⁠⁠

Какое-то время разрабатываю свою собственную игру, жанр - рогалик.

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


Это у нас Wraith, или просто Призрак:

Первые опыты в пиксельной анимации Pixel Art, Анимация, Пятничный тег моё, Gamedev, Roguelike, Paintnet, Гифка, Инди, Libgdx, Длиннопост

Это малыш Паук, самый первый персонаж:

Первые опыты в пиксельной анимации Pixel Art, Анимация, Пятничный тег моё, Gamedev, Roguelike, Paintnet, Гифка, Инди, Libgdx, Длиннопост

(ещё надо будет поправить его цветовую гамму под уровень)


Старина Скелет:

Первые опыты в пиксельной анимации Pixel Art, Анимация, Пятничный тег моё, Gamedev, Roguelike, Paintnet, Гифка, Инди, Libgdx, Длиннопост

А так выглядит Мимик:

Первые опыты в пиксельной анимации Pixel Art, Анимация, Пятничный тег моё, Gamedev, Roguelike, Paintnet, Гифка, Инди, Libgdx, Длиннопост

В движении, потому что не двигаясь, он бочка или сундук.


Привидение:

Первые опыты в пиксельной анимации Pixel Art, Анимация, Пятничный тег моё, Gamedev, Roguelike, Paintnet, Гифка, Инди, Libgdx, Длиннопост

Земляной элементаль:

Первые опыты в пиксельной анимации Pixel Art, Анимация, Пятничный тег моё, Gamedev, Roguelike, Paintnet, Гифка, Инди, Libgdx, Длиннопост

Первый мини-босс, Драйдер (Drow + Spider):

Первые опыты в пиксельной анимации Pixel Art, Анимация, Пятничный тег моё, Gamedev, Roguelike, Paintnet, Гифка, Инди, Libgdx, Длиннопост

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


Впереди ещё отрисовка почти 30-ти монстров.


Они же в действии:

Первые опыты в пиксельной анимации Pixel Art, Анимация, Пятничный тег моё, Gamedev, Roguelike, Paintnet, Гифка, Инди, Libgdx, Длиннопост

Для поста выложил на статичном фоне, на самом деле в динамике они выглядят лучше!

Выложил в Pixel Art, потому что Лига разработчиков видеоигр говорит что одни только гифки из игры постить не стоит)

Буду рад критике или идеям.

Показать полностью 6
[моё] Pixel Art Анимация Пятничный тег моё Gamedev Roguelike Paintnet Гифка Инди Libgdx Длиннопост
22
10
oleynikpasha
oleynikpasha
4 года назад
Лига Разработчиков Видеоигр

Лирический пост о разработке мобильной игры⁠⁠

О чём этот пост


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

Предисловие. Краткая история


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


Самая первая игра была создана мною и моим коллегой ещё во времена студенчества в 2016 году. Именовалась она Universal Race (прямо как песня у Theatre of Tragedy). Это, конечно же, был учебный проект, на котором хотелось приобрести опыт в программировании и в публикации приложений на Google Play.


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

Лирический пост о разработке мобильной игры Мобильные игры, Разработка, Инди игра, Libgdx, Видео, Длиннопост

После публикации на Google Play, появился и фидбек от пользователей, который дал понять, что самая большая проблема этой игры – отсутствие истории, сюжета. Если взглянуть на игру со стороны игрока: да, есть определённый геймплей - летишь на корабле, уклоняясь от астероидов, окей. Можешь покупать новые корабли, "локации" для полётов. Да, в это можно поиграть некоторое время, но потом задашься вопросом:


Куда летим? Зачем летим?
И правда, не совсем ясно. Действия в игре выглядят довольно абстрактно, игроку никак не объясняется цель игры, никак не раскрывается мир игры. Интерес к ней пропадёт очень быстро.

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

Лирический пост о разработке мобильной игры Мобильные игры, Разработка, Инди игра, Libgdx, Видео, Длиннопост

Тем не менее, от разработки этой игры остались преимущественно хорошие воспоминания и позитивные эмоции. Подход к разработке этой игры был уже куда более серьёзным, чем в прошлый раз, дизайн экранов множество раз изменялся и дорабатывался (и на то время в моём исполнении это было лучшее, что я мог выдать). Для этой игры (к слову, написанной на libGDX) даже был отдельно создан редактор уровней в Embarcadero RAD Studio (довольно странный инструмент для человека, пишущего на java, не так ли?), который позволял создавать уровни для каждой из 3-х сложностей в игре, и при этом записывать в текстовый файл прохождение (чтобы самому и не забыть).

Лирический пост о разработке мобильной игры Мобильные игры, Разработка, Инди игра, Libgdx, Видео, Длиннопост

После этого проекта была ещё парочка совсем уж мелких игр. Некоторые из них не доехали до магазина, некоторые напротив. Одна из таких игр – SEQUENCE, – и сейчас находится на просторах Google Play. Игра вышла максимально простая, зато с довольно приятным графическим оформлением (по моему мнению).

Лирический пост о разработке мобильной игры Мобильные игры, Разработка, Инди игра, Libgdx, Видео, Длиннопост

Заострять внимание на этих мини-играх нет смысла, по этому, самое время перейти к последнему моему детищу, которое уехало в прод — After the Crash. Игра представляет собой набор из 3-х головоломок, связанных правилами игры и сюжетом. Первая – игра 3-в-ряд, но с несколько изменённой механикой (двигается целиком весь ряд или столбец). Вторая (и самая интересная, по-моему) – игра, в которой нужно сопоставить символами друг к другу все элементы на доске (реализация этой игры была самой интересной). Третья – классические пятнашки.

Лирический пост о разработке мобильной игры Мобильные игры, Разработка, Инди игра, Libgdx, Видео, Длиннопост

Этот проект в итоге стал одновременно гордостью и разочарованием. Гордостью – потому что это была самая объёмная в плане функционала и потенциального игрового времени игра в моём портфолио. А о разочаровании, пожалуй, стоит расписать более детально.

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


Что же пошло не так?


Во-первых, каждая из 3-х мини-игр очень быстро надоедала. Не было никакого разнообразия в ходе этих игр. Основной причиной этому, как я потом уже понял, было желание побыстрее выпустить релиз (что, на самом деле и не удивительно, на разработку игры ушёл почти год, и это при том, что на тот момент у меня не было постоянной работы, и я в основном уделял 1/2 - 3/4 каждого рабочего дня проекту). Вся графика (за исключением финальной прорисовки персонажа) была сделана мною в Adobe Illustrator, а на это ушло колоссальное количество времени.


Во-вторых, сюжет хоть и присутствовал, но был не до конца проработан. Причина, полагаю, та же, что и в первом пункте.


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


В-четвёртых, не продуманное продвижение игры. Во время разработки аудитория состояла только из 20-30 знакомых, которые просто время от времени запускали у себя альфа билды и что-то комментировали (и то, из этих 20-30 таких было человек 5). После релиза не было предпринято ничего, что помогло бы набрать аудиторию.

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

О новом проекте Cruise stories


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

Лирический пост о разработке мобильной игры Мобильные игры, Разработка, Инди игра, Libgdx, Видео, Длиннопост

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


Таким образом, на данный момент запланированы такие типы тайлов:


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

2. Серебряный тайл - при открытии пары таких тайлов, на поле автоматически будет открыта еще одна дополнительная случайная пара тайлов.

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

4. Опасный тайл - если игрок не правильно открывает пару для такого тайла, на поле закрывается одна ранее открытая пара (и далеко не всегда удастся уследить, какая же именно пара закрылась, чтобы тут же открыть её заново).

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

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

7. Чёрный тайл - игроку предоставляется целых 3 попытки открыть пару для такого, но в случае неудачи, игра закроет ранее открытую пару тайлов.

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


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


Кроме того, будет 2 типа игры: discovery и memory. Эти режимы будут чередоваться в процессе прохождения уровней.


Discovery


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

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


Memory


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

Поощрительная система: направлена на поощрение хорошей зрительной памяти. Основное ограничение - кол-во ошибок. Чем меньше ошибок допустит пользователь, тем больше награду получит в конце уровня.


Помимо всего этого, запланировано два режима: story mode и sandbox.


Как уже стало понятно, в story mode будет небольшая сюжетная линия, а значит - персонажи, диалоги. Мне показалось, что ведя коммуникацию с игроком по средствам диалогов (монологов) персонажей, можно довольно неплохо поднять интерес к игре.


Благодаря наличию сюжета, игру удалось разделить на несколько стейджев (левел паков). Каждый стейдж представляет собой какой-то город из маршрута круизного лайнера и содержит в себе 10 уровней, 1 из которых с типом игры memory, остальные - discovery.

Подготовка


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

Лирический пост о разработке мобильной игры Мобильные игры, Разработка, Инди игра, Libgdx, Видео, Длиннопост

Также, схематически были нарисованы экраны игры в draw.io.

Лирический пост о разработке мобильной игры Мобильные игры, Разработка, Инди игра, Libgdx, Видео, Длиннопост

Большую роль в организации работы на проекте сыграл опыт работы в компании. Приблизительно после того, как я выпустил релиз After the Crash, я устроился Android разработчиком в компанию. За 2,5 года работы в компании у меня накопились некоторые знания о ведении проектов, начиная от подготовки ТЗ, декомпозиции и постановке задач и до коммуникации с участниками команды. Но, тем не менее, одно дело быть разработчиком и созерцать весь процесс организации проекта со стороны, и совершенно другое – делать это самому.


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

Сам себе дизайнер


Изначально я планировал нанять художника для отрисовки фонов и персонажей. UI же решил осилить самостоятельно. С UI никаких особых трудностей не возникло, опыт работы с Illustrator и PS у меня уже был, и дело оставалось за малым – отрисовать экраны.

Лирический пост о разработке мобильной игры Мобильные игры, Разработка, Инди игра, Libgdx, Видео, Длиннопост

Художники


А вот теперь начинается самая интересная часть этого поста – работа с художниками. Это был (и остаётся) самым сложным этапом разработки этого проекта.


Я понимал, что нарисовать задуманные фоны у меня могло бы получиться, но на это ушло бы очень много времени, что меня никак не устраивало, а нарисовать персонажей – это уже точно выше моих сил и способностей. Одно дело нарисовать UI в Illustrator, рисуя квадратики, кружочки и градиенты, и совсем другое – нарисовать человека, с правильными пропорциями, в правильной позе etc. По этому, я решил, что мне нужен художник, и начал его искать.


Первым вариантом стала одна моя знакомая, которой хотелось в digital (сама она довольно неплохо рисовала на бумаге, но с редакторами опыта было чуть менее чем ноль). Тогда еще (в январе, кажется), особой спешки не было, и я подумал, что можно было бы попробовать. Я приобрёл и одолжил ей простенький Wacom Intuos S, объяснил какие-то основные вещи в PS и SAI, подсказал, где и как искать ответы на свои вопросы в интернете (на самом деле, это самая большая проблема у людей почему-то). Договорились о том, что за месяц у меня будет первый персонаж, хотя бы его прототип (учитывая полное отсутствие опыта, этот срок был как раз вменяемым, так как я не требовал hi-end графики, а это должна была быть обыкновенная простенькая картинка в таком-себе cartoon стиле). Конечно же, мы договорились и о каких-то небольших компенсациях за работу, при чём с разными вариантами: почасовка по трекингу в джире, фиксированные суммы за выполненную работу, фиксированные суммы за месяц. В итоге, это была всё-таки почасовка.


В первый месяц художница задавала много вопросов по PS, по своему ПК в целом (опытным пользователем ПК её не назвать), и в джире собралось всего 30 часов работы за месяц. Результатом был скетч персонажа, готовый не до конца. В следующий месяц работы было ещё меньше, и художница сказала, что в силу своих жизненных вопросов, она не может уделять больше времени рисованию. К сожалению, пришлось прекратить совместную работу.


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


Выкинув объявление в Instagram, нашлось 4-5 желающих. У них и портфолио было даже, и вроде неплохие работы. В итоге слились все до единого. При чём, довольно странным методом: некоторые из них согласились поработать, согласились с ценой, и в итоге, прямо в день начала работ говорили, что им уже не интересно, нет времени etc. В конце-концов, нашлась художница, которая сразу же показалась мне ответственным человеком, быстро отвечала на сообщения, вовремя сдала первую (и последующие) работы.


В общем, на поиск и работу с художниками ушло времени больше чем я планировал, раза в 3. А все мои пробы и ошибки на данный момент мне встали в $1K. Такой вот indie.

Заключение


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


Что же, можно было бы еще немного рассказать о проекте, но пост и так уже получается довольно объемным, по этому, если тема интересна – обязательно буду писать ещё посты.


Всем спасибо за внимание!


P.S. Также, всем, кому интересны новости по моим проектам, приглашаю в телеграм канал.

Показать полностью 9 1
[моё] Мобильные игры Разработка Инди игра Libgdx Видео Длиннопост
5
Peroxid
4 года назад

Проект на libgdx!⁠⁠

Какое-то время изучаю libgdx и на данном этапе довольно неплохо себя чувствую. Однако пока свои задумки, боюсь, не потяну. Есть кто, кому нужна помощь в разработке на этом фреймворке? На энтузиазме с целью получения опыта поучаствовал бы)))
Спасибо!

Libgdx Программирование Игры Разработчики игр Текст
14
emilDDOS
5 лет назад

Не могу запустить libgdx т.к он не видит android sdk⁠⁠

Не могу запустить libgdx т.к он не видит android sdk Libgdx, Android studio, Длиннопост
Не могу запустить libgdx т.к он не видит android sdk Libgdx, Android studio, Длиннопост

Помогите решить данную проблему , заранее благодарен.

Не могу запустить libgdx т.к он не видит android sdk Libgdx, Android studio, Длиннопост
Показать полностью 3
Libgdx Android studio Длиннопост
4
16
gmassta
5 лет назад

Конструкторы VS фреймворки⁠⁠

Конструкторы VS фреймворки Gamedev, Игры, Конструктор, Libgdx, Unity, Игровой движок

Вазяп дудс!


Что лучше для начинающего игродела, начать юзать конструкторы, или окунуться с головой в глубины игровых движков, ковыряя фреймворки?


Давным-давно, когда небо светило ярче, а солнце было выше я начал изучать разные конструкторы. Времен было убито море. В ход шло все, от RPGMakerа до UE. Я качал примеры, изучал решения разных задач, создавал свои проектики.

Мне очень нравилась скорость создания игр, визуальные редакторы почти всех ресурсов, а разработка 3D игр без подобных конструкторов очень сложна.


Но даже при всех их плюшках чего-то мне не хватало:

Дорогие лицензии, что не подходит для хобби.

Большие объёмы памяти пустых проектов, что негативно сказывается при разработке под мобилы.

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


Тогда я начал изучать фреймворки. Вот несколько бодрых: Cocos2d, MonoGame, LibGdx… Я их все попробовал и остановился на LibGDX. Он больше всего мне подошёл для моих творчеств. Он полностью бесплатный (что очень важно, если вы просто учитесь). Для него есть визуальные редакторы (шрифты, упаковщики текстур, редактор полигонов для Box2D, редактор эффектов (как 2D так и 3D), nine_path редактор, для разработки карт можно юзать TileMap, Spine и его аналог Dragon Bones) В общем все, что нужно, чтобы делать игры.


Что мне это дало? После того, как я засел за LibGDX прошло несколько лет. Я практически полностью знаю, как он работает. Знаю в какой момент что загружается, полностью управляю всеми этапами работы в своих проектах. Эти знания открывают мне понимание работы игровых движков в целом. Изучая исходники я даже написал свой движок на C++.

Так что я думаю, что начинать изучение игродела нужно именно с фреймворков. Вы много чего поймете, что не понятно с самого начала (как было у меня), вы сможете создать свои инструменты для разработок или пользоваться чужими. После полученных знаний вы не только закалитесь и будете знать свои силы, но и легко сможете овладеть любым конструктором.

Показать полностью
[моё] Gamedev Игры Конструктор Libgdx Unity Игровой движок
31
Посты не найдены
О Нас
О Пикабу
Контакты
Реклама
Сообщить об ошибке
Сообщить о нарушении законодательства
Отзывы и предложения
Новости Пикабу
RSS
Информация
Помощь
Кодекс Пикабу
Награды
Команда Пикабу
Бан-лист
Конфиденциальность
Правила соцсети
О рекомендациях
Наши проекты
Блоги
Работа
Промокоды
Игры
Скидки
Курсы
Зал славы
Mobile
Мобильное приложение
Партнёры
Промокоды Biggeek
Промокоды Маркет Деливери
Промокоды Яндекс Путешествия
Промокоды М.Видео
Промокоды в Ленте Онлайн
Промокоды Тефаль
Промокоды Сбермаркет
Промокоды Спортмастер
Постила
Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии