Very well crafted, addicting
I praise your artistic and designing talents, the variety of abilities, enemies, items, hero classes, levels and side-quests. But there are problems with story, difficulty and coding.
The story needs more
a) explanation. How exactly did the evil mage manage to perform the void ritual in the ship? What caused the volcano eruption? Why was the first settlement blocked? Who built the tunnels inside the cave in which a guy is being sacrificed? What is the background story of characters, the land, the void world?
b) detail. You need to show the cave-in happening, for example, in form of a cinematic sequence. You also need to show the evil mage getting out of prison.
c) side-quests' varied endings. For example, let the player choose whether to spare the smuggler leader or cast justice upon him. Or if the player rushes into the sacrificial cave right after he finds out someone was dragged into it, and if he doesn't visit and unnecessary places (which can be visited on the way back), then the cult's victim is saved and the reward is better.
I didn't find the game to be challenging enough, even on the hardest difficulty. I even found the last stage to be easier than the first ones (because of character leveling).
I didn't find any bugs or glitches with the coding. Except for two.
a) Sometimes the protagonist's companion, Rogan, gets stuck in obstacles while following the hero. This has 4 solutions.
1) What you did. But it looks ugly with all that passing through walls.
2) Divide the game space into small cells and mark what cells cannot be walked on. Then use A* pathfinding algorithm to find the path, but it's not the final output. You will need to link path's cells, approximating it with straight lines which do not intersect obstacles. A simple loop through path's cells can do this. The result is that Rogan will be able to move not only diagonally, horizontally or vertically, and he will also conserve the distance he moves.
3) Use geometrical/vector pathfinding. You place rectangles that are obstacles and first check if Rogan is able to just walk straight to his target. This will work only if Rogan has no size (is a point), but you can alter the way he moves by pushing him away from obstacles, if he is a circle. Then you will need to use lines passing through rectangles' vertices and the initial position of Rogan. Those lines must not intersect anything. From rectangles' vertices you make more lines to other vertices and so on. The result is that Rogan moves by rectangles' vertices. remind: rectanges are obstacles. The problem is that you will need to remember for each line on what vertices it has been to avoid recursion and Rogan might try to squeeze through thick corridors, so make sure to block them off.
4) Disable collision detection for Rogan at all times. At least he won't pass too long distances through walls, but only short ones. The problem is that Rogan might stop on an obstacle, which will be very ugly. Then you can just push him away from it... into another obstacle.
b) I saw Rogan walking to me once while not moving from his place. It was after a battle.
I really enjoyed the game, finished it in 2 hours 30 minutes. I didn't like or dislike the story, and one time I accidentally Junked a chainmail and couldn't find a way to restore it..
Anyway, 9/10 because of story.