раст в реальной жизни
RUST В РЕАЛЬНОЙ ЖИЗНИ! Эксперименты РАСТ
Для просмотра онлайн кликните на видео ⤵
ВЕРТОЛЕТ ИЗ ХЛАМА СВОИМИ РУКАМИ из игры RUST. ЭкспериментПодробнее
Rust в реальной жизниПодробнее
ПРЕДАТЕЛИ! Помог Новичку ВЕРНУТЬ ДОМИК! Я стал НАЕМНИКОМ! CheZee. Rust | РастПодробнее
Раст Короткометражный Фильм Реальной ЖизниПодробнее
Мульт обзор Раст или анимация про выжывание и пвп растПодробнее
Йока! Как сделать реальную Йоку из RustПодробнее
Самодельный вертолет / homemade helicopterПодробнее
РАСТ В РЕАЛЬНОЙ ЖИЗНИ / RUSTПодробнее
Маяк из Раста в реальной жизни) раст, rust, рис.Подробнее
Как сделать Pipe Shotgun из игры раст Rust Pipe Shotgun.Подробнее
ASSAULT RIFLE (AK-47) ИЗ ИГРЫ RUST В РЕАЛЬНОЙ ЖИЗНИ! КАЛАШ НА 3Д ПРИНТЕРЕ.Подробнее
История Раст/Rust в реальной жизниПодробнее
Краткая история Rust: от хобби до самого популярного ЯП по данным StackOverflow
Rust — это язык системного программирования, создатели которого уделили внимание трем вещам: параллелизму, скорости и безопасности. И хотя Rust считается молодым языком программирования — его первая стабильная версия вышла в 2015 году — он разрабатывается уже более десяти лет.
Сегодня мы бы хотели заглянуть в прошлое и рассказать историю языка Rust, показать, как изменились его функции и возможности за время разработки и привести конкретные примеры внедрения этого ЯП на практике.
Личный проект (2006–2010)
Технология из прошлого, которая призвана спасти будущее от самого себя
— Грэйдон Хор (Graydon Hoare), разработчик Rust
Это одна из цитат Грэйдона Хора, которую озвучил Стив Клабник (Steve Klabnik) из команды разработчиков проекта Rust во время своей презентации на конференции ACM в 2016 году (слайды к презентации вы можете найти по ссылке, а для того, чтобы перемещаться между слайдами, используйте стрелки на клавиатуре). Эти слова хорошо отражают тот факт, что Rust — не революционный язык, имеющий передовые функции. Он просто включает в себя множество рабочих методов из «старых» языков (в том числе C++), повышая их безопасность.
Занимаясь языком, Грэйдон установил определенные правила. Он отмечал, что в первую очередь необходимо уделять внимание семантике языка, а работа над синтаксисом — это последнее дело. Поэтому в ранней реализации Rust ключевые слова были не длиннее пяти символов — язык был «кратким» и использовал такие операторы, как log, ret и fn.
Например, первый код на Rust, который увидел свет, выглядел так:
Как отмечает Стив Клабник, со временем это ограничение было снято: часть ключевых слов «удлинили», например, ret превратился в return, а часть заменили совсем. Для сравнения, в современной реализации языка вывод строки «Привет, мир!» выглядит так:
Также за время эволюции часть концепций и ключевых слов языка была убрана. Когда над языком работал Грэйдон, Rust был объектно-ориентированным и использовал оператор obj для описания объектов. Сейчас как таковое ООП языком не поддерживается, но Rust дает возможность реализовать многие его понятия с помощью абстракций.
Rust также работал с функциями параметрического полиморфизма. Концепции обобщенного программирования в языке сохранились и сейчас (оформление кода вы можете найти в этом документе), однако десять лет назад для обозначения типа параметров использовались квадратные скобки:
Самостоятельно над Rust Грэйдон работал на протяжении четырех лет. За это время ему удалось воплотить в жизнь примерно 90% задуманных функций (часть из которых имела довольно грубую реализацию). Среда для выполнения кода была завершена на 70%. Всего за это время Хор написал 38 тыс. строк кода для компилятора на OCaml.
Переход к Mozilla (2010–2012)
Я не считаю, что у языка должны быть какие-то главные особенности.
Он должен состоять из набора понятных и надежных модулей, которые хорошо «работают» в комбинации друг с другом
— Грэйдон Хор (Graydon Hoare), разработчик Rust
По прошествии четырех лет, Грэйдон решил показать свой прототип менеджеру в Mozilla. В компании проявили интерес к проекту, поскольку искали инструмент для перестройки стека браузера на более простых технологиях, чем C++. Поэтому в компании создали команду (во главе с Грэйдоном) для работы над Rust, который стал основой браузерного движка Servo.
Тогда движок Mozilla не мог полноценно работать с мультиядерными системами, поскольку имел однопоточные схемы обработки контента. Например, однопоточными были функции формирования содержимого окна и запуска JavaScript. Rust позволил разделить код рендеринга на мини-задачи, выполняемые параллельно и экономящие ресурсы центрального процессора.
Кроме ускорения работы за счет распараллеливания операций, Rust позволил повысить защищенность браузера. На тот момент Firefox был реализован на C++ и содержал 4,5 млн строк кода. C++ — это «точный» язык программирования, требующий повышенного внимания к деталям, поэтому ошибки программистов могли приводить к возникновению серьезных уязвимостей. Задачей Rust стало снижение влияния человеческого фактора с помощью компилятора.
В 2010 году разработчики языка сменили используемый до этого компилятор OCaml на компилятор, написанный на Rust. В 2011 году Грэйдон опубликовал сообщение о том, что компилятор сумел успешно «собрать» сам себя, а в 2012 команда Rust объявила о релизе альфа-версии компилятора — его документация была не полной, а скорость создания билда оказалась далека от идеальной, однако он уже поддерживал большинство функций языка и кросс-компиляцию.
Годы typesystem (2012–2014)
Наша целевая аудитория — «разочарованные разработчики C++»
В этот момент Грэйдон отошел от работы над Rust и переключился на другие проекты. Как рассказывает Стив Клабник, после этого система управления стала более «распределенной». Была сформирована федеративная структура, в которой за изменения, вносимые в разные части проекта, отвечала отдельная группа разработчиков.
Команда продолжила расти, и в ней стали появляться люди, разбирающиеся в сложных системах типов. Поэтому началось активное развитие typesystem, и все больше аспектов языка выносились в библиотеки.
Например, на ранних этапах Rust был реализован «сборщик мусора» (GC — Garbage Collector), который Грэйдон внедрил для повышения защищенности памяти. Однако потом разработчики пришли к выводу, что они могут обеспечить тот же уровень надежности с помощью системы типов, и от GC отказались.
Это решение также сказалось на системе указателей, используемой в Rust. До удаления «сборщика мусора» в языке было три основных указателя:
Период с 2012 по 2014 год — это время, когда сообщество Rust начало обретать форму. В нем образовалось три больших «лагеря»: пользователи C++, пользователи скриптовых языков и функциональные программисты. Их экспертиза повлияла на язык — постепенно он стал сочетать в себе парадигмы функционального и процедурного программирования.
В марте 2014 года также был сформирован RFC-процесс, который использовался для представления значимых изменений в языке. Решение строилось по образу и подобию Python PEP, и сейчас в нем сделано 3 тыс. коммитов. Причем в RFC попадает любое изменение, даже вносимое разработчиками. По правилам команды Rust, никто не может вносить крупные изменения, не обсудив решение с сообществом.
Релиз (2015)
Мы не знаем наверняка, что из этого получится
В начале 2015 года была выпущена версия Rust 1.0 Alpha. В ней стабилизировали ядро языка, развили систему макросов, и, наконец, закрепили за целочисленными типами int и uint названия isize и usize. В начале второго квартала того же года Rust 1.0 перешел в бету — к этому моменту репозиторий crates.io имел 1700 крэйтов (структурная единица компиляции), а количество скачиваний из репозитория превысило один миллион.
В мае 2015 года состоялся официальный релиз — Rust 1.0. Это ознаменовало начало стабильности. С этого момента все вносимые изменения должны были иметь обратную совместимость, что позволило использовать Rust в реальных проектах. Он начал находить применение в таких сферах, как game dev, веб-разработка и разработка операционных систем.
Переход в продакшн (май 2016)
Если язык хорош лишь в чем-то одном, то это — провал
В 2015 году площадка StackOverflow провела опрос среди разработчиков, в котором их попросили отметить, с какими языками программирования они работали и с какими хотели бы познакомиться. Тогда Rust занял третью строчку рейтинга. Однако годом позднее он переместился на первое место — 79% пользователей изъявили желание продолжить работу с ним.
Один из резидентов Hacker News назвал главными достоинствами языка прозрачность и простоту документации. Другие пользователи также отмечали открытость и доброжелательность Rust-сообщества, которое всегда готово помочь с изучением особенностей ЯП.
При этом многие разработчики решают продолжить работу с этим языком из-за его механизмов безопасности. Как сказал один из пользователей Reddit: «Программирование на Rust — это как паркур со страховкой и в защите; иногда это выглядит странно, но вы можете делать многие трюки, не боясь сломать себе что-нибудь».
С момента релиза стабильной версии Rust начался период его полноценного использования в продакшн. Одной из первых компаний, которые применили Rust в своем проекте, стала Mozilla. Часть «внутренностей» Firefox 45 для Linux были переписаны на Rust, а начиная с версии Firefox 47, Rust-код присутствует и в версии для Windows. Их Project Quantum, анонсированный в октябре 2016 года, также имеет в своем составе компоненты Servo.
Rust используется и в Dropbox — на этом ЯП написано ядро их продукта. Компания Dropbox создала свое новое облачное хранилище Magic Pocket, в которое перенесла информацию с Amazon S3. Изначально оно было реализовано на языке Go, но при больших нагрузках проблемой становилось высокое потребление памяти и низкая предсказуемость поведения кода на Go. Для решения этих проблем был частично задействован Rust.
В прошлом году использовать Rust для обработки пакетов JavaScript начали в npm. Rust помог исключить задержки в системе, работающей с 350 миллионами пакетов в день. Специалист службы поддержки npm Эшли Уильямс (Ashley Williams) рассказывала об опыте использования Rust на конференции RustFest в Украине. Видео вы найдете по ссылке.
Rust также используем и мы в компании Bitfury. На этом языке программирования реализован наш фреймворк для создания блокчейнов Exonum. Впервые мы представили платформу на конференции RustFest 2017, где показали её возможности и провели воркшоп, на котором продемонстрировали работу сервиса по созданию криптовалют (краткое руководство о том, как создать криптовалюту на Exonum вы можете найти здесь).
Реализация на Rust оказалась кстати при работе со смарт-контрактами. Благодаря этому умные контракты Exonum имеют большую производительность, чем контракты Ethereum (или Fabric). Код платформы полностью открыт и лежит в репозитории проекта на GitHub.
Rust также находит применение в сфере информационной безопасности. Такие проекты как Tor уже переносят часть кода на Rust.
В целом, сегодня Rust в своих продуктах используют 105 компаний. Полный их список (в котором также отмечена и Bitfury Group) можно найти на странице Friends of Rust на официальном сайте. И количество компаний, создающих программные продукты на Rust, постоянно увеличивается, чему разработчики языка очень рады.
Чего не стоит делать в Rust, если начали играть в 2021 году
Rust – это необычный симулятор выживания, который привлек к себе внимание огромное количество геймеров. При этом новички часто думают, что в этом проекте нет ничего сложного, и уже с самого начала делают все то, что и в других играх с элементами выживания.
К сожалению, Rust не отличается особым гостеприимством по отношению к новым игрокам, поэтому стартовать бывает довольно сложно. Перед вами подборка главных ошибок, которые делают новички, решившие поиграть в Rust в 2021 году.
Одному будет тяжело
Rust – далеко не самая лучшая многопользовательская игра для одного человека. Здесь есть несколько этапов развития, и добраться до каждого из них можно только за счет продолжительного гринда. Если играть в команде со своими друзьями, то вы гораздо быстрее достигните цели, чем в одиночку.
Также стоит отметить, что 99% других игроков не дадут вам мирно существовать в виртуальном мире игры. Вам постоянно придется отбиваться от обезумивших «дикарей», которые захотят отобрать ваши вещи и ресурсы. Естественно, ни у одного новичка не получится защитить себя от оравы более опытных игроков, поэтому лучше изначально залетать в Rust хотя бы с парой друзей.
Никому нельзя верить
Этот пункт частично противоречит предыдущему, но при этом он еще более важен. Прежде всего вам стоит забыть о том, что взаимодействие с другими игроками в многопользовательских проектах – это норма. Rust вообще не та игра, где нужно объединяться с незнакомыми людьми, чтобы вместе получить больше лута или ресурсов. Здесь вы можете рассчитывать только на себя, и если начнете доверять первому встречному игроку, то очень скоро поймете, почему этого нельзя делать. Особенно это касается товарищей с хорошей экипировкой, которых вы встретите на своем пути.
Дело в том, что в Rust каждый играет сам за себя, а опытные игроки очень часто обманывают новичков самыми разными способами. Незнакомец, который предложит побегать с ним по виртуальному миру и при этом будет носить броню заметно лучше вашей, скорей всего грифер. Это такой игрок, который при первой же удобной возможности просто вас убьет и заберет все вещи. Так что, начиная играть в Rust, никому не доверяйте!
Курс юного строителя
Если вы вдруг не знали, то в Rust есть строительство, и здесь оно играет довольно важную роль. При этом данная механика имеет ряд особенностей, которые придется изучить в самом начале знакомства с игрой, иначе ваши архитектурные «шедевры» будут попросту разваливаться, а вы впустую потратите ценные ресурсы.
Прежде всего стоит отметить, что у каждого строительного блока есть мягкая и твердая сторона. Во время строительства блок всегда нужно устанавливать таким образом, чтобы твердая сторона находилась снаружи будущего здания. Если не соблюдать это правило и размещать материалы как попало, то вашу постройку сможет развалить первый попавшийся игрок, причем с помощью обычного топора или кирки. Согласитесь, будет не очень приятно наблюдать за тем, как несколько часов ваших трудов кто-то разбирает по кирпичикам за считаные минуты.
Все вещи в одном месте
Огромное количество игроков в Rust вообще не уделяют время крафту. Они считают, что гораздо проще украсть готовые предметы у других пользователей, чем стоять у станка и пытаться что-то сделать. Именно поэтому в этой игре противопоказано хранить все свои вещи в одном месте.
Ни в коем случае не размещайте абсолютно все запасы на единственной базе, да еще и в конкретном помещении. В таком случае после случайного налета кучки любителей халявы вы потеряете абсолютно все. Конечно, вряд ли у новичка хватит ресурсов, чтобы построить себе 4-5 домов и правильно распределить по ним ценные предметы, но хотя бы попробуйте сделать что-то подобное. Неплохим решением будет на территории одной базы построить несколько «нычек» и распределить по ним ресурсы и предметы.
Не забывайте про аптечки
Если вы решите, что аптечки вам не нужны и со своим крутым автоматом вы сможете одолеть кого угодно, то Rust очень быстро вас разочарует. Здесь очень просто погибнуть, и иногда вы даже не будете понимать, почему это вообще произошло. В результате игрок, у которого было полно аптечек, просто завалит вас рандомной палкой и заберет тот самый крутой автомат.
Поставьте себе домофон
Если же вы не можете сделать кодовый замок или уже поставили везде обычные двери, то не делайте ключ. Пускай доступ к зданию будет только у вас. Отсутствие ключа гарантировано защитит ваши владения, даже если вы внезапно погибнете.
Не используйте факел
Дело в том, что свет от факела моментально привлечет к вам внимание других игроков. Часть из них будет гриферами, которые быстро прибегут на ваш «сигнал» и просто убьют. На этом ваш многообещающий забег в Rust просто закончится и придется начинать все сначала. Первое время лучше бегайте без факела и пытайтесь ориентироваться на карте с помощью своего зрения.
Вы всегда в опасности
Многие новички ошибочно думают, что после того, как они построят себе укрытие и обзаведутся хоть какой-то экипировкой, можно просто расслабиться и наслаждаться игровым процессом Rust. Этот проект не об этом, вы всегда будете под прицелом у других игроков! Причем если у вас вдруг все слишком хорошо и на это обратят внимание остальные пользователи игровой сессии, то очень скоро вас ждет набег незваных гостей.
Перестрелка – не самая лучшая идея
Некоторые новички в Rust почему-то считают, что это экшен-шутер, в котором прямо-таки необходимо ввязываться в перестрелки и каждую минуту показывать, кто здесь круче. На самом деле проект про выживание, и я вам гарантирую, что ваша беготня с автоматом закончится очень быстро, если вы вдруг решите, что можете держать всю карту в страхе.
Вот такие советы мы решили дать новичкам, которые только надумали залететь в Rust! Делая все эти вещи, вы гарантировано проживете в виртуальном мире игры чуточку дольше и при этом гораздо лучше узнаете все тонкости проекта. Главное, не забывайте всегда быть начеку, здесь нет зоны комфорта.
Учились у лучших
Сочетание зомби, создания предметов и выживания популярно далеко не первый год. У Rust, «тезки» одной из популярных сетевых карт для Call of Duty: Modern Warfare 2, есть сразу несколько источников вдохновения — помимо очевидной DayZ, это чуть менее явные Minecraft и S.T.A.L.K.E.R. Rust позаимствовала по несколько кусочков у каждой из трех культовых игр.
Из DayZ сюда пришли паранойя, буйные мертвецы и охота на животных, из Minecraft — строительство и создание предметов, необходимых для выживания в глуши, а также возможность отстраивать персональную крепость с колючими заборами. У серии STALKER, в свою очередь, позаимствованы радиация, вечная осень, романтика спальных мешков и встреч у костра. Только водки для постядерного антуража не хватает, но зато здесь можно отведать консервированных бобов, тунца из банки или куриной грудки, которую придется лично добыть с трупа забитой свиньи. Разработчики так нежно любят шутку про то, как в Rust из свинины получается курятина, что даже посвятили ей одну из коллекционных «стимовских» карточек игры.
Без риска умереть от укуса зомби
При всех заимствованиях Rust — самодостаточная игра со своим узнаваемым обликом. Симулятор выживания скрещен с классическим deathmatch. Ареной для драк служит большой остров, созданный разработчиками. Каждый игрок, впервые попавший на новый для себя сервер, начинает голым аборигеном. В руках — только крупный булыжник, которым можно добывать древесину, стуча по деревьям, и другие ценные материалы, дробя камни.
В особой цене здесь металлические детали, из которых собираются самые дорогие предметы: от амбарных замков и железных дверей до винтовки М4. По качеству предметы можно условно разделить на деревянные, каменные и железные. Материалы добываются просто: древесину можно собрать со специальных поленниц или рубя деревья, камни отламываются от больших валунов, а металл придется плавить в печи, расходуя низкокачественное, сваренное на коленке топливо.
► Взгляд на обманчиво безлюдный ландшафт с холма. и с вершины горы. |
Унизь ближнего
Основная задача игрока — выжить любой ценой, поддерживая на приемлемом уровне три ключевых параметра: здоровье, сытость и дозу полученной радиации. Здоровье соответствует «живучести» героя и теряется от выстрелов, укусов, ударов и падений даже с небольшой высоты. С сытостью чуть интереснее. Показатель неумолимо падает со временем, но в комфортных условиях (например, у разведенного костра) снижается медленно, а холодной ночью или во время активного бега от врагов — значительно быстрее. В игре встречаются радиационные зоны, в которых опасно задерживаться надолго. От радиации взгляд мутнеет, изображение расплывается на пиксели, а счетчик Гейгера шуршит, указывая на смертельную опасность и рост лучевой дозы в организме.
Но самую большую опасность представляют другие игроки. Эти негодяи обожают издеваться над новичками — просто потому, что способов полно. В Rust можно запереть игрока в его же жилище, заставить его раздеться и бегать голышом, сверкая причинным местом, или же посадить на специальную диету из сырого мяса. Апогей веселья показан в ролике, посвященном созданию братства Penis Brotherhood. И именно это привлекает множество игроков — море возможностей для глумления над остальными и так называемого «грифинга». В этом смысле Rust даст фору и DayZ, и Dota 2, и другим «неприветливым» играм.
► Стоило подкормить мясом двух этих «бомжей», как они решили отобрать все мои продовольственные запасы! Не стоило помогать злодеям, но понимание этого пришло слишком поздно. | ► В горах легко переломать себе ноги, пытаясь прыгать с кручи на кручу. Но куда опаснее бродить вдоль дороги, где поджидают опытные игроки с пистолетами и дешевыми винтовками рычажного действия. |
На самых популярных серверах играет по 150—170 игроков, и зачастую там творится натуральный беспредел — ни дать ни взять, «смертельный матч» ветеранов с автоматическими дробовиками и MP5 против тех, кто только-только собрал каменный топор и надеялся достроить стены в шалаше. С поведением игроков сложились реальные проблемы, поэтому играть в удовольствие проблематично. Выживать приходится в условиях вечных издевок, насмешек и постоянного риска потерять за секунду все, что копил сутками.
Урок №1: не оставляйте героя без присмотра!
Урок №2: в случае опасности не стойте на месте!
Урок №3: не лезьте туда, откуда не сможете выбраться!
Урок №4: далеко не все сторонятся радиоактивных зон!
Урок №5: если хотите выразить свою позицию, поищите лучше чертеж дробовика.
Урок №6: даже если помочь кому-то выжить, нет гарантий, что он станет с вами дружить.
Выглядит Rust до изумления неказисто, потому что создается на движке Unity и в основном использует стандартные библиотечные модели и текстуры. Но, несмотря на это, Rust для Гарри Ньюмена — золотая жила. Игра пользуется огромным спросом в Steam и в своей нише уступает по популярности только DayZ. Широкие возможности по мастерению всего и вся позволяют создать массу интересных штук: от кирки и отмычки до фонарика, гранат F1 и противорадиационных таблеток. И охотиться за другими обладателями мощной экипировки, нажитой тяжким трудом, — особое удовольствие.