ValveSoftware / source-sdk-2013

The 2013 edition of the Source SDK
https://developer.valvesoftware.com/wiki/SDK2013_GettingStarted
Other
3.76k stars 2k forks source link

Maps compiled with static prop lighting crash on map load #365

Open tuxxi opened 8 years ago

tuxxi commented 8 years ago

How to reproduce: -Compile a map that contains any amount of prop_static entities using current version of Counter-Strike: Source hammer -Load the map using Source SDK Base 2013 (either Singleplayer or Multiplayer) -Game will crash on map load.

Using OllyDbg, the game crashes on the function that contains the string "Really old map format! Static props can't be loaded" in engine.dll. I believe this is due to the fact that since October, Counter-Strike: Source uses v10 StaticPropLump_t, automatically adding the info for static prop lighting to the lump during compile. Compared to the 2013 SDK where sp is still on v6 and mp is technically on v10 but engine.dll still has not been updated to bring it in alignment with newer versions.

How to fix: -Update engine.dll for SDK 2013 Singleplayer and SDK 2013 Multiplayer to support new versions of the static prop game lump. -Update SDK 2013 Singleplayer source code to bring it in alignment with SDK 2013 Multiplayer

Nephyrin commented 8 years ago

Are you testing with the beta_test branch of the SDK 2013 Multiplayer Base?

The singleplayer base branch is meant to be a more stable snapshot of the engine, and likely won't be gaining support for static prop lighting.

tuxxi commented 8 years ago

Thank you for your answer!

The beta_test branch will not crash, yes. However, it is still necessary update the binaries for SDK 2013 Singleplayer.

In it's current state, the engine will crash trying to load any map compiled since since october with a static_prop in it, and as you phase the beta_test branch of mp into the main branch, it will crash maps compiled for the main branch of SDK 2013 multiplayer as well. If you don't want to support static prop lighting, the minimum required should be to at least update engine.dll so it will read the new StaticProp game lump and properly load the level.

I understand that you want to keep SDK 2013 Singleplayer as a stable snapshot, but the lack of support for new bsp versions would make it inherently less stable than other engines as you phase this new StaticProp lump version across all games.

Nephyrin commented 8 years ago

To be clear, you're requesting that the SP SDK Base gain the ability to run maps compiled for the newer MP SDK?

The engine changes in MP for newer static prop formats are not trivial, and would be some work to backport to SP. As long as the SP SDK has a compatible version of hammer, I'm not sure this is something we want to commit to.

You are free to use the MP SDK for singleplayer mods -- you just pay the cost of more frequent and possibly-compatibility-breaking SDK Base updates.