Terraria как посмотреть версию

Обновлено: 16.05.2024

В Террарию я играю около 2-х лет , изначально в мобильную версию ( 1.2, помните ещё её? ).

До, примерно, августа 2019 года делал это почти на постоянной основе, но потом забросил .

И вот, 5 июля 2020 года я впервые купил себе Террарию в Стиме, то есть впервые начал играть на ПК .

Но, к сожалению, компьютер у меня сейчас сломался, из-за чего пришлось скачивать мобильную версию.

Двадцать второе обновление (1.2.4.1)

Крупный багфикс, введены некоторые вещи.

Сорок восьмое обновление (1.4.0.1)

Пятьдесят второе обновление (1.4.0.5)

Исправление багов, оптимизация.

Сорок шестое обновление (1.3.5.2)

Десятое обновление (1.1.2)

Исправлены ошибки версии 1.1.1.

Сорок второе обновление (1.3.4.3)

Одно небольшое изменение в игре и исправление багов.

Сорок четвертое обновление (1.3.5)

Добавлены новые языки, исправлены баги и добавлена пара новых вещей.

История обновлений

Исправление багов, оптимизация, ребаланс предметов и мобов.

Тридцать первое обновление (1.3.1)

Большое обновление, улучшающее механизмы. Багофиксы, немного улучшен интерфейс.

Пятьдесят четвёртое обновление (1.4.1.1)

Исправление багов, оптимизация.

Тридцатое обновление (1.3.0.8)

Релиз Terraria для Mac и Linux.

Сороковое обновление (1.3.4.1)

Одно небольшое изменение в игре и исправление багов.

Тридцать шестое обновление (1.3.3.1)

Двадцать девятое обновление (1.3.0.7)

Бета-тест terraria версии для Mac и Linux.

Одиннадцатое обновление (1.2)

Исправлены ошибки версии 1.1.2, крупные изменения в геймплее и механике, огромное количество новых предметов и монстров, 5 новых боссов, новая музыка для старых биомов, новые природные объекты, и многое другое.

Шестнадцатое обновление (1.2.1)

Хэллоуинское обновление, исправление ошибок, добавление нового тематического контента.

Тридцать пятое обновление (1.3.3)

В основном направлено на пустыню и погодно визуальные эффекты

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


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

Двадцать первое обновление (1.2.4)

Сорок третье обновление (1.3.4.4)

Семнадцатое обновление (1.2.1.1)

Исправление ошибок версии 1.2.1.

Четвертое обновление (1.0.4)

Новые предметы, мобы и враги, изменены несколько старых. Исправлены некоторые баги.

Сорок пятое обновление (1.3.5.1)

Сорок первое обновление (1.3.4.2)

Добавлена возможность использовать текстур-паки и исправление багов.

Тридцать третье обновление (1.3.2)

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

Вступление

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

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

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

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

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

Сорок девятое обновление (1.4.0.2)

Тринадцатое обновление (1.2.0.2)

Исправление большинства ошибок версии 1.2.

Восьмое обновление (1.1.0)

Исправлены ошибки версии 1.0.6.1, добавлено куча новых предметов, монстров и боссов.

Пятидесятое обновление (1.4.0.3)

Пятьдесят третье обновление (1.4.1)

Добавлены титры, доступные после победы над Лунным лордом. Новый НИП - Принцесса. Новые достижения и предметы. Добавлен саундтрек Terraria: Otherworld и Journeys End в магазине Steam. Изменения баланса и исправления багов.

Седьмое обновление (1.0.6.1)

Исправлены ошибки версии 1.0.6, добавлена лесопилка и изменено несколько старых предметов.

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

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


Открываем 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.

Тридцать восьмое обновление (1.3.3.3)

Пятьдесят первое обновление (1.4.0.4)

Исправление багов, улучшение производительности.

Двенадцатое обновление (1.2.0.1)

Исправление критических ошибок.

Четырнадцатое обновление (1.2.0.3)

Корректировка баланса, исправление ошибок версии 1.2.0.2, добавление новых предметов.

Шестое обновление (1.0.6)

Добавлены новые предметы, враги и звуки, изменено несколько старых предметов, врагов и брони.

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

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

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


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


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


Результат:

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

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

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

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


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

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

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

Тридцать четвертое обновление (1.3.2.1)

Двадцать третье обновление (1.3)

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

Девятое обновление (1.1.1)

Исправлены ошибки версии 1.1.0, добавлен снежный легион, снежный биом, снеговики, подарки.

Сорок седьмое обновление (1.3.5.3)

Восемнадцатое обновление (1.2.1.2)

Исправление ошибок версии 1.2.1.1, добавление новых предметов, изменение старых.

Двадцать седьмое обновление (1.3.0.5)

Исправление ошибок. Добавлен новый предмет, с помощью которого можно призвать Лунного лорда.

Тридцать седьмое обновление (1.3.3.2)

Мораль

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

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

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

Двадцатое обновление (1.2.3)

Крупное юбилейное обновление, добавлены новые Нипы, предметы, возможности, исправлено множество багов.

Двадцать пятое обновление (1.3.0.3)

Исправление ошибок. Улучшена работа с инвентарём.

Двадцать шестое обновление (1.3.0.4)

Двадцать восьмое обновление (1.3.0.6)

Исправление ошибок. Понижение урона посоха призыва Stardust Dragon Staff.

Тридцать девятое обновление (1.3.4)

Небольшое кроссоверное обновление вместе с Dungeon Defenders 2.

Пятнадцатое обновление (1.2.0.3.1)

Исправление критических ошибок.

Пятое обновление (1.0.5)

Добавлены новые предметы и враги, изменено несколько старых.

Девятнадцатое обновление (1.2.2)

Рождественское обновление, исправление ошибок, добавление нового тематического контента.

Двадцать четвертое обновление (1.3.0.2)

Тридцать второе обновление (1.3.1.1)

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