Кто-нибудь юзал mini2dx? Я всё ещё в поисках удобного движка для пиксельарт игр. Годот мне нравится, но я не уверен можно ли там напрямую рисовать спрайты, не создавая их, как было в старых движках типа Blitz3d и BlitzMax, а ещё также в Pico-8 и Tic80. Для пиксельных игр больше подходит такое рисование, чем использовать Node в Годот или Transform в Юнити, ибо это более комплексный подход.
- 22 марта 2019, 01:05
- 00
На самом деле мне функциональности Tic80 хватает.
Если бы только там:
1) не было ограничений по количеству кода
2) можно было бы делать любое разрешение
3) и было бы неограниченное количество карт и их размер
4) неограниченное число спрайтов
Там всего 7-10 функций, и это хватает для любого уровня игр, обычно во всяких крутых движках этих системных функций выше крыши зачем-то, и это не помогает, а наоборот усложняет в разы процесс изучения и работы.
PS в каждом движке есть своим минусы, до сих пор не нашёл удобного варианта для разработки пиксель игр
Там их много, потому что цели у разработчиков разные, а движок должен быть универсальным.
Ну ты рисуй спрайты в тайлмапе тогда, а потом заменяй скриптом тайл на пустой и создавай на его месте спрайт.
Если менять целиком движок из-за такой ерунды, то никогда не закончишь ни одной игры. :P
Ты наверное намеренно искажаешь цели виртуальных консолей, таких как пика и тик. В случае с тик-80 можешь взять исходники, и убрать ограничения сам. :)
Нет, нельзя, да и зачем тебе это. Все изменения проводимые в спрайтах, автоматически подхватываются движком. Тебе достаточно собрать каркас, а в версии 3.1 изменили подход к созданию тайлсета для карты. Вот от чего я действительно начал получать удовольствие. Если раньше требовалось создавать кучу нод: спрайт, коллизион, навигатион, теперь просто загружаем картинку, проставляем размеры ячеек и рисуем тайлы. Просто, удобно. Я не советовал бы тебе заниматься перебором движков - сам через это прошел, и это такое неблагодарное дело. Все равно, максимально все не оптимизируешь, где-то ебатни побольше, но где-то поменьше, а по скорости выполнения хуже: Love2D минималистичный, быстрый, но все нужно писать, прям все (библиотеки не в счет), GM - шикарен, но платный, Unity - универсальный, но тормознутый, тик, пико - это специфика и ограниченность, Unreal - для инди проектов совсем уж не то, Defold - просто не вкатил, Construct 3 - платный. Советую смотреть в сторону "открытых исходников" и что сейчас активно развивается, к примеру Phaser, но это html5 и js.
это что имеется ввиду?
Если говорится, что "в 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 успел выбрать движок!
Чтобы выбрать движок, нужно всего лишь каждый день...ЧИТАТЬ ДАЛЕЕ>>>
Боли в движке? Скачать циркониевый гамак без регистрации и СМС
гамак я так понимаю дорого?
ага, давно бы заюзал) мы всё ещё выплачиваем по кредитам, осталось всего почти миллион рублей (я уже забыл что такое тратить деньги на себя, лол), так что любая копейка мимо(( потом можно и попробовать, обязательно куплю, если маман опять кредитов не набёрет, но тогда я сваливаю...
звучит жопно...
Звучит так, как будто ты правительство