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

Сноуборд

Спорт, Аркады, На ловкость

Играть

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

  • Rahlkan Rahlkan 1 пост
  • Tannhauser9 Tannhauser9 4 поста
  • alex.carrier alex.carrier 5 постов
Посмотреть весь топ

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

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

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

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

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
4
cyberbach
cyberbach
7 лет назад
Лига Разработчиков Видеоигр

Неделя хардкода 2⁠⁠

Привет =)


Я делаю игру на libgdx. Игра - бегалка/прыгалка/собиралка для мобильников.


За прошедшую неделю я сделал: youtu.be/1gn2xK7eEfQ

Исходный код: github.com/cyberbach/Adventure


- озвучены монетки и звёздочки

- при расстановке бонусов, нужен GMmode, а не долгое тупое копирование координат из Майи

- добавил пальмы

- сделал подсчёт звёздочек в рюкзаке

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

- исправил ошибку в динамических уровнях - добавил проверку, которую я раньше считал не существенной. Пытались удалиться Entity, которые уже были удалены.

- скрипт движения NPC - горбатый, нужно его протестировать step-by-step. И, кстати, расстановка точек скрипта тоже делается в GMmode.

- смоделированы уже 4 больших уровня с физикой

- протестировал, обнаружил просадку фпс на 150+ рендер моделей с физикой на экране. Физику нужно тщательно упрощать. У моделей тщательно сокращать количество полигонов и обязательно (что я не делаю) сворачивать UV.

- при тесте меньше 100 рендер моделей на экране - фпс 61. По полигонам - меньше 5000 полигонов, хотя тут количество полигонов не сильно решает.



TODO:


- рефактор GameScreen

- упростить и улучшить GameMaster (GM) Mode в игре

- звуки шагов и звуки окружения/музыка

- заменить иконку для ingameMenu

- протестировать скрипт движения NPC

- свернуть UV на уровнях. Доработать модель лестницы.

- моделить 04-ую локацию со стеной и 05-ую за стеной


Всё что касается игры я делаю в прямом эфире на twitch.tv/cb_online , на ютубе, в контакте и на гуд-гейме. Чатики читаю =)


gl & hf

Показать полностью
[моё] Libgdx Bullet Physical Engine Open Source Текст Gamedev
17
0
cyberbach
cyberbach
7 лет назад

Неделя хардкода 1⁠⁠

Это пост для сообщества "Лига Разработчиков Видеоигр"


Привет =)


Я делаю игру на libgdx. Игра - бегалка/прыгалка/собиралка для мобильников.


За прошедшую неделю я сделал: youtube.com/watch?v=hhP7CsyfzH4

Исходный код: bitbucket.org/cb_online/adventure


Основные механики уже готовы:

- перемещение по уровням с учетом физики bullet

- лестница сделана через физику

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

- некоторые предметы можно подобрать, указав на них центром экрана. Так же работают диалоги с NPC

- ГУИ открыть/закрыть рюкзак, и подобрать какой-то предмет с уровня

- NPC действуют по скриптам, могут ходить/ждать/говорить

- У всех NPC есть диалоги. С ними можно общаться.

- Ответы в диалогах могут менять как сами диалоги, так и логику игры

- Enemy - это тоже NPC, но без диалогов. И с другой механикой поведения (WIP). Enemy тоже действуют по скриптам, но когда они видят нас (Player) - они агрятся и нападают.


TODO:

- Поведение Enemy

- Моделировать уровни и всё остальное

- Оформление ГУИ

- Возможность гейм-овера или выигрыша в игре


Всё что касается игры я делаю в прямом эфире на: twitch.tv/cb_online

gl & hf

Показать полностью
[моё] Libgdx Bullet Physical Engine 3D Indiedev Текст
0
9
DELETED
7 лет назад
Лига Разработчиков Видеоигр

От финансовых аналитиков до разработчиков мобильных игр за месяц.⁠⁠

Вместо эпиграфа

Часть 1. От финансовых аналитиков… Или глава пролог

С чего начинается день финансового аналитика, спросите вы? С рутины, отвечу я. Утро, офис, на автомате готовим чашечку кофе, сигарета и в довесок дюжина мыслей, которые устремляются куда то вдаль… И так они себе летят, летят и бац… Дерево…


На протяжение многих лет одно и то же. Надоело. Понятно было, что нужен новый вызов, а то завязли в своём маленьком и уютном болотце. Проходили дни и недели: утро, кофе, сигарета, дневная рутина и под вечер ты просто никакой. И так каждый день. “Стена плача” всё росла и росла (о ней чуть позже, фото покажем).


И вот оно - долгожданное явление, послужившее толчком в развитии дальнейших событий. Как-то с утра, то ли 19, то ли 20 сентября 2017, один из коллег кидает статью, где рассказывается от первого лица о двух ребятишках, которые, едва окончив школу, без малейшего опыта в разработке, написали игру. И тут меня осенило: вот он! Вот тот вызов, которого я ждал для своей команды (которая никогда не писала игры и опыта на этом поле не имела, от слова совсем). Да так осенило что я оказался залит утренним кофе.


А дальше было просто. Собрал ребят, обсудили данный вопрос и решили, а чем чёрт не шутит. Как минимум в будущем, когда будем скучать и делать свою рутинную работу, параллельно можно будет поиграть в собственные игры. В сумасшедшие собственные игры. Задача руководства команде была довольно простой: “Сделай то - не знаю что, сделай так - не знаю как, но на выходе должна получиться игра”.


Теперь утро финансового аналитика начиналось так:


1. Переступаю порог офиса

2. Спрашиваю как продвигается разработка игры

3. Прошу скинуть рабочую версию чтобы поиграть


Вот только после всего этого - кофе и перекур.


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

Часть 2. Нарисуй пингвина и да, он должен летать. Или глава о текстурах

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


Отрисовка велась в основном в open source программах (GIMP и Inkscape), но ими одними нам не удалось обойтись, поэтому пришлось задействовать Aseprite и After Effects для анимации. Например, вот разобранный морж, подготовленный к анимации

От финансовых аналитиков до разработчиков мобильных игр за месяц. Android, Java, Игры на Android, Libgdx, Android разработка, Длиннопост, Видео, Delphi

В первые дни разработки, все тайлы экспортировались в один спрайт, а по указанным во вручную созданной таблице координатам программист вырезал нужный кадр. Настал момент когда размеры спрайта перевалили за 12000px по вертикали… Что-то начало нам подсказывать что мы движемся в неправильном направлении. Совсем неправильном. И если вначале мы думали что уж игру-то мы кое-как накодим, то тут мы поняли что в словаре под статьей как не надо делать игры, должны быть наши наработки. Спасло нас то, что мы (внезапно!) не первые кто пишет игру под Андроид и почти все проблемы, которые могут возникнуть у чайников уже давно описаны в какой-нибудь статье. Окей, гугл и спустя сутки мы уже получаем удовольствие от работы с Atlas в libgdx.


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


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

От финансовых аналитиков до разработчиков мобильных игр за месяц. Android, Java, Игры на Android, Libgdx, Android разработка, Длиннопост, Видео, Delphi

Далее несколько примеров работы с анимированными персонажами.

Часть 3. Delphi жив и как он вписался в разработку. Или рассказ от лица прикладного программиста

30 сентября на совещании было озвучено, что кто-то из нас должен написать программу для генерации уровней, на базе созданной карты объектов в tiled.exe.


Итого ТЗ:

В генераторе tiled.exe создаем карту объектов, нажимаем экспорт в PNG, загружаем в какую-то программу эту картинку, после на эту картинку вешаем активные элементы (монетки, черепки, замедлители, моржи, медведи и т.д.), в специальных полях задаем настройки уровня (общее время уровня, очки, и т.д.), жмем на кнопку «Готово» и на выходе получаем JSON файл.

Все уставились на меня, мол, ты же вроде прикладной программист, примусы починяешь, давай быстренько накидай чего-нибудь. Я такой «Да не вопрос, я же High Level Developer: в универе калькулятор написал».


Ставим Delphi 2010. Начинаем с нуля. Окей Google, как двигать картинки по форме?Накидал форму, на форме панель с инструментами (активные элементы игры), при двойном клике на канве основной игровой области должен создаваться объект, который должен двигается простым перетаскиванием. Добавил кнопки загрузки карты и фона уровня. Все на английском, надо же показать свой мега скилл.

От финансовых аналитиков до разработчиков мобильных игр за месяц. Android, Java, Игры на Android, Libgdx, Android разработка, Длиннопост, Видео, Delphi

Далее, надо это все дело сохранять, поэтому вешаем дополнительно кнопочку.

От финансовых аналитиков до разработчиков мобильных игр за месяц. Android, Java, Игры на Android, Libgdx, Android разработка, Длиннопост, Видео, Delphi

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


Все, интерфейс накидал, на том и порешили что 90% работы сделано за 6 часов и остались сущие мелочи.


5 дней и ночей спустя…


Все начало создаваться, очищаться, память уже не течет, объекты двигаются, JSON сохраняется и загружается, даже скриншоты делаются. Даже сделал учет масштаба 1:2 игровой области в игре и у меня на форме (1920 * 1080 в игре, а у меня область 960 * 540).


Прихожу в офис, отчитываюсь что долг родине отдал, дело за вами, господа. Но ни тут-то было, Вова (JAVA developer) в курилке говорит «Бро, а какая система координат у тебя на выходе в JSON?». На мой вопросительный взгляд последовало объяснение что в libgdx начало координат это нижний левый угол экрана, и соответственно у каждого объекта также… Я начинаю нервно курить и вспоминаю про себя, что в Delphi самая лучшая система координат и XY=0,0 это верхний левый угол. Ну ок, докурил и начал: отнять, прибавить, поделить, бац профит!


Жму на кнопку «На! Смотри! Все нижний левый, так нижний левый»


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

От финансовых аналитиков до разработчиков мобильных игр за месяц. Android, Java, Игры на Android, Libgdx, Android разработка, Длиннопост, Видео, Delphi

Часть 4. While (!release) { Кофе, перекур, код; } . Или глава о собственно разработке

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

От финансовых аналитиков до разработчиков мобильных игр за месяц. Android, Java, Игры на Android, Libgdx, Android разработка, Длиннопост, Видео, Delphi

Так как опыта в разработке игр было аж 0.0, то сразу же появилось много вопросов. Первый из них - “для какой платформы писать?” разрешился довольно просто, так как есть опыт разработки приложений под Андроид, то и писать решили под Андроид. Просмотрев доступные движки и фреймворки остановился на связке libGdx и Java так как предполагалось что, игра будет в 2d формате.


По началу решил не использовать движок box2d, а задавать скорость объектов игры и самому отслеживать коллизии. Быстренько накидал тестовый уровень - всё ОК, пингвин бегает, монетки собирает. Начальство сразу вопрос - “Когда релиз?” Отвечаю - “Две недели за глаза.” Но не тут-то было. После того как назрел вопрос о том, что монетки должны откуда то вылетать и красиво отскакивать от поверхностей, а пингвин должен прыгать по этим самым поверхностям, подключил физический движок box2d, пришлось в нем ковыряться. Задал поведение объектов внутри уровня так, чтобы оно соответствовало любой конфигурации уровня. Витя сваял прогу в которой можно было редактировать уровни и сохранять их конфиги в файлы. При загрузке уровня мой класс лоадер читает файл и строит по настройкам уровень и заполняет его объектами добавляет игрока (пингвина) и вуаля можно играть и время от времени добавлять различные уровни не переписывая кода игры.


По наступлению определенных событий в мире прикрутил проигрывание звуков и музыки, с одним “но”: при запуске десктопной версии музыка и звуки часто приводит к вылетам из игры, побороть которые так и не получилось, в андроиде такого не случается.


Где хранить результаты? Конечно в БД. И тут нужны небольшие танцы с бубном, так как ядро игры не умеет работать с sqlite так как это делает андроид. Поэтому используется драйвер sqlit - jdbc для подключения к уже созданной базе и работе с ней в десктопной версии. А при работе в андроид версии проверяется есть ли в песочнице приложения файл базы и если его нет то он копируется из ассетов, если есть то подключаемся через sqldroid.


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


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


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

Часть 5. Немое кино в прошлом. Или глава о звуковом наполнении игры

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

От финансовых аналитиков до разработчиков мобильных игр за месяц. Android, Java, Игры на Android, Libgdx, Android разработка, Длиннопост, Видео, Delphi

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


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


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


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

Пришлось знакомиться с аудиоредакторами, привет Adobe Audition!


Готово! Есть архив, музыка нарезана и зациклена, звуки почищены и собраны! Красота одним словом!


Итого: четыре дня и четыре ночи скакал Илья Муромец, пока скакалку не отобрали!

Часть 6. … до разработчиков мобильных игр. Или глава эпилог

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


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


Кстати, вот тут и настало время для нашей “Стены Плача” (Курение вредит вашему здоровью!)

От финансовых аналитиков до разработчиков мобильных игр за месяц. Android, Java, Игры на Android, Libgdx, Android разработка, Длиннопост, Видео, Delphi

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


С уважением Команда GCN, разработчики мобильной игры "Tapstazy".

От финансовых аналитиков до разработчиков мобильных игр за месяц. Android, Java, Игры на Android, Libgdx, Android разработка, Длиннопост, Видео, Delphi
От финансовых аналитиков до разработчиков мобильных игр за месяц. Android, Java, Игры на Android, Libgdx, Android разработка, Длиннопост, Видео, Delphi

Так как я являюсь частью команды разработчиков, то ставлю тэг "моё", указывающий на оригинальное авторство статьи.

Показать полностью 10 3
[моё] Android Java Игры на Android Libgdx Android разработка Длиннопост Видео Delphi
22
218
FOGOK
FOGOK
8 лет назад
Лига Разработчиков Видеоигр

Как делают игры среднего масштаба разработчики одиночки)⁠⁠

Моя личная история про разработку игры на android, пара кейсов, и граблей, на которые наступать крайне не рекомендуется) Разработка велась и ведётся на языке java с помощью фреймворка libgdx.

Итак, всё началось с идеи и диздока. Так как разрабатывать игру я собрался один, то диздок я решил сделать "мега информативным" :D

Идея игры проста: в углу сидит червяк, к нему идут рыбы на плавниках, и ты этих рыб мочишь, не подпуская к червяку.

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

После трех бессоных ночей и 5 чашек кофе я сделал тестовый билд, выглядил он так:


Так изначально выглядела "резалка" для рыб. В определённые моменты времени смотрелись последние точки, на которых находился палец, и по ним строились линии.

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

А вот будущие рыбы:

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

Первая рыба))

Нарисовал ботинок, а рыбы ещё нет :D

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

А вот она уже готова) Ждёт своего часа :D

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

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

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


Дальше пришло времени рыбу анимировать. Сначала я нарисовал четыре кадра руками, с нуля (рисовал всё в векторе), потом понял, что получилось убого, и стал искать варианты в интернете. Нашёл интересную программу, называется Anime Studio. В ней можно из одной картинки сделать анимацию с помощью инверсной кинематики. В итоге всё выглядело следующим образом:

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

Потом я написал свою систему частиц, для крови (в будущем ещё для ряда "спецэффектов"). Я знал про стандартную libgdx`овскую систему, однако хотелось написать её самому.

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

Пришло время для новых героев и оружия, представляю один из макетов (в данном случае медузы):

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

А теперь как всё выглядело после:
Система частиц для огнемёта использована та же, что и для крови)

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

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

Ещё один рабочий момент с червяком)

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

Потом я нарисовал ещё 10 врагов, оружие к ним, вот некоторые скриншоты процесса (на втором скрине босс, о котором немножечко позже):

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост
Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост
Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

Внимание - мой самый лучший скетчик морской звезды:

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

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

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

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

Первый вариант интерфейса (на примере GUI):

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

Финальный вариант:

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

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

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

В общем, уровни с боссами (их 6) достаточно интересными вышли, обязательно зацените)

Настало время делать уровни, и тут я встал в небольшой тупик) Сделал формат общий для каждого уровня, всё в формате JSON. Однако вручную пилить очень тяжело, постоянно путаешься, и решено было сделать редактор. Делал его около 13 часов в сумме, использовал для разработки язык C# с WPF. Этого того стоило) В редакторе помимо основных параметров врагов (тип, здоровье, время появления) можно задавать кастомные параметры для каждого врага.

Как делают игры среднего масштаба разработчики одиночки) Libgdx, Gamedev, Мобильные игры, Длиннопост

Что получилось в итоге можете посмотреть по ссылке в google play:
https://play.google.com/store/apps/details?id=com.fogok.tlfi...

Резюмируя хочу дать некоторые наставления совсем совсем зелёным в геймдеве:
1) никогда не пренебрегайте идее делегирования, одному все сделать идеально невозможно, а вот влиться в команду или сделать свою, и стать крутым в одной более узкой специализации возможно. На моем примере: много задач я решал очень долго, много много раз всё переделывал, и в итоге разработка этой игры заняла год (правда с учётом того, что большую часть времени я участвовал в команде в разработке инди игры с одним человеком, однако для года работы результат слишком скромен).
2) Как бы банально это не звучало - никогда не сдавайтесь! В разработке игр, как и в любом творчестве, нужно пробыть очень долго, чтобы добиться чего-то действительно стоящего (вам может и повезти, но это, увы, большая редкость). На этом длинном пути будет ооочень много фейлов, и очень важно уметь сохранять позитив. Это сложно, однако, если вы по настоящему любите своё дело, то у вас обязательно всё получится!!!

Всем спасибо за внимание, с уважением, Олег Карловский.

Показать полностью 19
[моё] Libgdx Gamedev Мобильные игры Длиннопост
33
69
loginivsetakoe
8 лет назад
Лига Разработчиков Видеоигр

Первая мобильная игра. От начала до конца⁠⁠

Хочу рассказать о моем первом опыте создания мобильной игры. Сразу скажу, что делал я это, в общем-то, для саморазвития и моя работа не связана с играми. Занялся я этим просто потому, что всегда хотелось попробовать и мешало только то, что не было вообще никакого представления с чего начать. Сделав усилие над собой, я совершил практически невероятное, я погуглил как делать мобильные игры на Android (ну просто потому, что у меня Android). Среди прочего интернет мне сказал, что есть такая библиотека libgdx и очень даже удобно работать с ней из Android Studio.

Первая мобильная игра. От начала до конца Android, Игры на Android, Libgdx, Gamedev, Мобильные игры, Длиннопост

С помощью libgdx можно делать игры и для ios и для html5 и для десктопной windows, но это меня особо не интересовало, поэтому ничего внятного сказать на эту тему не могу.

Так вот, взяв libgdx и Android Studio и посмотрев ряд уроков в интернете (ну и конечно почитав официальную документацию) я решил, что дальше изучать лучше на деле, то есть делать игрушку.


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


Для начала я взял шарики и поместил их на поле из 6-и угольников. Размер поля выбирался так, чтобы и не мелко было и вариантов для действий оставалось достаточно. Получилось поле 10x11 (на самом деле 9,5x11). Процесс игры сам по себе простой, тыкаешь пальцем в шарик, оттягиваешь в противоположном (к направлению желаемого движения) направлении и отпускаешь. Шарик перемещается туда, куда его отправили (с заданной скоростью, чем дальше оттянули, тем выше скорость) и либо останавливается естественным путем, либо утыкается в другие шарики. Собирая в соседних клетках по пять или более шариков они исчезают (если их больше 5 то появляется шарик с бонусом). Вот собственно основа игры.


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


Ресурсы для игры брались в интернете на сайтах где вокруг изображения были кнопки «Скачать бесплатно», «Бесплатно», «Экстра бесплатно», «Супер мега экстра бесплатно», конечно все переделывалось, что-то вообще рисовалось самостоятельно (то, что попроще). Первый вариант выглядел неказисто (хотя мне конечно нравилось). Изображений не сохранилось, но было примерно так:

Первая мобильная игра. От начала до конца Android, Игры на Android, Libgdx, Gamedev, Мобильные игры, Длиннопост

Убедившись, что все работает я начал делать уровни. Было решено, уровни грузить из xml-файлов. Эти файлы должны содержать всю необходимую информацию (начальное расположение шариков, цель уровня, количество ходов за которые успеть, сколько шариков появляется за ход и т.д.). Начал я делать уровни с того, что написал простенький редактор уровней, как-то же я должен расставить шарики, посмотреть на это и убедиться, что в это можно играть. Редактор выглядит очень сурово (он же только для меня), в нем первые версии многих элементов игры.

Первая мобильная игра. От начала до конца Android, Игры на Android, Libgdx, Gamedev, Мобильные игры, Длиннопост

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

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

Первая мобильная игра. От начала до конца Android, Игры на Android, Libgdx, Gamedev, Мобильные игры, Длиннопост

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

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

Первая мобильная игра. От начала до конца Android, Игры на Android, Libgdx, Gamedev, Мобильные игры, Длиннопост

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


Название игры тоже претерпело несколько изменений точнее первое слово в названии, ибо второе слово Balls так и осталось неизменным, шарики они и есть шарики.


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


Вот как-то так выглядит история моей первой мобильной игры. Получилось длинно. А то в интернете полно историй успеха, пусть будет моя история не успеха. Зато это было весело.


Если вдруг кому интересно, ссылка на игру в Play Market

Показать полностью 4
[моё] Android Игры на Android Libgdx Gamedev Мобильные игры Длиннопост
26
54
aurath
8 лет назад
Уголок ретрогеймера

BloodGDX - порт старого доброго Blood на языке Java c применением libgdx⁠⁠

Наткнулся на один интересный для ретрогеймеров проект - порт достаточно известной в России и за рубежом игрушки, Blood, выпущенной студией Monolith в мае 1997 года. В оригинале игра представляет из себя популярный тогда подвид шутеров от первого лица. Играем за ходячего мертвеца и умерщвляем все, что движется, попутно проливая галлоны чужой крови и не особо вдаваясь в сюжет. Граждане же СНГ могли играть в версию созданную нашими пиратами, где главный герой - Ленин, борющийся с мировой буржуазией и сыплющий цитатами из своего многотомного сборника начинающего коммуниста.

В общем и целом, нашим соотечественником, Александром Макаровым (известным как M210), создан порт оригинальной игры на языке Java и применением OpenGL через библиотеку libgdx. Основу кода представляет дизассемблированый движок Build для Blood, с поглядыванием на ранние версии Blood, JFBuild и eDuke32. Теперь возможно забыть про DosBox и наслаждаться игрой в любых версиях операционных систем.


Первая релизная версия v0.75 доступна по ссылке: http://m210.duke4.net/index.php


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


Для установки необходимо:

1) поставить последнюю версию Java

2) распаковать архив в папку с установленным Blood

3) запустить .jar файл, и если не выходит, то попробовать .bat


Пробуйте, смотрите, поддерживайте автора и проект!

Показать полностью
Ретро-игры Моды Java Libgdx Duke Nukem Build Bloodgdx Кровь Видео
4
4
cyberbach
cyberbach
8 лет назад
Лига Разработчиков Видеоигр

WIP Лесной напиток / Forest Brew⁠⁠

Всем привет!


Это ( youtube.com/watch?v=rqrHJALYdYo ) демо-ролик моей новой игры под слабые андроид-девайсы.


Тематика: лесные зверюшки собирают фрукты

Игровые персонажики: белка, ёжик и зайчик

Вражеские NPC: лиса, медвед и волк


Игра на подобие доты.


Механика сетевой игры: в начале нам выдается задание, типа, соберите 15 зелёных яблок. Противник получает другое задание, например, собери 10 красных яблок и 5 фиалетовых цветов.

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


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


Кому интересно, вот открытый исходный код: github.com/cyberbach/ForestBrew

А кому интересно, как я вообще всё это написал - я старался подробно описывать в группе в контакте: vk.com/over_my_game

Сетевую я сделаю на GPGS.

Очень долго и сложно было перейти на Entity based Component System, но получилось.

А ещё очень долго возился с динамическими мирами и получилось наконец-то сделать "открытый мир". Уровни домоделю - покажу.

А ещё, ооочень долго доучивался моделировать/текстурировать и анимировать. Это оказалось сложнее и дольше, чем думал.


В демо-ролике я тестировал анимацию появления и удаления деревьев и ягод.


Мне будет очень приятно, если вы меня поддержите в группе или тут =)

И, если у вас есть идеи и предложения по этой игре, то пишите!

Показать полностью
[моё] Libgdx Bullet Physical Engine Текст
15
Партнёрский материал Реклама
specials
specials

А вы знали, что по легенде тамагочи — это инопланетяне?⁠⁠

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

Играть в тамагочи

Тамагочи Ачивка Детство Текст
8
cyberbach
cyberbach
8 лет назад
Лига Разработчиков Видеоигр

Тар Тар⁠⁠

Всем привет!


Пара слов о самой игре: рпг от третьего лица в сэттинге хоррор/будущее, со стрельбой, рубиловом, кровищей, гонками на непонятных машинах, отвратительными монстрами и множеством секретов. Эталоном для подражания я считаю ДаркСоулс и Бладборн.


Платформа: андроид (исключительно слабые устройства!)

Фреймворк: libgdx

Открытый исходный код github.com/cyberbach/Tar-Tar-3D-RPG

Бесплатная


Сейчас сделано:

- динамические уровни, подгрузка/выгрузка в реальном времени (что-то вроде открытого мира)

- 1 модель персонажа с раздельными анимациями корпуса и ног

- 1 модель машины

- несколько моделей оружия

- 1 уровень (с упрощенной физической моделью)

- 2 типа врагов, и те пока что не кусаются - просто бегают

- несколько звуков (шаги, выстрел, взрыв, звук мотора)


Ищу лоу-поли МОДЕЛЕРА / АНИМАТОРА!


Денег, к сожалению, нет. Не обещаю что игра вообще выстрелит или получится интересной. Но пока что мне нравится, что получается.


Видео гейм-плея: youtube.com/watch?v=SbGg2fjWoA8

Группа в контакте: vk.com/tartar_game


Модели стоят ПЕРЕДОМ =) Это рот.

Тар Тар Libgdx, Gamedev, Work in progress, Игры на Android, Game Logic
Показать полностью 1
[моё] Libgdx Gamedev Work in progress Игры на Android Game Logic
29
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии