Underliner Devlog #6 (March 2, 2022)
There's a big news! :) I decided to release Underliner on Steam. I am planning to create Steam page as soon as I can, but since my account is currently waiting for verification, it might take some time. Now, let's talk about the game.
I am working on puzzle resetting system, which is an important part of the game as players might need to reset a puzzle frequently. However, this doesn't mean that puzzles can only be solved by brute force. Puzzle types other than mirror don't need that much trial and error. Also, with careful calculation and estimation, it's not hard to solve mirror puzzles either.
The white monolith in the image above is something that separates each puzzle. Players can start solving the puzzle after interacting with the monolith. Tt's actually an oversimplification to say this way since there are a lot of things I am planning, which are related to these objects. I'll be back to this subject later.
There was a big improvement in the core mechanic too. One of the problems I was having for last few weeks is the complexity of detecting collision. The projectile uses invisible sphere to detect other object. For instance, if this sphere collides mirror, it will make the projectile reflect. This seemed to work fine at the beginning of the development, but I found a difficult problem when I started working on puzzles. When the projectile passes through narrow areas, the invisible sphere detects nearby wall and stops the projectile. The image above shows that kind of situation. Let's say the light blue circle indicates radius of the invisible sphere. The sphere will hit the pink wall on the right, and stops the projectile, which is not a desired outcome. Some might say changing radius of the sphere or even not using the method would fix the problem, but these alternatives dont't solve the fundamental problem.
Fortunately, when I was on my way home after studying, I suddenly came up with the solution. On each time the projectiles changes its direction, the projectiles checks its path with raycast(Displayed as cyan lines in the image above). Then, the game temporarily stores the object the ray detected, and only enables collision detection on this object. This prevent irrelevant walls from interrupting the projectile, while checking all puzzle objects. Also, If the projectile collides the object that has been stored, it stops. As a result, the projectile ignores objects that shouldn't obstruct itself from traveling.
That's all for today, and thanks for reading! I talked too much about technical things today :D I'll now start working on puzzles again!
---------
Donate me: