So i’ve updated the project to address some of the simpler / easier-to-fix concerns brought up. (http://www.java-gaming.org/user-generated-content/members/244457/monster-12-19-17.jar - see top post for updated jar)
specifically,
- distance required between monster / exit and human to trigger game over has been decreased (from 2 to .5 units);
- Pressing “enter” key restarts the game. At game over, text is displayed to remind the player they can press Enter.
- Map generation can no longer generate isolated room-groups. Only group of connected rooms will be kept. This should fix unreachable exits / monsters.
The fix for slower speed when “sliding” on a wall, isn’t as straightforward as I thought it would be, since the intersection finding logic solves for x movement, then y movement separately. It has no way to come back to the x-logic after it realized it’s sliding on a wall in the y-direction in order to increase the x-movement. So the solution would require rewriting the movement intersection logic, which I will do, but just not in this update.
Next i will address the bigger game-design concerns, e.g., fix “repetitive & mindless wandering and hope u encounter exit before u encounter monster and feel like you’re helpless in determining whether u win or lose.” I’ve got some ideas on how i’ll try to improve this, but before i’ll list them below to get some opinions:
Encountering the monster shouldn’t be a rare occurrence that ends in losing; it should be a probable, experience that repeatedly breaks up the monotone of searching for the room, and must therefore also be “resolvable” without defeat. First, to make it more likely to happen, the monster will not wander aimlessly when it is far from the human, but instead “sniff” the general direction of the human and move towards the general vicinity. Second, to make the encounter resolvable/conquerable, the monster will be only slightly faster than the human. In addition, the monster will not be able to chase the human’s exact location even without line of sight. Instead, the monster takes “sniffs” on a ~5 or ~10 second cool-down, which provide it with the approximate location of the human (more accurate with smaller distances), and follows the last sniff location. Only when the monster has line of sight of the human (or his light), will the monster chase the exact location of the human. This gives control to the human on escaping the encounter by juking and such. In addition, the human’s light can be toggled off, making it harder to navigate, but also less likely for the monster to gain line of sight of the human’s light. Lastly, the monster leaves a fading “footprint” trail, to allow the human to have control on avoiding encounters.
These are just initial thoughts. In essence, I’m just trying to avoid the “inevitably” of defeat following the monster/human encounter, as well as make escaping and avoiding an active task rather than luck-based.