Spoiler: How compatible is ZChecker (with other modifications, with old versions, ...)?
As compatible as possible. During the development period about fifty different modifications for ZDoom, GZDoom and Zandronum were launched with the project. Even bugs of different engine versions were found, taken into account and leveled out: GZDoom 3.3.1, QZDoom 2.1, GZDoom 4.6.0, GZDoom 4.9.1.
Spoiler: Why ZChecker for common players/reviewers?
The most enjoyable part is creating actors by incomplete names and in any quantity (command "zcsummon"), as well as viewing everyone and everything on the "Everything" map. I, as a player, also found ZChecker useful for deleting glitched actors ("zcact rm").
Spoiler: Why do mappers (map testers) need ZChecker?
There are several geometry-related infopanels in the tool. When testing various maps, I often use the player info panel ("zcadd self") with information about sectors and portals to give the exact coordinates to the mapper.
Spoiler: Why do modders need ZChecker?
- Debugging and testing of individual actors; - Mass debugging and mass optimization on Everything; - Problem diagnosis; - Understanding the actor device, the ZScript, and the game engine as a whole (ZChecker includes working with almost every major subsystem available from under ZScript); - Real-time experiments with built-in properties; - And other, less important and in some places even unnoticeable, but no less useful things...
Personally, the tool comes in handy in almost every project, both my own and team projects.
Spoiler: Can it be used for mods for Zandronum, DSDA-Doom, Eternity and so on?
Yes, quite: if the modification is compatible with GZDoom, you can debug it via ZChecker. That is, the target port of the project is any, but with additional debugging in GZDoom, LZDoom, VkDoom, QZDoom (or other port with ZScript >3.3.0 support).
Spoiler: My mod started to slow down. How to debug it more efficiently?
The "Everything" map. It can show a lot of flaws and defects. The commands "profilethinkers 7" to view the most voracious actors, "zcaddlistget" to get a list of actors sorted by time of appearance in the world, and "zcaddlistget <number>" to add to the info panel are often helpful. Jumping to an actor in the infopanel can be done via "zcsetprop s rel:<to whom> x:0,y:0". Removal is either via the built-in "remove <class>" or via "zcthinkers rm:all <class>". Also see "What are some built-in commands that work well with ZChecker?" (next Q&A).
Spoiler: What are some built-in commands that work well with ZChecker?
There are many! But here are the main ones: - "profilethinkers 7". How much time the CPU takes to process this or that actor. - "alias". An alias for a command or several commands - there are examples of use in section 4. - "freeze". Freezing the world. - "i_timescale <number>". Accelerate/decelerate in-game time.
Spoiler: My [complex actor with a lot of states] is broken and I can't find the cause. ZChecker will help?
Yes! In info panels there is an option to enable tracing (output) of played stats. It also makes sense to add output of its name (""####" "#" 0 A_Log("Spawn:" )") after each state label (like "Spawn:").
P. S.: for complex projects this method shows incredible efficiency. In one of them I managed to reduce the debugging time to twenty minutes (without it about eight hours were spent before).
Spoiler: The map "Everything" does not start/hang.
ZChecker creates all actors from all loaded mods. It is impossible to predict in advance how an actor from a third-party mod will behave...
Spoiler: Can I create a copy of linetarget actor on "Everything"?
You can, and not only on "Everything": there's a paired command "zccopyclass" for copying / "zccopysummon" for pasting. Modified properties of the copied actor are not transferred.
Spoiler: What are your settings?
Statistics: Posted by JSO_x — Mon Feb 05, 2024 3:16 am