Как делали terraria

Обновлено: 16.05.2024

Terraria — инди-игра в жанре песочница с элементами action-adventure и RPG. Выпущена студией Re-Logic в 2011 году. Главным героем является создаваемый персонаж, которому предстоит исследовать мир и стать героем Террарии, одолев Лунного Лорда (местное подобие Ктулху). В игре присутствует система крафта, благодаря которой ГГ сможет создавать себе броню, инструменты и прочие предметы. По мере создания ключевых предметов, получения каких-либо достижений или же побед над боссами, к жилищу героя будут прибывать дружественные NPC, которые будут помогать ему в прохождении игры. Несмотря на схожесть с другой известной песочницей, Minecraft, Terraria сильно отличается от неё в плане геймплея. Если Minecraft представляет из себя трёхмерную песочницу, где основной механикой игры является строительство и добыча ресурсов, то Terraria является метроидванией, где игровой процесс больше нацелен на исследование мира и битвы с монстрами.

Игровой процесс [ ]


Персонаж в биоме леса

Игроки начинают с создания персонажа, а затем мира. Имя персонажа и имя мира могут быть созданы самим игроком. Создание мира основано на случайной генерации, так что два мира никогда, как правило, не бывают одинаковыми. Игра начинается с появления игрока в середине своего нового мира, вооружившись для защиты медным кинжалом (деревянный меч в мобильной версии), медной киркой для добычи полезных руд, и медным топором для сбора древесины. Игроку затем предлагается собрать ресурсы (например, руды), построить базу для защиты от врагов, и в целом преодолеть различные препятствия игры. Подсказки, чтобы помочь прохождению игры предусмотрены в НИПе Гид, который возродится рядом.

Игра включает в себя широкий спектр возможностей. Игроки как правило, будут тратить свое время на изучение, создание вещей, сбор / создание элементов (в основном для расширения возможностей игрока), рыболовство и сражение с монстрами и боссами. В Terraria, игроки не привязаны к стремлению к какой то одной цели, и могут решить для себя, что выбирать. Одна из популярных целей состоит в том, чтобы сделать своего персонажа как можно более сильным и в конечном итоге победить боссов в тяжелейших события, таких, как Лунный Повелитель.


Персонаж сражается с пиратским нашествием.

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

Система времени в Terraria представляет собой систему игрового времени, час в которой, является минутой реального времени. Игра, однако, может быть приостановлена (в однопользовательской игре), но только если опция авто паузы включена в настройках. Кроме того, можно сохраниться и выйти из игры, когда это необходимо, и возобновить игру позже. Тем не менее, персонаж будет телепортироваться обратно к точке возрождения.

Terraria

Поддерживаются режимы одиночной игры и мультиплеера. Кроме английского, язык в игре может быть установлен на немецкий, итальянский, французский, русский и испанский языки. Игровой процесс имеет некоторое сходство с хорошо известной Minecraft и был частично вдохновлен ею.

Было объявлено, что продолжение, Terraria 2, планируется в будущем. Отдельный, официальный ремейк игры находится в стадии разработки и называется Terraria: Otherworld.

Содержание

Как делали terraria


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


1


4


1


1


7,803 уникальных посетителей
242 добавили в избранное









В начале Боги установили баланс. Они желали гарантировать справедливость для всех живых существ. Этот баланс должен был иметь первостепенное значение, не требуя при этом слишком больших затрат. Прошли тысячелетия до того, как Боги впервые начали воплощать свои идеи справедливости в жизнь. Для этого они создали бесчисленное множество миров, которые ныне существуют во вселенной Террарии. Каждый мир - разумное существо, которое знает всё, что происходит внутри него, и чувствует мысли всех живых существ. Цель этих великих существ - поддерживать баланс и справедливость любыми, порой жестокими, методами. Для достижения это великой цели они используют множество вещей. Самые известные среди них - Святые земли, Искажение и Багрянец.

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

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

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

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

Но увы, дриадам не удалось уничтожить Ктулху. Они лишь ранили его, вырвав ему глаза, части скелета и мозг. В конечном счете это заставило Ктулху отступить на темную сторону Луны, где он покоится и по сей день, накапливая силы для новой попытки захвата абсолютной власти. Дриады заплатили за это страшную цену - в живых осталась лишь одна из них, но и её никто не видел уже много веков.

Много времени прошло после Великой войны против Ктулху. Слухи говорят о Безумном Культе с Фанатиком во главе, который безуспешно пытается восстановить тело Ктулху и вернуть его в этот мир. Для осуществления своих планов культисты похитили известного Механика и заставили его восстановить недостающие части тела своего божества. Механик практически завершил свою работу, ему осталось лишь закончить Механический Мозг, чтобы вернуть Ктулху его тело.

Многие жители Террарии попали под влияние Культа. Среди них и старый портной, который был проклят, и теперь вынужден служить стражем Темницы - гигантской подземной крепости населённой нежитью. Те, чьи кости сейчас покоятся в Темнице когда-то мирно жили в процветающих городах. Но культ проклял этих людей, сделав их своими бездумными слугами. Они не смогли обрести покой, и только настоящему Герою суждено спасти их, и весь мир Террарии от порабощения.

Это подводит нас к вашему приключению. Оно начнется здесь, в мире, охваченном тьмой. Но вам не придется спасать его в одиночку. Вам всегда смогут помочь те, кто желает вернуть покой на свои земли. Мир привёл вас в это место в это время. Сразитесь ли вы чтобы защитить Террарию от неминуемой гибели?

Если руководство вам помогло и вы желаете поддержать автора вы можете сделать это с помощью новой системы наград.

Вы также можете прочитать другие руководства по Террарии за моим авторством

Версия для персональных компьютеров [ ]

Версия для персональных компьютеров является самой обширной, показывая почти все, что когда-либо введено в Terraria. Традиционно выпускается для Microsoft Windows, официальный релиз Terraria для Mac (OS X) и платформ Linux состоялся 12 августа 2015 года, дополнительно расширив компьютерную версию игры. Статьи на этой вики, которые касаются содержания исключительно версии для персональных компьютеров, будут отмечены

Минимальные системные требования: [ ]

  • ОС: Windows Xp, Vista, 7, 8/8.1, 10
  • Процессор: 2.0 Ghz
  • ОЗУ: 2.5GB
  • Место на жёстком диске: 200MB
  • Видео карта: 128mb видео памяти, поддержка шейдеров 2.0+
  • DirectX®: 9.0c или лучше.

Полезные ссылки [ ]

Содержание

Игра использует популяризованную Minecraft механику с «блоками». Игровой мир состоит из квадратных (поскольку игра двумерная) блоков различного материала — земли, глины, камня, снега, льда, руд металлов, кирпича и так далее. Персонаж может разрушать, подбирать, устанавливать и преобразовывать эти блоки. Теоретически, ничто не мешает персонажу уничтожить мир, попросту разобрав его на блоки. Другое дело, сколько это займет времени, а также необходимость обзавестись соответствующим инструментом: адский камень или стены Храма Ящеров медной киркой не сломать. Кроме твёрдых блоков есть жидкости, у которых даже есть упрощённая, но физика: они сливаются вниз, растекаются по поверхностям и так далее. Мир делится на области-биомы, для которых характерны определённые материалы поверхности и определённый состав монстров. Сам мир процедурно-генерируемый, т. е. генерируется программой каждый раз при создании нового мира, так что двух одинаковых игр не бывает в принципе.

После постройки дома придёт время для добычи руд металлов и прочих материалов, из которых можно крафтить себе инструменты оружие, броню, аксессуары. Система крафта в игре очень разветвленная, из многих сотен предметов как минимум половина является материалом для изготовления чего-то еще. Некоторые предметы, например стрелы и пули или зелья являются расходниками или просто потребляются в неприличных количествах, так что придется соорудить фермы для их генерации. Если немного подумать, то можно создать и фермы монстров нужного вида, для получения редко выпадающих предметов. Вообще, с добавлением в игру логических триггеров, внутри «Террарии» можно собрать хоть свой компьютер, хватило бы терпения.

В процессе поиска материалов для крафта придется не раз обежать поверхность мира и немало полазить по пещерам в его недрах. А где пещер не хватает — там их можно выкопать! Исследование мира составляет добрую половину игрового процесса. В некоторые участки мира впрочем, не попасть до выполнения определённых условий, например, победы на боссами. Первых своих боссов игрок встретит в Кримзоне или Порче. Это если игрок поспешит. Если не поспешит, то первым будет другой босс — Глаз Ктулху, и он не станет ждать, пока игрок явится к нему, а нанесёт визит вежливости первым. Финальный босс первой части игры, Стена Плоти, обитает в Аду, самом нижнем биоме мира, тянущемся от края до края. После победы над ней, мир перейдёт на новую сложность — хардмод.

В хардмоде появляются новые руды и оружие, приходят новые NPC. Добавляется третий особый биом — Святые Земли. «Злым» биомом они не считаются, там могут жить NPC, но это не делает добрее обитающих там монстров и не лишает Святые Земли способности заражать прочие биомы (кроме злых). Кстати, такой же способностью обладают и Порча с Кримзоном. Так что в хардмоде к прочим заботам добавляется необходимость ограничить распространение названных биомов, иначе можно остаться без тундры или пустыни, которые тоже бывают нужны. На смену боссам пре-хардмода приходят их механические версии. Вслед за ними игрок должен будет одолеть боссов джунглей, океана и святых земель, после победы над которыми возле Данжа появляются культисты. Когда культист и появляющиеся вслед за его гибелью Небесные Башни повержены игрока ждет неотвратимая судьба — явление Лунного Лорда. После победы над ним игра считается полностью пройденой.

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

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

К услугам этих персонажей приходится обращаться постоянно или же их наличие открывает доступ к каким-то принципиально новым элементам игрового процесса.

  • Гид. Первым встречает игрока появившегося в мире. Основная функция — рассказывать игроку для чего нужен показанный ему предмет и давать советы и подсказки. Для перехода в хардмод Гида придется принести в жертву, хотя он вернется как и любой другой погибший непись. Может отстреливаться от врагов из лука (а хардмоде — горящими стрелами). Презренный Джа-Джа игры из-за своих занудных советов, почему и удостоился «чести» быть принесённым в жертву ради призыва Стены Плоти. Тем не менее, один из самых полезных NPC и селить его лучше в своём основном доме.
  • Торговец. Появляется на запах денег, когда игрок накопит 50 серебряных монет. Продает широкий ассортимент товаров, в том числе практические обязательные для приобретения. Может бросать во врагов ножи.
  • Медсестра. Приходит если игрок поднял максимум жизней при помощи специального кристалла. Лечит и снимает дебаффы, во время кризисов делает это бесплатно. Может бросать шприцы, раня врагов и подлечивая союзников. Постоянно ворчит.
  • Механик. Рыжеволосая девушка, которую нужно найти связанной в Данже (её туда запихал Старик). Продает различные механизмы. В бою использует свой ключ как бумеранг. Её наличие открывает доступ к созданию электрических и механических устройств.
  • Гоблин-Инженер. Нужно найти связанным в пещерах после вторжения гоблинов (по его словам, его покарали собратья за то, что он наврал им где восток, а где — запад). Продает крайне полезный верстак для комбинирования предметов и кое-какие инструменты, а также перековывает предметы, придавая им случайный модификатор, что позволяет при наличии денег превратить сломанный и тупой меч в шедевр оружейного искусства. В бою бросает шарики с шипами.
  • Паромеханик. Для её получения нужно победить одного из механических боссов. Продает уникальные инструменты и механизмы, в том числе телепорты, логические вентили и Очиститель, необходимый для зачистки Порчи, Кримзона и Святых Земель. Вооружена заводной винтовкой. Её появление открывает доступ к созданию логических устройств.
  • Рыбак. Дрыхнет на берегу или вовсе на поверхности океана. Бессмертен (исчезает, а не погибает). Дает квесты на доставку определенной редкой рыбы, который нужно выполнить за день. Единственный NPC-квестодатель в игре. Кидается ледяной рыбой-бритвой. Обладает мерзким характером испорченного ребёнка, за что нелюбим почти всеми персонажами.
  • Трактирщик. Можно найти его без сознания где-то в мире, после победы над Пожирателем Миров или Мозгом Ктулху. Продает (в том числе за особую валюту) различные предметы для события Армия Древних. Бросает кружки с пивом во врагов.
  • Трюфель. Человек-гриб. Чтобы пришел, нужно в хардмоде искусственно создать на поверхности грибной биом, с домом в нем или рядом. Продает вещи связанные с грибами. Защищаясь, выпускает облако спор, ранящее врагов. После убийства Плантеры продает авто-молот, позволяющий изготавливать шрумитовые слитки.

Эти NPC продают антуражные предметы и игрушки или отдельные виды оружия.

  • Подрывник. Дворф. Приходит если игрок раздобудет любую взрывчатку. Продает различные виды взрывчатки или компоненты для нее. Бросается гранатами.
  • Дриада. Приходит после победы над одним из сюжетных боссов. Продает различные предметы связанные с биомами и растительностью, а также следит за состоянием мира. В бою создает ауру, которая укрепляет союзников и ранит врагов.
  • Знахарь. Ящер. Приходит после победы над Королевой Пчёл. Продает станок для алхимии, предметы для Призывателя и косметические фонтаны. Плюется из трубки отравленными дротиками.
  • Торговец оружием. Приходит если у игрока есть любое огнестрельное оружие. Продает оружие, боеприпасы и компоненты для них. Отстреливается от врагов из кремниевого пистолета или миниакулы. Пытается приклеиться ко всем девушкам, но, видимо, удалось только с медсестрой.
  • Маляр. Приходит если в поселении игрока живет четыре любых непися. Продает краску, инструменты для покраски и картины. Стреляет из пейнтбольного пистолета.
  • Торговец красителями. Приманивается наличием ингредиента для красителя в инвентаре. Продает специальный чан для изготовления красителей и сами красители, также меняет странные растения на уникальные красители. В бою размахивает саблей.
  • Портной. Нужно победить Скелетрона и освободить Старика от проклятья. Продает различную одежду. Нужно принести в жертву, чтобы сразитсья со Скелетроном еще раз. Запускает во врагов пылающие черепа.
  • Зоолог. Девушка-Кицунэ. Для появления нужно заполнить бестиарий на 52 существа. Продает предметы связанные с питомцами, маунтами и прочей живоностью. Царапает врагов когтями.
  • Гольфист. Старший брат Зоолога. Нужно найти в Подземной Пустыне, где он играет в гольф. Продает различные аксессуары для гольфа. Кидается мячиками для гольфа.
  • Стилист. Нужно найти ее в гнезде пауков и освободить от паутины. Меняет прическу персонажа и продает краску для волос. Тыкает врагов ножницами.
  • Тусовщица. Появляется когда собирается веселая компания в 13 неписей. Продает различные вещи для вечеринок. Кидается веселыми гранатами (ослабленная версия обычных).
  • Волшебник. Нужно найти связанным в пещерах в хардмоде. продает товары связанные с магией. Обороняется заклинанием Огненного Цветка.
  • Сборщик налогов. Нужно в хардмоде найти в глубинах Ада Терзаемую Душу и очистить порошком, который продает Дриада. Собирает налоги с других жителей и отдает игроку. Колотит недругов тростью.
  • Пират. Приходит после отражения пиратского вторжения. Продает вещи на морскую тематику. Стреляет из ручной пушки.
  • Киборг. Для появления нужно одолеть Плантеру. Продает тяжелое вооружение и наниты. Вооружен ракетами.
  • Санта-Клаус. Появляется после победы над Снежным Легионом, но только с 15 по 31 декабря (На 3DS 1 декабря — 15 января), после чего тает. Продает вещи с рождественской тематикой. Кидается елочными шарами.
  • Странствующий торговец. Не заселяется, а иногда приходит днем и уходит вечером, при наличии двух НПС. Продает случайный набор экзотических предметов. Вооружен револьвером. в хардмоде переключается на импульсный лук.
  • Скелет-торговец. Встречается в пещерах, в зависимости от фазы луны продает аксессуары для йо-йо и снаряжение для подземелий. Обороняется бросая во врагов кости.
  • Старик. Бродит возле входа в Данж, если поговорить с ним ночью то он превратится в Скелетрона.
  • Принцесса. Приходит если в поселении игрока живут все остальные неписи (наличие Санта-Клауса не обязательно). Продает одежду, аксессуары и предметы декора с принцесской тематикой. В отличии от других неписей не имеет предпочтении по соседям (любит всех и все любят её) и по биому. Также, в отличии от других, любит жить с большим количеством соседей (3 и более), но очень грустит, если соседей мало.
  • Глаз Ктулху. Гигантский летающий глаз. Обладает настырным характером и пока игрок его не убьет будет регулярно появляться по ночам сам, хотя и не в самые первые ночи.
  • Пожиратель Миров Обитает в Порче. Выглядит как гигантский волосатый многоглазый червь. Появляется после уничтожения каждой третьей сферы теней в глубинах Порчи.
  • Мозг Ктулху. Аналог Пожирателя. Обитает в Багрянце (Кримзоне). Выглядит, собственно, как летающий мозг. Появляется после уничтожения каждого третьего живого сердца.
    • После уничтожения каждой сферы или сердца есть шанс падения метеорита, а с боссов выпадают предметы, необходимые для изготовления демонитового или кримтанового снаряжения, без которых победить следующего босса будет непросто. Когда сферы или сердца закончатся, боссов всё равно можно призвать при помощи специальной приманки. Впрочем, приманки есть и у всех остальных боссов.
    • Король слизней. Первый босс в игре. Может появиться сам, если игрок находится у края мира.
    • Королева пчёл. Первый босс Джунглей. Появляется, если уничтожить кокон в улье.
    • Механические версии трех главных боссов дохардмода — Близнецы (Глаза Ктулху), Уничтожитель (Пожиратель Миров) и Скелетрон-Прайм (Скелетрон). Выглядят как копии соответствующих боссов из металла, обладающие дополнительными способностями и увеличенным запасом жизни. Глаз, к тому же, теперь появляется в двух экземплярах с разными способностями, а Скелетрон отрастил ещё пару рук.
    • Плантера. Босс джунглей. Выглядит как летающий зубастый цветок. После её убийства появляется возможность войти в Храм Ящеров.
    • Голем. Босс Храма Ящеров. Собственно, огромный каменный голем, которого придется убивать по частям. После смерти Голема у входа в Данж появляются культисты-лунатики.
    • Культист-Лунатик и Небесные Башни. Предфинальные боссы. Смерть Лунатика запускает финальную цепочку событий, ведущих к появлению Лунного Лорда. После смерти Лунатика в четырех местах мира появляются висящие в воздухе Небесные Башни, вокруг которых постоянно появляются очень опасные монстры. После уничтожения башен появляется:
    • Лунный Лорд. Это финальный и сильнейший босс игры, согласно сюжету — братец Ктулху. Выглядит соответсвенно. Победа над ним означает формальное завершение игры.
    • Королева слизней. Хардмодная версия Короля слизней, вызывается в Святых Землях.
    • Герцог Рыброн. Гибрид свиньи и рыбы.
    • Императрица света. Второй босс Святых Землей, один из самых сложных боссов в игре.

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

    Terraria: или пишите игры правильно


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

    Консольная версия [ ]

    Консольная версия Terraria кажется (по состоянию на январь 2015 года)менее обширной, не имеющая множество функций, доступных в версии для персональных компьютеров и мобильной версий. Она работает на PS3, PS4, Xbox 360, Xbox One, PlayStation Vita и 3DS. Статьи на этой вики, касающиеся эксклюзивной версии для консолей, будут отмечены

    Полезные ссылки [ ]

    Вступление

    Начнем, пожалуй, с того, что такое Terraria и как она появилась.

    Феноменальный успех неизменно пребывающей в разработке «песочницы» Minecraft, уже принесшей Маркусу Персону миллионы, не мог остаться незамеченным. Так и случилось, вскоре появляется на свет Terraria. Занимается разработкой один единственный человек, Эндрю Спинкс, главный дизайнер и по совместительству не менее главный программист.

    При взгляде на здешние «восьмибитные» пейзажи услужливое подсознание сразу спешит навесить ярлык «Minecraft в 2D». А что? В рюкзаке — кирка и топор, вокруг — случайно сгенерированные просторы. Цель — копать, строить, убивать, добывать.

    Больше вы можете узнать, почитав специальные статьи об этой игре. Ну а хабр требует технической информации.

    Как оно работает?

    Покупка [ ]

    Terraria приобретается через едино разовый платеж. После покупки обновления бесплатные. Цена отличается от версии игры (см ниже), но обычно находится в районе от $ 5-20 USD. При различных продажах цена иногда снижается до $ 1.99. Некоторые платформы также предлагают пробную / демо-версии.

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

    Terraria доступна на персональных компьютерах, консолях, 3DS и мобильных устройствах.

    Изучаем саму игрушку

    Купив игру, поиграв в нее около двух недель со своими друзьями — она мне немножко наскучила, я решил более детально изучить её структуру. Как особенности структуры — можно использовать в своих целях.


    Открываем Terraria.exe, ищем точку входа Main (Program):

    Видим забавные строки:


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

    Для того, чтобы обойти эту «безопасность», достаточно подменить steam_api.dll (откуда импортируются функции) или же можно пересобрать приложение, закоментировав соответствующие строчки. Ведь сам Steam никак не влияет на игру, кроме того, что добавляет туда свой Layout. Но мы пойдем более интересным способом и попробуем даже влиять на саму игру.

    Вспомним, что игра написана с использованием — XNA, а значит, у нее должен быть главный класс игры, который наследуется от Microsoft.XNA.Framework.Game, далеко идти не пришлось, это класс Main.

    Любая игра, написанная на XNA, имеет в себе, так называемые «компоненты», которые можно туда добавить. Компоненты могут быть как обычными (логика), так и графическими (Drawable).

    А теперь давайте подумаем, что можно сделать?

    Главный класс у нас Main и он имеет модификатор public (public class Main: Game )!
    Чем это грозит? Мы можем создать новое приложение, которые будет импортировать наш Terraria.exe в качестве библиотеки и запустит её, а дальше — можно добавить свой компонент игры, и этот компонент будет иметь почти полный доступ к игре.

    Пройдясь еще по всяким классам, увидим, что основная идея этих классов — это индийская версия синглтона статический доступ, который, кстати, тоже public.

    Стоило бы придать главному классу модификатор доступа отличный от public, как все бы у нас провалилось.

    Потом, я еще раз взглянул на класс Main, у него отсутствовал модификатор sealed, что так же доставило и упростило мне жизнь. Идея стала куда проще: просто унаследоваться от нашего Main.

    Мобильная версия [ ]

    Мобильная версия включает в себя некоторые функции, доступные в консольной версии и версии для персональных компьютеров, а также введены некоторые уникальные мобильные эксклюзивы. Мобильная версия работает на Android, IOS, и Windows Phone. Статьи на этой вики, касающиеся мобильной версии, будут отмечены

    Полезные ссылки [ ]

    Практика, пишем код

    Создаем новое консольное приложение, подключаем в качестве библиотек Microsoft.Xna.Framework.*, Terraria.exe.

    Теперь создадим класс, который будет наследоваться от Main:


    Теперь идем в точку входа и заставим запустится наш игровой класс:


    Ну и нарисуем что-нибудь, добавим в наш переопределенный Draw:


    Результат:

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

    Ну и напоследок сделаем что-нибудь эффектное, какой-нибудь хак.

    У игрока террарии есть одно интересное свойство: ghost, которое превращает игрока в каспера приведение и позволяет проходить сквозь стены и летать по миру (наверняка, фишка для девелопера). Так сделаем же так, чтобы при нажатии и удержании Left Shift — игрок становился злым и коварным.

    Идем в метод Update:


    Запускаем игру и становимся приведением по клику на шифт:

    Как вы понимаете, рисованием текста и другим преферансом — дело тут не ограничивается, на игру можно влиять почти полностью, отдельно надо сказать про кривость синхронизации мультиплеера — все эти изменения им не пресекаются и дают играть на серверах с этими хаками.

    Отдельно хочется сказать про класс Player, где есть функция Save/Load, которая позволяет сохранять и загружать игроков соответственно, принимает и отдает она сам класс игрока Player. Т.е. мы можем изменить игрока чуть менее, чем полностью, сохранить его и использовать в игре. Или же, например, сохранить всех игроков на сервере в файлы, а потом закинуть их в папку Players и играть ими.

    Мораль

    Всегда используйте модификаторы доступа как надо, а классы, которые конечны — sealed (запрещает наследование). Для таблетки от паранойи верности можно еще и обфусцировать код.

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

    Эта статья писалась исключительно в ознакомительных целях: как на примере простых модификаторов — можно написать нехилый хак.

    Читайте также: