CodeWalrus

Development => PC, Mac & Vintage Computers => Topic started by: guicrith on June 13, 2015, 02:49:48 am

Title: First person 2d platformer
Post by: 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)

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)
https://drive.google.com/file/d/0B5HuG10h5HbnMHlNR2FxUWNkRkk/view?usp=sharing
The squares underneath the view port are the block the character is standing on.
Title: Re: First person 2d platformer
Post by: Unicorn on June 13, 2015, 03:35:36 am
I probably won't be able to help, but it would be nice to know what language this is in?
Title: Re: First person 2d platformer
Post by: guicrith on June 13, 2015, 03:56:20 am
Javascript
Title: Re: First person 2d platformer
Post by: Snektron on June 13, 2015, 10:30:44 am
Have you considered Three.js (http://threejs.org/)? 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 ;)
Title: Re: First person 2d platformer
Post by: DJ Omnimaga on June 13, 2015, 10:48:00 am
Since it's 3D, shouldn't the title say 3D instead of 2D?
Title: Re: First person 2d platformer
Post by: ben_g on June 13, 2015, 12:09:37 pm
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.
Title: Re: First person 2d platformer
Post by: p4nix on June 13, 2015, 04:07:32 pm
I once had the idea of making this too (if we mean the similar), inspired by
Title: Re: First person 2d platformer
Post by: p4nix on June 13, 2015, 04:39:54 pm
So if you want to use vertical raycasting, here's a good tutorial on it: http://lodev.org/cgtutor/raycasting.html
Title: Re: First person 2d platformer
Post by: Unicorn on June 13, 2015, 07:39:55 pm
p4nix, please do not double post. There is a modify button after all. ;)
Title: Re: First person 2d platformer
Post by: DJ Omnimaga on June 15, 2015, 01:26:10 pm
That Mario looks cool p4nix. :D If I was to make an actual 2D FPS I would probably just do it like this:

https://www.youtube.com/watch?v=KE9k2ED2aw8

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