Кто-нибудь юзал mini2dx? Я всё ещё в поисках удобного движка для пиксельарт игр. Годот мне нравится, но я не уверен можно ли там напрямую рисовать спрайты, не создавая их, как было в старых движках типа Blitz3d и BlitzMax, а ещё также в Pico-8 и Tic80. Для пиксельных игр больше подходит такое рисование, чем использовать Node в Годот или Transform в Юнити, ибо это более комплексный подход.
- 22 марта 2019, 01:05
- 00
это что имеется ввиду?
Если говорится, что "в Pico-8 и Tic80", то, я думаю, имеется ввиду возможность рисовать в коде запросто что-из атласа, не создавая всяких там отдельных абстрактных сущностей в движке (типа node в Годо)
А если к вопросу из микропоста, то:
Условный Love вполне себе удовлетворяет должности "удобный движок для пиксельарт игр". Всё это есть, можно загрузить атлас и рисовать произвольные квады. Открыть параллельно с редактором кода графический редактор - и тыкать там пиксели. Pipeline будет почти как в Tic-80. Ещё какой-нибудь Tiled для карты. При желании можно написать аналог рисовательных функций из Tic-80, это элементарно. Никакими абстракциями ничего не перегружено - делаешь сам всё как хочешь. Мне кажется, что перебор всех движков едва ли принесет плоды, ибо все более-менее известные представители (Unity, Godot, GMS, Love, HaxeFlixel и прочие штуки под Haxe, Defold... ну и всё подобное) - их должно хватать по функционалу на всё, что ты описал. Ну или если нет, то проще взять SDL или SFML или что-то подобное низкоуровневое и писать на ещё более базовом уровне. Дальше уже свой движок только если)
Совсем-совсем без сущностей? Ну не знаю, экономия на спичках.
Кстати, alexsilent, а смотрел ли ты на Cocos2d? Как-то во всех этих беседах про него почти ничего и не говорят, почему-то
Совсем без них, конечно, не выйдет, я думаю. Какие-то минимальные структуры руками в коде всё равно придется объявить, иначе это адок будет для любой игры сложнее змейки. Так что скорее речь о возможности создания сущностей с минимально необходимым функционалом без излишних абстракций.
Экономия на спичках - это может быть, но смотря как и что делать.
У питоньего кокоса, конечно, дока "на уровне", но вот про спрайты
питон? я вроде слышал там надо на Lua писать, видимо ошибся
Ну вот я сейчас в Tic80:
1) легко спрайт рисую, а когда не нужно то просто не рисую, если его создавать по типу юнити, то его нужно прятать и показывать заново, и не забыть что он спрятан
2) измерение в Tic80 мерится пикселями, то есть я знаю насколько надо передвинуть пиксель, чтобы получить результат, не тестируя, а в юнити это невозможно, там измерение в мутных юнитах, в Tic80 захочется на длину или ширину спрайта передвинуть, то это получится очень легко (люблю когда измерение в пикселях, а не абстрактных величинах)
3) например, объект репка(корнеплод как в Mario 2 на NES) в Tic80 (поскольку коллизия написана вручную, то можно проверять коллизию в любой момент времени, и ещё при включенной коллизии репа не вылетит из под земли, как было бы при обычной коллизии в юнити, пока её не вытащишь сам) коллизию вручную будет сложно в юнити написать, хотя бы потому-что измерение расстояния не в пикселях, и придётся долго на глаз подбирать размер
4) из-за той же ручной коллизии можно легко сделать спуск/прыжок_вниз с one side collision платформы, нажав например как в игре Contra вниз+прыжок, хотя бы потому-что коллизия не выталкивает автоматически, пока её не отключишь как в юнити (но тогда упадут все персонажи с платформы, как это было бы в Unity)
и опять же автоматическая коллизия лучше программируется в движках, где размер в пикселях измеряется, а не как в юньке
5) в юнити, чтобы очистить локацию от предметов, приходится долго по списку удалять (а ещё бывают скрытые спрайты) в Tic80 и Bitsy очень легко очистить локацию от лишнего случайно не удалив системные файлы...
Теперь я думаю, что даже если останусь на Unity или Godot, нужно придумать способы как упростить разработку игр:
1) как мерить в пикселях расстояние
2) сделать ручную коллизию, или более простую, чтобы её легче можно было контролировать (легко проваливаться в one side коллизию и не подпрыгивать как от трамплина, как будто ты автомобиль, если забрался на бугорок в платформере, этим грешит и годот и юнити)
3) использовать по минимуму набор, например только тайлы для уровня (чтобы внутри тайлов сразу генерировались все интерактивные объекты) чтобы в один клик очищать уровень от лишнего, не удалив случайно важные системные объекты
4) если не получится рисовать спрайты напрямую, то хотя бы упростить работу с ними, легко показывать и скрывать, легко менять на другой спрайт, без дополнительных 100500 функций (в tic80 на это всего функция
spr() - она и указывает что надо в этот кадр показывать спрайт, она также и указывает какой кадр рисовать, вообще универсально и просто, без подключения дополнительных библиотек и тонны функций от которых голова идёт кругом :D )
5) системные файлы никогда не ставить на уровень, и в этом случае годот лучше юнити, потому-что в годот можно это сделать, а в юнити надо обязательно ставить что-то на уровень, что будет инициировать системные файлы работающие с ядром игры и важными функциями
В Godot расстояния в пикселях, и про бугорок тоже прикрутили спец метод: https://godotengine.org/article/godot-31-will-get-many-improvements-kinematicbody
А про рисование спрайтов я тут уже написал, это для любого движка, сам так делал много раз
А вот это реально круто)
ЗЫ то есть каждый 1 юнит в годот это 1 пиксель? надо проверить) это хорошо, если так
в юнити при импорте спрайта можно указать сколько пикселей в 1 юните. Допустим тайл 32 пикселя, так и ставишь. получается 1 юнит будет 32 пикселя...
Камеру тоже можно настроить правильно. Сейчас что-то добавили для пиксель арта, чтоб движение по пикселям было.
Годот этим не грешит. Пруфы в студию. Ты настраиваешь одностороннюю коллизию и все, она работает сразу без прилюдий.
Это как? Тайл, это картинка и не более, тайлсет - это набор картинок и соответствующих им форм коллизий, навигаций и онклюжинов. Благодаря тайлам ты можешь генерировать объекты создав нужный тебе класс - character, к примеру, и определить его характеристики, а затем генерировать сколь угодно много этих экземпляров, пока позволит память железа.
Хм, это прям проблема?
Легко. В инспекторе спрайта, задаешь сетку тайлсета и устанавливаешь нужный тайл, задействовав параметр frame. И все!
Это как?
А как спуститься вниз/спрыгнуть с этой односторонней коллизии? Как в старых играх типа Contra или Castlevania, где при нажатии вниз+прыжок персонаж падал вниз с односторонней платформы.
В юнити всегда голова болела, от того что хотел подчистить уровень, но старался случайно не удалить важные системные файлы. И если на уровне будет минимум объектов объединённых в одну большую группу, как tile, то может быть будет проще, в tic80, тупо потёр картинки и уже совершенно другой уровень можно лепить. Другими словами - чем меньше инструментов (но они универсальны) тем лучше.
PS А ещё вопрос, легко ли в годот сделать с помощью встроенной коллизии приседание? И чтобы персонаж автоматически не поднимался, пока не выползешь из узкого прохода/лаза/вентиляции, я в Tic80 уже настроил, но вот не уверен насколько легко это делать с коллизией годота, в юнити это была нереальная проблема.
Так
Каждый проект в годо заключен в только в рабочей папке проекта - некий пузырь, в котором все происходит. Здесь также, как и в тик. Я уже отвечал ранее. Создаешь, класс, например, Character, прописываешь свойства которыми он обладает и на момент создания, просто заполняешь нужные тебе параметры: здоровье, тайлы, анимации и т.д. Потом берешь этот же класс объекта и наделяешь его другими свойствами. Почитай доки, там про классы расписаны некоторые общие черты, т.е. ты даже можешь создавать свои НОДЫ с определенными свойствами: т.е. это сцена, но и не сцена, а класс.
Так
Спасибо) думаю тоже пригодится, так как годот всё больше нравится, я полюбому попробую что-то сделать на нём)
А смотрел felgo (бывший v-play), orx или moai?
Давайте накидаем список, чтобы у alexsilent случился паралич выбора.
Если это ирония, то я её не понял, потому что Кокос и его вариации в своё время были весьма популярны
Я кстати скачал Cocos2d, но там попросили регистрацию через интернет и я оставил на потом, ибо обычно сижу без него, но так и забил и забыл о кокосах) Надо бы всё-таки добраться до движка.
Что-то новенькое. Ты ставил через
pip install cocos2d
?В питоновском кокосе коммит последний от 2017 года. А cocos2d-x вроде как актуален сейчас. (мопед не мой, кокосом не пользуюсь)
2017 не 2007, все нужные фишки там уже давно есть.
А cocos2d-x это порт на C++ с очень своеобразным API, я не настолько мизантроп, чтобы советовать Алексу такое ;)
к пенсии определится с движком...
ШОК! Что скрывают правительства! Пенсионный возраст подняли для того, чтобы alexsilent успел выбрать движок!
Чтобы выбрать движок, нужно всего лишь каждый день...ЧИТАТЬ ДАЛЕЕ>>>
Боли в движке? Скачать циркониевый гамак без регистрации и СМС