Fallout исходный код
Движок игры написан на PFSL. Все звуки/музыка/спрайты взяти из оригинальной FALLOUT2.
Далее информация с официального сайта. Я собрал все полезные посты разработчика в одном месте. Итак:
Итак, все по порядку. Начнем с системных требований.
OS (Операционная система).
WinMobile 2003, WM5.x, WM6.x
Стилус.
Обязательно.
Свободно памяти.
от 7 МБайт (все зависит от карты, которая загружена). Все упирается именно в ресурсы карты (обилие различных изображений, анимаций, объектов и т.п.)
Свободно места на флеш-диске.
от 30 Мбайт. В базовой поставке, ресурсы игры будут «весить» около 30 Мбайт. Дальше, по мере развития игры – ресурсы будут добавляться. ОЧЕНЬ рекомендую иметь флеш-карты с быстрым чтением ибо из-за медленности флешек игра на слабых процессорах изредка, но тормозит.
Графическое разрешение.
Как было неоднократно сказано ранее – в первом релизе будет поддержка разрешения 320х240. А следовательно, должна работать на разрешениях, больше чем 320х240.
Процессор.
Вот тут мы подошли к самому интересному. Для владельцев КПК с частотой процессора НИЖЕ 400 МГц (а таких около 27% — см. тут) есть хорошая новость и плохая.
Сперва, как водиться – плохая новость.
Оригинальные карты Fallout изобилуют множеством графических ресурсов, которые естественно приходится рисовать. Так вот, их на столько много, что на КПК с частотой процессора 300 МГц (при условии отсутствия ГРАФИЧЕСКОГО акселератора) будут выдавать в среднем не более 12 кадров/сек на более-менее открытых локациях (лес, большое скопление юнитов и т.п), и до 5 кадров/сек в закрытых локациях (пещеры, храмы, убежища).
А теперь – хорошая новость.
Скорость работы движка Pocket F.A.L.L.O.U.T. полностью зависит от карты, которая сейчас загружена. Если карта оптимизирована, на ней нет кучи одновременно отображающихся объектов, то на 200 МГц выдает аж 25-30 кадров/сек. Это можно будет увидеть на картах пустыни.
Если у Вас есть иммунитет к лени и Вы умеете ВНИМАТЕЛЬНО читать документацию, то Вы спокойно сможете создать/оптимизировать ряд локаций Fallout для своего КПК с 200 МГц на борту.
Я на своем iPAQ 2210 играю/тестирую на 400 МГц. Но для успокоения души и для обеспечения ПОЛНОГО отсутствия тормозов, при подгрузке изображений (у меня медленная CF-карта), я разгоняю проц до 472 МГц и радаюсь жизни.(слова автора порта)
Далее, про «легенды»
Дополнительные сведения
Как показывают финальные бетатесты, для нормальной работы не оптимизированных оригинальных карт, минимально необходимо 16 МБайт оперативной памяти.
Это означает, что минимальная планка свободной оперативной памяти равна 16 МБайт.
О редакторе скриптов и самих сриптах
Для тех кто не понял. Скрипты в Pocket F.A.L.L.O.U.T. представляют собой обычные текстовые файлы. Их можно редактировать ЛЮБЫМ текстовым редактором.
Редактор скриптов, которые является ЕДИНСТВЕННОЙ платной программой в данном проекте служит всего лишь для ускорения и оптимизации труда разработчика.
И покупать редактор или нет — это Ваше Святое Право и я на него не посягаю.
Как понятно из последних предложений, будет выпущен удобный редактор игры. По последним сведениям, для русскоговорящих пользователей данный редактор будет стоит 8,5$(покупать его не обязательно, т.к. почти все ресурсы игры — простые текстовые файлы, которые можно редактировать любым редактором текста).
Особенности грядущего релиза
Поддержка различных видео разрешений
Как многие уже успели прочитать, в первом официальном релизе будет поддержка следующих разрешений:
— Для Desktop версии (версия для настольного компьютера) будут поддерживаться любые виды ОКОННЫХ разрешений. Т.е. игра будет идти в окне Windows с любым разрешением (полноэкранный режим не поддерживается). Хотя Вы сможете настроить разрешение окна и на весь экран
— Для PocketPC версии (версия для КПК) будет поддержка ТОЛЬКО qVGA (320x240), но в полном экране.
Примечание
Карты от оригинального Fallout изначально были рассчитаны ТОЛЬКО для разрешения 640х480. И по этому на высоких разрешениях (больше чем 640х480) будут проявляться визуальные «костыли». Например – кусок горы, на карте Храма Арройо выглядит как кусок горы на разрешениях 640х480 и меньше, однако при больших разрешениях можно увидеть как эта гора была выстроена. См. скриншот, голубым квадратом показано как проходит видимая граница изображения на расчетных разрешениях, а красным прямоугольником – показано, как выглядит карта на высоких, не расчетных разрешениях. Т.е. гора на самом деле выглядит плоской «картонкой».
Выше описанное примечание является одной из причин, по которой поддержка более высоких разрешений ПОКА не будет.
Еще одна причина в том, что поддержка иных разрешений кроме как 320х240 является то, что координаты GUI объектов зашиты в коде. Пользовательские окна оформлены в виде статических изображений. Все динамические объекты «наносятся» на это изображения внутри кода движка.
Я конечно могу вынести все в скрипт, но процесс стандартизации кода скриптов (формирование методов, событий, прикручивание всего этого к движку) для всего графического интерфейса займет неопределенное количество времени, а раскрывать исходный код я не намерен.
Исходный код можно купить, стоимость вполне приемлемая даже для небольшой игро-разрабатывающей компании. О стоимости исходного кода можно будет говорить после релиза.
Т.к. основной приоритет, относительно видео разрешения, является qVGA (320x240), то весь пользовательский интерфейс (окно характера, инвентаря, стартовое окно и т.п.) имеют размеры в приделах 320x240 пикселей. Это не является «багом» это есть одна из малочисленных особенностей первого релиза.
Делать масштабируемый интерфейс напряжно, да и на разрешении 640х480 окна не плохо смотрятся. Все окна (за исключением окна пипбоя и карты мира) располагаются по центру экрана (на КПК все будет по центру экрана). см. сриншот GUI.
Следует заметить, что разрешение окна геймплея, в отличие от окон GUI, масштабируемо. Т.е. если пользователь установить разрешение (на Desktop версии) в 640x480 пикселей, то основное игровое окно (где ходит Избранный) будет иметь максимально возможное разрешение. См. сриншот “GUI”, на нем отчетливо видно какой размер имеет окно инвентаря, а какой размер имеет окно геймплея.
Основываясь на реакции одного из тестеров, я уже заранее могу предположить один из спорных вопросов, который может возникнуть после релиза. Это вопрос об алгоритме расчета кратчайшего пути или обхода препятствий.
В движке встроен «волновой» алгоритм обхода препятствий. Т.к. совсем не ясно какой алгоритм был использован в играх серии Fallout, я принял решение использовать самый простой и на мой взгляд, самый быстрый из алгоритмов такого рода.
В результате – юниты, при передвижении, обходят друг дружку и заранее определенные препятствия или ограниченные зоны (точки обхода – о них Вы узнаете из WiKi), но делают это по большей дуге, нежели так как это делалось бы в играх серии Fallout.
Обясню почему:
— Мне не был известен оригинальный алгоритм, по этому я взял за основу «волновой»
— Специфика движка способствует его всестороннему расширению извне. Волновой алгоритм как нельзя к стати влился в эту специфику без особых трудностей
— Волновой алгоритм, после некоторых оптимизаций, на самые длинные расстояния работает сейчас в 4 процессорных такта
И самое главное – я смог сделать РАСШИРЕНИЕ алгоритма обхода препятствий средствами скриптового языка (об этом подробно написано в WiKi).
Т.е. любой желающий может самостоятельно доработать имеющийся алгоритм используя инструментарий скриптового языка и предоставить его всем. И если это решение действительно будет стоящим (относительно логики) я с большим удовольствием внесу данное решение в базовый набор алгоритмов.
Кроме алгоритма обхода, в движке встроена Fallout-подобная модель формирования характера персонажа (та которая S.P.E.C.I.A.L.). Данная модель практически соответствует оригинальной, за исключением того, что в ней отсутствуют бонусы (громила, снайпер, расхититель гробниц и т.п.). Однако логику данных бонусов, при желании, можно организовать и на уровне скриптов. В классе «MapObject», описывающего юнитов локаций имеются ряд методов для расчета тех или иных параметров характера.
Так же в поставке первого официального релиза Вы сможете найти реализацию основных моделей в виде набора скриптов (будут расположены в папке игры \Resource\modules\user). Это позволит любому пользователю расширять/изменять любую из ниже перечисленных моделей.
А именно:
— Модель боя
— Модель воровства
— Модель использования вещей
— Модель торговли
— Модель навыков
— Модель случайных локаций
— Модель формирования городов на карте мира
— Модель формирования разговора с персонажами
Естественно, код скриптов читабелен и снабжен комментариями на русском языке.
Так же, никто не ограничивает пользователя в создании своей дополнительной модели (например можно сделать так, что бы из одного набора инвентаря создавать/совершенствовать оружие, навыки и т.п.)
В дополнение к выше сказанному в скриптовом языке будет существовать класс «MathModel» при помощи которого можно выполнять различные сложные математические расчеты (расчет длины пути, нахождение точки в полигоне и т.п.)
В данной главе, следует отметить еще то, что в грядущем релизе алгоритм боя разработан только для легких видов вооружения (кулаки, ножи, палки, копья и т.п.). Лично по моему мнению наличие огнестрельного оружия слишком упрощает процесс игры (особенно для «прокаченых» персонажей). Уж больно много на моей памяти было людей, которые любили стрелять в глаз собачки со снайперской винтовки, с расстояния футбольного поля.
Добавить огнестрельное оружие возможно, даже через скрипты. Тут уже Вам все карты в руки.
Разработка модов, расширение игрового процесса
Говоря нормальным языком – если Вы в школе/техникуме/университете учили бейсик или паскаль и хоть раз написали самостоятельно контрольную работу, и получили за нее выше среднего бал, то расширять Pocket F.A.L.L.O.U.T. Вам не предоставит особого труда!
Язык PFSL поймет не только взрослый, но даже – карапуз!
Файлы скриптов представляют собой обычные текстовые файлы. Их можно редактировать ЛЮБЫМ текстовым редактором.
Но лучше будет, если у Вас под рукой будет редактор скриптов PFScriptEditor (на правах рекламы blush ).
Локализация (перевод надписей GUI, диалогов персонажей на другой человеческий язык) происходит довольно быстро – надо просто перевести все *.txt файлы, которые расположены в папке Resource (будет такая папка в новом релизе) не меняя при этом ни одной строчки кода!
Так же на нашем сайте Вы сможете скачать БЕСПЛАТНО конвертер карт и ресурсов от Fallout 1,2. При помощи данных инструментов Вы сможете воссоздать полный мир Fallout у себя на КПК, или сможете попробовать сделать свою альтернативу Вашей любимой игры. Все зависит от Вас!
И помните, фраза из серии «я не программист, но хочу сделать. » относительно возможностей Pocket F.A.L.L.O.U.T. не уместна. Все можно сделать, лишь бы не лениться и уметь читать документацию, которая написана на русском языке.
Дальнейшее развитие проекта и перенос на другие платформы
Развитие проекта целиком и полностью зависит от интереса пользователей к нему. Мне и самому хотелось бы расширить ариал «обитания» проекта (не только WinMobile и Win32), но и другие платформы, такие как iPhone, PSP, Symbain. Более того, я хочу сделать КАК МИНИМУМ, поддержку мультиплеера (хотя бы через Bluetooth).
Дополнительные особенности
Далее, не будет авто карты уровня. Я ее убрал по причине того, что 9 из 10 игроков ей вообще не пользовались и тратить время на этот функционал, на мой взгляд — бессмыслено.
В целях экономии пространства и памяти была убрана система «этажей» на локации (она была в оригинальном Fallout).
Это ничего страшного, т.к. при переходе на другой этаж можно загрузить какую-нить другую локацию.
Т.е. сейчас одна локация = один этаж.
По этой же причине убрана анимация спуска по лестнице. Я долго думал над этим и все-таки решил убрать ее, т.к. она не несет никакой нагрузки, а хорошо подолбаться с ней надо было. Сейчас, для того чтобы «спуститься» в люк, достаточно установить точку выхода (что это такое будет описано в Wiki).
Далее, к сожалению я не успеваю реализовать сбрасывание вещей инвентаря на поверхность локации. Однако я оставил в коде «заглушки» для реализации данного функционала. Я думаю, если проект будет популярен, то этот функционал не заставит себя долго ждать!
В первом релизе игры, вещи можно будет брать/воровать из чужих инвентарей, ящиков, шкафов и т.п. Этого вполне достаточно для реализации всех возможный идей.
Хотелось бы поведать дорогим хабравчанам о таком замечательном проекте, как Fonline. Подразумевая, что здесь всё-таки IT сообщество, и многие имеют за плечами большой опыт как в девелопменте, так и в играх, я не стану объяснять, что такое Fallout, лёгший в основу этого проекта, благо за прошедшие годы с момента его выхода, это слово стало одним из тех, что знает практически каждый взрослый и даже ребёнок.
Несмотря на последний тренд с публикацией исходников различных старых игр, оригинальный, не побоюсь этого слова — легендарный Fallout и его продолжение, не стали одним из таких хороших примеров. И похоже, что этому не суждено произойти. Вместо этого, исходники легендарного проекта так и остаются в закромах Bethesda Softworks / Zenimax Entertainment, которые на данный момент являются полноправными владельцами всего, что так или иначе относится к Fallout IP (Intellectual Property), если не считать прав на издание оригинальных Fallout 1 / Fallout 2 и Fallout Tactics небезызвестным издателем Interplay, которому дозволено продавать вышеуказанные игры вплоть до 31 декабря 2013 года, после чего последние права на IP будут переданы Bethesda Softworks.
Однако, несмотря на трения, касающихся прав на этот проект, фанаты оригинальных игр не пожелали остаться с тем, что имеется на руках, и за многие годы, прошедшие с момента выхода игр создали огромное количество контента. Тут стоит остановиться отдельно, и заметить, что специфика многих фанатов старых игр, таких, как оригинальные Fallout такова, что они не приемлют того, что противоречит так называемому канону – информации, данной разработчиками (в данном случае, это преимущественно Black Isle Studios, реже — Obsidian Entertainment; Bethesda Softworks — практически никогда), и считающейся непоколебимой истиной, от которой нельзя отклоняться при разработке любого контента и дополнений к оригинальному сюжету. Ярким примером каноничной информации служит эксперимент «Убежищ Будущего» (Vault of the Future), а в противоположность ей – любые специальные встречи (Special Encounter), как например встреча с TARDIS Доктора Кто во второй части игры.
T.A.R.D.I.S. и Избранный.
Таким образом, фанаты оказались между двумя границами. С одной – технические ограничения, запрещающие какие-либо отклонения от стандарта, жестко вписанные в движок (hardcoded). C другой стороны – добавляемый контент, ограниченный каноном. В итоге мы имеем сообщество хардкорных фанатов, которых не остановили эти два ограничения. Однако даже в этом случае, совершенно новый контент крайне сложно создавать. Так например, для создания одного полного комплекта анимации нового персонажа Fallout 1 или 2, нужно вручную нарисовать приблизительно шестьдесят тысяч кадров, что конечно же — непосильный труд для любого человека, хотя бы потому, что если и задаться такой целью, то на это уйдёт в среднем 12-15 лет, при условии работы по 12 часов в сутки.
Имея на руках такой расклад, сообщество разделилось на две части. Первые использовали то, что имеется, главным образом создавая гибридные модели с использованием частей оригинальных моделей, всячески перекрашивая их и дополняя новыми комплектами уже существующие анимации. Другие же стали искать более радикальный способ решения проблемы, и вероятно, одной из вещей подтолкнувших их, стал публичный релиз предварительной демо-версии Fallout 3 от Black Isle (более известной код кодовым именем Project Van Buren), полностью отказавшейся от использования спрайтов в пользу 3D моделей. Последовавшее за релизом закрытие студии, ещё больше простимулировало фанатов начать изучать ресурсы имеющейся на руках игры. Напомню, что тогда Fallout 3 от Bethesda Softworks не только не была анонсирована, но и по-прежнему принадлежала Interplay, уже в то время испытывавшей определённые финансовые трудности, которые в последующие годы лишь усугублялись вплоть до сегодняшних дней, приведших в конечном итоге к распродаже значительной части, принадлежащей Interplay интеллектуальной собственности, такой как права на игры Sacrifice, Messiah и Fallout.
Тем временем, наиболее продвинутые фанаты, поняв бесперспективность мучений со старым движком, стали вести собственные разработки в данном направлении. В итоге, на свет появились два наиболее заметных представителя:
Первым стал FIFE Engine, целью которого изначально была возможность использования ресурсов оригинальных игр с целью создания проекта ориентированного на одиночное прохождение. Первоначальные релизы позволяли создавать то, ради чего и создавался движок, но в конечном итоге, проект остался не у дел, не был принят сообществом и был практически забыт. И хотя его разработка продолжается и по сей день – он не был использован для создания законченной игры, основанной на ресурсах Fallout.
Вторым, и гораздо более заметным представителем стал движок, получивший название Fonline Engine, первое время разрабатывавшийся с 2004 года преимущественно на территории стран СНГ, силами небольшой команды энтузиастов и развивающийся по сей день. Ключевой особенностью была возможность создания выделенного сервера, позволявшая играть одновременно до двух-трёх тысяч человек (при использовании весьма мощной серверной машины) с использованием оригинального и добавленного контента, причём список поддерживаемых форматов постоянно расширялся и дополнялся. С момента первого тестирования были развалы и воссоединения команды, многие люди уходили и приходили, но остановиться стоит, пожалуй, на трёх вехах истории:
Открытый Бета Тест – 3 (2009 — 2012)
Ставший первым действительно массовым событием, в котором приняло по разным оценкам до нескольких тысяч человек только в первый день, а сколько человек испытало на себе чувство ностальгии, замешанной на сумасшедшем PvP – не поддаётся исчислению. Уже сформировавшееся к тому моменту сообщество пользователей современных консольных игр и высокотехнологичных компьютерных игр, в большинстве своём не знакомое с основоположниками серии, было несколько разочаровано, поэтому тест быстро терял популярность, и уже через год, общее количество игроков исчислялось лишь несколькими сотнями. Казалось бы, нужно было закрыть тестирование, и продолжать вести его для ограниченной группы людей, но команда разработчиков решила иначе – тестирование велось чуть более 3 лет. За это время было внесено огромное количество изменений и дополнений, однако интерес постепенно угасал.
Релиз SDK (2010)
Спустя год после запуска тестирования, было принято весьма спорное решение – выпустить движок в комплекте с игровым сервером, представляющим собой продолжение идеи Fallout 2 в антураже додуманного будущего, через несколько лет после окончания основного сюжета оригинальной игры. При этом, хотя и разработчикам предоставлялся широкий спектр инструментов, таких как редактор карт, диалогов и возможность редактирования большинства скриптов – будущие разработчики испытывали определённые трудности разработки, связанные с языком Angel Script, а также с закрытостью исходников. Релиз вызвал всплеск популярности, и в кратчайшие сроки были созданы многочисленные клоны, во многом схожие с «серверами» Ultima Online, популярные в своё время. Были и самостоятельные разработки, такие как онлайновая реинкарнация игры Arcanum: of Steamworks and Magick Obscura (проект Arcanum Reborn: Riverrise), проект Desert Europe, рассказывающей на о противостоянии двух сторон на просторах пост ядерной Европы, а также проект What Remains, ориентированный на одиночное прохождение и один из немногих, активно применяющий 3D модели для окружающей среды, а также использующий многоуровневые строения.
What Remains
Arcanum Reborn
Desert Europe
Но как уже было сказано выше, разработчики испытывали определенные проблемы, будучи ограниченными в возможности внедрения собственных моделей персонажей с лёгкостью, с которой это делается в современных движках. И тут мы подходим к третьей вехе развития проекта.
Fonline 3D (2010 — ∞)
Проект, в самом своём начале задумывавшийся как простой перенос моделей из Project Van Buren и их адаптация для нужд разработчиков, стал гораздо большим, и перерос в глобальную задачу воссоздания всех моделей из оригинальных игр в таком виде, чтобы и они, и сопутствующие анимации имели минимальное количество отличий, при этом сохраняя такие плюсы использования объёмных моделей, как лёгкость разработки и внедрения в проект.
Со временем, был воссоздан практически весь оригинальный контент, были воссозданы многие оригинальные анимации в таком качестве, что на практике их весьма сложно отличить от оригинала, а также модели персонажей с различными типами телосложения и унифицированной развёрткой для всех моделей, для того, чтобы исключить выполнение одной и той же работы по текстурированию. Несомненно одно, проект ещё не окончен, и в ближайшее время мы намерены завершить его, дабы представить первый публичный релиз. Останавливаясь отдельно на этом моменте, я бы хотел отметить, что любого из уважаемых хабровчан желающих помочь проекту есть такая возможность, а поэтому я прошу заинтересовавшихся связаться со мной лично через любое указанное в профиле средство связи, и я с радостью предложу вам занятие в нашей уютной команде волонтёров. Ведь как говорится в одном расхожем англоязычном выражении — every little bit helps.
Windows (Visual Studio x64)
You could add dependencies manually but it is easier to use Conan.
First, set up your Conan profile to match your compiler or let conan autodetect your settings ( conan profile new vs --detect and use --profile=vs when running conan install ). Visual Studio 2019 profile should look like this:
If using VS2017 or building on Release then use: compiler.version=15 , or build_type=Release respectively.
To be able to download conan SDL2 packages, further configure your conan instance by introducing a new remote:
Then open 'Developer PowerShell for Visual Studio' and execute the following commands:
Or open and build the solution in Visual Studio instead of running the devenv command. If using VS2017 or building on Release then use: “Visual Studio 15 2017 Win64” , or devenv /build Debug respectively.
Put master.dat and critter.dat files into the falltergeist data directory, that is
or mount CD-ROM with original game, then run ./falltergeist on *nix or .\bin\falltergeist.exe on Windows.
This is a pretty highlevel roadmap to get to a playable game. The idea behind it is to step by step get closer to the full game.
Читайте также: