Войти на сайт

Авторизация, ждите ...
×
  • Страница:
  • 1
  • 2
  • 3
  • 4

ТЕМА: Leaf Engine (эволюция бурундуков)

Leaf Engine (эволюция бурундуков) 6 года 6 мес. назад #99401

  • Mur
  • Mur аватар
  • Вне сайта
  • Светлый дракон
  • Мур? Мур! Мур.
  • Сообщений: 574
  • Спасибо получено: 1448
  • ОраторУчитель2 место Программист JavaScript Даритель СтимкеяОрганизатор конкурсов
ZX_Lost_Soul пишет:
Лига Ангелов сделана на флеш.

Давно пора разобрать похожие игрушки на коллекцию графики. :blush:
Администратор запретил публиковать записи гостям.

Leaf Engine (эволюция бурундуков) 6 года 6 мес. назад #99402

  • Lemmy
  • Lemmy аватар
  • Вне сайта
  • Мастер
  • Сообщений: 157
  • Спасибо получено: 416
  • КомпозиторПроект месяца 2 местоУчительРазработчикПереводчикВетеран
На счёт графики в Лиге Ангелов - согласен. Там очень не плохие модельки есть. Особенно нравятся эти демонески. Хотел даже с ними игру сделать, управлять такой бестией. Но это надо как-то оцифровать её позы все с игры.

Администратор запретил публиковать записи гостям.

Leaf Engine (эволюция бурундуков) 6 года 6 мес. назад #99403

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 911
  • Спасибо получено: 565
  • Программист RubyОраторВетеранДаритель СтимкеяПрограммист JavaScript
Выглядит интересно. А формат данных будет как у мейкера?
А ивенты и прочее уже есть или пока только движущиеся спрайты?
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

Leaf Engine (эволюция бурундуков) 6 года 6 мес. назад #99410

  • ZX_Lost_Soul
  • ZX_Lost_Soul аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 546
  • Спасибо получено: 945
  • Проект года 3 местоРазработчикОраторДаритель СтимкеяЗа 3 место на конкурсе маппингаУчительПобедитель конкурсаПобедитель Сбитой кодировкиПроект месяца 2 местоВетеран
Mur, Lemmy, в таких играх графика обычно по мере игры подгружается с сервера, поэтому разом её всю выдрать не выйдет, нужно играть и кешировать) А вообще это не особо проблематично.

Lekste, формат каких данных? Карты и база данных сохраняются в json, как у RPG Maker MV, но сама структура другая совсем. Возможно, сделаю возможность импорта, но только карт, не ивентов. Импорта ивентов с мейкерского проекта точно не будет, т.к. тут они немного иначе устроены (см. первый пост).

Ивенты сейчас в процессе доработки, в следующей демке уже будут полноценные, с демонстрацией их возможностей (для начала простеньких).
Последнее редактирование: 6 года 6 мес. назад от ZX_Lost_Soul.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, Green-Leo

Leaf Engine (эволюция бурундуков) 6 года 6 мес. назад #99415

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 911
  • Спасибо получено: 565
  • Программист RubyОраторВетеранДаритель СтимкеяПрограммист JavaScript
Еще насчет удобства событие-условие-действия не совсем понял.
Почему в описании ивентов как в мейкере нельзя так же добавить параметр "Этот ивент"?
И по описаной схеме выходит что логика ивента ограничивается только одним событием и условием.

Пока кажется список команд и ветвлений, как в мейкере, более компактным и читабельным.
Да и активировались там они так же, по событиям "Касание, Авто, Параллельно".
Но позволяли описывать более сложную логику реакции, с множеством условий и переходов.
Последнее редактирование: 6 года 6 мес. назад от Lekste.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

Leaf Engine (эволюция бурундуков) 6 года 6 мес. назад #99416

  • ZX_Lost_Soul
  • ZX_Lost_Soul аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 546
  • Спасибо получено: 945
  • Проект года 3 местоРазработчикОраторДаритель СтимкеяЗа 3 место на конкурсе маппингаУчительПобедитель конкурсаПобедитель Сбитой кодировкиПроект месяца 2 местоВетеран
Lekste, ты не совсем верно понял задумку. Структура действий событий не стала проще - она осталась такой же, как в мейкере, со всеми командами, ветвлениями и т.д.
Изменился способ вызова действий - в мейкере он привязан к взаимодействию с конкретным ивентом (активация, касание, столкновение), либо не привязан вообще (автоматические, параллельные), а тут их можно привязать к чему угодно (ивент входит в регион, персонаж получает урон, нажата кнопка на клавиатуре). Это добавляет гибкости, т.к. нам не обязательно указывать конкретные варианты.
Раздел "условий" может содержать множество условий и нужен лишь для некоторого удобства. В мейкере эту роль выполняют галочки слева, где можно выбрать конкретный переключатель/переменную в качестве условия. Вообще я подумываю отказаться от него, дабы не сбивать с толку, оставить только "событие" и "действия", но пока не уверен.
Последнее редактирование: 6 года 6 мес. назад от ZX_Lost_Soul.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

Leaf Engine (эволюция бурундуков) 6 года 6 мес. назад #99417

  • Doctor_Bug
  • Doctor_Bug аватар
  • Вне сайта
  • Светлый дракон
  • Из горизонта события! ▪_■
  • Сообщений: 568
  • Спасибо получено: 880
  • Проект месяца 1 место3 место3 место в КодировкеПрограммист RubyВетеранПроект месяца 3 место
Лост я даже на секунду подумал, что это старый корейский Рагнарок :laugh:
Буду наблюдать за вашем проектом. Уж очень классно получается. :)
Баг изучает Godot Engine. А слушает эту музыку ~~> Мое сердце
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, ZX_Lost_Soul

Leaf Engine (эволюция бурундуков) 6 года 6 мес. назад #99419

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 911
  • Спасибо получено: 565
  • Программист RubyОраторВетеранДаритель СтимкеяПрограммист JavaScript
Но эти события же все-равно будут проверятся в один и тот же период времени.
Так чем оно гибче мейкеровского параллельного ивента?

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

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


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

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

Что-то вроде такого:
event_edit.png


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

Если что, в активной команде должен был быть "If" вместо "Is". Опечатался немного.
Последнее редактирование: 6 года 6 мес. назад от Lekste.
Администратор запретил публиковать записи гостям.

Leaf Engine (эволюция бурундуков) 6 года 6 мес. назад #99420

  • ZX_Lost_Soul
  • ZX_Lost_Soul аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 546
  • Спасибо получено: 945
  • Проект года 3 местоРазработчикОраторДаритель СтимкеяЗа 3 место на конкурсе маппингаУчительПобедитель конкурсаПобедитель Сбитой кодировкиПроект месяца 2 местоВетеран
Lekste, попробую привести пример.



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

Решение на мейкере:
Параллельное событие
Присвоить переменной 1 координату Х монтра 1
Присвоить переменной 2 координату Y монтра 1
Если переменная 1 > 12
  Если переиенная 2 > 8
    Показать на монтре 1 анимацию удара
    Удалить монстра 1
Присвоить переменной 1 координату Х монтра 2
Присвоить переменной 2 координату Y монтра 2
Если переменная 1 > 12
  Если переиенная 2 > 8
    Показать на монтре 2 анимацию удара
    Удалить монстра 2
Присвоить переменной 1 координату Х монтра 3
Присвоить переменной 2 координату Y монтра 3
Если переменная 1 > 12
  Если переиенная 2 > 8
    Показать на монтре 3 анимацию удара
    Удалить монстра 3
Присвоить переменной 1 координату Х монтра 4
Присвоить переменной 2 координату Y монтра 4
Если переменная 1 > 12
  Если переиенная 2 > 8
    Показать на монтре 4 анимацию удара
    Удалить монстра 4

А если мы захотим добавить ещё одного монстра - придётся лезть в этот ивент и копировать всё ещё и для него.

Как это выглядит на Leaf Engine:
Рисуем регион рядом с войном и называем Регион 1, ивентам монстров добавляем тег "монстр".
Событие: Ивент входит в Регион 1.
Условие: *Вошедший ивент* имеет тег "монстр".
Действия: Показать анимацию удара на *вошедшем ивенте*
Удалить *вошедший ивент*

Дальше мы можем спокойно размножать ивенты монстров и не париться, кого мы уже добавили в обработку, а кого нет.
Последнее редактирование: 6 года 6 мес. назад от ZX_Lost_Soul.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Green-Leo

Leaf Engine (эволюция бурундуков) 6 года 6 мес. назад #99423

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 911
  • Спасибо получено: 565
  • Программист RubyОраторВетеранДаритель СтимкеяПрограммист JavaScript
Это все супер, но я писал не о перечне доступных команд мейкера, а о принципе формирования логики ивента.

При твоем наборе возможностей и описанном мной, принципе, список команд выглядел бы как-то так:

Если номер региона, где стоит ивент = 1
call 'Реагировать на вход в регион 1'
end

Реагировать на вход в регион 1:
Если {Этот ивент} имеет аттрибут 'монстр'
play anim 'slash'
Иначе
call 'Освободить проход'
end

Где 'Освободить проход' также отдельная цепочка команд с описанием перемещения ивентов.

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

А если будет требование: Ивент входит в Регион 1, при этом тип ивента "Монстр", у него меньше 25% HP, сейчас день и в радиусе 3x3 нет других монстров, а также есть хотябы 1 страж в регионе, то проиграть анимацию атаки, после этого, при условии, что не прошло хотябы 5 ходов с последней атаки монстров на регион и число активных стражей меньше трех, снизить моральный дух стражей, а затем, если моральный дух меньше 10, то снизить число стражей на 1.

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

Либо этот порядок зависел от другого условия, например, успел ли игрок нажать кнопку "Защита".
Последнее редактирование: 6 года 6 мес. назад от Lekste.
Администратор запретил публиковать записи гостям.

Leaf Engine (эволюция бурундуков) 6 года 6 мес. назад #99424

  • ZX_Lost_Soul
  • ZX_Lost_Soul аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 546
  • Спасибо получено: 945
  • Проект года 3 местоРазработчикОраторДаритель СтимкеяЗа 3 место на конкурсе маппингаУчительПобедитель конкурсаПобедитель Сбитой кодировкиПроект месяца 2 местоВетеран
Lekste, и всё равно мы говорим о разном :)

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

А сделать возможность создавать именованые цепочки команд и вызывать их вполне можно и даже нужно, это правильно.
Последнее редактирование: 6 года 6 мес. назад от ZX_Lost_Soul.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

Leaf Engine (эволюция бурундуков) 6 года 6 мес. назад #99425

  • Arrakttur96G
  • Arrakttur96G аватар
  • Вне сайта
  • Мастер
  • Сообщений: 207
  • Спасибо получено: 181
  • Даритель Стимкея
С какогото бодуна, да и лешего, эта флеш-демо игра созданная, как я понимаю на этом самом новом движке, о котором идет речь, напомнила мне первые минуты, проведенные мной, в свое время в Дисгае. СС какого перепугу, и причем тут дисгая, не знаю, но чот навеяло этим. Наверное нужно прекращать уже пить таблетки.
Бессмертие – не бешенство, при укусах не передается. - Лен, Арракттур. Профессия ведьма, Громыко Ольга.

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

Leaf Engine (эволюция бурундуков) 6 года 6 мес. назад #99428

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 911
  • Спасибо получено: 565
  • Программист RubyОраторВетеранДаритель СтимкеяПрограммист JavaScript
О, а при таком раскладе будет куча событий с разными ивентами и все вперемешку.
Искать, чувствую сложно будет.

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

При втором варианте в общем списке, если захочется узнать, что делается при входе ивента №1 в регион №1, придется искать пункт в общей куче событий со всеми доступными ивентами на карте,

А в сообщении я говорил о необходимости поддерживать создание 2-х и более цепочек команд на один тип события.
Как в примере из того сообщения:
Вход ивента 1 в регион 1: Проиграть анимацию удара
Вход ивента 1 в регион 1: Изменить дух стражей

P.S. Если что, я не предлагаю менять систему ивентов. Обсуждение чисто, чтоб более широко взглянуть на среду использования
и приобрести четкое представление о преимуществах и возможных слабых местах системы.
Последнее редактирование: 6 года 6 мес. назад от Lekste.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: ZX_Lost_Soul

Leaf Engine (эволюция бурундуков) 6 года 6 мес. назад #99443

  • ZX_Lost_Soul
  • ZX_Lost_Soul аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 546
  • Спасибо получено: 945
  • Проект года 3 местоРазработчикОраторДаритель СтимкеяЗа 3 место на конкурсе маппингаУчительПобедитель конкурсаПобедитель Сбитой кодировкиПроект месяца 2 местоВетеран
Искать, чувствую сложно будет.
Это да, надо подумать. Может сделать что-то вроде отображения событий, связанных с ивентом, когда заходишь в его свойства. А ещё я думал о возможности раскладывать события в списке "по папочкам", чтобы всё не было в куче.

А никто не пробовал с телефона демку открывать? Интересен вопрос производительности, будет ли нормальный показатель FPS у всех. Лучше всего идёт в Google Chrome.
Последнее редактирование: 6 года 6 мес. назад от ZX_Lost_Soul.
Администратор запретил публиковать записи гостям.

Leaf Engine (эволюция бурундуков) 6 года 6 мес. назад #99444

  • Lekste
  • Lekste аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 911
  • Спасибо получено: 565
  • Программист RubyОраторВетеранДаритель СтимкеяПрограммист JavaScript
Я запускал с планшета через хром. 120 fps показывало.
Через сафари иногда до 60 падает.
Последнее редактирование: 6 года 6 мес. назад от Lekste.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: ZX_Lost_Soul

Leaf Engine (эволюция бурундуков) 6 года 6 мес. назад #99445

  • Mur
  • Mur аватар
  • Вне сайта
  • Светлый дракон
  • Мур? Мур! Мур.
  • Сообщений: 574
  • Спасибо получено: 1448
  • ОраторУчитель2 место Программист JavaScript Даритель СтимкеяОрганизатор конкурсов
ZX_Lost_Soul пишет:
А никто не пробовал с телефона демку открывать? Интересен вопрос производительности, будет ли нормальный показатель FPS у всех. Лучше всего идёт в Google Chrome.

Sony Xperia Compact Z1, что в FF, что в Chrome примерно одинаково, от 60 до 110fps, правда иногда бывают вбырки до 44fps, но в целом весьма симпатично всё ходит.

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

Leaf Engine (эволюция бурундуков) 6 года 6 мес. назад #99447

  • Фред Канниг
  • Фред Канниг аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 450
  • Спасибо получено: 203
  • Поддержка Фонда
А при чём тут бурундуки?
Администратор запретил публиковать записи гостям.

Leaf Engine (эволюция бурундуков) 6 года 6 мес. назад #99616

  • ZX_Lost_Soul
  • ZX_Lost_Soul аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 546
  • Спасибо получено: 945
  • Проект года 3 местоРазработчикОраторДаритель СтимкеяЗа 3 место на конкурсе маппингаУчительПобедитель конкурсаПобедитель Сбитой кодировкиПроект месяца 2 местоВетеран
Фред Канниг пишет:
А при чём тут бурундуки?
Я две недели думал над ответом и вот он:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]


Теперь что касается прогресса.
1. Появилась поддержка звука и музыки. В связи с этим замечательным событием добавлена возможность ставить фоновую музыку локациям. Работает точно так же как в мукере - если у двух карт указана одна и та же BGM, то при переходе между ними музыка продолжит играть, если разная - старая остановится, а новая заиграет с начала.
2. Появилась возможность выбрать тип карты - интерьер. Такие карты не будут стараться растянуться на весь экран, а всегда выдерживать нужную высоту экрана и держаться посередине. Пустое место по бокам они заливают фоновым цветом, который указывается в настройках игры. Такой тип хорош для любых интерьерных локаций, находящихся в "черноте".
3. Переделан счётчик fps (старый не умел считать кадры при слишком сильных тормозах).
4. Добавлена кнопочка включения полноэкранного режима игры. Работает как на компьютере, так и на телефоне.
5. Доработаны ивенты. Чтобы избежать непоняток, сразу проясню: то, что в мукере называлось ивентами (event), в Leaf Engine называется сущностями (entity). Сделано это для удобства понимания, поскольку ивентами будут называться сами события, а не объекты на карте. Сути же в целом это не меняет - сущностью может быть как дверь/сундук, так и персонаж, в общем всё, что может потребоваться двигать/анимировать/активировать.
Пока добавлены всего два события (сущность входит в регион, клик на сущность) и два действия (перемещение на другую карту, движение сущности). Другие на подходе.
6. Оптимизирован/исправлен старый код.

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

А теперь небольшой вопрос для оживления темы. Игра, которую я делаю - так сказать, фанатский сиквел на старую jrpg. Поскольку игра старая, графика в ней довольно низкого разрешения. Возникает вопрос - использовать её как есть или же переделывать в "HD" :laugh:
Для сравнения выставляю пиксельный оригинал и мою переделку.
Оригинал
Переделка

Что лучше смотрится? Пиксели или мазня?
Последнее редактирование: 6 года 6 мес. назад от ZX_Lost_Soul.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy

Leaf Engine (эволюция бурундуков) 6 года 6 мес. назад #99617

  • Dmy
  • Dmy аватар
  • Вне сайта
  • Заблокирован
  • Сообщений: 1142
  • Спасибо получено: 2477
  • Проект месяца 3 местоДаритель СтимкеяУчительПаладин2 место Программист RubyВетеранОраторЗа 2 место на конкурсе маппингаПоддержка Фонда
ZX_Lost_Soul пишет:
Поскольку игра старая, графика в ней довольно низкого разрешения. Возникает вопрос - использовать её как есть или же переделывать в "HD" :laugh:
Лично я за пиксели :)
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: ZX_Lost_Soul

Leaf Engine (эволюция бурундуков) 6 года 6 мес. назад #99618

  • DK
  • DK аватар
  • Вне сайта
  • Светлый дракон
  • DKPlugins
  • Сообщений: 946
  • Спасибо получено: 1129
  • Программист RubyПроект месяца 2 место2 место ВетеранОраторПроект месяца 1 местоУчительПроект месяца 3 местоРазработчикПаладин
Интересно пощупать) Если движок использует pixi и будет поддержка сторонних плагинов, то думаю, что портировать DKTools не составит большого труда :)
Последнее редактирование: 6 года 6 мес. назад от DK.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, ZX_Lost_Soul
  • Страница:
  • 1
  • 2
  • 3
  • 4
Время создания страницы: 0.332 секунд