[Proof of Concept] Isometric Camera for ZDoom
[Proof of Concept] Isometric Camera for ZDoom
I had this crazy idea of adding a Diablo-esque camera to ZDoom, perfect for top-down RPGs or even squad-based strategy shooters. It doesn't really work, of course, because I can't spawn the camera position beyond the nearest ceiling. However, if you're so inclined, you can make maps specifically for this camera setup so that there is always ample ceiling height. As far as I know, this works in multiplayer (i.e. I haven't tested that at all, but I can't imagine why it would fail).
Anyway, I've included a test map (isotest.wad) that can be loaded if you want to see what sort of potential this has in a mapset/mod designed specifically for it. I know the mouse controls are a little bit buggy and the player doesn't move his legs when he walks. Frankly, it could use quite a lot of improvement.
Download isocam.7z (7.28 KB)
Screenshot of earlier prototype in test map (w/ Brutal Doom and Droplets)
Give me your impressions and thoughts, but I'm probably not going to be able to improve this meaningfully unless the relevant engine limitations were removed.
Anyway, I've included a test map (isotest.wad) that can be loaded if you want to see what sort of potential this has in a mapset/mod designed specifically for it. I know the mouse controls are a little bit buggy and the player doesn't move his legs when he walks. Frankly, it could use quite a lot of improvement.
Download isocam.7z (7.28 KB)
Screenshot of earlier prototype in test map (w/ Brutal Doom and Droplets)
Give me your impressions and thoughts, but I'm probably not going to be able to improve this meaningfully unless the relevant engine limitations were removed.
-
- Posts: 1560
- Joined: Wed Aug 28, 2013 1:36 pm
Re: [Proof of Concept] Isometric Camera for ZDoom
Not a bad concept. Could be used to make a Diablo-like mod.
However there is some stuffs that need to be fixed before being of some use in a mod
1 - The camera is too far and doesn't adjust itself while inside a building making navigation impossible
2 - The player can only aim at a 180 degree downward and can't aim upward making fighting monsters a lot more difficult
3 - The camera doesn't turn to facilitate navigation and aim
4 - There is no configurable keys in the option menu to help adjusting the camera
Conclusion, it's not fit for any indoor maps. However if some maps were to be made for a Diablo-like megawad with mostly outdoor maps this mod could be put to good use. As you mentioned, the engine is what limits the possibilities unfortunately. It's a good start though even if it needs improvements.
However there is some stuffs that need to be fixed before being of some use in a mod
1 - The camera is too far and doesn't adjust itself while inside a building making navigation impossible
2 - The player can only aim at a 180 degree downward and can't aim upward making fighting monsters a lot more difficult
3 - The camera doesn't turn to facilitate navigation and aim
4 - There is no configurable keys in the option menu to help adjusting the camera
Conclusion, it's not fit for any indoor maps. However if some maps were to be made for a Diablo-like megawad with mostly outdoor maps this mod could be put to good use. As you mentioned, the engine is what limits the possibilities unfortunately. It's a good start though even if it needs improvements.
Re: [Proof of Concept] Isometric Camera for ZDoom
Did you try using the included test map? That demonstrates the ideal function. Also, what do you mean by point 3 there? I admit you can't aim up or down, but he should aim straight ahead. You must have auto-aim turned on to play with this, yes. My script forces the player's pitch to lock at 0, so that pitch input can be converted to mouse control for facing North/South.
Now, I did make a little version of this at one point that made the camera turn to remain behind the player. The thing is, it felt like just a distant chasecam, and I wanted to drive the point of making a legitimate isometric perspective as best as I could. It could only be better if I had access to an orthographic rendering mode.
I might add configurable keys at some point for camera zoom and position, maybe even a toggle to first-person. I don't think there will be very many places in the original Doom and Doom 2 maps where this thing behaves "correctly."
Now, I did make a little version of this at one point that made the camera turn to remain behind the player. The thing is, it felt like just a distant chasecam, and I wanted to drive the point of making a legitimate isometric perspective as best as I could. It could only be better if I had access to an orthographic rendering mode.
I might add configurable keys at some point for camera zoom and position, maybe even a toggle to first-person. I don't think there will be very many places in the original Doom and Doom 2 maps where this thing behaves "correctly."
Re: [Proof of Concept] Isometric Camera for ZDoom
This is really great!
My few bits:
1)The camera distance should be configurable (mouse scroll ftw)
2)The aiming itself is a bit awkward - like when you turn the mouse in the direction you want, Doomguy only turns partially because of the smooth turning. When you move your mouse to make a down-left 45 degree aim (aim in the lower left corner) for example, doomguy makes a 30-35 degree aim (above the point where he should aim relatively to the camera).
If you could make a point-crosshair controlled by mouse - that would really diablo-ify the game. That way of control was used in Nox and Revenant games and was reallly cool. I think it can be made by making aim crosshair a part of the hud, that shoots "pointers" from the cam, and then through ACS make Doomguy face those pointers. I'm not too proficient in this, so I may be mistaken.
My few bits:
1)The camera distance should be configurable (mouse scroll ftw)
2)The aiming itself is a bit awkward - like when you turn the mouse in the direction you want, Doomguy only turns partially because of the smooth turning. When you move your mouse to make a down-left 45 degree aim (aim in the lower left corner) for example, doomguy makes a 30-35 degree aim (above the point where he should aim relatively to the camera).
If you could make a point-crosshair controlled by mouse - that would really diablo-ify the game. That way of control was used in Nox and Revenant games and was reallly cool. I think it can be made by making aim crosshair a part of the hud, that shoots "pointers" from the cam, and then through ACS make Doomguy face those pointers. I'm not too proficient in this, so I may be mistaken.
Re: [Proof of Concept] Isometric Camera for ZDoom
Unfortunately suffers from the same common jerkiness/35-FPS stuttering that happens in every single mod that attempts any kind of camera modding. :/
(Player jitters horrendously as he moves around, camera's scrolling/updating seems to be locked at 35 FPS)
(Player jitters horrendously as he moves around, camera's scrolling/updating seems to be locked at 35 FPS)
Re: [Proof of Concept] Isometric Camera for ZDoom
It's not really isometric, just top-down view 
I've had this idea before but the fact it can't be made to work well with maps not specifically designed for it was a bit of a turnoff.
You can fight some of the jerkyness if you don't just set the location of the camera each tic, but instead apply a gentle velocity to it.
The crosshair idea is pretty much mandatory to have unless you "lock" the player to 45 degree angles, like through an ACS script that checks for turning input and adds to a variable until it reaches a maximum or minimal value at which point it'll rotate the player all at once.
It would be best if you could have a cursor on screen that the player is turned towards. I attached this old proof of concept I had lying around made by some ACS god on the forums (I'm sorry I really don't remember who), it can basically spawn an object in the game world relative to screen coordinates. (check map02) You could probably make the player face the spawned object this way.
From what I remember, the script takes a distance parameter though, so you'd probably need to rewrite parts of it, or calculate the distance based on pitch and height level so it lands where you visibly point the cursor at.

I've had this idea before but the fact it can't be made to work well with maps not specifically designed for it was a bit of a turnoff.
You can fight some of the jerkyness if you don't just set the location of the camera each tic, but instead apply a gentle velocity to it.
The crosshair idea is pretty much mandatory to have unless you "lock" the player to 45 degree angles, like through an ACS script that checks for turning input and adds to a variable until it reaches a maximum or minimal value at which point it'll rotate the player all at once.
It would be best if you could have a cursor on screen that the player is turned towards. I attached this old proof of concept I had lying around made by some ACS god on the forums (I'm sorry I really don't remember who), it can basically spawn an object in the game world relative to screen coordinates. (check map02) You could probably make the player face the spawned object this way.
From what I remember, the script takes a distance parameter though, so you'd probably need to rewrite parts of it, or calculate the distance based on pitch and height level so it lands where you visibly point the cursor at.
- Attachments
-
CursorSpawnerExample.pk3
- (83.35 KiB) Downloaded 139 times
Re: [Proof of Concept] Isometric Camera for ZDoom
CursorSpawnerExample was made at my request by my good buddy carlcyber. :) Do note that the math used in it only works with the OpenGL renderer (the results will be inaccurate in the software renderer due to the planar nature of the software renderer).
Re: [Proof of Concept] Isometric Camera for ZDoom
Rotating in this sucks Dx
Re: [Proof of Concept] Isometric Camera for ZDoom
Yeah, I've been thinking about adding some key definitions for zooming the camera in and out. I also know the aiming is quite awkward, and I know why, but it's rather difficult for me to interpret pitch+turn input from the mouse as a distinct angle. I worked with what I could; anyone who knows a formula/algorithm for that should let me know.Sinael wrote:1)The camera distance should be configurable (mouse scroll ftw)
2)The aiming itself is a bit awkward - like when you turn the mouse in the direction you want, Doomguy only turns partially because of the smooth turning. When you move your mouse to make a down-left 45 degree aim (aim in the lower left corner) for example, doomguy makes a 30-35 degree aim (above the point where he should aim relatively to the camera).
This was the idea I had in my head when I first set out to make this. As many things in ZDoom are, though, it did not turn out like I had initially planned. I could definitely use VectorAngle() to give Doomguy his appropriate heading, though, if I could spawn a cursor on-map.Sinael wrote:If you could make a point-crosshair controlled by mouse - that would really diablo-ify the game. That way of control was used in Nox and Revenant games and was reallly cool. I think it can be made by making aim crosshair a part of the hud, that shoots "pointers" from the cam, and then through ACS make Doomguy face those pointers. I'm not too proficient in this, so I may be mistaken.
Yeah, yeah, I had that thought when I was making it, but the perspective is at least inspired by truly isometric games like Diablo and Ultima Online.Dancso wrote:It's not really isometric, just top-down view
I will definitely give this a look.Dancso wrote:It would be best if you could have a cursor on screen that the player is turned towards. I attached this old proof of concept I had lying around made by some ACS god on the forums (I'm sorry I really don't remember who), it can basically spawn an object in the game world relative to screen coordinates. (check map02) You could probably make the player face the spawned object this way.
From what I remember, the script takes a distance parameter though, so you'd probably need to rewrite parts of it, or calculate the distance based on pitch and height level so it lands where you visibly point the cursor at.

Thanks for all the input! Yes, the rotating does suck and the camera likes to go awkward places on basically every map ever. I had been experimenting with a version that places the camera as a bullet puff using LineAttack(), and I have a question: is it possible to make LineAttack() not produce a bullet chip decal?
Re: [Proof of Concept] Isometric Camera for ZDoom
The 35fps is the only thing that bothers me, though I did not test it much.
This is quite ambitious though.
This is quite ambitious though.
- EinhanderZwei
- Posts: 17
- Joined: Tue Jan 10, 2012 2:43 pm
- Location: Ukraine
Re: [Proof of Concept] Isometric Camera for ZDoom
Thank you for such a cool little mod!
I've tested it with my OCEAN wad today; wanted to make a series of isometric screenshots as a tribute to Crusader: No Remorse. Looks pretty sweet if you ask me: http://fc06.deviantart.net/fs71/f/2014/ ... 7x3vi1.png
