Как стать автором
Обновить

Комментарии 12

Хм, очень интересно.Раньше я часто делал маленькие игры просто для развлечения и процентов 80% времени я тратил на поиск хоть каких-то приемлемых текстур. Спасибо за перевод.

Спасибо, что ознакомились с переводом. Я разделяю вашу боль. Можете кратко поделиться опытом, как вы решали данную проблему? Мб какие-то стоки ресурсов или поиск по картинками со свободной лицензией? Заранее спасибо.

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

В итоге купил Pyxel Edit для рисования спрайтов, tileset-ов, tilemap-ов и анимаций, и рисую сам. Процесс с трудом, но идет.
Самым сложным оказалось рисовать гуманоидного типа персонажей, пришлось раз 5 рисовать с нуля, но в итоге достигнул более менее хорошего результата (для первой версии игры точно пойдет).

По игре, кратко аналог Bomberman с сетевой составляющей и элементами прокачки. Так же упор идет на освещение, оно будет играть там важную часть.
Можете поделиться какими-то наработками? Арты, скетчи или мб сама версия игры или её скриншоты? И ещё вопрос: на чем разрабатываете игру?

Набросков как таковых вообще нет, рисовалось на живую. Так же поглядывал в качестве примера на такие игры как bomberman, contra и zelda.


Публичная версия, увы, еще не скоро будет, потому особо показывать пока нечего.
Разработка идет с использованием таких инструментов: kotlin, libgdx, box2d и box2dlights (но в будущем планирую сам написать raytrace освещения, ибо текущая либа не покрывает все хотелки). Для сетевой составляющей пока в процессе выбора, если у вас есть хорошие варианты, с радостью бы их посмотрел.


Почему взял эти инструменты?


  1. kotlin — по работе немного имел с ним дело, но недостаточно, чтобы понять его. Сам язык заинтересовал различным сахаром, которого нет в java (основной язык мой). В качестве способа его изучить выбрал писать игру, что тоже впервые, но тема меня эта давно интересует так же.
  2. libgdx, box2d и box2dlights наиболее популярные и внятные инструменты для написания игр на языках JVM. Так же смотрел libktx, но из-за отсутствия нормальной документации не смог его применить. Плюс это просто прослойка libgdx (даже не абстракция для упрощения) и потому решил, что нет смысла тратить в двойне больше времени на изучение двух либ, если можно взять libgdx.

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


P.S. Так же ссылочка на Pyxel Edit

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

На счет сетевой части, я бы посоветовал Python\Flask (flask для API только). Почему так? В основном из-за скорости развертывания и написания бекенда. Даже если вы будете делать P2P общение, вам где-то нужно регать клиентов. Плюс не составит труда подключиться к апи со стороны Java, тот же okhttp прекрасно все предоставляет.
SystemXFiles Большое спасибо за развернутый ответ. Я сам тоже из Java-мира, как и вы. Но свои простенькие игры пока что пишу на языке Lua, движок: Love2D. Кстати, позволю себе поделиться тут ссылкой на другую свою статью, где я ставил над собой эксперимент, пробуя различные игровые движки (для затравки, там есть один Java-движок, и это не libgdx ;-) ): habr.com/ru/post/449390

Насчет Pyxel Edit любопытно, попробую на него поглядеть, по крайней мере в роликах на Ютубе… А что скажете про Aseprite? Был ли опыт?

По сетевой части, если нужна серверная часть (координатор, игровой сервер, юзеры, таблицы лидеров etc.) — сам я бы взял не чураясь Spring Boot, так как просто больше всего набил в нем руку и готов быстро накидать любую бэкенд логику. Оверкилл? Возможно, но его экосистема и куча готовых модулей сразу дают вам все, что только может пригодиться покуда проект эволюционирует: сокеты, REST-общение, TCP/UDP взаимодействия — пожалуйста, персистентность данных в любой известной нынче СУБД, большое сообщество и ворох туториалов, доки и проектов-примеров.

За статью спасибо =)


С Aseprite не имел опыта работы, хотя на момент поиска инструмента наталкивался на него. Мне приглянулся Pyxel Edit за его простоту для новичка. Главное что там есть фича рисовать карту в живую, дабы смотреть результат в реальном времени.


До этого пытался рисовать в Photoshop и это был для меня АД. Пытался так же для автоматизации изменений использовать Smart Object-ы, но даже на карте 16 на 32 тайла Photoshop наглухо вис и отъедал всю оперативку на ПК (а это 32 гб). После этого психанул и купил Pyxel Edit =))

Кстати, быть может вы знаете хорошие туториалы по libgdx в плане архитектуры приложения? Сейчас то что пишу пугает тем, что придется рефакторить сильно. Хочется понять как лучше всего организовать код, чтобы было проще дорабатывать в будущем.

Привет, рекомендую посмотреть в сторону Ashley. Это реализация ECS-шаблона в libgdx. Подробнее тут: github.com/libgdx/ashley
Спасибо, добавил к своему списку генераторов. telegra.ph/Asset-05-05 — в самом конце списка можете найти что нибудь полезное для себя)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации