September 29, 2020, 04:07:24 am

You can help CodeWalrus stay online by donating here.

## First person 2d platformer

Started by guicrith, June 13, 2015, 02:49:48 am

0 Members and 1 Guest are viewing this topic.

#### guicrith

##### June 13, 2015, 02:49:48 am
The project has just been started and I cant find any good tutorials on how to rotate and move the camera for 3d rendering.(I still need a camera for projecting 2d to 1d)
I only know math up to geometry no trig.(aside for sin,cos,tan)

This is likely the biggest challenge the project will face.(the project should only take 2 months after this)

Picture of what I am trying to do.(I know my writing sucks and no I am not in kindergarten)
The squares underneath the view port are the block the character is standing on.

#### Unicorn

##### June 13, 2015, 03:35:36 am #1
I probably won't be able to help, but it would be nice to know what language this is in?

Javascript

#### Snektron

##### June 13, 2015, 10:30:44 am #3
Have you considered Three.js? It's a 3D library based on WebGL and really easy to use. Maybe you could make the game so it just looks from one side. Also how do you plan to rotate the camera? (i mean how would you look to the other side). Also do you know Vectors? They're REALLY handy in games. If not i suggest you look up on them
Legends say if you spam more than DJ Omnimaga, you will become a walrus...

#### DJ Omnimaga

##### June 13, 2015, 10:48:00 am #4
Since it's 3D, shouldn't the title say 3D instead of 2D?

#### ben_g

##### June 13, 2015, 12:09:37 pm #5
Quote from: guicrith on June 13, 2015, 02:49:48 am
The project has just been started and I cant find any good tutorials on how to rotate and move the camera for 3d rendering.(I still need a camera for projecting 2d to 1d)
I only know math up to geometry no trig.(aside for sin,cos,tan)

...

Maybe you should look into raycasting. Simple raycasting algorithms use a 2D world (usually a tilemap) as input, and their output is basically a line (so 1d) of which the thickness depends on the depth of the scene at that point. The only thing you'd still need to do then is rotate everything 90° to make the world vertical instead of horizontal (to get a platformer) and maybe remove the code that handles the depth if you want real 1d instead of the 3d illusion.

#### p4nix

##### June 13, 2015, 04:07:32 pm #6 Last Edit: June 13, 2015, 05:25:13 pm by p4nix
I once had the idea of making this too (if we mean the similar), inspired by

#### p4nix

##### June 13, 2015, 04:39:54 pm #7
So if you want to use vertical raycasting, here's a good tutorial on it: http://lodev.org/cgtutor/raycasting.html

#### Unicorn

##### June 13, 2015, 07:39:55 pm #8
p4nix, please do not double post. There is a modify button after all.

#### DJ Omnimaga

##### June 15, 2015, 01:26:10 pm #9
That Mario looks cool p4nix. If I was to make an actual 2D FPS I would probably just do it like this:

And if it was gonna be 3D I would probably either do it like the above but with extra perspective