Guiding the player

After some testing, we discovered that players would lose their way in one of the areas in the factory level, and become unsure of where to go next. It simply left most people confused. Before going into what I/we did to fix it, lets break down the problem(s).


  1. This is what you see when you first enter the room. It’s not very interesting. Most people just simply walk forward without paying attention to what’s below or to the right, which is not what we had in mind.
  2. This is what you see if you look to the right when standing on the walkway visible in first shot. When designing the space I wanted to convey a sense of grandeur to the player, It feels like that somewhat succeeded but it’s at the cost guiding the player. Even though that’s the direction the player should go, it’s not clear exactly where you should be heading, which it reasonably should be.
  3. This is an overview of the entire area. The large open spaces gave the player room to play around with the robots, but at the same time it contributed to the confusion. Players felt like there had to be a more meaningful purpose to the area.
  4. This is where the player is suppose to go, the opening next to the rotating paddle wheel. The player needs to advance to the second half of the room to even be able to properly see this, and even then it’s somewhat obscure and difficult to see.


The screenshot above shows the view you now get when entering the area. What we did was cut the entire first part and re-positioned the entry point so that the player is directly infront of where they should be going. Even though there’s still some improvements to be made, it’s almost infinitely better than what it used to be.

Also, by cutting the first area we were able to put another puzzle in, which is something this level desperately needed. It was also possible to preserve the vista seen in 2nd of the smaller screenshots above, but with some changes to make sure the player doesn’t feel they should be able to get there directly.



Float precision

Float precision issues is something you always know is out there, but something you rarely need to pay any thought to. As you can guess, it’s an issue we ran into. When making a build, one of our puzzles involving a rotating platform would seemingly work, but not fire the event it was suppose to at the end of it’s movement. Not firing this event essentially locked the entire puzzle as the player was not able to rotate the platform into any of the states required to proceed.

After a lot of debugging and generally tearing our hair out, me and Kenth finally found the cause of the issue. To keep track of what rotation (and if it had reached its destination) the delta rotation was calculated and then added to a variable each frame, simply:

actualRotationDelta = Mathf.SmoothDampAngle(...) - m_rotatedDegrees;
... do rotation ...
m_rotatedDegrees += actualRotationDelta;

It turns out, in this particular case, the value calculated by Unitys SmoothDampAngle got below the Epsilon value at high framerates. What this means in practice is that the value got so small enough for it to more or less equal zero, making it completely useless.

The way we resolved this issue is to simply check if whether value of actualRotationDelta is less than the Epsilon and if we’re close to the rotation we’re rotating to. This is not a optimal solution but considering the time constraints we had it was the simplest to implement.

actualRotationDelta = Mathf.SmoothDampAngle(...) - m_rotatedDegrees;

if (actualRotationDelta < Mathf.Epsilon && Mathf.Abs(m_rotatedDegrees – targetRotation) < 0.001f)
… snap to target rotation …
… do rotation…

Lesson learned here is to prefer lerp, slerp and smoothstep functionality in the future. Sure, it’s slightly more hassle but you’ll completely steer clear of these sort of issues.

New screenshots!

So, the original plan was to post weekly video logs, but holy smokes we’ve been busy. The entire team has been working a whole load more than full time for the last weeks to get all the features in game… and we did it, We’re feature complete!

There’s still a lot of content missing and things work in progress but all the important features are in, most importantly all of the 5 initial robots have been implemented and all their 6 combinations (fusions) are almost fully functional.

Here’s some screenshots to show of our progress, as you can tell, a lot has been going on in the art department. We’re sticking to showing the same two robots for now, ¬†as the textures are still WIP on the others.

Mechropolis_Screenshot_4A bunch of controller robots roaming a lonely corridor, note the warning sign, keep your distance.
A lonely thrower robot, loyally standing guard.
That’s all for update, as mentioned above we’ve been working as crazy to get stuff done, and we’ll keep at it. The future of the video logs are kinda uncertain at the moment, if we find time we’ll do some new ones but finding any spare time is unlikely at this point. Luckily though, we’ve got a trailer planned for release in two weeks!