Coder Social home page Coder Social logo

Comments (23)

bones-was-here avatar bones-was-here commented on August 11, 2024 1

Load some maps, look at the console and make notes of how many have "droptofloor" fail issues. Realize that when you see that, an item or monster fell out of the map and realize those items are not falling out of the map in Ironwail or Quakespasm.

There's too many assumptions here, and conflation of things that aren't related. In physics it's important to identify every distinction and detail.

The message doesn't say anything about falling, eg in alk1.2 start.bsp it says:
server VM warning: droptofloor at "880.000000 -176.000000 1169.000000": badly placed entity "misc_scientist", startsolid: 1 allsolid: 1

In id1 (and Quake 3) entities don't fall if droptofloor() finds that they started in solid, they are simply deleted. I don't know what alk1.2 does but it's QC's decision. Maybe in your mod, you run code that gives them negative z velocity.

When an entity bbox is already in a solid floor, it doesn't collide with that floor if it's moved down by tracebox() as the lower surface cannot make contact with the brush upper surface, so an entity placed in a solid may fall, if such physics are applied to it.

Edit: and the fact that another engine doesn't have a warning for this, doesn't mean those entities aren't stuck in that engine.

from darkplaces.

hemebond avatar hemebond commented on August 11, 2024 1

I thought you guys were defaulting sv_gameplayfix_droptofloorstartsolid to 1.

I think that was just for id1. Perhaps using -game alk1.2 changes it.

I just tested again, and if I start the level as usual, he falls through the floor. However if I start with sv_freezenonclients 1 and then disable it, he doesn't fall out of the level.

from darkplaces.

Baker7 avatar Baker7 commented on August 11, 2024 1

It isn't doing 1 for Quake either

xon_vanilla

from darkplaces.

Baker7 avatar Baker7 commented on August 11, 2024 1

I just want to add some context here.

Anyone who works on DarkPlaces has to be as sharp as a razor blade to navigate such a complex project.

And those that participate are contributing to free software.

Recently, there have been some cool new additions to the source. I'm filing these very detailed bug reports to identify some the things that I think from my perspective, if dealt with head on, will make DarkPlaces Beta much nicer.

I'm pointing out where some of the landmines are and describing/showing what the problem is and from my perspective what the root cause is.

from darkplaces.

bones-was-here avatar bones-was-here commented on August 11, 2024 1

Yeah thanks for posting all the details. I did notice when testing alk1.2 that my player could fall through the lift on start.bsp when it reaches the bottom of its travel. However - I doubt very much that's related to droptofloor() detecting stuck entities, because it would be Very Weird for player physics to use that function (and that certainly isn't what engine physics does, and afaik all Quake games other than recent Xonotic use engine physics). So I think this will turn out to be 2 separate issues, one specific to spawning with droptofloor(), and the other specific to interactions with movers such as lifts.

NB: droptofloor() (despite its name) doesn't run any real gravity physics and should only be used in spawn functions.

I'm currently working on improving windows support because the people who use windows aren't maintaining it. I installed 10 on a spare laptop but it's a black hole for time, so intrusive and heavy with bloatware. Even after it's installed and fully updated, every other time I open the laptop to test a DP build, Windows thinks that's a good time to spend an hour or two installing more mandatory bloatware, and insists on uploading my darkplaces-sdl.exe to microsoft for "threat analysis" BEFORE allowing me to run it. And what I'm trying to test currently is very timing/perf sensitive, so I have to stop work every time Windows starts wasting MY system resources. I tried to use 7 instead but it fails to update at all and VS 2019 fails to install even though microsoft claims it supports 7.

I like physics though so I'll get back to it once this annoying crap is done...

from darkplaces.

bones-was-here avatar bones-was-here commented on August 11, 2024 1

I think you've missed a subtle change i suspect will be involved in the lift scenario

from darkplaces.

bones-was-here avatar bones-was-here commented on August 11, 2024 1

In Quake Combat+ on E1M1 there is a "good guy" being killed. And he proceeds to fall through the floor.

This is a bug in the mod, it's placing the entity in collision with the floor, which will result in it being stuck or falling through depending on which physics (if any) are applied, and/or which Q1BSP trace recursion logic is in use. sv_gameplayfix_unstickentities 1 will work around it but other engines don't have that and unsticking isn't guaranteed to succeed so mods should fix their entity placement instead of enabling this.

Lifts on alkaline 1.2 start rely on sv_gameplayfix_unstickplayers 1 to avoid fall-through, other engines should have this because Quake did, however like any form of unsticking it's not guaranteed to work (and in edge cases it might unstick an entity by placing it on the wrong side of a brush).

The monster_dreadnaught on alk_caustic is badly placed by the mapper (in collision with the floor), but it should end up standing in the intended place because of an obscure chain of behaviours which DP now matches.

Some of the misc_scientist on alkaline 1.2 are placed stuck so the droptofloor() messages are correct. In DP two of them are stuck, in QSS-based engines 3 of them are stuck (but those engines are silent about these and other problems, so hacking in debug prints was needed). They don't fall anywhere (there's nowhere within 256u directly below that they'd fit without being stuck) but can't move, they don't really need to move though, their job is to make half-life references :)

from darkplaces.

hemebond avatar hemebond commented on August 11, 2024

In Quake 1.5, that is a misc_actor which looks like it shouldn't have any physics applied to it:

void() misc_actor = 
{
...
	self.solid = SOLID_NOT;				// No world interaction
	self.movetype = MOVETYPE_NONE;		// Static item, no movement
	self.oldorigin = self.origin;		// Store for later

from darkplaces.

Baker7 avatar Baker7 commented on August 11, 2024

DarkPlaces Beta can play Alkaline now. Load some maps, look at the console and make notes of how many have "droptofloor" fail issues. Realize that when you see that, an item or monster fell out of the map and realize those items are not falling out of the map in Ironwail or Quakespasm.

Combat+: The solider doesn't fall through the floor in the DarkPlaces 2017 provided with their mod.

from darkplaces.

Baker7 avatar Baker7 commented on August 11, 2024

alk_central
alk_chaos
alk_caustic

from darkplaces.

Baker7 avatar Baker7 commented on August 11, 2024

I'm documenting what I see. When I have time, I'll check on some of those items in Alkaline and see if they are there in the autobuild and then see if they are there in Quakespasm.

from darkplaces.

Baker7 avatar Baker7 commented on August 11, 2024

alk_caustic_quakespasm

In Quakespasm, the monster_dreadnaught is there.

xon_20240407_alk_caustic_no_guard

Map: alk_caustic ... in Xonotic Beta, the monster_dreadnaught is not there.

from darkplaces.

hemebond avatar hemebond commented on August 11, 2024

I stopped time as soon as I entered the map and found this:
image
This is with Alkaline 1.1.

from darkplaces.

Baker7 avatar Baker7 commented on August 11, 2024

I used Alkaline 1.2, btw.

from darkplaces.

Baker7 avatar Baker7 commented on August 11, 2024

All of the above, and #109 are all the same issue ... the droptofloor changes made around April 2023-May 2023.

I know because ... Zircon Beta looks like this ..

zircon_alk_caustic

And the guy doesn't fall through the floor in Quake Combat+, etc.

from darkplaces.

hemebond avatar hemebond commented on August 11, 2024

Same in Alkaline 1.2. The spawn code looks okay to me. Looks like it's dropping to floor before the entity is solid; the origin is on the floor.

Enabling sv_gameplayfix_droptofloorstartsolid works to fix the issue.

image

from darkplaces.

Baker7 avatar Baker7 commented on August 11, 2024

I thought you guys were defaulting sv_gameplayfix_droptofloorstartsolid to 1.

I saw another Issues thread where that was discussed and it sounded like that decision was made.

from darkplaces.

Baker7 avatar Baker7 commented on August 11, 2024

So I set droptofloor start solid 1, then restart the map

I am still getting ...
xon_alk_caustic_droptofloor_solid_1
monster_dreadnaught --- he's not there.

But you are not?

Tried again ... dreadnaught is still not there.

server VM warning: droptofloor at "-1584.000000 0.000000 561.000000": sv_gameplayfix_droptofloorstartsolid COULD NOT FIX badly placed entity "monster_dreadnaught"
^7monster_dreadnaught in wall at: '-1584.0   0.0 561.0'

This is the one I am doing on alk_caustic. I can't get him to be there.

xonotic -quake -game alk1.2

from darkplaces.

Baker7 avatar Baker7 commented on August 11, 2024

Here is Quake. Game = id1. Map format = Q1

Download of map:
geo_bones_q1.zip

Put that in id1 maps and you are ready to go.

Quakespasm: I do not fall through floor of platform

tall_quakespasm

Xonotic.exe -quake ... I do fall through the floor of the platform ....

tall_xonotic

from darkplaces.

Baker7 avatar Baker7 commented on August 11, 2024

I doubt very much that's related to droptofloor() detecting stuck entities, because it would be Very Weird for player physics to use that function (and that certainly isn't what engine physics does, and afaik all Quake games other than recent Xonotic use engine physics).

Build DarkPlaces Beta from March 2023. Try these. None of them happen until the droptofloor fix.

Build DarkPlaces Beta from May 2023. Try these. All of the problems listed above happen and the droptofloor fix was the change that occurred.

This isn't my opinion, this is what happens if build each of these and do an experiment.

Remember, set sv_gameplayfix_droptofloor_startsolid 1 before doing any of these tests.

I'm currently working on improving windows support because the people who use windows aren't maintaining it. I installed 10 on a spare laptop but it's a black hole for time, so intrusive and heavy with bloatware. Even after it's installed and fully updated, every other time I open the laptop to test a DP build, Windows thinks that's a good time to spend an hour or two installing more mandatory bloatware, and insists on uploading my darkplaces-sdl.exe to microsoft for "threat analysis" BEFORE allowing me to run it.

It took me 2-3 months to fully neutralize Windows 10. This helped: https://github.com/ionuttbara/windows-defender-remover/releases/tag/release_def_12_7_2 It actually removed the horror called Windows Defender that eat CPU whenever it likes.

I don't like the direction of Windows 10 or 11, but I am appreciative they haven't done anything truly horrible yet.

I did manage to eventually break and bend Windows 10 to be rather non-obtrusive for what is an adware operating system.

Visual Studio is an incredible tool, they keep making worse with more bling that gets in the way and can't be turned off and stuff that pops up randomly that tells you about things you don't care about.

from darkplaces.

Baker7 avatar Baker7 commented on August 11, 2024

I'm made out of a human, I can make mistakes.

So in time, I look forward to seeing what you find.

from darkplaces.

Baker7 avatar Baker7 commented on August 11, 2024

Thank you for the update.

I think I disagree with the philosophy you are using, though.

Does DarkPlaces Beta play correctly mods targeting classic DarkPlaces: NO.
Does DarkPlaces Beta play correctly mods targeting Quakespasm: NO

There aren't awards for special high-minded reasons for busted compatibilty, a user starts up an engine and either it plays the content right or it doesn't.

DarkPlaces Beta March 2023 with droptofloor start nonsolid plays mods targeting DarkPlaces Classic just fine.

DarkPlaces Beta March 2023 physics -- which Zircon Beta uses -- does not have the Dreadnaught fall through the floor with droptofloor start nonsolid .

What about the Rogue dudes that Hemebond noticed falling through the floors?

This is my point of view from what I see. I understand the concepts of different goals and motivations so I can understand your point of view.

from darkplaces.

bones-was-here avatar bones-was-here commented on August 11, 2024

I disagree with you, and point out that in your fork, id1 Quake is broken by default ;)

it plays the content right or it doesn't

This is an oversimplification. There's no one true correct behaviour because Q1BSP support is such a broken mess. The original implementation was buggy, the maps are buggy, and all the derivative Quake engines do different things and many of them are, or were, buggy. It simply isn't possible to support all content ever made for Quake with a single set of behaviours because different content assumes different engine behaviours. Any time we change a default we break someone's custom content because so many mods don't set any workaround cvars that they need and havn't added themselves to DP as a recognised mod with alternative defaults.

Does DarkPlaces Beta play correctly mods targeting classic DarkPlaces: NO.

Classic DP was a bugfest, sorry if your stuff depended on some of those bugs.

Does DarkPlaces Beta play correctly mods targeting Quakespasm: NO

Can you post an example of something that works in QSS but not DP? I think not.

You are ofc free to use the various sv_gameplayfix workaround cvars in your mod, I don't recommend it but they're there for a reason, and most engines don't offer them.

The Rogue lava men are placed incorrectly by the mapper, and are broken in some way in all engines. The behaviour is different depending which one you test. I'll probably add a cvar to DP to select which of the broken behaviours you want, but the only proper fix is to fix the map (eg with an .ent file). We already discussed this in detail.

from darkplaces.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.