★ TouchArcade needs your help. Click here to support us on Patreon.

Insights in the dev process of two Indies - Tops and Downs

06-23-2017, 10:35 AM
Joined: Jun 2017
Posts: 3
Insights in the dev process of two Indies - Tops and Downs

Hi all,

I'm new here and we (my brother and I) would like to start a series of blogs about the development process of our game, Deadly Labs, in this thread, to help other developers by showing the problems we ran into, which tools we used and how we worked to solve them. The game is still under development until Q4 / 2017. Please let me know if this is something you would be interested in, whether this is the wrong forum section and so on!

We will go through specific topics for each new post, including animation, modelling, texturing, analytics and what else that could help other indies gaining some inspiration.

On this first post we would like to introduce our studio, a quick look behind the scenes of what Rebound Games is all about. We will follow up with technical stuff on the next post. So let's get into it.

We got into game development in 2012 and had to learn everything from the beginning - we decided to stick with Unity and Blender as foundation for that. We quickly realised that even though Unity is a very powerful engine, its features weren't enough to fulfill all our needs for specific game types. So we learned to create them on our own, and later sold them as Unity Assets. That led us to the founding of Rebound Games in 2013.

This is Michael's office, located in Balingen, Germany. Working on Deadly Labs. We had to test it on different devices, therefore the desk looks like a mess. Most of the time we work in our own homes. Once a week we meet for a dev session, because we found it very helpful and extremely productive, talk about how we approach things and focus on a specific topic together. It is also an important factor for motivation to meet every once in a while and encourages to finish what we started.

That's Florian's flat in Metzingen, Germany. It's about 45 minutes drive from Balingen. (Left: Michael, Right: Florian). On this pic we're playing around with the Oculus and Gear. Which have also great Unity support in current versions, btw.

What you will get from this blog series

Game Design is one of the most versatile arts in the world. There are so many things to think about before you even start. We want to show you our approach for getting things done in an appropriate way. First off, there is planning.

F.I.: Deadly Labs is supposed to be a mobile game. Therefore, if you look at the picture above, there are several difficulties to overcome. Because mobile devices are much weaker than a PC, so you have to use as few resources you possibly can. We used different techniques to get this result:
  • - Baked Lightmapping
  • - Baked Reflection mapping
  • - Custom Shaders, f.I.: for the glowing lamps, which are planes with emission. The Standard Unity shaders were too expensive so we had to make them significantly smaller. Also for the characters and lots of other stuff
  • - Low Poly models for objects
  • - Custom Level Designer scripts that put everything in it's place, so we don't have to start from scratch in each new level
  • - Adaptability for each object, because they have to work in each level under different circumstances
  • - Light weight particle effects
  • - Garbage collection and respawning for those and other objects, like shots, characters
  • - Use of Box Colliders wherever possible, to keep good performance

To call only a few. There's also another asset that came out of this game for making tutorials for an individual type of game. The tutorial for Deadly Labs was first written by plain C# code, which was very impractical as the project was growing. So we made the Tutorial Designer which was later used for cutscenes, too:

In the upcoming posts we will pick a specific topic and get into them more deeply. I hope you found it inspiring so far. You can also ask questions here or in our social channels for an open discussion! Thanks for reading! More to come soon.

We are looking for beta testers too!

Last edited by Rebound Games; 06-23-2017 at 10:52 AM.
07-03-2017, 12:04 PM
Joined: Jun 2017
Posts: 3
Insights in the dev process of two Indies - Tops and Downs Part 2

Today we want to show you how we combined Unity's tools to create a very unique core mechanic in Deadly Labs. This post is supposed to show that thinking outside the box can have some funny results, and that every standard tools can be used in a non-standard way. Because that's what makes a thing interesting, right?

A video tells more that 1000 words, so here is what we targeted:

Our goal was to switch between normal walking creatures, animated by Unity's Mecanim system - and once they were hit, they should be on their own with the physics engine, adjusting forces to its limbs in order to keep balance. Also move the legs like a human would do, to avoid falling down and gain stability.

As you see in this pic, the Animation setup is pretty basic. Walk and attack. We also added an animation controller for facial Animation, because that's more comfortable than coding everything, but it doesn't control the body, only morphing mesh values for the face.

Very minimalistic Animation Controller. We wanted to let most of the animation be completely controlled by physics, so you never have the same result. We thought randomness would make the gaming experience much more interesting, as you never know what's going to happen when you shoot enemies. Sometimes they stay on their feet, they fall down somewhere or they are smashing against objects that are also physics controlled. So you can play the game more than once and it will be different every time.

Basic workflow for a broodle is:
  • - Throwing fluid objects into the barrel (walk and attack animation)
  • - Get new objects out of the container in the back (also walk and attack)
  • - Repeat that until the barrel explodes

When the broodle was hit by a shot, it disables the Mecanim Controller and enables the Ridigbodies of all limbs. It's now up to the broodle what happens next. Since this is a mobile game, it has only box colliders to keep the performance as high as possible. Luckily this didn't affect the natural movement of the character at all.

You may notice the StandUpFromBack and StandUpFromBelly animation clips in the Inspector above. This is because if the character can't stay on its feet, it falls down to the ground, so it has to get up while keeping the movement naturally. I mean, we could just create a flash, vanish it and put it back on its feet. But this seemed like cheating to us, so here is what we did - workflow for beeing shot down and standing up:

  • - Ragdoll falls to the ground, all limbs somehow rotated
  • - Blending Animation Coroutine: Rotate all limbs to default over 1 sec duration
  • - If he is on its back -> trigger StandUpFromBack, if he is on the belly -> trigger StandUpFromBelly.

Here is the result:

Finally here is a quick preview of the code that keeps the creature on its feet while the ragdoll system is active. It is triggered during the FixedUpdate event, because that's when the physics system also refreshes. This is important to keep in mind when working with different modules, you don't want to execute code redundantly as it would affect performance and cause errors.

If you think this is burning down a mobile phone, it really isn't. I still have an Android phone from 2013 and even there it is running without issues. Physics in Unity are very optimized, if you use a lot of box colliders, you shouldn't have problems. The most important thing to consider in terms of mobile performance in my opinion are shaders. But more about that in another blog post.

I hope you liked this post and hopefully it helps boosting your creativity for using tools in an unorthodox way.
07-06-2017, 11:08 PM
I haven't finished reading yet but a lot of info already, and what you guys creating looks very interesting!
cannot wait to see more!
totally appreciate your sharing.
please keep it up !
07-07-2017, 03:42 AM
Joined: Jun 2017
Posts: 3
Thanks a lot! Happy to hear that