Предпосылки и философские размышления
Как и у многих моих коллег по программистскому цеху, особенно у тех, кто рано начал пробовать свои силы в области компьютерных технологий, у меня где-то на задворках сознания хранится набор самых тёплых и романтических воспоминаний о первых опытах. Когда-то, в далёком 1987 году, отец впервые взял меня в выходной к себе на работу, где торжественно усадил на стул перед гудящей «Искрой-1030-11». Примерно тогда я твёрдо понял, чем хочу заниматься в своей дальнейшей жизни.
В наши дни, запустив DOSBox, можно без особого труда окунуться в аромат беззаботного детства, вспомнить то прекрасное ощущение детского всемогущества, головокружительного интереса, волнующих новых знаний и умений. Сейчас мне 34, под моим началом работает больше сотни человек, я по-прежнему пишу достаточно много кода — особенно там, где требуется применение сложных алгоритмов для интеллектуальной обработки данных. Позади — в арсенале студенческих достижений — финал ACM'овской олимпиады, победы моего шахматного движка в ex-USSR-чемпионатах, один из алгоритмов на поисковых деревьях, названный моим именем, сотни тысяч строк моего кода в проде, но ничто не приносит такой радости и не вдохновляет так, как возврат в беззаботный мир детства.
Лет 10 назад мне в руки попал эмулятор БК-0010-01 — моего первого домашнего компьютера. Тогда стоило огромного труда не начать программировать под него. Однако в этот раз очередная волна ностальгии всё-таки сподвигла меня на весьма бессмысленный шаг, оправданием которому может стать разве что то чувство эмоционального подъёма, которое я испытал, завершив своё безумное предприятие — изготовление римейка/сиквела King's Bounty — древнего прародителя всех игр линейки Heroes of Might & Magic.
В общем-то, это секрет Полишинеля, что время программистов-одиночек прошло. Герои-одиночки остались в 90-х, когда в условиях отсутствия Интернета и большого объёма специализированной литературы, а также в атмосфере нехватки вычислительных ресурсов, очередной левша ловко выкраивал в короткие сроки 7 шапок из шкуры неубитого медведя. Сегодня труд программистов в большинстве случаев коллективный, и успех разработчика в куда большей мере зависит не от алгоритмических знаний и технологических умений, а от способности быстро найти необходимую информацию и коммуникационных скиллов (в т.ч. способности писать хорошо читаемый код соответствующий заданным требованиям).
В целом ситуация, когда один человек сегодня пишет игру от начала до конца (включая разработку сюжета, логики игровых взаимодействий, создание графики, подбор музыки, написание игровых диалогов, непосредственный кодинг) — для современной индустрии совершенно ненормальная. Сапоги должен тачать сапожник, а пироги печь — пирожник, в противном случае производительность труда будет не самой высокой. Но на другой чаше весов лежит высокий уровень мотивации, который в ряде случаев позволяет с лихвой компенсировать возникающие издержки. Развитие мобильных платформ и Web сделало возможным своеобразный флэшбек — в точном соответствие с законом отрицания отрицания — многие современные успешные игровые стартапы созданы либо одиночками, либо микрокомандами, которые демонстрируют удивительные успехи благодаря неотчуждённому труду.
Конечно, в моём случае проект чисто развлекательный — нет никаких идей по поводу монетизации, да и в случае подобного «подпольного» римейка она вообще вряд ли возможна. Задача сильно упрощалась тем, что львиная доля игровой графики и логики была позаимствована из оригинальной игры. В этом плане очень помог брошенный в настоящее время проект OpenKB (http://sourceforge.net/projects/openkb/), автор которого проделал большую работу по реконструкции оригинальной игровой логики и анализу форматов данных оригинальной игры. Мануалы, написанные автором этого проекта, а также несколько других любительских мануалов, найденных в сети, позволили серьёзно сэкономить силы.
Технологии
С самого начала была сделана ставка на кроссплатформенность, а поскольку в отношении Javascript и HTML5 таковая титаническими усилиями разработчиков к настоящему моменту более-менее достигнута, особой альтернативы при выборе языка разработки, в общем-то, не было.
Конечно, есть ряд языков транслируемых в JS и обладающих некоторыми преимуществами, но желания создавать лишний слой в небольшом проекте не возникло. Кроме того, в силу распространённости JS всегда можно рассчитывать на то, что любую задачу, которую потребуется решить в ходе работы над проектом, кто-то уже решил до тебя, великодушно предоставив фрагменты кода на всеобщее обозрение.
В силу сравнительной простоты игрового интерфейса оригинальной игры было принято решение отказаться от использования каких-либо тяжеловесных игровых фреймворков. Из библиотек использовалась только jQuery (в принципе, можно было бы обойтись и без неё — фактически понадобились только $.inArray, $.trim и работа с триггерами событий браузера; честно говоря, пугали возможные проблемы кроссбраузерности как раз в отношении событий, поэтому jQuery была всё-таки оставлена в проекте).
Графика и музыка реализовывались при помощи стандартных механизмов HTML5 (Canvas, Audio). Стандартных методов Canvas более чем достаточно для реализации спрайтовой графики с минимальными трудозатратами. Audio же предоставляет всё необходимое для снабжения игры звуковыми эффектами. Все требуемые сниппеты легко обнаруживаются на stackoverflow при помощи простых запросов, так что некоторого опыта практического программирования в современной экосистеме разработки вполне хватит для того, чтобы разобраться во всех технологических нюансах за один-два вечера.
Ход работы
Работа велась урывками в течение почти полутора месяцев. С самого начала я дал себе полушутливый зарок писать по 500 строк кода в день и первое время этот показатель даже удалось соблюдать. Конечно, когда дело дошло до готовности первой условно-функциональной версии, темпы заметно снизились, т.к. заметная часть времени стала уходить на исправление ошибок и мелкий рефакторинг уже написанного кода. Некоторые решения, принятые на скорую руку в первую неделю работы, не оправдали себя — в частности, по итогам пришлось написать мини-библиотеку для работы с диалогами, окнами и другими компонентами GUI, хотя сначала казалось, что можно обойтись в этом плане совсем малой кровью.
Отдельного внимания заслуживает работа над логикой сохранения в игре. Здесь я поддался ещё одной своей слабости — любви к алгоритмам сжатия данных, поэтому сэйвы пакуются при помощи встроенного алгоритма сжатия (словарный + LZW с динамическим битовым выравниванием). Прибегая к ретроспективной рационализации, оправдаю это желанием экономить место на мобильных устройствах (распакованный сэйв всё-таки тянет больше чем на сотню килобайт), а также стремлением хотя бы немного разнообразить жизнь читеров.
Графику из оригинальной игры я уже однажды добывал в конце 90-х, когда написал на C версию KB, включающую только бои (с расширенным набором магии и другими развлечениями). Правда старый код погиб вместе с умершим винтом ещё в 1999-м, но я примерно помнил что и где брать. Дополнения были дорисованы при помощи Pixlr и найденных в сети картинок, взятых за основу. Одну из картинок помогла обтравить моя невеста, так что строго говоря над игрой работал не только я.
Музыка — подборка подходящей по смыслу бесплатной классики из сети, звуковые эффекты — записи из оригинальной игры DOSBox -> Audacity, либо немного обработанные бесплатные сэмплы из http://freesound.org.
От половины до 3/4 времени занял кодинг — в полученном проекте немногим менее 12 000 строк (не считая jQuery) (380 килобайт скрипта). Остальное — написание игровых текстов (их, в отличие от оригинальной игры, заметно больше, кроме того игра двуязычная), а также тестирование.
Результат
Механика игры в основных чертах повторяет механику оригинальной игры — формулы атаки, магии и т.д. полностью соответствуют оригиналу. Также из оригинальной игры взяты графика (дополнена небольшим количеством новых объектов) и карта первого материка (с минимальными изменениями). Сюжет заметно расширен, материков не 4, а 5, при этом вторая карта имеет больший, чем в оригинальной игре, размер. Добавлены разного рода шуточки, секреты, новые повороты сюжета. Тестировалась всё хозяйство на Chrome, FF, Edge, IE, мобильной версии IE.
Буду благодарен за нахождение багов, советы по развитию проекта и вообще любые отзывы.
Адрес страницы с игрой: http://genes1s.net/kb/game.html.
Комментарии (111)
Mear
14.09.2015 13:33+1Спасибо за проделанную работу.
Поиграл чуть-чуть, при управлении мышкой раздражает немного постоянное выделение. Установите user-select: none пожалуйста.
BelBES
14.09.2015 13:44А почему использовали оригинальную графику и правила игры? King's Bounty 2 (та, что неофициальная) вроде бы в этом плане более интересной получилась…
oulenspiegel
14.09.2015 13:48+3Ну тут на вкус и цвет…
Мне вторая как раз не особо нравилась.PapaBubaDiop
14.09.2015 14:15+2Умопомрачительно! Я эту игру на айпад портировал, но не доделал. Теперь доделаю, украду все звуки и недостающие картинки. Шучу.
Из прошлого — основной задачей в игре ставил условие минимальных потерь. До сих пор помню личный рекорд, 2 потери. Драконы, они такие… В выходные буду играть и возможно доделаю iOS поделку.oulenspiegel
14.09.2015 14:18+1В принципе, можно попробовать на основе моей версии собрать обёртку для WebView, как это нынче модно. Например, при помощи PhoneGap.
PapaBubaDiop
14.09.2015 18:56+1Нет, только хардкор. Управление максимально удобное с кастомной клавиатурой из 26 клавиш. Нажатие стрелок — заменяется свайпом. Анимация родная iOS-овская. Можно совместно запилить.
Если Apple пропустит (трюки применять умею), то старперы будут счастливы, а с рекламы 2-10 баксов в день наши. Режим пейзаж под iPad 320 vs 200. Или родной на 240? Я забыл.oulenspiegel
14.09.2015 19:48В текущей версии можно управлять кликами/тапом, так что тут тоже unity не нужен)
Какой смысл в этом проекте в unity?) Вы уверены, что это не overkill?PapaBubaDiop
14.09.2015 19:57+1Господи, почему Юнити? Не пугай меня. Нативный iOS-овский С. И набор UmageView и ничего более. Клики, тапы — это синтетика, на мой взгляд.
oulenspiegel
14.09.2015 20:01+1Зачем? Если уже есть версия на js. Какой смысл переписывать 400кб кода заново? Берётся моя версия, обёртывается в PhoneGap, trigger.io или любой фрейворк, который делает WebView-обёртку. Всё, получается нативное приложение для для нескольких мобильных платформ.
PapaBubaDiop
14.09.2015 20:14Не буду спорить, возможно и так. И все таки вопрос. Какие родные пропорции экрана для оригинальной игры — 320 на 200 или 320 на 240?
k12th
14.09.2015 13:58+1А где исходники, куда пулл-реквесты слать?
oulenspiegel
14.09.2015 14:05Я, возможно, в будущем выложу исходники в открытый доступ, но чуть позже. Нужно почистить код, кое-что добавить, возможно.
Bundris
14.09.2015 14:17При взаимодействии с городом и замком игра зависает(браузер Mozilla Firefox 31.0)
Ниже ссылка на скриншот с выхлопом в консоль FF
hkar.ru/DKcWoulenspiegel
14.09.2015 14:20Это из-за медленного канала и проблемы с загрузкой музыки. При повторном заходе в игру всё должно быть норм за счёт кэша. Но я поправлю, чтобы не подвисало и при первом заходе в FF.
PapaBubaDiop
14.09.2015 14:18Да, чтобы войти в оригинальную игру, надо было ввести секретное слово с указанной страницы-строки мануала. Список паролей прилагался.
derfinva
14.09.2015 15:30Дальше выбора экрана роли не идет ((
oulenspiegel
14.09.2015 15:32Музыка подгружается, видимо канал у вас не очень быстрый.
Если совсем подвисло, попробуйте обновить страницу.
Файрволла, блокирующего mp3, случайно, нет у вас?..ComodoHacker
14.09.2015 16:30+2Я тоже не могу дождаться загрузки.
Вы что, сразу грузите весь-весь контент? В таком случае примените что ли свои знания алгоритмов сжатия данных? :)oulenspiegel
14.09.2015 19:46Всё, сделал. Теперь можно выбрать режим без звука с самого начала, тогда музыка не будет грузиться.
ef_end_y
14.09.2015 15:43Как распустить армию? Например, только крестьян
oulenspiegel
14.09.2015 15:48Кнопка D. Если кликнуть справа вверху по иконке меню, можно посмотреть все возможные действия.
ComodoHacker
14.09.2015 16:31+1Одно из бесспорных преимуществ HTML5 версии — масштабирование колесом мыши. :)
grayfolk
14.09.2015 21:54Но все равно хотелось бы fullscreen )
oulenspiegel, возможно?oulenspiegel
14.09.2015 21:57Ну, в принципе, никто не меняет открыть браузер на весь экран и подобрать масштаб)
Думаю, это можно как-то автоматизировать. Посмотрю.
ComodoHacker
14.09.2015 16:36Пожалуйста, замените органную сюиту Баха на что-нибудь другое. Она совсем не подходит к этой игре.
oulenspiegel
14.09.2015 16:52Кому-то другому не понравится что-то другое :) Могу предложить отключить музыку (для управления музыкой и звуковыми эффектами используются кнопки «+» и «-»).
А ещё это не сюита, а хоральная прелюдия)x0m9k
14.09.2015 19:22Лучше тогда без музыки, чтобы каждый слушал, что ему нравится. А так трафик тратить только.
Zlobober
14.09.2015 17:08Очень круто!
Можно оффтоп-вопрос?
Позади — в арсенале студенческих достижений — финал ACM'овской олимпиады, ...
В каком году и в составе команды какого университета?
reizy
14.09.2015 19:46Было дело тоже ремейкал её) правда на android…
reizy
15.09.2015 01:01+1добавились скачивания в том числе не последней версии… к чему бы О_о
ef_end_y
15.09.2015 15:37у меня при наступлении определенного дня игра вылетала, пробовал другие версии
reizy
15.09.2015 16:54Странно… лог бы получить… Может поправил бы)
ef_end_y
16.09.2015 17:57а я его слал на мыло, которое указано в самой игре. Но ответа так и не получил
reizy
16.09.2015 19:36Мдя, стыд то какой… вот где не проверял давно… Обычно все на форуме отписывались если что то не работало, почтой только с правообладателями пытался связаться… Посмотрю сегодня обязательно!
ЗЫ: если актуально — было бы полезно 1.0.6а_log версию попробовать. Она именно лог делает (не только сейв) в папку рядом с сохранением.reizy
16.09.2015 20:05+1Похоже до Вас никто замков без гарнизона не оставлял… Теперь понятно что исправить, лог уже не нужен…
arvitaly
14.09.2015 20:31Как тролля убить в замке?
oulenspiegel
14.09.2015 20:39Набрать посильнее армию, использовать магию.
Тролли регенерируют в конце хода, следовательно нужно нанести троллю за один ход урон больший, чем у него HP.
oulenspiegel
14.09.2015 22:33В общем, народ, собираю идеи для аддона) Поскольку я всё равно сломал ногу и сижу дома.
Смотрите какие вводные:
1. В принципе, в игре есть редактор карт. Просто он вам недоступен. Можно его немного облагородить, сделать доступным и сделать возможность делать кастомные сценарии.
2. Можно добавить новых юнитов. Скажем, довольно просто сделать, например, заапгрейженные юниты путём перекраски и минимального редактирования существующих, т.к. хочется, чтобы не было диссонанса в стилистике старых и новых юнитов. Полноценный новый пикселарт я не потяну, скорее всего, разве что кто-нибудь поможет. В принципе, можно добавить артефактов без проблем, новую магию, какие-то спецэффекты.
3. Можно сделать мобильные версии. js/html5 легким движением руки при помощи trigger.io или phonegap превращается в нативное приложение под Android, яблофон и даже под Windows Phone и более редкие платформы.
4. Можно сделать какую-то серверную часть и хотя бы минимальное взаимодействие разных игроков: общая таблица рекордов, может быть даже какие-нибудь в перспективе соревнования или дуэли на одной карте :)
5. Можно просто сделать продолжение, добавив ещё несколько штучек типа того же Коннора Варвара, каких-то заданий на карте и т.п. — в принципе, развивать в ту сторону, в которую развивает Nival свои современные римейки.
Что думаете?
reizy
15.09.2015 00:51+11) Добавить карту-подземелье, где запрещен читерский полёт
2) Сделать режим «хардкор» — убрать возможность безграничной покупки читерных спелов клонирования и остановки времени, добавить «боссам» умения (как от артефактов хотя бы), добавить набеги на замки игрока (один крестьянин в замке — чит), сбалансировать армии «боссов» по морали, сделать чтобы сбежавший «босс» усиливал новую армию до своего уровня. Перемешать дружеских монстров с врагами.
3) новые монстры: чОрныйвластелинтроль (тот же троль, только 6 левел и 500хп), огненный дракон (меньше хп, больше атака, нет иммунитета к магии), катапульта(нет ближнего боя)…
4)Скрипты испортят игру ИМХО
Grammidin
15.09.2015 12:02+1— Хотелось бы иметь возможность сохраняться на сервере. Заодно можно реализовать таблицу рекордов, чтобы мериться… достижениями
— Так и просится подземелье, как в Героях
— Мобильная версия, думаю, вполне зайдет. Лично я бы купил такую игру.
— Интересно также увидеть PvP. Бои через поиск(на карте можно реализовать в виде неких арен) или вообще полноценное ММО. Карта для всех общая, можно встретить другого игрока и навалять ему, отобрав часть ресурсов.grayfolk
15.09.2015 14:42Хотелось бы иметь возможность сохраняться на сервере
А еще лучше — в local storage.Grammidin
15.09.2015 15:22Не лучше. На другом компьютере сейвов нет, плюс есть вероятность их потерять.
oulenspiegel
15.09.2015 15:45Да, в принципе, не проблема сделать все варианты — и в файл, как сейчас, и на сервере и в local storage…
Zardos
15.09.2015 12:25А можно сделать хоть немного плавный скроллинг при шагах? Хотя бы в 2-3 этапа. Меня еще в оригинальной версии это напрягало, что экран прыгает сразу на тайл, и приходится искать глазами знакомые по предыдущему шагу очертания чтобы понять, что я не улетел куда-то в другое место.
grayfolk
15.09.2015 14:40Как я понял, карта сейчас не рандомная, рандомны на ней только ресурсы? Было бы неплохо сделать такое. Хотя, я не помню, как в оригинальной игре, возможно, там тоже карты предопределены.
П.3 — было бы неплохо, как по мне. Правда, что будет с производительностью?oulenspiegel
15.09.2015 15:45Рандомный генератор сделать, в принципе, не проблема. Никаких особо больших ресурсов ему не нужно будет.
grayfolk
15.09.2015 16:20Кстати, по-моему, в оригинальной игре в сражении не обязательно первым ходил игрок.
reizy
15.09.2015 04:39Поиграл чутка:
1) Это так и задумано?
— набор юнитов у врагов не оригинальный
— лучники — наемники, их мораль не должны понижать монстры
— боссы специально перетасованы?
2) Баги и хотелки:
— в диалоге нападения можно открыть панель персонажа, которая перекрывает диалог визуально, но модальность поведения остается.
— рекомендую сделать кликабельными дальние от героя поля, намного приятнее.
— подобрал щит… вместо артефакта в панеле персонажа зеленый плюсик…
— в режиме «с музыкой» игра виснет
oulenspiegel
15.09.2015 05:011)
> — набор юнитов у врагов не оригинальный
> — боссы специально перетасованы?
Да, разумеется. Это же продолжение, а не просто римейк.
> — лучники — наемники, их мораль не должны понижать монстры
Таблица морали взята из мануалов по оригинальной игре.
2)
> — в диалоге нападения можно открыть панель персонажа, которая перекрывает диалог визуально, но модальность поведения остается.
Ага, это поправлю.
> — рекомендую сделать кликабельными дальние от героя поля, намного приятнее.
В принципе, можно.
> — подобрал щит… вместо артефакта в панеле персонажа зеленый плюсик…
Это корректное поведение, значит этот щит не основной артефакт, а дополнительный, младший.
> — в режиме «с музыкой» игра виснет
Виснет в какой момент? Поточнее можно?..reizy
15.09.2015 11:33> Таблица морали взята из мануалов по оригинальной игре.
Видимо у нас разные мануалы) в моем Archers Morale Group = B, как у Pikemen например…
> Это корректное поведение, значит этот щит не основной артефакт, а дополнительный, младший.
Логичнее было бы при отсутствии младшего отображать старший. + на пустом поле грустно смотрится. ну и да, при наличии старшего артефакта при наведении на + так же стоит показывать младший.
> Виснет в какой момент? Поточнее можно?..
На загрузке. Но сейчас вроде заработало. Неужели так долго грузится? Прогресс бар нужен по-любому)oulenspiegel
15.09.2015 11:54> Видимо у нас разные мануалы) в моем Archers Morale Group = B, как у Pikemen например…
Да, действительно, видимо то ли опечатка была, то ли я сам ошибся. Поправлю.
> Логичнее было бы при отсутствии младшего отображать старший
Там сейчас просто старший отображается как в оригинальной игре, а младший плюсом. Проблема в том, что для младших нет иконок такого размера, т.к. в оригинальной игре их нет. Подумаю, что с этим можно сделать.
> На загрузке. Но сейчас вроде заработало. Неужели так долго грузится? Прогресс бар нужен по-любому)
Честный сделать не получится, т.к. там обычно параллельно грузится много файлов.
Возможно дело в том, что я недавно починил проблему, которая была связана с багом Хрома (невысвобождение сокетов при загрузке Audio, если сразу после загрузки не сделать { audio.play(); audio.pause(); }. Из-за этого могла подвисать загрузка отдельных файлов.
reizy
15.09.2015 12:09Да, кстати: если нужен бета-тест — рекомендую таки создать веточку на old-games, там фанаты все-таки.
oulenspiegel
15.09.2015 16:02Мораль и диалоги поправил.
А как это сделать правильно? Я просто совсем новичок на Хабре. Просто написать туда новый пост о том же?.. Или скопировать этот?..reizy
15.09.2015 16:40Ну это не хабр, там технические подробности не интересуют людей) просто создай там ветку аля «сделал — вот ссылка — наслаждайтесь, пишите, что не так.» можно ссылку на хабр дать с пометкой «для любопытствующих»). Ну и пометь, что это не полная копия, а дополненная.
enepomnyaschih
15.09.2015 16:16В этот корабль не забраться. Исправьте, пожалуйста. Континентия, юго-восточнее пустыни.
oulenspiegel
15.09.2015 16:33Поправил.
enepomnyaschih
15.09.2015 22:22Как так выходит, что за слабеньких злодеев из Ватернии (2) дают больше награды, чем за хорошо вооруженных злодеев из Мальбразии (3)? И, напротив, в Континентии (1) был один дешевый злодей, охраняемый 40 друидами, 80 эльфами и 15 вампирами, с которыми я справился только со второй попытки, и то, только благодаря клевому заклинанию «вломить нежити». В оригинале так же было? Я играл только в сеговскую версию, там сценарий немного отличается.
Еще, не замечание, просто забавно: стрелковые юниты имба. Собрал 150 лучников, 150 эльфов и 25 архимагов, и сношу все без потерь.grayfolk
15.09.2015 22:26Еще, не замечание, просто забавно: стрелковые юниты имба. Собрал 150 лучников, 150 эльфов и 25 архимагов, и сношу все без потерь.
Да-да, 150+ лучников/эльфов легко сносят всякую нечисть )reizy
16.09.2015 00:41этой армией без артефакта меча за первый ход даже 1го дракона не снести если не ошибаюсь (при супер-везении 195 из 200хп должно выносить)… с мечом — в полтора раза больше урон, но даже 3 дракона приведут к потерям. Дизбаланс или до драконов не дошли?
enepomnyaschih
16.09.2015 14:22К драконам армия слегка подросла. Первый замес с ними screencast.com/t/c8RPnwRKCrnp
В результате добавилось +4 архимага)ildarz
16.09.2015 14:39А если выкинуть лучников (они не дают подняться морали до высокой), вместо них взять друидов (кстати, почему их нет? не нашлось?) и добавить варваров, будет идеальный вариант армии добра. :)
reizy
16.09.2015 20:07слишком это неявно для незнающих) именно поэтому я мораль цветом хелс-бара у себя отражал
oulenspiegel
16.09.2015 00:11Злодеев, в принципе, можно переставить.
Статы юнитов из оригинальной игры. Ну кроме одного нового юнита, который я, не удержавшись, добавил.
«Вломить нежити» это творческий перевод «turn undead»)enepomnyaschih
16.09.2015 15:01Вот баг нашел. Заклинания не кастуются screencast.com/t/GZQRpbuu3tDe
oulenspiegel
16.09.2015 15:18Спасибо! Поправил.
Интересно, что никто раньше не заметил, баг довольно старинный.
enepomnyaschih
16.09.2015 15:30Еще баг. Все злодеи пойманы, карта-загадка не открывается screencast.com/t/eaBR7uyVW
oulenspiegel
16.09.2015 15:46А, понял. Скипетр уже выкопан?
enepomnyaschih
16.09.2015 15:58Сейв отправил. Да, скипетр выкопан. Кстати, Арбузия очень уж симметрична. Если положить скипетр там в случайное место, думаю, можно потратить кучу времени на его поиски, даже если вся карта-загадка открыта.
oulenspiegel
16.09.2015 16:00Да, есть такой момент. В принципе, можно просто исключить Арбузию из списка континентов, где может быть Скипетр…
ef_end_y
16.09.2015 18:02я, кстати, только на 7й раз нашел скипетр, хорошо, что эти все 7 мест были рядом. Хочу отметить, что при прохождении игры не было ни одного бага, только в самом конце в момент нахождения скипетра показало данные моего героя и поверх них вопрос готов ли я сражаться с армией
reizy
15.09.2015 16:50Кстати, есть альтернативная EGA графика. Можно оттуда еще картинок натырить для продолжения)
oulenspiegel
16.09.2015 00:14Да, там несколько юнитов отличающихся внешним видом. Копейщики, например.
oulenspiegel
18.09.2015 18:25Сделал несколько багфиксов:
— ошибочное сообщение о невозможности использовать магию несколько раз за ход в режиме путешествия;
— теперь сила армий злодеев тоже зависит от уровня сложности;
— исправлен баг с перезахватом замков беглыми злодеями;
— замки без охраны теперь захватывают бродячие шайки.
Stiver
18.09.2015 21:44У меня куда-то очень здорово спрятались три мятежника. Find villain говорит, что они в Арбузии в замках вида South-2, South-5… но таких замков нет на континенте.
Архимагов один раз встретил в дереве, вместо повозки. Бегающие рыцари как-то перемешаны по внешнему виду: на пятой земле нашлись двое с первой, на четвертой половина с третьей и т.д.oulenspiegel
20.09.2015 04:03Извини, поздно заметил коммент.
Первый баг — исправлен. Можешь просто загрузить сэйв, всё будет нормально.
Архимаги в дереве это что-то новенькое. Сэйв есть с этим безобразием? Если да, то пошли, пожалуйста, на sergei.markoff (собака) gmail.com.
Третье не баг, а просто мелкое хулиганство. Так и задумано — там несколько сделано таких просто так.
DieSlogan
06.10.2015 14:06+1Насколько я помню, Эльфы славились тем, что у них было 2 выстрела, а не один, как у всех других лучников.
den_admin
Получилось здорово!
Вечером засяду наверное. Можно только пару вещей обозначить: во время боя не работают 1,3,7 и 9 на цифровой клавиатуре. И еще в оригинале можно было настроить время показа анимации атаки (красную кляксу), всегда ставил минимальную, не интересно на нее смотреть.
oulenspiegel
Спасибо)
Насчёт 1, 3, 7, 9 — эффект странный. Можете зайти на genes1s.net/kb/test.html, понажимать эти кнопки и сказать, какие коды будут выдаваться?
den_admin
1 — 97
3 — 99
7 — 103
9 — 105
Я не правильно выразился: не работают при стрельбе, например.
oulenspiegel
А, понял. Сейчас исправлю.
oulenspiegel
Поправил.
oulenspiegel
Настройки сделаю немного позже — надо понять, что ещё в них выносить.