Small 3D Labyrinth

game-dev

#1

screenshot
http://js.otrisovano.ru/rosa/

According to the book and the film ‘The Name of the Rose’ :slightly_smiling_face:


#2

Nice project. :slight_smile:

One thing: The FOV of the perspective camera is extremely large, at 120 degrees. This causes a distorted projection. The typical laptop user will sit at about 60 cm distance from a screen that is only about 20 cm high. This means an appropriate distortion-free vertical FOV that for that user is 2*asin(10/60) ~ 19 degrees. Some users have bigger screens or sit closer to their screen, and there is also the issue of being able to maneuvre with a narrow FOV, so there are many reasons to push the FOV a bit. For instance, 50 degrees may be a good tradeoff.

I have not accounted for VR users in the above paragraph. I think they can (and should) have a much wider FOV.

Happy coding! :smiley:


#3

Thanks! )) I never think about length from eyes to screen…
Try any parametrs:
http://js.otrisovano.ru/tests/180819Rosa/01 ( 50 FOV )
http://js.otrisovano.ru/tests/180819Rosa/02 ( 80 FOV )
http://js.otrisovano.ru/tests/180819Rosa/03 ( 90 FOV )
http://js.otrisovano.ru/tests/180819Rosa/04 ( 100 FOV ) - and save this in main link . :slightly_smiling_face:


#4

I tried the 50deg one. It looks a thousand times better. :slight_smile:


#5

Rooms is very small. In 50deg player don’t see the stairs after start ))


#6

Ah, the stairs in the floor. Maybe it will help to lower the camera and maybe even tilt it slightly downwards. Or just add camera pitch control too. Or make sure the user falls down the stairs. Then he will notice them. :wink:


#7

When I begin make this app, I add mouse controls to view
And it working good with small camera deg, but not work on phones and laptops.
http://js.otrisovano.ru/tests/180819Rosa/05/ You can try to go in rooms )).
If use controls by buttons and keys, I must make eyes like chameleon :joy:


#8

The mouse control is a great improvement. You can expand with touch controls too. I think it would be possible to abuse OrbitControls.js to achieve a decent result. OrbitControls works with mouse and touch. It is intended for “orbiting” around a target, inspecting it from different directions, but when the camera is very close to the target, it will behave as FPS mouse control, except you have to click and drag. So I guess if you attach the camera to your (invisible) character and keep it at a minimal distance, you will be able to rotate the camera using mouse or touch screen. Moving the character will be a separate issue.


#9

Thanks. ) I will experiment it.