I can agree with this, on a different front: willpower, and existentialism.
Willpower: knowing that I can easily (in under a few days' worth of time) modify the game to have about any outcome of my choosing makes it very difficult for me not to try to reason my way into caving and modifying the game, rather than completing the challenge as presented. This leaves me with a bad taste in my mouth, as it feels as if the game isn't the real challenge, I am. A game that is a metaphorical cookie jar doesn't sound fun to me, if I have the what-ifs riding in the back of my mind all of the time.
Existentialism: the game is so easy to break that legitimately earning the rewards actually yield fewer benefits than illegitimately removing limits. In that regard, if the game is all about making the values in the file increase, and I have the means to increase them beyond the game's wildest dreams, I can complete the game instantly. The game no longer is "the journey" to the happy end, but a mere obstacle that can be averted on the way to the final goal of having these values meet criteria in the most efficient way; by having the game's data unintentionally be changeable, the game is now optional.
For these reasons, and faced with these decisions, I will actually lose almost all fun in playing the game, and be forced to move on. Any high scores that I get can be forged. I no longer respect the accomplishments of my fellow players, and I doubt their abilities. My victories will be hollow, knowing that I could have had greater ones in five minutes.
Please, don't kid yourself into thinking you'll get the best of both worlds by allowing cheaters and honest players alike to do things the way they want to. Some people desire not being permitted to break the rules, and will abandon your game if it is easy enough to subvert them.
It sounds like you have serious issues then, if upon realizing that you can get away with doing something unintended, you suddenly find yourself constantly thinking about doing it.
You can probably get away with planning and robbing your neighbor in "under a few days' worth of time", and you'll probably come out with a lot more money/valuables. But I hope, now that you know you can do it and get away with it, you're not suddenly thinking about the "what-ifs" in the back of your mind all of the time.
I don't think most people seem to have the same problems with compulsiveness that you are having...
They have a word for that, its called entitlement. I.e. for some reason there seems to be this popular thought these days that because you buy a game that basically means it should be whatever you want it to be.
Yes, when you buy something - when you give someone MONEY for an item - you are entitled to do what you want with that item. That's part of the act of OWNERSHIP. And when you sell something, you give up your rights to do what you want with that item - you are no longer entitled to it.
This is part of the definition of entitlement and ownership and is a standard part of all commerce. It's something you need to accept if you ever intend on selling anything.
Just like this: I might not like race tracks, so I don't wany any of my cars to be driven on race tracks. But once I sell you my car, I no longer have the right to tell you "You can't use this on a race track." You are now entitled to do what you want with that car, including driving it on race tracks, because you bought it and you now own it.
Textbook definitions rarely work in games
This is not a game, this is a message board discussion. When speaking the same language, you need to abide by the commonly-held definitions, otherwise no one is going to understand what you mean.
an FPS for example is vague terminology just like what constitutes an MMO is vague terminology.
No, there's nothing vague about them. They're very easily defined.
A FPS is a game that uses the first-person viewer and allows the user to carry and shoot guns. "First-person shooter."
An MMO is a game that allows a large number of players to play in the same game environment simultaneously over the internet. "Massively-multiplayer on-line."
I actually never really take textbook definitions of words that seriously
And that is why you are having problems communicating with the rest of us.
"Cheating" is a very-well defined word. You keep using that word, but it does not mean what you think it means.
But really I shouldn't need to even explain why modifying the rules or your status in a game through file modification is considered cheating.
Well almost everyone here seems to think you're wrong so, yes, it sounds like you DO need to explain why modifying the rules or status is considered cheating. Because we all think it does not, and we shouldn't just take it on faith just because you said so.
You should also open your mind to the possibility that you may be wrong.
I mean most software being modified by a user without the explicit direction of the creator is usually seen as a bad idea, barring bug fixes or some nonsense like that.
Yes, but not because it's "cheating." Mostly because it potentially introduces instability in the programm either resulting in crashes or unintended consequences due to the code running in such a way that was not initially foreseen or intended by the designer.
This is the point at which you need to begin debugging.
Set breakpoints in the code, at key places in the code - including the places that SHOULD be calling the shooting functions.
Use the debugger to step through the code, line by line (look up how to "step into" and "step past" lines of code in your particular IDE). Pay attention to the key variables involved in this behavior.
When you isolate the problem to a certain section of code, you'll probably be able to figure it out. If you still need help, post the section of code and explain exactly what behavior you expect to see (in terms of variables and functions), and what behavior you actually are seeing. But until you can be more specific, you can't expect us to read all of your code and figure it out - nor should you want us to. THIS is what computer programming is all about, and you'll never learn it if you don't try it for yourself.
I find that, whenever this question is asked, invariably the answers tend to be overblown and overcomplicated. People throw around terms like "lambda calculus" and "linear algebra", but most of it is just to sound impressive and generally the programming only barely touches those concepts on a surface level, if at all.
The truth is, for most game programming (including 3D graphics), if you've gotten your 2nd year of algebra in high school, you'll be fine.
Some concepts can be expressed in multiple ways - and advanced mathematics can just give you another way of thinking about or expressing the details of a problem. For instance, Alvaro suggests complex numbers as being useful to 2D graphics - but he's really just talking about Cartesian coordinates and 2D vectors. Ultimately, in the end, the code is going to end up looking pretty similar no matter which conceptual abstraction you used in your mind to get there
The exception to this rule is if you're planning on writing a physics engine - and at that point, first-year calculus and a year of physics will generally get you all that you need.
An important, related question is - are you good at math? Because if you're really bad at math, you're probably going to have some difficulty. Not because you need the mathematics itself, but because the kind of logical thinking that goes into programming is very similar to the kind of logical thinking that goes into mathematics. So there's going to be some correlation there - if you're good at one, you'll probably be good at the other. And if you're bad at one, you'll probably be bad at the other.
But if you're good at mathematics, even if you don't know a concept important to your work, you'll be able to quickly pick up and learn what you need as you go along.