Noclip2 behavior

Discuss anything ZDoom-related that doesn't fall into one of the other categories.
Hypersonic
Posts: 134
Joined: Mon Aug 14, 2017 3:04 pm

Re: Noclip2 behavior

Post by Hypersonic »

Being able to view the map from any position was one of the coolest aspects of noclip in Quake. You can already step outside the map from the side in GZDoom and it'll still render everything (monsters and items included.) I don't see how stepping outside of the map from above or below would be a problem.

Perhaps a temporary hack could be made; when you're in a sector while noclipping through the ceiling raise the ceiling sky high and don't draw the walls of that sector, then lower back once you leave the sector. Not ideal, but I think it would be a good start on figuring out a way to make it work properly.
Hypersonic
Posts: 134
Joined: Mon Aug 14, 2017 3:04 pm

Re: Noclip2 behavior

Post by Hypersonic »

Doom builder 2 has a visual 3D mode allowing you to hover anywhere over the map (or over and to the side) with any yaw/pitch angle. Can even set essentially infinite view distance.Would be nice to do while playing GZDoom as well.
Hypersonic
Posts: 134
Joined: Mon Aug 14, 2017 3:04 pm

Re: Noclip2 behavior

Post by Hypersonic »

Rachael wrote:The view was still clipping to the floor/ceiling planes, and it also crashed. Those were the more apparent problems, at least. I never even bothered to look at the issues that may have been deeper in the code.
Perhaps skip this section when in noclip2 mode (Though I'm not sure if this code branch, coelckers, is the one you're working with.)

https://github.com/coelckers/gzdoom/blo ... portal.cpp
// Don't let the viewpoint be too close to a floor or ceiling
double floorh = origin->Sector->floorplane.ZatPoint(origin->Pos());
double ceilh = origin->Sector->ceilingplane.ZatPoint(origin->Pos());
if (r_viewpoint.Pos.Z < floorh + 4) r_viewpoint.Pos.Z = floorh + 4;
if (r_viewpoint.Pos.Z > ceilh - 4) r_viewpoint.Pos.Z = ceilh - 4;

Apparently you're always in a sector, even when you don't appear to be. When outside of the map your position clips to a floor or ceiling of a nearby sector (if that sector has lava you can get burnt even when it appears you're outside of the map.)
User avatar
Rachael
Posts: 13531
Joined: Tue Jan 13, 2004 1:31 pm
Preferred Pronouns: She/Her
Contact:

Re: Noclip2 behavior

Post by Rachael »

Yeah, that's not going to stop the crashes. If you discover a way, feel free to post a code patch, though.
Hypersonic
Posts: 134
Joined: Mon Aug 14, 2017 3:04 pm

Re: Noclip2 behavior

Post by Hypersonic »

Are the crashes always logged? Seems that something called DoomSpecificInfo is called on a crash, defined in i_main.cpp

https://github.com/coelckers/gzdoom/blo ... i_main.cpp
int main (int argc, char **argv)
{
#if !defined (__APPLE__)
{
int s[4] = { SIGSEGV, SIGILL, SIGFPE, SIGBUS };
cc_install_handlers(argc, argv, 4, s, GAMENAMELOWERCASE "-crash.log", DoomSpecificInfo);
}

There seems to also be a win32 version of DoomSpecificInfo (though this returns void rather than int, and takes slightly difference parameters)
https://github.com/coelckers/gzdoom/blo ... i_main.cpp

The data currently logged might not help pinpoint the problem, but if it is called it should be possible to add more debugging data to the log which may help track down the problem(s). Maybe enter 'kill monsters' into the console to factor out monster targeting issues.
Hypersonic
Posts: 134
Joined: Mon Aug 14, 2017 3:04 pm

Re: Noclip2 behavior

Post by Hypersonic »

Every time I switch between Doom and Quake I always think about how cool it would be too have total noclip freedom in Doom. Perhaps the reason why Quake lacks a map mode is because you can simply noclip outside the map and whala, you're in map mode!

https://www.youtube.com/watch?v=wRFTca35CkA
Noclip in Darkplaces where you can see items from outside the map. Only 1080p because I can't get 4k working properly in Darkplaces. Mouse control is jittery, unlike the smooth control in Quakespasm and GZDoom.
Post Reply

Return to “General”