движок
Что должен уметь :
- поддерживать ЩИНДОВС и легко портироваться
- система анимаций
- работать с тайловой картой и иметь редактор для нее
- работать с объектами
- пути, кривые катмулл-рома и следование по ним
- физика
- шойдерные эффекты и частицы
Кандидаты:
- Свой
- Torque2D
- Frogatto
- Unity3D
- Do research (может редактор карт от какой игры подойдет)
- TileEd
- Dame
- Stencyl
- http://www.aurelienribon.com/blog/projects/physics-body-editor/
- http://www.codeandweb.com/physicseditor
- https://www.kickstarter.com/projects/esotericsoftware/spine?ref=discovery
По хорошему стоит сделать контент и и придумать механику первого уровня и попробовать запрограть все это на всех кандидатах. Это довольно трудозатратно, но зато сразу станет понятно с чем стоит связываться а с чем нет.
Что можно выжать из юнити:
1) Простые пиксельные шейдеры, вроде десатурейшн
2) Более сложные шейдеры вроде обводки
3) Оптичиские приломления, шлейфы от взмаха мечем
4) Эффекты смены экрана
5) Частицы
6) Мигание экрана, трясение экрана
7) вейпоинты
8) Интеграция движущихся платформ с редакторо
9) Стартер-Киты из магазины и ассет сторе
°) Физика мягких тел, воды
°) Тени, 2д освещение
°) Градиенты
°) Анимация как во флеше, кисмет
°) Инверсная 2д кинематика
°) Parralax
°) Posteffect
Asset stroe:
НАПОМИНАНИЕ
Перед тем как пытаться скупить весь ассет стор надо держать в голове две вещи: совеместимость и перформанс. С каждым новым добавленным ассетом увеличивается вероятность что он будет конфликтовать с другим. Каждый новый ассет может убить производительность сам или в комбинации с другим.
https://www.assetstore.unity3d.com/en/#!/content/7381 - внезапно физон платформера, с виду вполне приличный
https://www.assetstore.unity3d.com/en/#!/content/4160 - в игре так и так будет небо и если предпологается смена дня и ночи то почему бы и нет?
https://www.assetstore.unity3d.com/en/#!/content/7540 - вобще юнити умеет и сама генерировать эти меши, но тут это явно сделано куда удобней
https://www.assetstore.unity3d.com/en/#!/content/18125 - разрубать противников на части самое оно
https://www.assetstore.unity3d.com/en/#!/content/908 - вроде все это и так есть в юнити, но недаром же его ТАК нахваливают причем даже после 4.3, по крайней мере стоит разобраться есть ли причины использовать его вместо 4.3/4.6/5.0
https://www.assetstore.unity3d.com/en/#!/content/11653 - редактор уворней, то что нужно для метроидвании
https://www.assetstore.unity3d.com/en/#!/content/3826 - альтернатива редактор уроввней
https://www.assetstore.unity3d.com/en/#!/content/30338 - альтернатива редактор уроввней
https://www.assetstore.unity3d.com/en/#!/content/15761 - альтернатива редактор уроввней
https://www.assetstore.unity3d.com/en/#!/content/17722 - хлыст и веревки
https://www.assetstore.unity3d.com/en/#!/content/12324 - кстати если уж есть такой ассет то можно включить в игру небольшой бесконечный коридор, как в демонофобии
https://www.assetstore.unity3d.com/en/#!/content/15688 - есть куча паков в 3д, котрые не выйдет использоват но можно их перепечь
https://www.assetstore.unity3d.com/en/#!/content/12976 - ясное дело в разработке все спрайты будут отдельно а перед релизом их надо упаковать. Если это не может юнити то эта работа точно должна быть сделана.
https://www.assetstore.unity3d.com/en/#!/content/23276 - free альтернатива
https://www.assetstore.unity3d.com/en/#!/content/21560 - один из способов импортировать ПСД, вроде из него обещают еще с ходу генерировать ГУИ но что-то такие утрверждения стоит проверять. Есть и другие ПСД импортеры и бесплатные скрипты-экспортеры. Но в любом случае расставлять в ручную спрайты уже расставленные в фотошопе - пустая повторная работа.
https://www.assetstore.unity3d.com/en/#!/content/11967 - готовая диалоговая система, правда сомневаюсь что она подойдет игре
https://www.assetstore.unity3d.com/en/#!/content/9694 - диалоговая и рпг системы плюс еще непойми что
https://www.assetstore.unity3d.com/en/#!/content/16094 - опять диалоги
https://www.assetstore.unity3d.com/en/#!/content/11672 - опять диалоги
https://www.assetstore.unity3d.com/en/#!/content/14854 - опять диалоги
https://www.assetstore.unity3d.com/en/#!/content/11182 - диалоговая и рпг системы плюс еще непойми что
https://www.assetstore.unity3d.com/en/#!/content/20223 - лол, гуки такие гуки. Предметы инвенторя вполне норм. Мнстров тоже можно будет использовать для бестиария.
https://www.assetstore.unity3d.com/en/#!/content/13327 - физика мягких тел
https://www.assetstore.unity3d.com/en/#!/content/12306 - может быть полезен для всяких цепочек летающих монстров
https://www.assetstore.unity3d.com/en/#!/content/28709 - анимация для гуи
https://www.assetstore.unity3d.com/en/#!/content/26310 - даже инвентарь уже накодили за меня, и вполне нормальный. Если не собираюсь использовать РЕВАЛЮЦИОННЫЙ СВОЙ ОСОБЕННЫЙ НИТАКОЙКАКВСЕ инвентарь то почему бы и нет?
https://www.assetstore.unity3d.com/en/#!/content/7515 - Полосочки прогресса. Не осилил арифметику за 5 класс? Не беда, качни ассет.
https://www.assetstore.unity3d.com/en/#!/content/2413 - неплоаха система ГУИ, подойдет для разноцветного текста в диалогах.
https://www.assetstore.unity3d.com/en/#!/content/23569 - относительно популярный ИИ, бесплатно
https://www.assetstore.unity3d.com/en/#!/content/13372 - симулятор толпы/роя, не факт что подойдет в 2д но как декоративная фича совсем не плохо
https://www.assetstore.unity3d.com/en/#!/content/25933 - тени
https://www.assetstore.unity3d.com/en/#!/content/13196 - витражи
----------------------
https://www.assetstore.unity3d.com/en/#!/content/4010 - вполне симпотичные эффектики, все равнож их делать
https://www.assetstore.unity3d.com/en/#!/content/366 - халявный скин для гуя, выглдядит повлен прилично и уместоно для фентези
https://www.assetstore.unity3d.com/en/#!/content/20019 - можно использовать как базу, пририсовать всем морды львички и готово лол
TEXHO-Демка

Если двиг потянет такую демку то и потянет всю игру:
- Несколько областей, загруженные объектами, должно работать на довольно больших кадрах к примеру зоны как в акварии, может даже чуть больше.
- Подземелье
- Несколько монстров с разной механикой и босс здоровый
- пара квестов
- инвентарь
- диалоги
- меню с настройками
- механика стрельбы из лука, рукопашной и веревки.
##################
ГГ
Размер тайла...хм.......64х64
Размер среднего антропоморфного персонжа.....192х128
idle_anim
tileset
run_anim
crop_anim
attack_dagger_anim
attack_hammer_anim
attack_bow_anim
dagger
hammer
bow
verevka
coin
health pack
enemy_evil_tiger
enemy_evil_bat
enemy_evil_skeleton
enemy_evil_lich
boss_evil_mantis
water
sky
СЦЕНА 1: ЛЯГУШАТНИК
Итак, ты оказываешься на снежке, в тайловом мирке. Ты львица-фуррица.
У тебя ничего нету, никакого шмота. Из одежны бронелифчик и труселя.
Когда ты бежишь по снежку он хрустит под лапами.
Ты бежишь немного направо, но там обрыв, правда если спуститься с обрыва и проявить чудеса ловкости то можно взять вкусняшку. Но по сути это тупик. Тогда ты возвращаешься и бежишь налево, дорожка через мостик мимо леска идет. По дороге надо упрыгать от пары вялых монстеров. Ты прибегаешь в деревеньку. В ней можно поговорить с неписями и посмотреть их домики. А именно:
Котик-купец
Котик-старейшина
Котик-квестодалец
Котики-массвка с репликами создающими "нужную атмосферу"
Ты поговорил со всеми ну или пробежал насквозь. Но в любом случае тебя не пропустит стража дворца через главные ворота на выход, пока ты не возьмешь квест от старешины.
Собственно о чем квест? Короче деревню кашмарит Злой. И надо бы это дело прекратить ну чтоб добро восторжествовало и все такое. А искать-свистать этого самого злого нужно не абы где а в подземелье которое черти где находиться. Ну тебе описали примерно а дальше сам найдешь. Ну и на карте оно подсвечено.
Бежишь ты такой за ворота, а там кабаны пасуться. Ну ты подходишь к одному и появляется надпись ПРЕСС Х ТО ЩИН. Ну точней чтоб сделать удар...лапой. Оружия-то пока и нету. Ну ты и давай кабанов мясить. А кабаны то сами не лыком шиты и могут как носом с клыками дать в ногу, аж хитпоинты у львички отнимаются. Но зато ты загружаться можешь, а они - нет. Так что исходи сей баталии немного предсказуем. А из кабанов пяточки и хвостики выпадают. А ты их себе в инвентарь и ложишь.
И бежишь дальше, а там еще стреляющие птички-западлички, ты их достать не можешь. Разве что с платформы в прыжке. Ну и фиг бы с ними. И тут ты прибегаешь к входу в ту самую данжу, где Злой живет. А у входа сторожит льван-сторожан. Ну его либо победить можно, либо уболтать, либо соблазнить, либо подкупить. Щвабодка. Точней просто так его победить довольно накладно. Нужно оружие надывать в деревеньке. Но это неочевидно. Но если вернуться обратно в деревеньку и поныть что никакого львана на входе в договоре охотницы за головами обозначено не было, тебе покажут место где есть коса. А с косой его завалить много ума не надо.
Так или иначе ты оказываешься в подземелье. Если косы еще нету, то она там найдется недалеко от входа. А в подземелье мрачно, всякая нечисть разгуливает и вобще чет-ни айс. Ну ты по платформам прыг-прыг, косой шмыг-шмыг.Даже рычаги нажимаешь чтоб дверь открыть. А в одном месте ваще пропасть а на дне шипы. И если на них упасть то анимированное гуро будет. Веселуха. И ловушки в нем. Ну подземелье конецно не кишка из Скуйрима, но все же особо запутавать едо не будем так что любой игорк за разумное время должен быть способен оказаться у характерной двери босаа. Пущай она открывается тремя рачагами - комбинаторика во все поля 3*3*3 = 27 комбинаций. Ну можно для особо упоротых бумажку рядом или подсказку какую.
И вот заходим мы к боссу, а из него прям механика сочится и поттерн у него интересный. Но он иногда замирает и тупит, и мы его касой так жах-жах. Ну и помер наш босс. Но не будем мы о нем горевать. Босс был старый, молодым вперед шагать.
И за боссом прям как в скуриме лесенка наверх узинькая.
#############################
Минимальные демки элементов механики.
Вместо того чтоб пилить одну игру с кучей фич, иногда удобно делать маленькие игры. Так будет хорошо понятна сферическая реализация конкретной фичи без лишнего. Но для этого нужна тестовая база. Минимальная:
1) Тайловая карта и базовый физон перемещения
2) Анимации/звуки
3) Игрок
4) ВВОД с клавиатуры
5) Камера простенькая
6) Игровой цикл и скелет игры
7) Предметы и их физика (если нужны)
Все это лучше запихать в папку/длл/пакет и сделать единым для всех элементов. А поверх этого добра уже отлажвать:
1) Боевку
2) лазанье по деревьям/верикалям
3) Хлыст, раскачивание на нем, прыжки с хлыстом по кольцам
####################################
Тестовый босс furryбогомолиха
1) Слепить из кусочков в редакторе монтировки/биндинга самого богомола
2) Слепить его анимации/состояния и переходы. Возможно в анимациях указать также хитболлы урона, а так же сам урон/или ссылку на переменную в балансе.
Допустим есть две айдл зацикленные анимации. В защите и готовый к нападению. И между ними неплохо бы плавный переход. Кстати кое-что можно решить тупо интерполяцией, если есть биндинг одних и тех же точек. Но если хочется сделать переход самому, то нужно определить анимацию из idle_1 в idle_2. Было бы здорово еслиб редактор сам создавал такой переход с дефолтной интерполяцией, а при желании можно добавить туда вещей похитрее, вроде взмахов/покачиваний. Кстати такие редакторы давно есть, можно брать чужой. ТунБум или в Проектах был.
А так же возможность вставлять спрайтовую анимацию, если анимация моушином/трансформом создает неприятный эффект марионеток из сауз парка.
Когда эти анимации готовы, то из них можно лепить логику.
Состояния:
1) Глухая защита - блокирует лезвиями урон
2) Атака лезвиями
3) Уязвим
4) Плевок из рта
5) Прыжок наскок с уколом концами лезвий
6) Волчок
7) Анимация вступления
8) Анимация получения урона
9) Анимация смерти
10) Добивание игрока
11) Прыжок
3) Закодить его от класса Enemy, который умеет грузить формат состояниий, но он их только грузит, а переходы уже кодить в ручную, иначе муторно. Если сделать сосояния на стрингах, то автоматически принимает нужную позу при установке стейта. Движение взад-вперед/прыжки/пульки уже придется делать ручками. Но это нормально. Главное чтоб класс Enemy предоставлял методы вроде moveToPoint(p, callback). Точнее даже действия, которые вожно можно планировать в очаредь eventQueue.
Итак, сначала богомол появляется. Возможно диалог, он смеется над тобой и начинается пве. Суть паттерна проста, этож первый тестовый босс для обкатки двига. Ходит взад-вперед и внезапно через ранд() тайм наскакивает либо режет лезвиями. Надо успеть отпрыгнуть иначе получаетм повреждение. Иногда богомол может прыгнуть отзеркалится и продолжать паттерн с другой стороны. Потом он замерает, набирает энергию и плюет в игрока струей. После атаки он уязвим, а потом блокирует удары. Когда он двигается на тебя то игрок не получает повреждения, а просто сдвигается. Можно сделать ему 40 ножек и когда ты его долго соприкасаешься то он стает на дыбы на задние 20, а передними 20 очень быстро перебирает, и отталкивает тебя с поврежением.
После этого паттерн циклится и он снова бегает взад-вперед и атакует в хтх. Если ты начинаешь делать ему комбо, то он может уйти в глухую защиту.
Если ты проигрываешь то не включается анимация смерти как обычно, а вместо этого затемняется экран как в МК и он добивает тебя взяв двумя фурри-руками за голову и нашинковав лезвиями а потом сожрав голову и полюбив труп и переварив выпустил наружу.
upd:
Поскольку записи немного устарели, стоит привести тут все в порядок и определиться с ближайшим планом действия. Итак в первую очаредь нужен диздок. Эти записи лишь его структура, но пока отсутствуют ключевые части диздока, а именно:
* Полностью определиться с визуальным стилем
* Продумать до конца сюжет, уровни и их объем + согласовать
* Продумать все хитрые нестандартные фичи, не забыв глянуть есть ли они уже где-нибудь
* Поиграть в побольше схожих игр
* Начать активно разибраться с юнити, так как в процессе скорей всего многое вспылвет.
1 АНИМАЦИЯ
ну разбираюсь с анимацией, осиливаю норамльные базовые анимации, ходьбы, удара, прыжка, айдла
затем дружу их с меканимиом и котроллером
2 УРОВЕНЬ
Разбираюсь с редактором уровней, пилю тестовую основу для уровня, паралакс
3 ФИЗОН ПЛАТФОРМЕРА
Допиливаю физон платформера чтоб норм работал тестовый уровень
4 БОЕВКА
Добовляю противников и простенький АИ
5 ЗВУК И МУЗЫКА
6 НЕПЕИСИ и КВЕСОТВАЯ РОЛЕВАЯ СИСТЕМЫ и КАТСЦЕНЫ и ГУЙ
7 УЛУЧШЕНИЯ ШЕЙДЕРЫ ОСВЕЩЕНИЕ ВОДА ВЕРЕВКИ ВИТРАЖИ СМЕНА ДНЯ И НОЧИ
8 УРОВНИ
EDITOR
Процесс создания уровней в редакторе
1) Геометрия. Расставляем тайлы на уровне, указываем материалы и проходимость.
2) Объекты окружения. Расставляем всякие декоративные и функциональные объекты вроде деревьев, мостиков и прочего.
3) Стандартные монстры. Ставим разовых монстров и их генераторы.
4) Персонализация монстров. Даем некотрым монстрам особые предметы. Указываем помощь для ИИ.
5) Неписи и их домики. Редактируем диалоги для каждого.
6) редкатируем квесты.
Редакторы:
1) Спрайты, атласы и анимации
2) Тайлы, кисточки, заливки, поттерны
3) Кривые и вейпоинты
4) Объекты и монстры
5) Монтирование объектов друг к дуржке
6) Квесты
7) Диалоги
class Quest {
String name;
String desc;
List<Item> itemNeeded;
List<Quest> questDoneNeeded;
}
#################
1) расставлять монстров на карте, удобно выбирая их из браузера монстров
2) Подкручивать монстрам всякие свойства, вроде хитпоинтов, атаки
3) Писать монстрам свое поведение, чтоб они вели себя правильно. Может быть довольно сложным. Желательно чтоб не падали в текстуру. Ну например в игре будет враг-рукопашник. Он сначала патрулирует где мне надо, а потом уже бежит к игроку, не падая в ямы и давай его по в ближнем бою мутизить.
4) Делать сам уровень, то ли из тайлов, то ли просто из больших блоков. Причем помимо просто блоков земли, хотелось бы летающие платформы, кнопки открывающие двери в другом конце уровня. Да та чтоб при нажатии камера плавно летела к двери, показывала как она открывается и возвращалась к игроку.
Потом хотелось бы всяких разводным мостов, навестных мостов, ловушек, телепортов, платформ на которых нужно балансировать. Двери, откидные люки, ворота и прочее. И батут.
5) ГУИ, инвентарь, экран прокачки, квестовый журнал, главменю
6) Боссы, у которых по 3 состояния и разные паттерны атаки, уязвимости только в определенный момент
7) Редактор диалогов и НПС. Чтоб прям кинул из браузера нужного НПС, щелкнул по нему и там дерево диалогов. Причем к разным веткам можно ставить условия. К примеру ветку "Квест выполнен" можно выбрать только если в инвентаре уже есть нужный предмет ну или если совершенно нужное действие (установлена глобальная переменная, на худой конец). Ну и плюс чтоб дерево диалогов зависело от твоих характеристик.
8) Предметы и все что с ними связано. Ну расставлять предметы, устанавливать у какого монстра какой предмет или какой шанс что из монстра выподет предмет.
9) Магазины, цены в них. Торговля.
10) Сюжетные полускрипотванные правки. Типа приходит злой, крадет принцессу, оставляет после себя охрану дворца, потом идет диалог и поотом только начинается драка. Чтоб все как в головуде.
11) Вода, чтоб часть уровней была затоплена водой. Лава. Кислота. Лед по которому скользишь.
12) В идеале чтоб еще было можно было лазать по некотрым стенам. Либо можно цепляться за кручки как в старых платформерах. А совсем ахуенно было б, если можно как в червячках стрелять гарпуном с веревкой и таким образом как на тарзанке перемещаться.
Ищется программист для дописания 2d движка и редактора на java
Коротоко:
Пишу 2д движок (java) и редактор для платформеров. Продумано около 80%. Готово грубо говоря 25% кода. Есть довольно четкое виденье того как он устроен. Подсистемы движка разбиты на модули. Список задач тоже есть. Ищу программиста, который бы смог помочь с его дописанием, не бесплатно конечно же.
А именно:
- написание юнит тестов
- реализация новых модулей с нуля либо на основе уже имеющихся
- написание документации
- исправление багов
Если заинтересованы то пишите в личку/мыло.
Желательно указать что примерно умеете и сколько стоят ваши услуги.
(Оплата яндекс деньгами/пей палом. С вебмани все плохо.)
Развернуто:
Собственно сам движок как он есть:
Описание модулей:
Список задач:
Если делать модульно, то есть:
1) Редактор (опционально)
2) Человецкочетаемый формат
3) Парсер и экрпортер этого формата в ООП данные движка
#################################
Итого редакторов:
Спрайтовая анимация
Тайловая карта
Редактор путей
Объектов
Монитажа
Моушен анимации (не первая небоходимость)
Хитбоксов на карте и в анимации
Квестов (может не нужен - слишком сложен, легче в блокноте)
Диалогов (может не нужен - слишком сложен, легче в блокноте)
Если будет боевка с комбо, то не лишним будет редактор комбо. Хотя спорно. Ну или частично редактор хитбокосв в спрайтов это он и есть.
Почти на каждый из них уже есть готовое решение. Стоит их брать или нет - другой вопрос.
Level Design
Метрика
Перед тем как делать уровни нужно определит размеры, так как некотрые из них сильно влияют на саму структуру уровня. Например длина прыжка определяет сколько тайлов нужно сделать пустыми чтоб игрок однозначно не мог перепрыгнуть через препятствие.
Размер тайла
Прыжок, Двойной прыжок и прочие возможности передвижения - влияет на то как сделать непроходимые препятствия или на их грани
Минимально проходимый тайл
Скорость движения игрока - сильно влияет на размер уровня
Общее паттерны построения уровня
Наверняка можно выделить множество тайловых решений и использовать их повторно.
* развилка
* ряд платформ черз которые нужно прыгать
* быстрый спуск - можно быстро спрыгнуть вниз, но вот чтоб забраться обратно уже нужно идти в обохд
* коридор
* Подвал/чердак, комната
* узкий тунель
* винтовая лестница - не возможна в чистом 2д, но можно ее имитировать кучей телепортов
* пропасть для быстрого спуска, а внизу немног воду, если попасть в нее то не умрешь
* Змейка - большую квадратную плоскость разделили на коридоры которые соеденены в разых концах так что нужно пройти по каждому. Можно по вертикали можно по горизонтале.
* Яма с платформами - длинная вертикальное пространство с платформами
Архитектура движка
Движок разбит на несколько уровней. От "А" до "F". Уровень А - самый основной и ничего не знает об остальных уровнях. Каждый последующий же имеет доступ ко всем низлижащим. Но не наоборот.
А - Nativ
B - Core
C - Path
D - Game
E - Editor
F - User
А - Nativ
Тут расположены все зависимые от операционной системы и графической библиотеки функции. Предпологается что для того что бы портировать движок на другую платформу нужно переписать только эту часть. В основом тут вывод спрайтов на экран, работа с файлами, шрифтами, клавиатурой и схожие вещи.
B - Core
Все служебыне классы движка. Различные классы помошники для облегчения математики/геометрии. Работа с 2д векторами. Вывод спрайтовой анимации. Цель пакета сосредоточить в себе весь код, которы часто встречается в самой игре. Чтобы каждый раз не писать заново к примеру код для перевода из одной координатной системы в другую.
C - Path
Движок умеет двигать объекты по различныем траекториям. От простой линии до всяких кривых Безье/Катмулл-Рома. Тут весь код касательно них.
D - Game
Собственно сам движок. АссетМенджер, смена сцен/уровней, игровые меню, проверка столкновений, рендер тайловых карт. Довольно стандартный набор для 2д движка.
E - Editor
Различные редакторы для создания уже игры. Редактор тайловой карты, расстановка объектов, крепление одних объектов к другим, редактирование спрайтовых анимаций и путей.
F - User
Тут могут распологаться классы уже конкретной игры. К примеру какие именно противники или препятсвия, которые сложно сделать из уже имеющихся в движке.
Двигающиеся платформы
В игре существуют тайловые двигающиеся платформы. Они могут быть любой величины от одного тайла до целых двигающихся этажей. Так же на их основе построенны другие элементы механики, такие как лифты, прессы. В редакторе можно
Диалоги
++++++++++++++ Условие +++++++++++++++++++++
Описание:
Предикат, которые проверяет некотрое игровое условие. Может использоватся для любого действия а так же как "активатор" для некотрых объектов.
Типичные условия:
- Наличие в инвентаре предмета/ов.
- Выполнение квеста
- Наличие той или иной характеристики у персонажа, счетчик убийств
- шанс, который может высчитываться исходя из характеристик или просто твердо быть задан в процентах.
- Скриптованное условие. Скрипт который может быть достаточно сложен.
Может использоваться в диалогах, квестах
Формат данных:
<condition type="">
Поддержка редактора:
В браузере объектов геймдизайнер выбирает дверь, размещает ее на уровне. Далее он кликает на ее свойства. В выпадающем меню "активатор:" он меняет пункт с "none" на "item". Появляется еще одно выпадающее меню со списком всех предметов. Выбирается красный ключ и указывается количество 1. Так же есть галочка "использует", которая означает что предмет будет уничтожен после активации.
Пример кода:
Пример:
1) Дверь открывающаяся красным ключем
2
++++++++++++++ Диалог +++++++++++++++++++++
UPD: Вполне жизнеспособный вариант, зашить диалоги прямо в исходиники и писать код любой сложности, используя ООП диалоги. Красивый и удобный интерфейс движка должен помочь.
Описание:
Что бы начать диалог нужно либо подойти к NPC и заговорить с ним, либо диалог начинается сам после выполнения некого условия. Диалог включает в себя аватарки, ветки диалога, возможность/невозможность прервать его, озвучку, ветки доступные только выполнив нектрые условия, повторяемые/неповторяемые ветки. Так же хорошо бы чтоб во время диалога камера бы центорвалась на говорящего. Особенно если он далеко. Эта возмжность должа быть опциональна. Так же круто было бы иметь возможность разметки текста. Цвет/шрифт/жирный/курсив/спойлер. Совсем хорошо было бы иметь возможность вставлять картикнки. Хотя бы значек денег или иконки предметов. Ну и смайлики, если уж ан то пошло. Так же хорошо бы иметь история диалогов и возможность отмотать обратно. Желтательно даже после его завершения. Возможность выбирать ответы в диалоге циферками тоже штука приятная.
Так же у диалога есть стартовая точка. К примеру в диалоге с фародом можно только один раз получить свой кулон и деньги на хранение. После этого диалог будет начинаться сразу с реплики 2 и этот пункт будет больше не доступен. Такого же эффекта можно добиться и через условия.
Перед началом диалога устанавливаются переменные. Такие как %username%, %npcname%, %confirmation%. Обычно только %npcname%, остальные остаются стандартными. Но при желании можно изменить и их. При прогрывании диалога любая строка обрабатывается и эти переменных занимаются их значениями.
Формат довольно "объемный". Довольно большую часть текста в игре составляют монологи. Для них явно не нужны все эти скриптовые фичи. Вероятно стоит написать конвертер из более простого формата в понимаемый движком и писать монологи в более просто формате, к примеру установка аватарок а потом просто сторки текста. Или ввести в формат сокращенную форму записи для монологов.
Обычно из диалога можно выйти в любой момент, нажав на клавишу отмены. Но иногда это неприемлимо. Например персонаж нагрубил кому-то и от последующих реплик зависит начнется ли схватка или нет. Тогда диалог нельзя скипнуть. (Хотя можно вызвать главное меню и выйти из игры без сохранения, при желании.)
Озвучка диалога опциональна и настраивается ползунком рядом с диалогом. Там же кнопка mute.
Возможно для длинных монологов можно ввести кнопку skip, которая будет зажигаться в начале длинных монологов которые можно промотать до следующей развилки.
Формат данных:
Реплика: 1 %npcname% (farad.png, farad_1.wav) О, это опять ты, безымянный. Надеюсь ты помнишь меня? -------- * %usrname% ( nameless_one_happy.png, void.wav): Мы знакомы? ( правда) goto 1.1 * %usrname% ( nameless_one_tricky.png, void.wav): Да, давно не видились. ( ложь) if( player.speech > 7) goto 1.2-success else goto 1.2-failed Реплика: 1.1 %npcname% ( farad_disappointed.png, farad_2.wav): Как вижу нет. Чтож, судьба опять потрепала тебя, вижу новые шрамы, даже ужасней чем были. -------- * %usrname% ( nameless_one_happy.png, void.wav): %confirmation% goto 2 Реплика: 1.2-success %npcname% ( farad_disappointed.png, farad_2_2_success.wav) Гхм...рад что ты не забыл. Как и договаривались вот твой кулон и деньги оставленные на хранение, за вычетом какладных расходов разумеется. -------- * %usrname% ( nameless_one_happy.png, void.wav): %confirmation% player.inventory.add( "кулон") // TODO: OLOLO, МЕСТО В ИНВЕНТАРЕ ТОНЕТ player.gold += 75 + ( int)( 75 * player.luck/100) + rand( 75); // Афигеть, касты, бойлерплейт, что дальше? player.gold -= 33; // Кстати в таких случаях в консоль печатуются текстовые сообщения вроде "Получено золото: 153 монеты" goto 2 Реплика: 1.2-failed %npcname% ( farad_evil_smile.png, farad_2_2_success.wav) Неужели? Больше похоже на то что ты снова потерял память. Ожидаемо. -------- * %usrname% ( nameless_one_happy.png, void.wav): [confirmation] goto 2 Реплика: 2 * %npcname% ( farad.png, farad_2.wav) Чем я могу помочь тебе, %usrname%? -------- * %usrname% ( nameless.png, void.wav): Расскажи про Сигил goto 3 * %usrname% ( nameless.png, void.wav): Расскажи про себя goto 4 if( !player.hasQuest( "feed_farad")) * %usrname% ( nameless_one_happy.png, void.wav): Есть ли тут для меня работа? goto 5
Поддержка редактора:
Графическое представление диалога в виде дерева хотя возможно, не является особо-то удобным. Вероятно удобней просто текстовый файл, наподобии RenPy. Но все же было бы удобно, еслиб можно было выбирать условия/предметы/квесты из списка. В виду сложности условий, которые по сути скриптовый язык
++++++++++++++ Квест +++++++++++++++++++++
++++++++++++++ Предмет +++++++++++++++++++++
++++++++++++++ Характеристики персонажа +++++++++++++++++++++
++++++++++++++ NPC +++++++++++++++++++++
class NPC : Monster { enum aggresive {FRIENDLY, NEUTRAL, ENEMY} Dialog dialog = null; String replicas = {"hello", "bla bla bla", "omg you are naked (omg.wav)"}; // персонажи которые не имеют диалогов могут говорить реплики когда с ними пытаешься заговорить. Если в конце реплики стоит имя звукового файла, то он проигрывается соответственно. Так же можно сделать условыне реплики. К примеру стандартные НПС будту выказывать презрению игроку с низкой репутацией. Либо велеть ему одеться если он раздет. Либо выказывать недовольство что он пъяный. }
Боевая система.

https://www.youtube.com/watch?v=vnXxwtjJ15I
http://aztez.com/
Где использована похожая: блад рейн, ацтек, старые бит ем апы и драчки тоже могут быть полезны как референсы. Основана на комбо, открывающихся с прокачкой/новым оружием. У противноков есть следующие состояния: Активен,
Оглушен, Лежит, Отброшен, Подброшен. Так же для некотрых ударов есть разница со спины или спереди. Если удар отбрасывает то комбо прирывается. Удары можно делать торс, голову или ноги. Так же удары бывают по одному противнику или сразу по многим. В общем оружие делится по Дальность, Урон, Скорость. Так же есть два деша. Броня (на противниках?) блокирует действие ударов. И сначала трескается а затем слетает. Добивание срабатывает автоматичски вместо удара, если удар смертельный. В каждой школе можно быть новичком, экспертом или мастером. Новичку доступны только базовые удары/комбо/добивания, мастеру - все.
КОСА
Дальность++
Урон++
Скорость++
* Боковой удар к экрану (грудь)
* Боковой удар от экрана (грудь)
* Снизу вверх (голова, подбрасывает)
* Сверху вниз (грудь, укладывает)
* Удар древком (голова)
* Подсечка древком (ноги, укладывает)
* Добивание лежачего быстродревком
* Очень дальний удар дежась за конец древка.
* Комбо Н1: 3 горизонтальных удара + 1 древком
* Комбо Н2: 5 ударов древком + 1 горизонтальный
* Комбо Э1: 5 горизонтальных удара + 2 древком
* Комбо Э2: 7 ударов древком + 1 горизонтальный
* Комбо Э3: подбросить + 4 удара сверху вниз + уложить + довивание
* Комбо М1: 7 горизонтальных удара + 4 древком
* Комбо М2: 9 ударов древком + 3 горизонтальный
* Комбо М3: подбросить + 7 удара сверху вниз + уложить + довивание
* Комбо М4: уложить + 7 горизонтальных + довивание
* Добивание 1: укол косой в шею и отрубить голову
* Добивание 2: подбросить косой и разрезать на две части
* Добивание 3: прорубить ноги и добить косой сверху
ДЛИННАЯ УТРЕННЯЯ ЗВЕЗДА
Дальность+++
Урон++
Скорость
ТЯЖОЛОЕ ОРУЖИЕ (молот, булава)
Дальность++
Урон+++
Скорость
РУКОПАШКА (когти, укус, лезвие на задней лапе, хвостоштерн)
Дальность+
Урон+
Скорость+++
КАТАРЫ
Дальность+
Урон++
Скорость++
(ты совсем поехал, кто все это будет программировать/рисовать? ты тут теккен по быстрому встроить решил? короче в итоге будет одно кривое оружие, ацаца)
Метательное оружие в игре скорее вторичный хотя иногда ОЧЕНЬ полезный навык.
+ лук - сильный
+ метательные ножи - сразу много
+ арбалет - очень быстый
+ дротики - пробивают насквозь нескольких
+ шакран - рикошетет
################
Проверка столковений при ударах.
Удар мечем - состоит из замаха, удара, отвода назад.
Просто анимация удара мечем, около 7 кадров. Нужна синхронизация анимации и удара. Допустим удар идет в голову. Возможные варианты:
1) тупо зашить что через 3 секунды один раз коротко проверяется одна зашитая точка. Во все другое время удар просто декоративная анимация
2) Одноразовый удар. Для кажгодо кадра указана точка или отрезок, столкновение с которым приводит к удару. После первого срабатывания удар уже не считается, чтоб не получилось эффект бензопилы.
Длинное оружие, например копье, считать ли столкновение только с кончиком, или с древком тоже? Или длинное лезвие, логичней засчитывать удар при соприкосновении с лезвием, а не одной его точкой.
Возможно для всего этого дела стоит сделать редактор анимации, где поверх кадров можно рисовать хитбокс. Тоесть можно унаследовать класс от анмации, вроде того:
class Hit : Animation { int damage; int damage_type; int restoreTime; Vector2 otbrasyvanie; // Esli nol' to ne otbrasyvaet int oglushenTime; // Skl'ko posle udara protivnik oglushen VirtualButton input; // Spornyj xod, no mojno poprobovat' i tak List<Body> hitBoxes = new ArrayList<Body>(); // столько же сколько и фреймов. Body getHitBox( ) { return hitBoxes[currentFrame]; } public overrid onEnded( ) { currentState = IDLE; } }
Простейшая боевая система
Player {
State {IDLE, GO, JUMP,
IDLE_SWORD, GO_SWORD, JUMP_SWORD,
HIGH_SWORD, LOW_SWORD, KICK
JUMP_SWORD, JUMP_KICK, POWER_SWORD};
State currentState = State.IDLE;
void update( ) {
if( BUTTON_HIT) {
currentState = HIGH_SWORD;
}
}
Combo {
}
ComboManager {
combos;
public ComboManager {
Combo trinity = new Combo( );
trinity.add( new Hit( HIGH_SWORD), 40ms);
trinity.add( new Hit( HIGH_SWORD), 40ms);
trinity.add( new Hit( POWER_SWORD), 40ms); // Etot udar ne dostupen napryamuju cherez upravleni a ego mojno nanesti tolko iz kombo.
combos.add( );
}
update( ) {
}
}
}Редалтпр ударов - встроен в редактор анимаций. По сути просто способ расставить точки/геом примитивы на покадровой спрайтовой анимации.
Можно разделить игровую консоль на вкладки
Консолька с ходом боя, Общая, квестовая, диалоги
Во консольки хода боя будет подробно описана боевая система, чтоб игроку сразу были понятны формулы по каким что происходит. К примеру вот лог битвы:
Refs:
http://wiki.shoryuken.com/Skullgirls/Game_Systems/Combo_Mechanics
https://www.assetstore.unity3d.com/en/#!/content/18125
Физика [old]
Физика в платформере может быть старой, тайловой, либо на боксе2д.
Скорее всего стоит взять бокс2д, хотя есть пара моментов не в его пользу:
* тайловые карты не очень подходят для него, их можно либо конвертить либо вобще от них отказаться (как в брейде/акварии)
* иногда нужна не честная физика, а что-то свое. Тогда придохиться "воевать" с боксом2д, чтоб получить желаемое, пусть и не корректное, поведение.
* нужно сделать нормальнуй подсистему для отрисовки примитивов и конвертирования координат. Впрочем это меньшая из пролем.
Итого, что нужно.
Физика
* Загрузка карт из редактора
* Взаимодействие игрока и мира
* простые монстры
* составные монстры
* механические объекты(лифты, двери, навесные мосты, батуты, вентиляторы и прочее)
Background Editor
Создавать, редактировать и перетаскивать полики
Создавать квадратные полики как на тайлах
Пресеты, браузер
Collision Editor
Создавать для анимации свои полики/точки
Составные объекты
Боевка основаная на физике
Замок похотливой графини
Доборо пожаловать в замок боли и жестоких наслаждений, направляющий львичку. Готическй замок графини расположен на утесе у моря. Весь такой мрачный, горгульи на стенах понатыканы такие. Острые шпили вонзаются в небо, протыкая его чрево своими готическими енд-шпилями. Замок состоит из:
1) Самой главной высокой башни по центру
2) Высокой стены поверх центральной башни
3) Низкой стены вокруг замка со рвом
4) Пристройке с мостом у утеса под морем.
Но самое сердце замка отнюдь не сам замок, а его подземелье. Стоны несчастных круглосуточно раздаются из пыточной. Системой медных трубок стоны из подземелья разносятся из самых его глубин до самой высокой части замка - ложи графини где в пъянсте и разврате она правит железным каблуком своими верноподдаными. В подземелье помимо пыточной есть арена гладиаторских боев и целый цех по разведению особых игольчатых львиц. У них ампутированы ноги и вместо них с детства вставленны длиннейшие обоюдоострые клинки. Так что они передвигаются на них как на собственных лапах. Именно из них набирается верная охрана замка. Львиные копейщики и плетейщики наводят ужас на всех осмелившися противостоять воле графини. Из них же вербуются костяк регулярных войск.
Интересные места:
*) Церковь боли - здесь проводит свои кровавые львичкаприношения графине. Везде такие свечи понатыканы, ветражи со сценами пыток, готика намазана на стены и такие в балахонах мрачные с косами. И шипы понатыканы. Церковь расположена как раз над загоном с львицами, куда кидают отработанный материал. Тут служат кровавую мессу. Можно приность жертвы боли для графини как собой так и другими. За них дают всяких баффы. И лики святых с кровью из глаз терновых венцах. Можно наказать графиню за ее злодеяния у казнить ее в ее же церкве. Справедливость она такая. Пущай полетает.
*) Нарваловы конюшни. В фортовой башне расположеной на утесе находятся взлетная площадка для нарвалов. Иногда на нарвала насаживают провинившуюся прислугу. Ну или просто скидывают со взлетной площадке вниз что считается более легки наказанием.
*) Пыточная. Огромный пыточный зал, с вытягивалками, крестами. Рядом камеры. Обслуживается специально обученными палачихами под руководством главной палачихи. Колами, мехами для наколения железа и зубным креслом, которое к слову иногда используют и просто для лечения клычков.
*) Ложа графини. Ну она такая сидит на троне из живых львичек с живой подставкой для ног и такая всех пинает и развратничает. А прислуга ее боиться так как она толька рада ежели кто тарелку побъет или еще чего учудит.
Инитересные личности:
Зашуганный запинаный шут
23ий Фаворит
Верный-приверный телохранитель по кличке водяной лис
Разбоньячья шайка называемая личная гвардия графини
Недовольный ревалюционер
Толстый и ленивый начальник тюрьмы
Поехавшая королева пыточной, истязаний мастерица
Присвятая великомучительница, адептка веры
Добавлие аппендиксом:
В библиотеке есть книга "Список наказаний дисциплинарного колоквиума".
Вступление.
Все верноподданые собственность графини. Никто не смеет портить ее против воли графини. Покажите верность и будете вознагражены. Кто же покажет своекорыстие и неверность заплатит болью.
105) Кто поднимит лапу свою на другово львана и убъет львана, который был священной собственностью графине да будет брошен в пыточную на 1 день и потом принесен в жертву в угоду графине нашей.
158) Кто посмеет тайно украсть незначительное имущество у вернопреданных графине, будет на 3 часа кинут в пыточную и выпущен из нее живым.
158-2) То же, но про значительное имущество верноподлапных либо про святое и неприкосвновенное имущество графини нашей - на 1 сутки с выпуском. Целость передних лап зависит от тяжести провинности львана на усмотрение ревнителей справедливости графини.
158-3) Кто свою грязную лапу на значительное имущество графини поднимит - 3 суток в пыточных палатах без выпуска живым.
131) Ежели льван осмелиться попортить львицу супротив воли ее самой либо воли ее собственника да будет предан 1 суткам в пыточной. Ежели львичка еще не познала радости львана до этого, то сохранность причинным мест львичкапреступника остается на усмотрение попорченной.
161) Удумают льван или льваны силою верноподданых имущества лишать, будут кинуты на арену на потеху верноподлапным. Ежели не велик проступок их то биться будут пока толпа не присытиться. Ежели же велик проступок будет то своим мясом выращенных львиц развлекут.
282) Угораздит ежели кого хулу на графиню и ее порядок справеливый языком и словом возводить, будет сутки в пыточной маяться а допосле на арене верноподлапными любищими поддаными осмеян и обхахотан да от заблужений излечен. Будет же хула особо гадкой и подлой и недостойной и особо графинюшку огорчающей, целостность языка либо его кончика на усмотрение рассержанных верноподлапных остается.
001) Кто посмеет против воли графини ссылаясь на вышесвященноописанные законы слово молвить - тот за подлость и злую и чрезмерную хитрость наказан будет.
Refs:
По архитектуре:
http://www.blogcdn.com/www.joystiq.com/media/2010/04/castlevanialogo43010.jpg
http://www.deviantart.com/art/A-Castle-14047764
http://www.deviantart.com/art/Gothic-Castle-Reworked-167480954
http://www.deviantart.com/art/Dublin-Castle-I-97323216
http://www.baviere-quebec.org/imperia/md/quebec/tourismus/neuschw… ein_bild.jpeg
http://prettiestteacup.com/media/2011/05/castle.jpg
http://cdn.bloody-disgusting.com/wp-content/uploads/2012/09/castl… ania-wall.jpg
http://everydaygamers.com/wp-content/uploads/2009/08/order-ecclesia-boss.jpg
http://upload.wikimedia.org/wikipedia/en/5/57/CastlevaniaBloodlines1.png
http://en.wikipedia.org/wiki/Gothic_architecture
http://en.wikipedia.org/wiki/Corvin_Castle
AvrDragon
> за вычетом [b]к[/b]акладных расходов разумеется.
План разработки
Физон + базовые анимации
* Flip + IK [NO]
* Застревание [NO]
* Карта полностью [NO]
* Проходжение сквозь стены + вытакливание [NO]
* Двери [NO]
* Веревки и нав. мосты [NO]
* Домики и захождение в них [NO]
* Лестницы [NO]
* Ловушки [NO]
* Спускаться с горочки [NO]
Боевка
Базовые возможности
* Смена уровней [NO]
* Миникарта + глобальная карта [NO]
* Главное меню [NO]
* Основные настройки [NO]
* Save / Load [NO]
* Смена управления [NO]
* Планшет [NO]
* ПЕРЕУСТАНОВИТЬ ЩИНДОВС [NO]
* ГИТ + БЕКАП [NO]
Диалоги и квесты
* Катсцены [NO]
* NPC [NO]
* Диалоги [NO]
* Интерфейсы [NO]
* Инвентарь [NO]
* Прокачка и ролевая система [NO]
* Очки и статистика [NO]
Фаланга
* тактическая карта узлов [NO]
* экран битвы [NO]
Advanced
* Шейдеры [NO]
* Смена дня и ночи [NO]
* Генератор подземелий [NO]
* Screen transition effects [NO]
Ну вот допустим сделал я замок графини. Дальше то что? Пока он всего-лишь набросок в мирке. Его малая часть. Должны быть и другие полюса в игре. Замок графини построен на тематики средневековых пыток, готики, крови. Но ведь делать всю игру в таких тонах быстро надоест игроку. Должно быть разнообразие. Точнее тут такой момент. Нужен баланс. Две крайности - вся игра сделана в одном готическом стиле, в одинаковой атмосфера. Либо каждая локация имеет свою архитектуру (египет, китай) и совершенно свою атмосферу. Первый подход уныл, второй вырвиглазен как франкенштейн. Нужен баланс, но его можно все же сдвинуть между в сторону первого и второго. Грубо говоря может быть игра про горические замки, но каждая локация немного декорирована под разные стили готики, возможно с налетом востока кое-где. Но во всех замках сидят лорды. А может быть что один сидит в таджмахале, другой в пирамиде, третий в китайском замке. Но все они стилизованы под готику. И все они носят разные титулы. И то и то может быть довольно интересно. Но все же лучше внести ясность в этот вопрос сразу.
Итак вопрос: Каков главный стиль/сеттинг игры?
Ответ: затрудняюсь дать его с ходу. Возмомжно стоит все же сделать хоть часть а потом посмотреть. Но в любом случае это будет средневековье. Не очень мрачное. Точнее мрачное по сути, но в более-менее мультяшной рисовке. По объему мирок будет ...тоже сложно с ходу сказать. Наверное там будут типичные климатическеи пояса и стилистики. Грубо говоря: Готика, Китай/Япония, Египет, Древнегреция и пару проходных локаций. Чтоб конкретней ответить нужно знать какие ресурсы есть в распоряжении. А то можно конечно напланировать 100 городов в разных стилях, но кто их делатъ будет - непонятно.
-------------------------------
Совсем другая тема, Сколько человекочасов уйдет на него? На то чтоб сделать норм проработаный скетч - около 20 часов. На то чтоб нарисовать всю эту гору контента...надо думать. Грубо говоря:
*) 3-6 типов врагов, по 30 часов на врага выходит около 200 часов
*) 7-8 нпц - по 20 часов на непись выходит около 200 часов
*) Тайлест для каменной и земляной основы замка - около 50 часов
*) внутренее убранстов вроде витражей, росписей, столов, стульев, пыточных принодлежностей, дверей - около 200 часов
*) внешнее убрансто: башни, гаргульи, кустики, катапульты, взлетные площадки - около 100 чаосв
Итого: около 1000 часов на замок, это 100 дней если так считать. Что-то какая-то слишком большая сумма получилась. Можно пойти по другому: на замок есть месяц времени. Тоесть 30 * 8 = 240 часов. просто поделить это время на 5 - примерно 50 часов на каждый аспект: враги, неписи, тайлсет, интерьер с предметами, экстерьер. Реально ли за это время сделать 3-6 типов врагов? Что-то сомневаюсь. В конце концев врагу нужно около 3 часов на примерный скетч. около 12 часов на скетчи анимаций.
Другими словами делать метроидванию в одиночку почти на грани разумного. С другой стороны можно сократить все время после скетчей до нуля. Тоесть сделать из скетчей законченный рисунок задача уже фрилансеров. А что, впринципе тогда месяца на замок должно хватить. Права в предпосылках допущена ошибка. 30 * 8 = 240 часов. Но ведь у меня нет 30 свободных дней. Значит даже если я все свободное время посвещу метроидвании, то это будет 4 + 4 + 4 + 4 + 4 + 16 + 16 = 52 часа в неделю. С учетом возможных срывов это скорей 40 часов в неделю, либо 168 часов в месяц. Хм...впринципе такими темпами можно за год сделать около 10 скетчевых локаций. Но для этого нужен готовый двиг и редактор.
Вобщем по поводу времени общие выводы вполне очевидны - с ним все довольно плохо. Чтоб убыстрить время можно давать фрилансерам задание паралельно с разработкой. Это немного рисковано, но все же сэкономит дополнительное время. Но этот подсчет в первую очаредь сделан с целью понимания ресурсов при левел дизайне. А то так не понятно на что планировать уровни, можно ли в игре сделать 20 городо замков. По ходу нет. Около 7 это почти придел реального по началу. Серъезную метроидванию одиночке уже тупо не потянуть, если он конечно не хочет потратить на не лет 7-10.
Итого меторидвания это около 1000 часов работы только геймдизайнера-концептера и около 10.000 часов работы художников. И это все при наличии отличного движка и редактора, Причем заточенных именно под эту метроидванию, редакторами диалого, квестов, лута катсцен и прочего.
Жопа какая-то. Очень тупо посчиталось. Да ты просто диванный, краски сгущаешь. На самом деле это замок просто около недели работы, да за пару дней сделаешь. Часы какие-то насчитал, поехавший. Сам с собой уже разговаривает. Кароч сейчас по другому посчитаю.
На одну картинку 15000х15000 нужно около 8 часов. Итого вся это метроидвания рисуется за пару недель. Так и есть. Потом пихаем картинки в юньку и почти готово. А перевести эти картинки в игру уже дело нехитрое. Вот это я ПОНИмаю план. Так и сделаю. Так я ответил на вопрос ради которого и затевался этот подсчет времени? А что за ворпос-то.
Вопрос: На какие примерно объемы уровней расчитывать гейм/левел-дизайнеру?
Ответ: около 7-10 локаций. Больше не впихается. Но ведь так и было изначально прикунуто. Ну вот и хорошо, расчеты подтвердили первую прикидку. 7 локаций короче. Это не так уж и мало.
--------------------------------------
Вернемся к закме графини. Ну готов он. Дальше то что? дальше другие. И хорошоб чтоб они были свзязаны между собой. Что это вобще за страна? Средневековое княжество. С феодальной разрухой и номинальным слабым королем. Да, думаю такой сеттинг может быть довольно веселым. К тому же прибавим сюда революционеров-сопротивленцев для полной разрухи. Вобщем что-то вроде французскй революции. Когда вчера как бы еще средневековье, а с другой стороны уже щвабодка, равенство и братство заливают кровью брусчатку. Тога примерное положение сил:
Графиня - вся такая в трансельвании, властная. Но все же заботиться о своем графстве.
Толстый львицавладелец - весь такой в золоте, на носилках. Хотя альтернативно можно сделать его навроде фараона или ксеркса. Пусть живет в местном египте, строет каналы и пирамиды на костях. И хочет завоевать кочевниками просвещенный союз государств. Вобщем восток, пустыня, челмы, рабы. Базар и рынок рабов присутствуют.
Улий - местный свободный город навроде Новгорода 1000 лет назад. С купечеством во главе. Тоже средневековье, но далеко не такое мрачное как у графини, а скорей торгашеское, с лавками, портами, ландскнехтами и наемниками. Отличается архитектурой. Бордель, лавки и университет присутствуют. Психушка тоже.
Дальневосточная локация - какой-никакой союзник египта. Великий дракон тоже не против проглатить глупых белых обезъян. Бедных крестьяне пашут целый день на полях. Можно их сделать рептилоидами кстати. Ну всмысле весьма няшными, вроде аргониан.
К тому же по всей стране действую ячейки ревалюционеров, во всех локациях.
Основные подсистемы движка
Все низкоуровневые подсистемы берет на себя юнити2д.
Базоваая система игровых объектов
Посмотреть нужна ли она вобще. Обычно это цепочка классов вроде GameObject->Enemy->MyEnemy1.
Менеджер ресурсов
Чтоб позволял удобно выгружать/загружать уровни. Проверить есть ли уже в юнити и как обычно в юнити решается этото момент. Через сцены?
Анимация
Хотя в юнити2д довольно приличная система спрайтовой анимации, нужно как минимум проверить пару моментов. Скорей всего ее придется намного изменить под нужды конкретной игры.
* система анимации будет тесно связана с боевой системой. Один из способов - каждому кадру анимации присовена в редакторе геометрия (или просто точки) которые считаются ударом.
* Удобство загрузки - ГГ и всякие боссы имеют довольно много анимаций, так что хорошо бы чтоб анимации можно было держать по папкам где каждый кадр в своем файле. Но в итоге круто было бы все это запечь в атлассы для экономии памяти.
Физика платформера
Физдвижок юнити должен быть настроен на платформер. Должны быть сделаны базовые заготовки для врагов, предметов окружения, ловушек, дверей чтоб их потом можно было просто таскать мышком.
http://habrahabr.ru/post/211472/
Боевая система
Тут должно быть разумное поведение физики при ударах, удбоный способ проверять комбо. Урон кстати не фиксированный а вычисляется по формулам. Так что это нужно делать удобно.
Диалоговая система
Система прокачки
Отображает ролевую систему на устройстов игры.
Система квестов
Квестовая книга, удобный браузинг квестов. Подсказки и пометки на миникарте.
Инвентарь и предметы
Также сюда относится подсистема торговли
ИИ
Удобный способ расставлять вейпоинты для монстров, ограничители для двигающихся платформ
Скриптованные сцены
Тоже проверить нужно ли пилить с нуля или в юньке уже есть
Спецэффекты 2д
Посмотреть какие 2д эффекты, вроде шейдеров воды, трясения экрана
Камера
Удобный класс камеры, который умеет следовать за игроком, перемещаться по уровню при диалогах или сюжетных сценах или просто показывать части уровня
Проверить границы юнити:
Какой максимальный размер уровня? Сколько монстров можно добавить на уровень сохраняя ФПС? Сколько генераторов частиц оно потянет?
Редакторы:
(но конечно тогда уже уровень состоит не из тайлов)
http://www.gamedev.ru/pages/steam_and_metal/forum/?id=172623&page=2#m17
Название эликсиров:
Львичкины слезки
Когтедер
Кошкин ром
Настойка Кишки наружу
Потроховорот
Тигриный зуд
Черный под хвостом
Жидкий лев
львидол
Львобой
Львячья радость
Лилигрин
Клычковая кровь
Структура диалоговой подистемы.
Чтобы релизовать диалоги в игре будут использванны следующие классы:
DialogItem.cs - Одна реплика с вариантами ответов на нее, самый маленький элемент диалога.
Dilog.cs - Один диалог с развилками, состоящий из дерева реплик. Может присваиваться персонажу.
DialogWindow.cs - отвечает за вывод и отрисовку диалога, а так же за ввод с мышки/клавы.
DialogParser.cs - создает из текстогого файла дерево диалогов
DialogMaster.cs - загружает диалоги с HDD
DialogEditor.cs - файлы с диалогами можно редактировать в ручную, но при желании можно запилить редактор графов.
DialogCondition.cs - Не уверен что для условия диалога обязательно нужен класс, но почему бы и нет. Всякие условия, вроде того что некторые реплики доступны только персонажу с высокой силой/интеллектом либо при наличии золота/квестового предмета.
DialogLog.cs - сюда записывается вся история дилогов чтоб игрок мог пересмотреть диалог еще разок. Как в Planescape Torment например.
DialogEasyFormatConverter.cs - переводит монологи в упрощенном формате в обычный формат, чтоб их потом мог прочитать DialogParser.cs
То что в итоге должна уметь делать диалоговая подситема:
* Что бы начать диалог нужно либо подойти к NPC и заговорить с ним либо диалог начинается сам после выполнения некого условия.
* Поддерживать разметку текста через встроенную в юнити https://docs.unity3d.com/Documentation/Manual/StyledText.html + к этому хорошобы уметь вставлять иконки игровых денег/смайлики. Вот какой-то класс GUI в юнити, стоит посмотреть на него поближе.
http://answers.unity3d.com/questions/360885/color-tags-in-rich-text-ongui.html
* Аватарки
* Развилки диалога
* Обычно из диалога можно выйти в любой момент, нажав на клавишу отмены. Но иногда это неприемлимо. Например персонаж нагрубил кому-то и от последующих реплик зависит начнется ли схватка или нет. Тогда диалог нельзя скипнуть. (Хотя можно вызвать главное меню и выйти из игры без сохранения, при желании.)
* Озвучка диалога опциональна и настраивается ползунком рядом с диалогом. Там же кнопка mute. И полоска громкости речи.
* ветки доступные только выполнив нектрые условия
* повторяемые/неповторяемые ветки
* Чтоб во время диалога камера бы центорвалась на говорящего. Особенно если он далеко. Эта возмжность должа быть опциональна.
* История диалогов и возможность отмотать обратно. Желтательно даже после его завершения. Возможность выбирать ответы в диалоге циферками тоже штука приятная.
* Так же у диалога есть стартовая точка. К примеру в диалоге с фародом можно только один раз получить свой кулон и деньги на хранение. После этого диалог будет начинаться сразу с реплики 2 и этот пункт будет больше не доступен. Такого же эффекта можно добиться и через условия.
* Перед началом диалога устанавливаются переменные. Такие как %username%, %npcname%, %confirmation%. Обычно только %npcname%, остальные остаются стандартными. Но при желании можно изменить и их. При прогрывании диалога любая строка обрабатывается и эти переменных занимаются их значениями.
* Формат довольно "объемный". Довольно большую часть текста в игре составляют монологи. Для них явно не нужны все эти скриптовые фичи. Вероятно стоит написать конвертер из более простого формата в понимаемый движком и писать монологи в более просто формате, к примеру установка аватарок а потом просто сторки текста. Или ввести в формат сокращенную форму записи для монологов.
* Возможно для длинных монологов можно ввести кнопку skip, которая будет зажигаться в начале длинных монологов которые можно промотать до следующей развилки.

Как сделано в других играх:

Тут видно что текст не влез в окошко диалога и он проскриллиться вниз только когда игрок нажмет кнопку Continue. Вполне разумно.

А это история переписки, каждая реплика с аватаркой. Довольно наглядно. Хотя возможно имя стоило бы писать не справа от аватарки а под ней, что сэкономило бы место.

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

А вот тут видно что у каждого перонажа свой цвет имени, что позваляет легче различать текст. Или даже свой цвет текста или свой шрифт. Можно и так сделать. Еще в диалоге пишутся всякие служебыне сообещения/извещения вроде того что игрок получил опыта, предмет и.т.д.

А вот игроку что-то говорят и у него уже нет вариантов ответа и ему предлагается нажать END DIALOG когда он прочтет текст. Еще видно что тот кто говорит подсвечивается кружком. Это полезно когда на экране 5-8 NPC одовременно чтоб знать кто именно говорит.

Крутая заглавная буква. Еще одна причина почему хорошо иметь фичу чтоб встраивать картинки в текст. И кстати текст ее обтекает как в HTML. Глянуть поддерживает юнити тэг <img src> и тэги для обтекания.

Интересная фича - пред вариантами ответа в скобочках стоит (Правда/Неправда) что подсказывает игроку как его ответы отразяться на алигменте персонажа. Точно так же в ТЕС есть варианты (угроза/лесть/убеждения) что показывает что успех зависит от силы/харзимы/риторики и обпределяеться случайно. К примеру если риторика прокачена на 50%, а отношение персонажа к игорку 70/100 то успех К ПРИМЕРУ можно посчитать как среднее арифметическое 50+70/2 = 60%.
Кстати диалоговая подсистема довольно тесно связана с ролевой, возможно этот момент взаимодействия стоит лучше продумать. Ведь на диалог может влиять еще репутация игрока, личное отношение npc к игроку, предыдущие попытки кражи предмета, квесты, и вобше любые параметры. Впринципе это как бы уже не дело самой диалоговой подсистемы, а просто нужно правильно расставлять условия в редакторе/блокноте. Но возможно пара самых часто используемых в игре условий стоит зашить в саму диалоговую подсистему, чтоб облегчить создание типичных ветвлений.
Кстати прямо во время диалога показывается количество денег у игрока, что может быть полезно если в игре постоянно в диалогах происходят операции с деньгами, вроде подкупа.

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

Как и в планискейпе показывается количество денег а так же есть кнопка для бартера.

А вот тут даже показано Speech 35 что бы игрок примерно оценил шансы. Собственно нету особых причин держать формулы игровой механики в секрете от игрока, так что можно сразу раскрывать ему шанс в % на удачу. Хотя может 35 и значит процент, если формула настолько проста.
А вот тут когда игроку задают вопрос рисуется сам игрок в раздумьях.

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

А вот тут другой подход. И оно даже анимированно. Круто конечно, но кто это рисовать то все будет крупным планом?
---------------------------
Кстати в качестве редактора возможно стоит украсть вот эту чтуку: http://store.steampowered.com/app/230780/?snr=1_7_7_151_150_1
Код из прототипа:
http://sourceforge.net/p/mupok/code/HEAD/tree/src/libstg/d_game/Dialog.java
http://sourceforge.net/p/mupok/code/HEAD/tree/src/libstg/d_game/D… ogMaster.java
http://sourceforge.net/p/mupok/code/HEAD/tree/src/libstg/d_game/D… ogWindow.java
Тема в архиве.