Today, we are getting a bit technical. Actually, most of the stuff in this Immortal Redneck devlog is only interesting if you make games or you are interested in making them with Unity in the future. If you are working on a game, maybe you'll find our plugins list helpful. If that's not the case, here's a photo of a very cute kitty and a really bad joke to entertain yourself. In any case, enjoy!
Behavior Designer was our choice when we needed a solution to develop Immortal Redneck's AI. It was compatible with other AI solutions, with state machines and with Behavior Tree.
Before choosing BD, we tried Raid. It was free, and that was great; but we had lots of efficiency problems. Behavior Designer was a lot more compatible, had official support and we could work with a visual interface, not only with lines of code, which is always welcomed by programmers and artists equally.
We wanted enemies to move around scenes in their own, different patterns. Unity's default navigation system didn't let us move a navmesh once it was generated into a scene, so we looked for alternatives and quickly found and fell in love with A* Pathfinding.
This plugin let us create meshes a lot faster in execution time and integrated quite well with Behavior Designer, which was a great plus. We particularly had to make a few changes in certain areas so the meshes stayed with the rooms themselves. This wasn't strictly necessary, but it reduced loading times by a good margin.
Immortal Redneck's outdoors are the first impression you have of our game, so we wanted the place to be great and special. One of the first things we decided was that it needed a day and night cycle, even if most players won't stay long enough outside to watch it entirely.
After looking for a lot of assets, we opted for InstantGoodDay. It seemed like the best solution given our needs. We wanted to change every little detail of the animation so the cycle looked original and unique, and InstantGoodDay allows you to change every hour of the cycle. It has lots of values, from fog to lighting and also colors and stars in the sky. We worked a lot with it and we integrated StylizeFog by our own.
A huge effects library, with lots of post-processed stuff. At this moment, we are only using it for the transition from the outer camera in the main menu to the inside of the sarcophagus. Obviously, we'll use it with more stuff, like rapidly changing the rooms interiors and their mood.
We know DOTween from some time now. We started using it while developing OMG Zoo Rescue, and we loved it. This plugin let us code animations in a fast, easy way. It’s perfect for menus and UI, but also sprites and even models in 3D and cutscenes.
Also, Mobsferatu's intro and ending were made with DOTween, so that's how much we love and trust it.
Having empty folder is no such big stuff, but when you are working in a big game like Immortal Redneck and when you have a git repository it starts to get annoying. This plugin job is to erases all the empty folders without a constant use by any user. So even if that's not a big deal, it's a good way to keep your stuff tidied up.
I'm sure everyone making games has suffered an unexpected failure while working. Sometimes is your computer, sometimes is Unity and sometimes is something or someone else, like your cat. The outcome: hours of work lost in a fraction of a second. We've been there lots of times. So much crying...
Anyway, we looked for a solution and we found Editor Auto Save. It's the best plugin around for this: it saves every scene and project (along with all the modified prefabs) on regular basis and every time you do some specific action (like playing) so you don't lose much stuff if you forgot to pay your bills. Ahem.
Even though Unity 5 has improved a lot its audio systems, there are better alternatives outside the official channel. Since the beginning, our friends at Sonotrigger told us that we would probably have to use something else so they could do their magic work with Immortal Redneck's sound effects and music.
So we chose Master Audio. Not only it give us access to a lot of tool, but our main reason to use it was so the audio team could integrate everything easily in the game without a lot of programming work. It's about resources and managing our time.
Nested prefabs is one of the most requested features for Unity – that's why they are a part of the company's roadmap now. So, meanwhile, we had to find a third party solution, and we chose Prefab Evolution for Immortal Redneck because it's the most used and supported. Thanks to this asset we could use nested prefabs and reuse particles in different objects.
Sadly, we had some problems and we were not entirely happy with it. Immortal Redneck is a big game, and that didn't go well with PrefabEvolution. Compiling and testing are stealing us a lot of time, so if your game is not a little project, maybe you should make an unified system and made just for your needs.
That's actually what we are doing: we opted not to use it in the end and we are changing our workflow so we don't need so many nested prefabs and we can use our own tool in those cases we really need to do it.
Unity Input is one of the least advanced tools since the engine conception. With a big game like ours, we wanted a lot of flexibility with our control system and needed a lot of compatibility with PC peripherals. Thanks to Rewired, everything is made around actions and are mapped with each device. Also, since it doesn't have any native code, it would work in consoles if needed.
ShaderForge is one of the best assets we’d used and we can’t stop suggesting you use it. Working with shaders is our Achilles heel: we don't have a person specifically coding shaders. Thanks to ShaderForge, our artists started making shaders without programming knowledge and with really great results. For example, this is one of the shaders we've built in Immortal Redneck.
A fantastic asset so you can have, heh, stylized fog in your game. You can use gradient colors so it paints the fog with those tones, and you can even mix two colors. When you have InstantGoodDay too, you can build some cool scenes with fog, changing open areas and such. We're going to use it in Immortal Redneck indoors, too. That's how much we liked it.
A Unity classic. We've been using it since our first game with the engine (Ridiculous Triathlon) and it's been with us since then. If you need to make nice texts in Unity, we don't know a better tool than TextMeshPro. This plugin allow us to use words independently of their resolution and/or size and you can apply various effects (like shadows, outlines, gradients, glowing) easily. See those damage numbers? TextMeshPro.
(The hammer animation is ours, but the rest is UFPS)
UFPS helped us with Immortal Redneck's engine fundamentals. We used it in the beginning so we had a solid foundation that we could modify as much as possible. At this moment, we have changed everything in UFPS so it adapts to our most specific needs. We kept the procedural animations and event system, but excluding these, there's little stuff left. It's the best starting point if you are willing to build lots of stuff on it.
And that's it! What tools do you usually use? Should we try an alternative to ours? Hope you find this interesting, or at least not very boring. There's a lot of stuff going on behind a game when you build it, so taking a look behind could be great.