Search Unity

Facepunch Studio’s founder Garry Newman and his team have been porting Rust over to Unity 5. How did it go? This blog post tells the yet untold Journey of Rust. Do you dare to journey with us?!

Working in the Unity field I get to meet lots of talented developers who use our engine. I’ve been supporting Facepunch Studios with the port and I thought that their experience was worth sharing. So I asked Garry Newman a few questions.

How big a part has Unity had to play in the success of Rust so far?

The only other engine I used was the Source Engine, which is like very different from Unity. You can change a texture, a material or a model and this instantly updates. Having 3DS Max or Photoshop open on another monitor making edits which is instantly reflected in Unity. This saves us about a minute of work. Over a span of 6 months that’s a massive deal for us. With the other engine, I would have to quit the game and reload it every time. Unity actually makes it fun to tweak things and you’re more likely to experiment just to find different ways of doing stuff.

How long did it take to port Rust to Unity 5?

It was probably about two hours, there wasn’t really much to it. Unity updated all our code automatically, in an instant. There were some issues with add-ons from the Asset Store that didn’t update right. We already hired the developer and he updated his plug-ins for us, so that problem was solved.

There’s a new system in Unity 5 that gives you a bit more control over plugins and dll libraries. At first, that freaked us out a bit, but soon we understood that it just means that we don’t have to put these things in these folders.

Of course, if you want to use the new shader system and stuff, you’ve got to actually go through all your content and update the materials and everything. If you want it to  look like Unity 4, you just update and it works.

But to implement the new standard shader and lighting system has been a longer process?

The artists had to realise that there’s a new system there. It’s a new way of working, really. They use the new Substance Painter, because it’s a bit more accurate with the actual inputs. Once they figured it all out, they are getting better results and they don’t have to work so hard to get good-looking scenes.

Screenshot_14

What was the first thing you wanted to change in Rust with Unity 5?

We wanted to see how good looking materials we could get, so we looked at making dynamic reflections and things like that to basically use all the new features in the new renderer.
It’s still an on-going process, we always go back to our materials and tweak. We will see a screenshot and see that it looks crap and we will update it.

What do you think about the other workflows with Unity 5?

It seems about the same really, though there are still some annoyances like adding events to animations. The audio stuff, that loads better. The material stuff seems a bit more complicated at first, but once you understand what the system is and how it’s working, it’s a lot easier. The new shading system is really good for making a material as you don’t have to choose a specific shader. If you want a normal map, you just add it and it works.

Touching on the Audio side of things, we have made a massive improvement there, how have you liked using it?

To be honest, we have only started using it. For now, we’re only using it to balance the volume for specific sounds like the footsteps. But it’s going to be useful moving forward when we start to add effects and things. I like that you can assign a variable to some of the parameters, it’s going to be really useful for volume controls. For example, if you’re in a cave, the sound will echo.

None of us are really audio guys, half the words on there we don’t really understand, but we will get to it.

Which Unity 5 feature had the biggest impact so far?

It was the PhysX upgrade. In Rust, we kept hitting the 65,000 collider limit on our servers, so we had all types of hacks to merge all these colliders together so it was really slow. Now there’s no limit now really, it’s perfect. The new PhysX system seems overall a lot faster.

We were having a lot problems with physics in Unity 4, for example, you had to add a rigidbody to a collider. If you moved a static collider, this added like half a seconds worth of lag. Now you can move stuff as you want and it’s free. It’s perfect for us because I’m not a fan of having hacky code.

2014-06-27_20-06-45

So the PhysX update helps the end users as well as development workflows?

Yeah, they probably don’t realise it, but it really makes a difference. For example, when you moved from one section to the other in the old Rust, you used to get a couple of seconds of lag when we rebuilt all the physics colliders. That doesn’t happen now, there’s a lot more freedom for us.

Are there three top porting tips you’d like to share?

There’s a good video on the new shading system that explains exactly what all the inputs are. You shouldn’t just try to eyeball it, as there are actual scientific values you can use.

Check your dll’s and ensure the settings are right on them.

There’s an upgrade guide on the beta page, which you should read as this pretty much highlights everything you need to do.

Final question, what’s next for Facepunch Studio’s?

Pretty much the same as we are doing now, Rust is a long term project. Garry’s Mod is nearly ten years old and we’re doing a similar thing with Rust. We have a few prototypes in the works though.

Anything else you want to share about Unity 5 or Rust?

Just thanks for making Unity I suppose, it’s just made our jobs easier and more fun compared to the old days.

Rust is a hugely popular game and is available on Steam for PC, Mac and Linux. It was a pleasure chatting to Garry about Rust and I look forward to it’s continued development with Unity 5.

2014-07-11_20-15-14

23 コメント

コメントの配信登録

コメント受付を終了しました。

  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. Christopher Pope

      11月 24, 2014 11:58 am

      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. Marc Fielding

      11月 21, 2014 1:06 pm

      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. Keenan Woodall

        11月 30, 2014 9:58 pm

        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. Christopher Pope

    11月 19, 2014 10:13 pm

    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. Christopher Pope

        11月 20, 2014 10:59 am

        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. Kristyna Paskova

      11月 20, 2014 9:09 am

      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. Garry Newman

      11月 19, 2014 8:18 pm

      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.