No cheating allowed

I was wondering how I could disable cheats in my custom WAD so that, under no circumstance, can anybody use stuff like "no cliping", "give all weapons", etc... This WAD will have to work in GZDoom. I know that it can be done because I've played WADs that won't let me use stuff like IDKFA or IDCLIP.
thanx ^_^

Share this post


Link to post

I don't believe you can entirely disable cheating in a WAD, but for a start you can use MAPINFO to define the property "DisableCheats" under the skill definitions to disable them throughout the WAD. However, players can probably circumvent this with CVARs or something.

Someone can probably explain better, but I'm assuming you know a bit about ZDoom/GZDoom already.

For reference: http://zdoom.org/wiki/MAPINFO/Skill_definition

Share this post


Link to post
DASI-I said:

under no circumstance, can anybody use stuff like "no cliping", "give all weapons", etc...

Nah, that's not going to be possible at all.

You can redefine all skill levels so that they all disable cheating (like Nightmare! does). But that won't prevent someone from cheating anyway, they'll just have to go through the extra step of setting sv_cheats to 1 before starting a game (or loading a save).

Also, Graf in particular is notoriously hostile to feature suggestions aimed at taking control out of the player's hands. Really disabling cheats in a mod would be no exception; it has no chance of being accepted.

(Fun fact: you can change cheat codes with DEHACKED. ZDoom intentionally doesn't support this feature. It wouldn't have much of an effect on console commands anyway.)

Share this post


Link to post
Gez said:

Also, Graf in particular is notoriously hostile to feature suggestions aimed at taking control out of the player's hands.


what about the author's, then?...

DASI-I said:

I was wondering how I could disable cheats in my custom WAD so that, under no circumstance, can anybody use stuff like "no cliping", "give all weapons", etc... This WAD will have to work in GZDoom. I know that it can be done because I've played WADs that won't let me use stuff like IDKFA or IDCLIP.
thanx ^_^


I think you are free to simply change the cheat codes (IDCLEV, etc) to something else.

Or is this where Graf Zahl comes in, and lets "the player" still type in cheat commands in the console?

Share this post


Link to post

I had asked about this awhile back, and some of the things suggested to me were that disabling cheats is a bad idea because a player who wants to cheat already knows that they're gonna break the game, and a player who plays without cheats is doing so because they want to experience the game as it's meant to be experienced. Trying to force the player to be one or the other just takes away their choices, which irritates them.

Share this post


Link to post
gemini09 said:

what about the author's, then?...

Authors who don't understand why disabling cheats is a bad idea shouldn't have the ability to do it.

Share this post


Link to post
Dragonsbrethren said:

Authors who don't understand why disabling cheats is a bad idea shouldn't have the ability to do it.


how do you justify to restrict the map author, but not the engine author?

Share this post


Link to post

I can't stress this enough: if you're going to disable cheats mod-side, you had better make DAMN SURE your mod has absolutely NO ERRORS WHATSOEVER. I can think of one particularly bad example where a mod disabled cheats by default, yet had things like once-only doors where they should have been repeatable, doors with walk-over lines instead of use, etc. Quite aggrivating when the only thing the player can do is restart the whole game rather than noclip through when it was an author's mistake inthe first place.

In short, don't do it. All you're going to do is piss people off.

Share this post


Link to post
gemini09 said:

how do you justify to restrict the map author, but not the engine author?


Let's say that you are a map author. And that you strongly dislike, for example, when a map uses Wolfenstein SS in a non-Wolfenstein level. You find that they completely ruin the ambiance, look out of place, and stylistically clash with the look of the Doom graphics. You really hate them. (It's just an example. If you don't actually hate them, just pretend you do for the next 30 seconds.)

Let's say now that in your map's WIP thread, someone is there telling you "I love to fight the blue Wolf guys, put them everywhere in your map!" Will you:
A: Ignore his request and keep doing your map your way?
B: Cave in and put SS everywhere even though that makes you hate your own map and refuse to play it?


Now imagine you're an engine author and that somebody asks you to code in a feature that you strongly dislike...

Share this post


Link to post
Dragonsbrethren said:

Authors who don't understand why disabling cheats is a bad idea shouldn't have the ability to do it.

Authors should be damn well allowed to do whatever they want, regardless of how the public perceives any design decisions whatsoever. I'm not defending the practice of disabling cheats at all (I disagree with it, in fact), but rather the right of the author to have full control over all aspects of a mod.

Gez said:

Now imagine you're an engine author and that somebody asks you to code in a feature that you strongly dislike...

Illegitimate comparison. The engine is merely what runs the thing, a mod is content. Content is only limited by the engine it runs on. The engine is in no way limited by how it's used in user-made content.

Share this post


Link to post
Sodaholic said:

Authors should be damn well allowed to do whatever they want, regardless of how the public perceives any design decisions whatsoever. I'm not defending the practice of disabling cheats at all (I disagree with it, in fact), but rather the right of the author to have full control over all aspects of a mod.


Authors have the damn well allowance to do whatever they want, including learn to fork some free software and code in themselves the features they want so bad.

Likewise, engine authors have the damn well allowance to do whatever they want, including rejecting feature requests that displease them.



Also; the only way in which one can really have full control over all aspects of a mod, including how it is played and on which hardware and software settings, etc.; is by being the only person to ever play it. Want to make sure nobody ever cheats? Don't ever release your mod. And make sure you never cheat.

I mean, even if there were some "cheats = false" flag you could put in somewhere in the wad, what would stop anyone from opening it with SLADE 3 or whatever, and change that to "cheats = true"?

Share this post


Link to post
Gez said:

Authors have the damn well allowance to do whatever they want, including learn to fork some free software and code in themselves the features they want so bad.

Which they do, and have in fact done.

Gez said:

Likewise, engine authors have the damn well allowance to do whatever they want, including rejecting feature requests that displease them.

Which they do.

You seem to be under the impression that I'm making the argument that engine authors have to bend to the will of the people. Not really, quit making assumptions.

Gez said:

Also; the only way in which one can really have full control over all aspects of a mod, including how it is played and on which hardware and software settings, etc.; is by being the only person to ever play it. Want to make sure nobody ever cheats? Don't ever release your mod. And make sure you never cheat.

I mean, even if there were some "cheats = false" flag you could put in somewhere in the wad, what would stop anyone from opening it with SLADE 3 or whatever, and change that to "cheats = true"?

I'm only talking about having full control over the intended way of playing it. Players certainly have the freedom and right to circumvent any of the author's design choices. It's just that I feel that the author should be allowed to make the default, "canon" version of their work function as they want it to.

Share this post


Link to post

The intended way to play my wad is with clean fucking teeth. Plz code in a breath analyzer so that I can make sure my mod isn't played by people with poor dental hygiene.

Share this post


Link to post
Gez said:

The intended way to play my wad is with clean fucking teeth. Plz code in a breath analyzer so that I can make sure my mod isn't played by people with poor dental hygiene.

You're free to do that if you want to, bro.

Share this post


Link to post
Gez said:

Now imagine you're an engine author and that somebody asks you to code in a feature that you strongly dislike...


well, sure...

What does ID Software do, when they license away their engines?

They certainly don't force anything on the license-takers and their creative works.

Share this post


Link to post

Just reading the title was enough to know Gez would troll the shit out of that topic.

*takes a shot*

The logic behind the ZDoom stance on modding cheats is understandable... As a legitimate, but ultimately subjective decision.

It's harder to fathom how can you expect to retain any credibility defending this stance *while* also repeatedly bitching about anyone who doesn't praise ZDoom and hail it as the master port of the Doom universe, making them to be some kind of troglodytes who "hate" the port and couldn't possibly have any logical reason for their behavior.

ZDoom being filled with arbitrary design choices like the above, you just end up looking like a tool with such a gigantic ego you can't even entertain the idea your opinion isn't the unequivocally best way to do things, or that people might genuinely like the game better with other rules than your own.

Share this post


Link to post

this is a strange thing to care about. People who want to cheat and arent allowed to wont play your wad. People who dont cheat wont notice the difference, and you wont know about it either way anyway.

Its like an author of a novel worrying that someone will skip to the last page of their book.

Share this post


Link to post

I imagine if someone's going to cheat in a wad it's probably because they got bored playing normally (either map is tedious, confusing, or is at a difficulty they don't feel like overcoming). So slap on some iddqd and mindlessly wander around and kill things, if the wad starts to look fun again maybe try again legitimately.

so basically no cheats --> bored players might just quit.

I'm curious why someone would want to disable them though, do you want latter levels to only be seen by players dedicated enough to play through the entire wad?

Share this post


Link to post
Ribbiks said:

I'm curious why someone would want to disable them though, do you want latter levels to only be seen by players dedicated enough to play through the entire wad?


Yes.*

Objectively, there is no argument for ZDoom's stance. This is proving to be like some bedroom-preference for one of the hobby-programmers...

*the point is that when I decide to create something, I find it inappropriate that another hobby-programmer that is basically doing what I'm doing (modding a game), dictates what I can and can't do.

Share this post


Link to post

Make it a multiplayer-only wad, that should disable most cheats.

Share this post


Link to post

I've played a few wads before that were so badly designed that I *had* to use cheats just to get through them, so... yeah...

Share this post


Link to post
Phml said:

ZDoom being filled with arbitrary design choices

This is why I've mostly stopped using it. I dislike the way that it has that ugly yellow tint applied to the background when you're in the menu, I dislike how textures animate when the game is paused, I dislike how it has those horrid looking decals built in, I dislike how the projectiles have additive transparency instead of normal transparency like Boom uses, I dislike the "secret revealed" message and sound, and I dislike how enemy item drops fly upward by default. I don't mind the features described existing, and I know they can be turned off and disabled quite easily due to user preference, but it bugs me how all of these changes are just automatically applied to the base game. This stuff should be left to mods, and if such content is deemed to be "defacto base", it should be a seperate, optional pack, similar to skulltag_actors.pk3 or something along those lines.

Despite the very negative tone above, I'm not trying to say any source port is better or worse than others, I'm just stating my own personal preferences and reasons for migrating to other ports. ZDoom's still a pretty good engine for what it is, it clearly has a lot of work put into it, it's just that it has so many arbitrary design choices and changes that it's too far from my personal preferences to like all that much in the context of playing Doom engine games as-is, or even simple, non-elaborate mods.

It's a great engine for TCs, but if you're going the TC route, I prefer to have many subtle things changed for the sake of tweaking a custom overall feel to perfection, rather than work within the limits of the "Doom feel". Nash has been kind enough to let me test his custom build and some content he's made for it, and I love all of the subtle changes, like making the pixels square, making the movement less slippery, adding Quake-like stuff such as view tilting when the player strafes, and weapon "drag" where it tries to recenter itself when you turn, as well as moving the weapon forward when you look down and backward when you look up.

Share this post


Link to post

Cheating in SP mode is pretty much a non-issue (it only affects that particular user). It's also a time-honored practice in video games, going as far back as the early 80's. Some games shipped with built-in cheat codes, while others were added when game was cracked (often going so far as to code in elaborate cracktro and trainer menu). Even the original Nintendo had plenty of games with built-in cheats, along with 3rd-party solutions (Action Replay type stuff).

The reality is that in order to completely eliminate the possibility of cheating, you would need a full-on DRM hardware/OS combo, but that would only stop the less technical gamers, until such time as someone reverse-engineers the system.

Forget about it. Focus your energy on making things in such a way that you derive fulfillment from the act of creation, rather than worrying about external events outside of your control.

Share this post


Link to post
gemini09 said:

the point is that when I decide to create something, I find it inappropriate that another hobby-programmer that is basically doing what I'm doing (modding a game), dictates what I can and can't do.


But attempting to disable cheating is an impossible task anyway.


Did you know that nightmare skill doesn't disable IDDT or IDCLEV? That skipping to a given level was a built-in feature from vanilla Doom's setup program? (It merely provided a front-end to the -warp parameter.)

So saying that the latter levels should only be seen by people who've played through all levels before is impossible in the baseline.

A possibility to "fix" IDCLEV consists in using non-standard map names, e.g. LEVEL01 instead of MAP01, and so on. Then an idclever will find himself in vanilla Doom II levels. But even then, they're just a listmaps console command away from knowing what to enter in a changemap command.

Why bother attempting to code in an impossible feature, like preventing cheats, when players who want to cheat will be able to do so regardless? For every countermeasure, there's a counter-countermeasure; ending up with the perfect trump card of simply editing your mod.

You can say that it's evil ZDoom programmers who are unjustly depriving you of your legitimate right to control how players use their computers; but it's mostly a case of asking for the impossible in the first place.

Share this post


Link to post
Gez said:

But attempting to disable cheating is an impossible task anyway.


Did you know that nightmare skill doesn't disable IDDT or IDCLEV? That skipping to a given level was a built-in feature from vanilla Doom's setup program? (It merely provided a front-end to the -warp parameter.)

So saying that the latter levels should only be seen by people who've played through all levels before is impossible in the baseline.

A possibility to "fix" IDCLEV consists in using non-standard map names, e.g. LEVEL01 instead of MAP01, and so on. Then an idclever will find himself in vanilla Doom II levels. But even then, they're just a listmaps console command away from knowing what to enter in a changemap command.

Why bother attempting to code in an impossible feature, like preventing cheats, when players who want to cheat will be able to do so regardless? For every countermeasure, there's a counter-countermeasure; ending up with the perfect trump card of simply editing your mod.

You can say that it's evil ZDoom programmers who are unjustly depriving you of your legitimate right to control how players use their computers; but it's mostly a case of asking for the impossible in the first place.


It's not a matter of players still finding ways to cheat.

It's about my creative control over my own mod. It has nothing to do with those who made ZDoom, and their personal preferences.

I understand that ZDoom is a personal project for the group involved, and they are certainly free to shape it as they see fit.

I think it would be healthy to recognize the fact that modders come before a programmer's personal preferences.

Share this post


Link to post
gemini09 said:

I think it would be healthy to recognize the fact that modders come before a programmer's personal preferences.

Why?

Why is it a fact?

Why would it be healthy to accept it as a fact?

Share this post


Link to post

You can't disable cheats, but you can prevent players from using it.



You can give the +WEAPON.CHEATNOTWEAPON flag on weapons to prevent them from begin obtained by IDKFA

The +NOTIMEFREEZE flag will prevent monsters from being affected by the freeze cheat.

The +NOFEAR flag will prevent prevent monsters from being affected by IDCHOPPERS cheat.

Remember that any thing that does a damage of 99999 can instantly kill anything, even players in god mode. Make use of it with a custom-made rocket, and make the Cyberdemon always kill the player when hit, even if cheating.

Place some sectors with instadeath around and outside regular sectors to prevent IDCLIP, but you cant prevent players to cross locked doors with it. For doing this, you will need to create an invisible actor that will fire a hitscan attack of 999999 damage right after it sees the player, and place it behind the locked doors. And instead just locking the doors with keys, you will need to make the door line call an ACS script to detect if the player has the key, then open the door, and destroy the actor with the deadly hitscans that guards it.

But, this would require a lot of knowledge in DECORATE and ACS.

Share this post


Link to post

I'm not surprised the OP did not reply in his thread after the somewhat heated debating earlier.

Share this post


Link to post
gemini09 said:

I think it would be healthy to recognize the fact that modders come before a programmer's personal preferences.


Nope.

Share this post


Link to post
Sergeant_Mark_IV said:

You can't disable cheats, but you can prevent players from using it.



You can give the +WEAPON.CHEATNOTWEAPON flag on weapons to prevent them from begin obtained by IDKFA

The +NOTIMEFREEZE flag will prevent monsters from being affected by the freeze cheat.

The +NOFEAR flag will prevent prevent monsters from being affected by IDCHOPPERS cheat.

Remember that any thing that does a damage of 99999 can instantly kill anything, even players in god mode. Make use of it with a custom-made rocket, and make the Cyberdemon always kill the player when hit, even if cheating.

Place some sectors with instadeath around and outside regular sectors to prevent IDCLIP, but you cant prevent players to cross locked doors with it. For doing this, you will need to create an invisible actor that will fire a hitscan attack of 999999 damage right after it sees the player, and place it behind the locked doors. And instead just locking the doors with keys, you will need to make the door line call an ACS script to detect if the player has the key, then open the door, and destroy the actor with the deadly hitscans that guards it.

But, this would require a lot of knowledge in DECORATE and ACS.


There's still a way to cheat around that. Once the player dies, they use RESURRECT.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now