To Cheat or Not to Cheat

DCurrent

Site Owner, OpenBOR Project Leader
Staff member
I've noticed the old cheats debate starting up again. It's been done to death and I don't want to derail another thread. Just giving my two cents.

First, on a technical level, the upcoming chat system will be far more nuanced, and that might help fix some things. Creators can enable specific cheats instead of all or nothing, and you can do it in real time. I posted a demo video while I was testing if you want to have a look:


On the moral end of things, I can see both points. To me it parallels cooking. If I spend time fixing a nice steak for someone, and then they whip out a bottle of ketchup, sure, I'm going to be mildly insulted. Why did I waste my time if you're just going to hack it into a fast food quality mess? On the other hand, if some self-righteous a-hole tries to tell me how to eat something that I paid for, there's a better than good chance they're losing some teeth.

I've been on both sides. One I can recall not too long ago was at a Grille in Kansas City. I'd ordered a Strip cut and it was amazing, but I was stupid enough to ask if they had a house sauce or glaze to add. Didn't mean anything by it, but when the waiter practically ran to the kitchen I knew what was about to go down, and I'm thinking to myself - this guy better not get in my face or I'm gonna smack him out of his chef's hat. Instead, an adorable girl with a French accent comes up practically crying and asking what was wrong with the food. She broke me like cheap glass, and I wound up apologizing profusely for insulting her.

The point of all this? Everyone has their own taste and sometimes you just have to look at it from both sides and compromise. Be pretty, that solves the problem. 😁

DC
 
multihit Glitch? 😮
any example of this?

It's like I explained. The engine updates ~200 times per second. On each cycle, it checks all collision boxes for overlap and runs hitcode accordingly. On the next update, the two boxes probably still overlap since the attack hasn't retracted yet. So the engine uses a system of IDs on each collision to let it know "oh, I already detected that collision, no reason to run hitcode again".

If you turn the Multihit Glitch on, the ID system is disabled and thus it's possible for an attack to "hit" the target every engine update until it doesn't overlap any more or (more likely) the target dies. It doesn't happen very often, but you'll know when it does. The hit will sound kind of like a brief buzz from the hit sounds played in ultra rapid succession and the target entity dies instantly unless it has a crapton of hitpoints.

DC
 
Mr. @DCurrent is right, you have to look at both sides of the coin so that there are no problems.

In my development game I was forced to disable cheats because they cause many bugs, for example: on death; When the player has infinite life active, the dying animation is repeated over and over again. Getting stuck in an infinite loop and making it impossible to get the revive script to work.

@Kratus Mmm that glitch is funny, but I wouldn't like it to happen to me, it looks very disastrous 7u7. I only imagine an enemy hitting you with that multihit. I could kill you in an instant lol
 
Mr. @DCurrent is right, you have to look at both sides of the coin so that there are no problems.

In my development game I was forced to disable cheats because they cause many bugs, for example: on death; When the player has infinite life active, the dying animation is repeated over and over again. Getting stuck in an infinite loop and making it impossible to get the revive script to work.

@Kratus Mmm that glitch is funny, but I wouldn't like it to happen to me, it looks very disastrous 7u7. I only imagine an enemy hitting you with that multihit. I could kill you in an instant lol
In the past, many players liked to enable cheating in order to play well on other devices, but there were indeed many problems. My Kunio also deducted the energy usage script and the falling hole. I also did some processing.
C++:
void holeDieP()
{// Prevent cheating players from falling into the hole and dying.
    void self     = getlocalvar("self");
    void type  = getentityproperty(self,"type");
    int mHealth     = getentityproperty(self, "maxhealth");
    int health     = getentityproperty(self, "health");
    int damage     = mHealth/1; //DAMAGE IS ALWAYS 100% OF MAX THE HEALTH
    int x         = getentityproperty(self, "x");
    int y         = getentityproperty(self, "y");
    int z         = getentityproperty(self, "z");
    float yLimit = -240; //HEIGHT LIMIT WHEN FALLING IN ANY HOLE
    
    if(type == openborconstant("TYPE_PLAYER")){
        if(y >= 0 && getlocalvar("inhole"+self) != NULL()){setlocalvar("inhole"+self, NULL());}
        if(y < yLimit && getlocalvar("inhole"+self) != 1){
           changeentityproperty(self, "health", health-damage);
           //tossentity(self, yVel, xVel, zVel); //TOSS THE PLAYER OFF OF THE HOLE
           setlocalvar("inhole"+self, 1); //CHANGE VARIABLE FLAG TO RUN ONCE
        }
    }
}
onmoveascript data/scripts/onmove/xxx.c
 
Mr. @DCurrent is right, you have to look at both sides of the coin so that there are no problems.

In my development game I was forced to disable cheats because they cause many bugs, for example: on death; When the player has infinite life active, the dying animation is repeated over and over again. Getting stuck in an infinite loop and making it impossible to get the revive script to work.

@Kratus Mmm that glitch is funny, but I wouldn't like it to happen to me, it looks very disastrous 7u7. I only imagine an enemy hitting you with that multihit. I could kill you in an instant lol
@Blade Master
You are correct, the enemy can do the same against players. But by default this option is disabled in the new v4.0. However this already exists in older builds like 6391 and below, but can be avoided with scripts or by disabling the "fastattack" function.

In the past, many players liked to enable cheating in order to play well on other devices, but there were indeed many problems. My Kunio also deducted the energy usage script and the falling hole. I also did some processing.
C++:
void holeDieP()
{// Prevent cheating players from falling into the hole and dying.
    void self     = getlocalvar("self");
    void type  = getentityproperty(self,"type");
    int mHealth     = getentityproperty(self, "maxhealth");
    int health     = getentityproperty(self, "health");
    int damage     = mHealth/1; //DAMAGE IS ALWAYS 100% OF MAX THE HEALTH
    int x         = getentityproperty(self, "x");
    int y         = getentityproperty(self, "y");
    int z         = getentityproperty(self, "z");
    float yLimit = -240; //HEIGHT LIMIT WHEN FALLING IN ANY HOLE
   
    if(type == openborconstant("TYPE_PLAYER")){
        if(y >= 0 && getlocalvar("inhole"+self) != NULL()){setlocalvar("inhole"+self, NULL());}
        if(y < yLimit && getlocalvar("inhole"+self) != 1){
           changeentityproperty(self, "health", health-damage);
           //tossentity(self, yVel, xVel, zVel); //TOSS THE PLAYER OFF OF THE HOLE
           setlocalvar("inhole"+self, 1); //CHANGE VARIABLE FLAG TO RUN ONCE
        }
    }
}
onmoveascript data/scripts/onmove/xxx.c
@pudu
Most issues related to cheats are fixed in the v4.0, including this one related to not dying on holes if the infinite health is activated.
 
Ah, the can of worms I opened by finally posting after almost two years. Apologies for that.... this is why I usually just shut up.

Personally, I put the cheats on because I'm old and don't have much free time to "git gud" or whatever. I did all that and now those days are behind me. I play for fun and if you make your game an overly difficult slog, that is definitely a choice you can make, but I'm just going to forget it exists and probably write you off as a creator since I'll just assume all the rest of what you make is the same thing. I played one of these games without cheats yesterday. The enemies drained my life bars and continues before the first boss. This is what I am supposed to put up with? This is fun? Yeah, I don't think so. Had that been my first experience with the game it damn sure would have been my LAST as I recycle binned it and never looked back. If I wanted to be dictated to on how to have fun with a game I'd play something by Nintendo.

Enabling cheats appeals to everyone. Is that not a good thing? It's real easy: If you don't want to cheat, don't do it. But don't get pissy at me because I do want to.
 
To be fair he went out of his way and paxploaded the mod to add cheats[ a thing most of our users probably won't do].

People will exploit games other ways, infinites, speed runners, game exploits etc

Still think Mr Q is one of the greatest obor creators if not the the best. Back in the day I'm pretty sure cheats led to rom hacking and rom hacking to some pretty nifty or interesting snes mods/games.
 
@DCurrent oh, nice work on the new cheats. I think its good to have more control like that.

----

I know I will play the bad guy role, but I will give my (not much popular) opinion: I dislike cheats.
To me, its either a bad player trying a game, or a bad coded game that needs cheats to be activated. Sometimes, kinda of both.

Honestly, I even have plans to block cheats on my game on coding level - like detecing if a cheat is on and doing something, like not a good ending or something more "advanced".

Personally, I put the cheats on because I'm old and don't have much free time to "git gud" or whatever.
I can understand someone doing this for his own copy, but I saw some people making "alternative versions" of some games with cheats enable.
And that's a big disrespect to the creator of the game. Really.

I even remember some people harrassing youtube creators and authors because some authors doesn't want cheats enable on their games.
 
@O Ilusionista
indeed i think that is the best, trolling or punishing the cheaters is a good tactic.

but i think that after a certain point, dedicating a lot of time on doing antipiracy or anti-cheat coding is kind of a waste,
cheaters gonna cheat.

i still insist that the game save and config files have to be protected a bit more tho, they can be exploited.

and about demands and harrassment, its getting ridiculous, i read yesterday about some game where there is actual nullification of water levels because of some water-phobic people complains (allegedly)

and so there seems to be a similar campaign to demand devs to remove spider-like creatures ....
talk about disrespect to the creators... to actually have the gall to tell the creator to delete or censor part of the game.....
 
Back
Top Bottom