1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Возрождение игры Rebel Moon Revolution на базе игры The War in Heaven

Тема в разделе "Мастерская", создана пользователем WERTA, 9 ноя 2014.

Метки:
  1. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    Отчет по одноуровневому демо


    DEMO features

    Я буду очень признателен за тестирование демо в разных ОС и за проверку английской грамматики в английской версии демо. Текстов там немного, они все лежат в папке RMREV\BRF\*.txt. Потом можно будет рассмотреть вопрос о выкладывании этого демо на сайте в качестве анонса полного возрождения Rebel Moon Revolution в таком игровом формате.

    За последнее время сделал очень много.

    Изучая поведение персонажей, я уточняю модель повреждений. Так, моральный дух в игре постепенно падает от ранений и от усталости. Но вот игрок подобрал аптечку – здоровье сразу выросло. После этого первое же попадание в игрока повысит моральный дух – странно, но такова модель. Раньше я думал, что моральный дух не влияет на геймплей, типа не успели реализовать. Но сегодня выяснилось, что влияет. В состоянии низкого уровня морального духа – shaky, разброс стрельбы становится очень большим. Это существенное влияние. Вообще стрельба даже при параметре Accuracy=100 имеет ненулевой разброс. Из набора всех параметров модели состояния персонажа я пока выяснил следующее:
    Код:
    [+] Morale=100      <- моральный дух
    [+] Accuracy=100    <- меткость, разброс попаданий
    [?] Fitness=100     <- физ. подготовка (возможно учет степени влияние накопления усталости со временем на снижение уровня Morale и скорости Speed) 
    [+] Speed=100       <- макс. скорость бега персонажа
    [?] Risktaking=100  <- отчаянность      
    [+] Observation=100 <- наблюдательность, способность заметить врага вдали
    [+] Shields=100     <- уровень силового щита в начале игры
    [?] Armor=100       <- броня? (в явном виде никак не влияет)
    [?] Endurance=100   <- живучесть? непонятно
    [+] Health=100      <- здоровье 
    [?] Experience=     <- опыт, всегда пусто
    
    Признаков наличия программного параметра УСТАЛОСТЬ я нигде в служебных строках не встречал, но это не значит, что его может не быть.
    
    Ещё сделал самое «страшное», чего долго боялся. В коде нужно было найти и поменять максимум здоровья не 200, а 100, кстати, из-за этого вело себя странно отображение параметра «моральный дух», который я недавно визуализировал на HUD обоих персонажей. Если читом или аптечками игрок увеличил бы свое здоровье более 100, то любое попадание необратимо и резко увеличивало MORALE выше допустимого значения 100 на очень большое значение. Вообще, MORALE, прежде всего, влияет на поведение NPC и их положение тела STANCE (стоит, на коленках или ползет от страха), а затем уже на точность. Наверняка до WiH в RMREv модели ИИ планировали делать здоровье не более 100, но для WiH вернули (или просто забыли) 200, как это было изначально в RMR.

    По щиту. Как я и угадал модель повреждений такая:
    HEALTH:= HEALTH - (100 - SHIELD) * SHOOT_DAMAGE/100 - TEXTURE_DAMAGE
    SHIELD:= SHIELD - SHOOT_DAMAGE * 0

    В коде всё это реализовано не в целых, а в float, что затруднило мне поиск. Это число 100.00 я нашел. Пока исправил на значение 110.00. Тогда при нуле щита повреждения стали в 1.1 раза больше, зато при полном щите ослабление будет 1:10. Число нашел, а модель пока нет, но в IDA Pro найти модель теперь уже не проблема. Насчёт неисчезаемости щита – ничего страшного, пусть будет постоянной, типа «прокачной», статусной вещью. За 8 уровней игры весь щит как раз наберется (если игрок соизволит подбирать соотв. темы). А в конце концов, думаю сделать коэффициент ослабления при максимуме щита не 1:10, а 1:8, но это после настройки всего баланса. Кстати, даже при ослаблении 1:10 три-четыре противника довольно быстро могут уложить выстрелами в упор. Чтобы проверить полный щит, введите чит EWMITHRA. Но теперь это чит не обеспечит неубиваемости.

    Можно сравнить константы модели повреждений WiH с константами из RMRev98, в той демке щит убывал от попаданий. Сравнить константы можно легко в IDA. Это всего лишь несколько float значений в сегменте данных ехе-шника.

    Полностью разобрался с назначением типов боеприпасов и их выводом на экран
    В общем, теперь у нас пять типов вооружения:
    1. Электрическое (неогр., витнтовки, дрель, калькулятор, шокер)
    2. Снайперское (огр., аммо – разгоняемые в магнитном поле металлические стержни, PINS)
    3. Плазменное (огр., аммо - сгустки плазмы, PLASMA)
    4. Пневматическое (огр., аммо – дробины, SHOTS)
    5. Бронебойное (огр., аммо - реактивные снаряды, ROCKETS)

    Всё упирается в сюжетное требование: по каким-то неведомым мирным соглашениям обе стороны обязались не использовать стрелковое вооружение на Луне. Но если стрелковое нельзя, то остальное можно, отсюда такая экзотика (пневмомёты, плазмоганы…). А электрические источники с очень большой емкостью позволяют долго находиться в условиях лунной ночи за счет внутреннего обогрева. С охлаждением скафандра сложилось технически сложнее, поэтому большая часть операций на Луне будет ночью. Возможно, сделаю одну миссию днем, с повреждениями от текстур лунной поверхности (горячие). Не зря же солнце добавил к звездам и Земле.

    Сделал подбираемые боеприпасы с выводом сообщения о подборе. К сожалению, автоматического переключения на соотв. вооружение в Rev Engine нет при подборе амуниции, оно есть только при подборе непосредственно темы «ствола». В WiH именно так переключались «стволы» при подборе. И тут возможен выход: задать свойство патронам не PickupType=4 (аммо), PickupType=3 (вооружение), тогда все равно прописанное свойство Amount просуммируется к аммо. Зато тогда «ствол» переключится на подобранный.

    Еще одно неожиданное открытие. Включать и выключать «стволы» от уровня к уровню нельзя. Состояние персонажа (щит, хэлс, вооружения) на переходах уровней изменять невозможно. Можно их только по одному «открывать» с подборами тем «вооружение» или тем «аммо». Но тему «вооружение» еще придется тогда нарисовать в 3D, ведь стволы в руках – это неполноценные модели «стволов», которые невозможно показать со стороны. У них для экономии полигонов обрезано всё, что не попадает в поле зрения персонажа. Начинать персонаж-лунат будет с винтовки N-17. Хотя можно просто включать вооружения подбором соотв. «аммо» А то, что таскать такой арсенал на себе невозможно… так это ж Луна, тут в 6 раз все легче. В общем, к сожалению, концепция «одна миссия = один ствол» – она утонула. Зато демо-версия обрела черты классического 3D-шутера 90-х c таскаемым за собой арсеналом (ООН- 4, Лунат -6).

    В этом демо «стволы» можно переключать свободно и все без Чита EWMIGA. ООН – 1…4, а LDF – 1…6. С выбранным вооружением сменятся некоторые индикаторы или появятся миниэкранчики (снайперка, «калькулятор»).

    Еще одно очень важное открытие. Есть такой параметр у дверей и разрушаемых объектов triggerOn=1 или 2. Так вот,
    Код:
    TriggerOn = 0 <- событие ActionID не происходит 
    TriggerOn = 1 <- больше характерно для дверей. Установлено, что событие ActionID при TriggerOn=1 происходит в момент первого попадания по объекту DESTRPOYABLE или при самом начале открытия двери.
    TriggerOn = 2 <- больше характерно для объектов. Установлено, что событие ActionID при TriggerOn=2 происходит в момент полного уничтожения объекта DESTRPOYABLE
    
    Поэтому можно сделать миссию, где любое попадание по объекту вызывает провальное событие. Очевидно, это будет госпиталь (раненые и медсестры (ангелицы из WiH)).
     
    Последнее редактирование: 14 мар 2015
    Gamerun и Vladimir 777 нравится это.
  2. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    Вот еще немного подрихтовал логику окончания уровня в raf-файла за ООН (lev_UN01.raf).

    Русская версия 1.09
    https://yadi.sk/d/BBUuMtM0fJuGd

    Английская версия 1.09
    https://yadi.sk/d/qvbO3q62fJuLu

    Пока сделал перерыв и обдумываю архитектуру соединения уровней возрождаемой игры. давно я уже писал, что уровни в REV Engine можно соединять как угодно: деревьями, цепочками, кольцами… Любой уровень в REV Engine организован следующим образом.

    [​IMG]
    LOSE - появляется брифинг о проигрыше
    WIN - появляется брифинг о выигрыше
    CD - можно делать уровни с обратным отсчетом, но если игрок не успеет выйти с такого уровня он заново окажется просто в стартовом брфиинге без каких-либо других брифингов.


    1) Можно закольцевать «неудачную» ветвь, а на выигрышную ветвь включать следующий уровень линейного прохождения типа «FPS-цепочка классик». Но тут становится не удобно писать в «неудачном» брифинге и объяснять про повтор, ведь я решил максимально приблизить игру к реальности реальными датами и фазами Земли над горизонтом. Каково будет опять оказаться в этой же дате с этим же заданием.

    Вот схема:
    [​IMG]
    И вот тут я вспомнил игру симулятор HIND и его режим кампании.

    2) Что если соединить уровни в одинаковые параллельные три потока: выигрышный, так-сяк и проигрышный. Это примерно так же были сделаны кампании в HIND. Уровни будут отличаться в мелочах, особенно в подбираемых темах и балансе. Тогда в двух разных сюжетных линиях возможны три концовки, выиграют ли войну лунаты, или Земля наконец-то восстановит конституционный строй – зависит только от умелости или неумелости игрока.

    Вот примерная схема режима кампании (можно еще более кудряво закрутить).
    [​IMG]
    Здесь недостаток, что можно вообще без стимула проиграть весь поток из N-уровней и дойти до конца игры, пусть и плачевного конца. Хотя... В самой плохой ветви кампании неудачное окончание можно закольцевать в начало уровня, но опять возникает проблема постоянного повтора даты заново проходимой миссии.

    Нужно выбрать:

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

    Повторю, пока уровней всего 8, но один из них (тренировочный центр ООН) пойдет на «учебку» для ООН-вского персонажа. Итого уровней – 7, отмечу, что для луната уже тоже был заготовлен тренировочный уровень, но его можно использовать сразу и в тренировочной и в боевой миссии. Я абсолютно уверен, что смогу сделать из имеющего материала еще два-три новых уровня.
     
    Последнее редактирование модератором: 19 июл 2015
    Gamerun и Dimouse нравится это.
  3. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    35.153
    WERTA, а кроме первого уровня еще что-нибудь есть? Я сейчас прошел первый уровень за ополченцев (так и не понял как, расстреливал компы наверху, потом вылезло сразу много сообщений "уровень пройден"), но потом игра вылетела. Так и не понял, есть ли что-то дальше.
     
    WERTA нравится это.
  4. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    Тестировать нужно последнюю версию v.1.09 (см. предыдущий пост выше от 17.03.2015)

    1. Нужно было просто расстрелять главный самый большой компьютер (буквально несколько выстрелов из мощного вооружения). Он изображен на одном из трех изображений в брифинге и в тексте брифинга есть намек на это, чтобы игрок понял, что нужно сделать. С уничтожением компа включается:
    - выставление флага успешного завершения уровня.
    - и выход с уровня через пару секунд.

    2. Это одноуровневое демо, т.е. новый возрожденный геймплей показан на примере только одного уровня (Big Weight Excavator - BWE) для двух ветвей прохождения за лунного сепаратиста и за ООН-вца.

    3. В обеих ветвях прохождения одноуровневого демо после успешного завершения уровня появится текст, рассказывающий о возрождении игры. После одного уровня дальше ничего нет. Остальные 6-7 уровней будут легко добавлены потом, но прежде нужно довести до совершенства настройки этого одноуровневого демо.

    4. По поводу вылета мне бы хотелось узнать в каком месте уровня и на какой ОС это было? Последняя версия 1.09 от 16.03.2015 более я ничего не "шлифовал", поскольку уже не осталось чего-либо для совершенствования.

    5. Уровнь за ООН-вца будет гораздо сложнее. Там нужно уничтожить троих диверсантов, прячущихся за камнями в разных местах карты. После чего откроется дверь наверх к пульту управления. Тогда наверху нужно будет подойти к центральному креслу - это и есть окончание уровня.
     
    Последнее редактирование: 2 апр 2015
  5. Grongy зе мост бэдэсс мазафака он зе плэнет

    Grongy

    Хелпер Переводчик

    Регистрация:
    21 мар 2014
    Сообщения:
    3.729
    Кстати, в брифингах (русская версия) есть несколько ошибок. Сейчас тут отпишусь.
    За LDF, после уничтожения компа:
    Обращение, запятая перед "боец".
    За ООН, тоже победа:
    То же самое.
    В описании персонажа:
    Почему "объект"? Объект - неодушевлённое лицо; правильно - "субъект". Или это и в оригинале задумано: мол, бойцов за людей не считают?
     
    Последнее редактирование: 1 апр 2015
    WERTA нравится это.
  6. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    35.153
    WERTA, да, ее и тестировал.
    Поскольку непонятно было, что делать, стрелял по всем экранчикам, потом выкинуло штук 10 "Задание выполнено" и игра вылетела. Сейчас переиграл, стрелял только в главный и всё нормально закончилось.
    ОС XP. На восьмерке у меня всё крутится в бешеной скоростью.
    В целом всё нормально, хотелось бы другие уровни увидеть и поиграть:)
     
    WERTA нравится это.
  7. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    Уровни в новом формате еще не настроены. Как они были реализованы в незавершенном демо - это можно опробовать в незавершенной демке, что давно выложена на сайте на страничке игры. Там хотя бы можно посмотреть на 3Д-модели, обстановку и т.д. Под каждый из этих уровней я готовлю свой сюжет (кстати у некоторых уровней в той демке есть свои брифинги, у четырех - точно свои оригинальные, придуманные Vox Day). Ясно, что с новыми настроенными персонажами там все заиграет совсем по-другому.

    Уровней в незавершенном демо всего было сделано 8. Из них уже можно сделать возрожденную игру.
    1. Центр связи (тарелка, консоли и генератор под тарелкой)
    2. Склады (три стальных купола и три стальных палатки)
    3. Экскаватор (на нем основана новая одноуровневая демка)
    4. Завод производства пищи и воздуха
    5. Разбившийся шаттл (без персонажей, на этом уровне разработчики закончили проект)
    6. Госпиталь ООН (без персонажей)
    7. Учебный центр ООН (без персонажей, будет тренировочным уровнем для персонажа за ООН)
    8. Тренировочный уровень для LDF (может быть использован сразу в двух уровнях: тренировочном и в боевом, когда ООН напал на LDF в начале игры, нарушив перемирие)

    Из уже имеющегося "стройматериала" с помощью своего редактора-экстрактора я смогу сформировать еще пару-тройку уровней, хотя тут можно пойти двумя концептуально противоположными путями:
    1. Возрожденная демка будет исключительно на том, что было сделано Фенрисами и ничего нового (только 8 отремонтированных уровней)
    2. Возрожденная демка может быть дополнена фанатскими доработками наравне с уже имеющимися 3Д-моделями разработчиков.


    Dimouse, а за персонажа ООН не тестировал? Меня интересует не сильно ли я усложнил прохождение.
    Спойлер
     
    Последнее редактирование: 20 апр 2015
    Dimouse нравится это.
  8. Grongy зе мост бэдэсс мазафака он зе плэнет

    Grongy

    Хелпер Переводчик

    Регистрация:
    21 мар 2014
    Сообщения:
    3.729
    Вот ещё ошибка, в брифинге уровня за ООН:
    "пРоверить".
     
    WERTA нравится это.
  9. Tigoro AI General

    Tigoro

    Регистрация:
    4 фев 2010
    Сообщения:
    3.151
    А у меня просто не пошло, WINE :-)
     
    WERTA нравится это.
  10. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    Tigoro, а какая ОС?
     
  11. Tigoro AI General

    Tigoro

    Регистрация:
    4 фев 2010
    Сообщения:
    3.151
    WERTA, 64 бит, ubuntu 14.04/nvidia gt440 + доведение рабочего стола до crunchbang (получается минималистичный рабочий стол на openbox без сноса пакетов ubuntu). WINE 1.7 PPA, "из коробки" (~/.wine сношу по необходимости). В выходные сообщу чего возможно из пакетов не хватало, если пойдет.
     
    Последнее редактирование: 9 апр 2015
    WERTA нравится это.
  12. Tigoro AI General

    Tigoro

    Регистрация:
    4 фев 2010
    Сообщения:
    3.151
    Итого. Для старта под WINE требуются: DX9 и библиотеки MSVC. Запускаются обе (рус и англ) версии. Не зависимо от варианта запуска, через х секунд происходит зависание игры (изображение становится стоп-кадром и больше не меняется). Если очень быстро ззпустить игру, то доступно несколько шагов и выстрелов, после чего все замирает. Если не спешить - "застынет" меню. Сообщений об ошибках при этом нет.
     
    Последнее редактирование: 11 апр 2015
    WERTA нравится это.
  13. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    Новый этап возрождения игры Rebel Moon Revolution

    Привет всем, кто следит за этой темой. В марте-2015 у меня случилась депрессия, но теперь я снова полон сил. Я специально начал новый этап с починки игры The War in Heaven. Выяснилось намного большее, чем я предполагал:

    1. Можно делать особые подбираемые предметы, которые можно взять только с убранным оружием. Причем эти предметы совершенно точно не способны давать «навар» для здоровья, щита, патронов. Где это применить в тематике Rebel Moon Revolution – не знаю.

    2. Выяснилось, что если персонажа убьют, то количество любых действий, указанных в raf-файле, увеличивается на 1 в случае быстрого перезапуска уровня (не через пункт меню «Новая игра»).
    Т.е. допустим на уничтожение одного объекта подвешено одно действие с выводом одного текстового сообщения – MESSAGE TEXT.

    Запустили игру:
    Загрузили уровень первый раз, уничтожили объект, произойдет одно событие
    MESSAGE TEXT
    после чего вас убили или уровень неудачно пройден.

    Перезапустили уровень, уничтожили объект, произойдут уже сразу два одинаковых события:
    MESSAGE TEXT
    MESSAGE TEXT
    после чего вас убили или уровень неудачно пройден

    Перезапустили уровень, уничтожили объект, произойдут уже сразу три одинаковых события:
    MESSAGE TEXT
    MESSAGE TEXT
    MESSAGE TEXT
    после чего вас убили или уровень неудачно пройден.
    и.т.д.

    Если начать игру через NEW GAME, то в такой же ситуации выведется снова только одно сообщение.
    MESSAGE TEXT

    Это изначально было уже в The War in Heaven и это не лечится, я проверял – пытался по-разному подгружать уровни, отлавливать гибель протагониста (отловил я это событие!). Разве что – придется теперь лезть в код. По крайне мере, в коде я зацеплюсь за места обработки событий, поскольку сигнатуры 9999(d), 9000(d), 9001(d), 9010(d), 9020(d), 21000(d), 22000(d), 23000(d), 24000(d) однократно встречаются в коде.

    Сейчас этот эффект приводит к тому, что строгое многовходовое "И" невозможно. Чем чаще игрок будет запускать рестарт уровня после своего убиения, тем меньше ему нужно будет, к примеру, уничтожать объектов в диверсии по схеме логического "И" (задание - уничтожить 22 компьютера). Т.е. в первый раз 22 (дел. 1), затем 11 (дел. 2), затем 8 (дел. 3), затем 6 (дел. 4), затем 5 (дел. 5), затем 4(дел. 6) , затем 4 (дел. 7), затем 3 (дел. 8), затем 3 (дел. 9), затем 3 (дел. 10), затем 2 (дел. 11), затем 2 (дел. 12)... т.е от строгого "И" постепенно асимптотически до "ИЛИ". Получается нестрогое переменное условие (УНИЧТОЖЬТЕ НЕСКОЛЬКО ОБЪЕКТОВ). Короче, это однозначный косяк, лучше его спрятать или пофиксить в коде, и это несколько скорректирует задачи на уровнях.

    Если не удастся это вылечить, то многовходовые «И» будут невозможны. Но в общем-то это и не страшно, поскольку многовходовые «И» для включения успешной фазы нужны только в диверсионных операциях, причем только по уничтожению нескольких объектов, взаимосвязанных общим условием. По сценарию, в основном, диверсии будут у лунатов. У ООН будут оборонительные миссии, а для такого типа заданий достаточно логического «ИЛИ» для включения провальной фазы, которое с такими косяками всё равно будет работать. Если ничего не править, тогда для диверсии нужно будет уничтожать только один объект, а не скажем 8 (идолы) или 16(свитки) как в The War in Heaven. И еще обязательно в главном HUD персонажа нужно будет убрать отображение 4-х последних сообщений, а оставить только одно последнее, уменьшив время высвечивания сообщения с 5 до 1 секунды.

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

    Я нашел в коде генерацию сообщений с номерами, начинающимися на
    21000 – префикс номера события конверсии персонажа из какой-то команды (приемлет только стандартные коды команд TeamID =050, 100)
    22000 – префикс номера события конверсии персонажа с определенным TargetID=ХХХ
    23000 – префикс номера события убиения персонажа из какой-то команды (приемлет только стандартные коды команд TeamID =050, 100)
    24000 – префикс номера события убиения персонажа с определенным TargetID=ХХХ

    Других идентификаторов событий с префиксом 2хххх - не найдено
     
    Tigoro и Dimouse нравится это.
  14. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    В общем, просто на быстрый рестарт уровня происходит ненужное чтение raf-файла и таблица событий увеличивается сначала вдвое, потом втрое… и т.д. Повторы событий дают события с одинаковыми идентификаторами.
    Быстрый рестарт уровня происходит в нескольких случаях.
    1. Действие из меню через функцию кнопки – bRestart
    2. Нажатие клавиши «Стрельба» после смерти персонажа
    3. Конец уровня по таймауту, если таймаут был выставлен в свойствах уровня.

    Вроде победил я эту беду иным способом подгрузки уровня.

    1. Отловить событие смерти протагониста
    Это событие с TargetID=240XX, где ХХ – собственный TargetID вашего протагониста.

    Код:
    [1]
    Triggers=2
    TargetID=240XX
    Count=0
    Auto=f
    
    trigger1=9001 0  0 //Установка проигрышной фазы 
    trigger2=9999 0  0 //Окончание уровня.
    
    Все задержки времени триггеров должны быть нулевыми – конец уровня должен наступать мгновенно, чтобы пользователь не успел нажать на клавишу «Стрельба» – по ней происходит быстрый рестарт уровня, от которого мы избавляемся.

    2. На кнопку RESTART в «провальном» брифинге подвесить запуск уровня через
    Код:
    ....
    ButtonFunc=bNewGame
    String=<levelname.lev>
    
    Минусов – почти никаких, плюсов от этого намного – больше.

    МИНУСЫ:
    1. Отпадают уровни с таймаутом – невелика потеря.

    ПЛЮСЫ:
    1.Нормальная работа логики, возможно логическое «И»
    2.Абсолютно общий, без деталей «провальный» брифинг
    3.Возможность подгрузки абсолютно «новенького» протагониста в каждый уровень, с прописанным здоровьем, вооружением, как я и хотел первоначально.
     
  15. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    Много изменил, все что хотел изменить. Теперь перехожу к следующим уровням. В экскаваторном уровне еще пару полигонов нужно пролечить на наклонных скатах, ведущих в башню управления - и тогда одноуровневая демка-тизер будет готова для показа публике.

    Вот версия 1.0.10
    https://yadi.sk/d/JjifnQViia2KQ

    Коллеги у меня нижайшая просьба: запустить, побегать, пострелять, почитать брифинги - всё ли логично?. Чтобы посмотреть fps, нажмите F11, в верхнем правом углу будут циферки - это fps. Напомню, что в уровне за ООН у лазерной винтовки три режима мощности выстрелов - переключать клавишами [,]. По умолчанию я убрал мип-маппинг и линейное сглаживание текстур. Это должно приподнять fps.
     
    Tigoro, Gamerun и SAS нравится это.
  16. Tigoro AI General

    Tigoro

    Регистрация:
    4 фев 2010
    Сообщения:
    3.151
    Интересно, может и вайн тепкрь не будет давиться
     
  17. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    К сожалению, совершенно не гарантируется работа в WinE - это же не совсем чистый Виндоус. Вообще там, где пойдет игра The War in Heaven, пойдет и "Революция". Я тестирую в ХР. Буду признателен за тестирование в Win98, Win2К, WinХР, Win7.

    Новая модель повреждений RMRev

    Я тут неделю почти не выходил «в эфир», поскольку полностью погрузился в код REV Engine. Многое нашел, что хотел, но самое главное сделал новую модель персонажей сложной и насыщенной, возможно, примерно такой, как ее задумывали разработчики. Трудно гадать, какой должна была быть старая недоделанная модель. Но новая выглядит вот так.
    RMREv new damages model.PNG
    Получилась комплексная модель повреждений и реакции тела на них, в том числе и вашего протагониста тоже.

    Я не случайно еще весной вывел, казалось бы, бесполезный индикатор морального духа бойцов. Я думал, что именно он отвечает за желание стоять или лежать. Однако на это влияет здоровье и команды с движка ИИ. Я решил использовать MORALE как некий эквивалент носимого запаса здоровья. Я использовал многие неиспользуемые команды для управления (GameKeys.dat). Вот активированные и модифицированные доп. команды управления протагонистом.
    TOGGLE STANCE – меняем по своему желанию положение стоя->присед->лежа. (было)
    STAND UP – встать (->стоя), но за это будет вычтено 10 пунктов морального духа. (новинка)
    PRAY – помолиться, моральный дух по курсу 1:1 будет перекачан в здоровье. (новинка)

    Кстати команда PRAY уже была, но в первоначальном варианте она явно задумывалась как-то по-другому – она никак не связана с протагонистом.

    С моральным духом – самое интересное! Я тут ничего не менял – так было задумано и это не ошибка расчетов в движке. Моральный дух имеет свойство восстанавливаться от здоровья. Допустим, вы подняли аптечку. Здоровье прибавилось. После первого попадания здоровье немного упадет, а моральный дух изменится в большую сторону. Типа вас «взбодрил» выстрел. Потом с последующими попаданиями он начнет как обычно падать вместе со здоровьем. Но в самом конце, когда здоровья менее 10, моральный дух вдруг резко возрастает примерно до половины максимума! Типа перед лицом смерти у бойцов открывается «второе дыхание». Это и можно использовать для перекачки. Но обычно в геймплее убивают очень быстро и тут нужно внимательно следить за всеми параметрами. Поэтому вечного источника «молодости» тут точно не будет. Такой модели я не припоминаю нигде.

    Другие бойцы также теперь аналогично реагируют на попадания. Теперь в зависимости от состояния здоровья они будут стоять, ползти и лежать. И самый высший пилотаж – я случайно обнаружил все переменные ACCURACY, SPEED и др. Все они нормированы как и здоровье от 0 до 100. Поэтому при каждом изменении здоровья в единственной процедуре я простой пересылкой присваиваю здоровье им:
    ACCURACY – при очень плохом самочувствии разброс выстрелов будет сумасшедшим (что логично)
    SPEED – в режиме «Бег» скорость будет мало отличаться от ходьбы при плохом самочувствии.
    OBSERVATION – возможно, будет влиять на дальность обнаружения противника для всех бойцов (пока трудно определить изменения)
    RISKTAKING – возможно, будет влиять на «боевитость» всех бойцов (пока трудно определить изменения)

    По другим параметрам смысла заводить на них здоровье нет.
    ENDURANCE – влияет на скорость уменьшения морального духа при попаданиях. Его лучше оставлять 100. Это константа.

    FITNESS – вообще отглушен в коде, не используется.
    ARMOR – вообще отглушен в коде, не используется. Чем он должен был отличаться от SHIELD – трудно сказать.

    Действительно, как я подозревал, подбор запаса для щита работает предельно просто. Если подбираемый запас щита менее уже носимого, то изменений не происходит. Если поднятый запас больше, то происходит просто занесение всего этого поднятого запаса в значение щита. В одной миссии все будет аскетично – один щит за миссию, а сама миссия будет начинаться с нулевым щитом всегда. Поэтому тут не менял ничего. Щит действительно неразрушаем. Это заложено в модель повреждений. Там кстати сложные расчеты и все через FPU. Трудно сказать, почему они выбрали FLOAT формат для своей игровой модели – все можно было реализовать и в целых числах. Одно только сравнение в FPU требует примерно 4-х разных команд подряд.

    Я говорил, что подбираемые темы имеют PickupType, меняющийся от 1 до 5. Однако в коде я нашел еще и 6-ой. Он точно был при деле, но явной реакции на подбор я так и не понял. Значение поднятого запаса пересылалось, возможно, в неиспользуемую переменную протагониста. Так вот я просто заменил это на выставление морального духа по максимуму. И тут можно сделать приятное автору игры – набожному христианину Vox Day. Ни что так не поднимает боевой дух как томик Библии, модельку которого можно взять из WiH.

    Функция формирования кода анимации она компактная и она же самая чувствительная к оптимизации, поскольку непрерывно крутится в главном игровом цикле. Пока я с оптимизировал две ненужные команды сравнения и переходов одной командой. Еще по графике возможно одной улучшение скорости, но в ущерб показу анимации попадания по персонажу. Возможно, как-то мне удастся убрать кратковременные мерцания персонажей изменением кода процедуры формирования кода анимации (виною тому – кратковременные сигналы с движка ИИ). Но тут я ограничен сложностью и количеством команд, чтобы не уронить FPS. Кстати места в процедурах – вагон. Когда мне впервые прислал автор недоделанную демо, я сразу обратил внимание на огромные заливки байтами 90 90 90 90 90 90 и CC CC CC CC CC в коде ехе-файла. Теперь это здорово помогает. Это заливки выравнивания между процедурами и функциями. В концах функций можно записать все что угодно новое.

    Пока не показываю изменения. Нужно все еще разок проверить, хотя сбоев вообще не было ни разу. Карту вокруг экскаватора нужно немного починить от недочетов. Надеюсь, еще кто-то следит за этим проектом. Поскольку работа выходит на совершенно новый виток развития. Повторюсь еще раз.... такого еще не было в истории игр!
     
    Gamerun, Tigoro, kreol и ещё 1-му нравится это.
  18. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    Ну вот, теперь версия 1.1 - это совсем-совсем другое....
    https://yadi.sk/d/51semrqmijxvk

    Изменения:
    - улучшены HUD за обе стороны
    - добавлена подбираемая тема, повышающая моральный дух
    - полностью изменена модель повреждений персонажей и протагониста
    - перенастроены raf-файлы
    - изменен формат рестарта уровня, чтобы не было сбоев выполнения событий raf-файлов
    - на убийство каждого персонажа выводится сообщение
    - изменены некоторые лестницы в экскаваторе (сделаны сломанными)

    Код исходного файла war.exe (28/09/1999, 1 372 160 бт) был подвергнут модификации:
    1. Изменён максимум здоровья с 200 на 100.
    2. Изменён параметр, чтобы при даже максимуме щита здоровье уменьшалось.
    3. Отключено влияние на STANCE со стороны движка ИИ.
    4. Реализовано изменение STANCE только от состояния здоровья для всех персонажей.
    5. Изменены константы уровня здоровья для изменения STANCE, STATUS и названия для состояний MORALE

    Код:
      |HEALTH |
      -------------------------------------
      |  |  STATUS  | STANCE  | MORALE |
      |  100-----------------------------
      |  | HEALTHY | STAY     | GOOD  |
      |  80------------------------------
      |  | HEALTHY | STAY     | GOOD  |
      |  60-----------------------------
      |  | WOUNDED | STAY     | OK  |
      |  40------------------------------
      |  | WOUNDED | KNEEL    | SHAKY  |
      |  32 . . . . . . . . . . . . . . .
      |  | WOUNDED | KNEEL    | SHAKY  |
      |  20------------------------------
      |  | WOUNDED | PRONE    | BROKEN |
      |  0-------------------------------
      |  |            DIED                |
      -------------------------------------
    
    
    6. Непосредственно при любом изменении состояния здоровья пропорционально ему меняются как 1:1 игровые параметры персонажей: ACCURACY, SPEED, RISKTAKING, OBSERVATION, LEADERSHIP. Результаты в явном виде однозначно заметны по первым двум из них.
    7. Добавлена новая функция управления протагонистом "Встать" - StandUp (F3). Чтобы встать в полный рост, нужно немного затратить запас морального духа.
    8. Добавлена новая функция управления протагонистом "Помолиться" - Pray (F4), при этом конвертируется моральный дух в здоровье с коэффициентом 1:1.
    9. Добавлен новый тип подбираемых предметов, который устанавливает моральный дух на максимум при подборе.
    10. Оптимизирована процедура формирования кода состояния анимации (убраны лишние сравнения и переходы).

    Тестировать лучше в 98, 2К, ХР. Специально, чтобы чувствовалась потеря скорости перемещения при ранениях, скорость протагониста при обычном шаге сделана медленной - пользуйтесь клавишей Alt (режим "Бег"). Переключение режимов стрельбы некоторых типов вооружения - клавиши [,].
     
    kreol и Gamerun нравится это.
  19. WERTA ФанатЪ O-G

    WERTA

    Хелпер Переводчик

    Регистрация:
    12 ноя 2006
    Сообщения:
    8.512
    @Dimouse, Вот англ. тексты

    English version, LDF team

    Situation

    Briefing

    Postbriefing WIN

    Postbriefing LOSE

    F1 Help


    English version, UN team

    Situation

    Briefing

    Postbriefing WIN

    Postbriefing LOSE

    F1 Help

    Final text

    Технически я лимитирован 20 строками текстового окна и 41 знакоместом в строке моноширинного текста. Но если убирать постоянно повторяющееся End of message, то места будет больше
     
    Последнее редактирование модератором: 14 сен 2015
  20. Dimouse King of Mice

    Dimouse

    Администратор Переводчик

    Регистрация:
    18 апр 2003
    Сообщения:
    35.153
    @WERTA, а можешь еще то же самое на русском?
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление