Search Unity

Портирование на Unity 5: нерассказанное путешествие Rust

, Ноябрь 19, 2014

Основатель Facepunch Studio’s Гарри Ньюман (Garry Newman) и его команда занимались портированием Rust на Unity 5. Как это было? Этот блог рассказывает о путешествии Rust. Вы осмелитесь отправиться в путешествие вместе с нами?!

Работая с Unity, я встретил много талантливых разработчиков, которые используют наш движок. Я помогал Facepunch Studios с портированием, и я думаю, что их опыт заслуживает внимания. Поэтому я задал Гарри Ньюману несколько вопросов.

Насколько большую роль сыграла Unity в успехе Rust?

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

Сколько потребовалось времени для портирования Rust на Unity 5?

Это заняло, вероятно, около двух часов, не было ничего действительно сложного. Unity обновляет весь наш код автоматически, в одно мгновение. Были некоторые проблемы с дополнениями из Asset Store, которые не обновлялись как надо. Мы уже наняли разработчика, и он обновил плагины за нас, так что проблема была решена.

В Unity 5 есть система, которая дает вам больше контроля над плагинами и DLL-библиотеками. Поначалу она нас немного напугала, но вскоре мы поняли, что просто не надо совать эти вещи в эти папки.

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

Но реализация новых стандартных шейдеров и системы освещения была длительным процессом?

Художники должны были понять, что из себя представляет новая система. Это новый способ работы, на самом деле. Они используют новый Substance Painter, потому что он более точный. После того, как они поняли все это, они получают лучшие результаты, и они тратят меньше сил для получения хорошо выглядящих сцен.

Screenshot_14

Что было первым, что вы хотели изменить в Rust с Unity 5?

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

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

Что вы думаете о других рабочих процессах в Unity 5?

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

Мы сделали серьезное улучшение по части аудио. Как вам, понравилось его использовать?

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

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

Какие функции Unity 5 произвели наибольший эффект на данный момент?

Обновление PhysX. В Rust мы продолжали использовать лимит в 65000 коллайдеров на наших серверах, поэтому нам пришлось использовать все виды хаков, чтобы объединить все эти коллайдеры вместе, поэтому это было очень медленно. Теперь нет никаких ограничений, это прекрасно. Новая система PhysX в целом, кажется, гораздо быстрее.

У нас было много проблем с физикой в Unity 4, например, нужно было добавить Rigidbody коллайдеру. Если вы передвинули статичный коллайдер, это добавляло задержку в полторы секунды. Теперь вы можете передвигать вещи как хотите, свободно. Это идеально подходит для нас, потому что я не поклонник хаков.

2014-06-27_20-06-45

Таким образом обновление PhysX помогает конечным пользователям, а также в процессе разработки?

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

Какие три основных совета вы бы дали тем, кто хочет портировать свою игру?

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

Проверьте свои DLL файлы и убедитесь, что настройки указаны прямо на них.

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

И последний вопрос: какие планы развития Facepunch Studio’s?

В основном это то, что мы делаем сейчас, ведь Rust — долгосрочный проект. Garry’s Mod уже почти десять лет, и мы делаем нечто подобное с Rust. Хотя у нас в работе есть несколько прототипов.

Вы хотите еще что-нибудь рассказать о Unity 5 или Rust?

Хочу поблагодарить создателей Unity за то, что они сделали нашу работу легче и веселее по сравнению с прошлым.

Rust — очень популярная игра, доступная на Steam для PC, Mac и Linux. Было приятно поболтать с Гарри о Rust, и я с нетерпением жду продолжение разработки с Unity 5.

2014-07-11_20-15-14

Комментарии закрыты.

  1. These comments need a downvote button.

  2. this program very good and amazing

  3. Garry could you elaborate how how feel would Rust be different if you had Unity5 from when you started the development? Are there things that were done because they made sense with Unity4 but don’t make as much sense in Unity5 (the article touched on the 65k physics collider limitation and the material shader changes, but are there others?)

  4. For me, one of Unity’s problems is its interface, icons and buttons are very small, as micro icons, micro buttons, should have an option to increase the size of icons, font and buttons.

    Another thing is the build for Android, which destroys my project, both the graphics as the project stops it from working again, I can not test it again.

    I do not know why it is not possible to export the terrain in a 3D format, as OBJ or DAE, I had to buy a plugin, which is also problematic, and prevents the project from being built.

    Then the Unity developers are asking us for new ideas and improvements, but do not move to do basic things like mesh exporter of the terrain.

    Stay delaying much that the competition will crush you guys.

    Wake up.

    1. For me, one of Unity’s problems is its interface, icons and buttons are very small, as micro icons, micro buttons, should have an option to increase the size of icons, font and buttons.

      Nice feature request for our editor team, thanks!

      Another thing is the build for Android, which destroys my project, both the graphics as the project stops it from working again, I can not test it again.

      Sounds like a bug, please report it.

      I do not know why it is not possible to export the terrain in a 3D format, as OBJ or DAE, I had to buy a plugin, which is also problematic, and prevents the project from being built.

      Then the Unity developers are asking us for new ideas and improvements, but do not move to do basic things like mesh exporter of the terrain.

      We are working on new Terrain system.

    2. You know there are only 1000 free terrain exports available. Just search on the forum or wiki. Hell, I wrote a simple OBJ terrain exporter myself in under an hour.

  5. Linux support is crap right now, Unity is so-so, I’ve played it at least. The UI over lay is a joke without limits though, for at least the past 2 months, it’s never made it past pressing start (After mousing over to even get it to appear) ever. Unity dies, and I have to kill the process. This is a terrible way to highlight a new engine, with a bloated piece of garbage software. What a joke.

    1. Tell ya what mate, why don’t you go download a copy of Unity and make something better than Rust, oh and when you’ve finished modelling, coding, animating, writing your server code and physics could you also make sure it runs absolutely perfectly on every operating systems on the planet with every conceivable variation of hardware, i’d be happy to post something rude on the bottom of your blog after I’ve finished pointing and laughing at what you produced.

      1. ^^^ Perfectly said mate

      2. AaronB you really made me very angry and then Marc Fielding you made me very happy!

  6. In other news, the authors talked about how awesome the PhysX speed enhancements are, giving you «free» movement that used to lag… and has notified us that the Materials and animations systems have different foundations.

    Does everyone just read the pictures? (Aside from the 2-3 others who mentioned the text)

    1. Yea, it seems that even some developers only care about graphics these days.

  7. I clicked on this blog post because i wanted to know more about a use case of porting from unity4 to unity5, not to see how bad a specific game looks

    I’m i worried about unity 5? yes I am, the GI is not as good as i would like for dynamic scenes and the updates are coming VERY slowly, unreal is progressing super fast nowadays and unity is looking less and less competitive. That said, this still is a good article with valuable information.

    And Rust looks pretty awesome to me. Cheers

  8. its a bit sad to read the comments all about the visual aspects although the blog post does mention the new standard shader a few times.

    Yeah it’s not all about visuals in this case, there’s many other aspects to Unity 5 other than the new graphics features.

    The blog post is supposed to showcase other great benefits of Unity 5 such as the PhysX update and also in this case how seamless the project upgraded to Unity 5 from version 4 despite 1000’s of code changes to our engine.

    Rust does look a lot better with the new features in unity 5 and also it’s still in Beta and Facepunch have done a great job releasing it as an experimental build at such an early stage.

    It’s only going to get better…

    More dev blog interviews will follow as well, one probably more directed towards the rendering side of things.

    1. I agree.

      People can be very jaded sometimes. I think Rust looks amazing.

      And the fact that the Facepunch devs were able to upgrade their project to Unity 5 so easily speaks volumes about how much effort was put in by the team at Unity to make this possible.

      Great work, everybody!

      1. Thanks :)

  9. Personally, I like the images and think they make the game look great. It doesn’t look like a photograph, but I am more than OK with that — I prefer it.

  10. Also two out of three images in the article lead to a 404.

    1. Fixed.

  11. And yet Rust still looks terrible. All this bloom and flares can’t hide the fact that the final rendered image looks as if someone rubbed a fat lump of soap all over the screen. A shame this fiasco is used to promote such a great update as Unity 5.

    Please, there are lots of great examples of terrific renders at the Unity Forums, take those!

    1. Would be a pretty good point if Unity was a graphics engine and not a game engine. But I guess the game is a terrible example of a game that has transitioned from Unity 4 to Unity 5 too though.

      1. Regardless, there are many excellent examples of what new shading and GI systems are capable of in the Forums. Some of those look simply stunning!
        It’s sad to see how some devs aren’t even ashamed to show THIS off in a success story. It’s year 2014, Unreal Engine 4 and Cryengine are stepping on Unity’s toes with their pricing and Unity needs more really AWESOME success stories.
        And yet they decided to slap this abomination and associate it with an upcoming U5 update. Why, oh why…

        1. If only this blog post was about the new shading and GI only, but isn’t. It’s about the upgrade process from Unity 4 to Unity 5. On what grounds do you consider this not a success story? Maybe for you it isn’t, but for them, it’s a highlight. Not to mention they got access to the first beta the day it was mentioned during Unite. As Garry stated, Unity is a game engine, not a graphics engine, and this blog post meant to discuss the overall upgrade and how easy and how smooth the upgrading process went. As long as Unity 5 isn’t out, don’t expect every owner to create something «awesome» as you consider just because it’s possible. Nobody is entitled. Success stories are not about «awesome» graphics.