Game Development Community

Um potential problems for me and maybe for other people!!

by Matthew Shapiro · in Torque Game Engine · 04/16/2001 (12:12 pm) · 14 replies

in tribes 2 scripts are kept in a differetn file (.v12) which can be opened with a zip compresser. for my MMORPG this could lead to so many problems, as we don't want people unattend macroing or they can really cheat or screw with the gameplay with this! With the engine will there be a way to disable custom scripts and to keep all existing scripts within the game file?

#1
04/16/2001 (12:33 pm)
Matthew,

This would be a fairly trivial change to the engine. Just comment out the part that goes looking for 'mods' in other directories, etc. Then run a CRC on the .v12 files to make sure they haven't been modified.

You could get fancy and use some encryption, but if a hacker can modify your CRC check, they can modify your encryption check too.

I won't get in to my views on RPG design, but let me say this: If you allow script code to be executed on the client side, you will _definitely_ have hacks created. And any game that allows macroing (ie: press key 100 times = more powerful character) will also gain auto-trainers.

--Bryan
#2
04/16/2001 (1:17 pm)
Somewhat offtopic, but I'd contest that you don't want to totally break all forms of macroing. Clearly in a MMORPG you don't want the ability to mod the client in any way shape or form, but watching what people macro allows a valuable insight into your game design and where it's flaws are.

While there are a few people that macro everything they possibly can, most people only macro things that are tedious and boring, yet required for whatever reason (to gain wealth, exp, power, insertgamespecificgoalhere) ... In our game design, while we've tried to remove all the tedious stuff, inevitably there will be things that players dislike, and it's valuable to know what those are by observing what processes are macro'd or automated.

In short, design your game to remove the boring, the tedious, and the repetitive, and add fun ... remove the desire and need to macro, and for god's sake, don't take the draconian approach EQ did towards task switching ;)
#3
04/16/2001 (1:21 pm)
I fail to see the problem. Are all things in Tribes 2 controled via client side scripts? It's a rethorical question.
#4
04/16/2001 (1:33 pm)
You will never completely prevent unattended macroing.
At the best, if you officially denounce unattended macroing (ala Verant) you will need to spend resources on interacting with characters that appear to be standing around doing nothing but making arrows for instance. When you do not get a response you can assume they didn't just take a bathroom break and set up a temporary macro, you can assume they aren't just ignoring your policing individual, or any number of things. Anything you do is time & effort that would be better spent elsewhere.

On the other hand you can follow in Turbine's footsteps and do nothing/very little for skills that don't impact the game such as trade skills, and follow a use-over-time model for those that do. I believe that in AC if you use a vital skill more often than once in a 60 second period the xp award is halved, and then halved again if you use it again in 30 seconds, continually reducing xp to nothing until the skill has not been used for a while (I think it's something like 5 minutes on AC currently).

We've debated the macro issue at length and boiled it down to two schools of thought. #1 It ruins the purity of "The Game". The only ones who seem to follow this argument tend to be those with alot of free time to spend on "The Game". (Mostly the students) #2 Macroing help keep productive members of society as well off in the game as if they've spent a full 40hrs a week playing it. (Those with paying day jobs).

You don't want to be telling your customers how to have fun, but you can't allow some to do something that interfere's too greatly with the fun of others.

In the end, this is much less a tech issue, and more a design & cusstomer relations issue. And it's almost as much fun to debate as player killing rules.
#5
04/16/2001 (4:27 pm)
Well i'm not planning to have the scripts run client side (well you know what i mean) but there have to be scripts to run the game! Well i'm planning that after every patch have A) a different kind of encryption key and b) have crc checks and add comments or something inside the scripts or somthing to change the crc size :)

And with unattended macroing we don't watn it for just the reason one of you said (too lazy to look back :P) because we want you to do tedius and boring stuff to earn your stuff. We're trying to create an MMORPG that has more than just go out, fight, etc... we will have fighting but... I'll probably make myself a monster or player or whatever, roleplay somewhat, and if they don't answer either kill him (tho that's mean >:) ) or just disconnect him. I"m planning on having small patches like every week or so, some may not be updates just changing so less hacking so the hackers have to discover a new encryiption key eveyr week, which will become very annoying :)

alos it's kinda a tech question but i'm mainly staying on the v12 boards waiting for that one moment that the post is posted "V12 is now released" :) *crosses fingers hoping that moment comes soon*
#6
04/16/2001 (4:33 pm)
and actully i could have the game alert the gms if someone is sending the same commands over and over again with the exact amount of time in between, then we check to see if he's unattending macroing! or the server could just disco him if the commands he's giving is the same wti the same amount of delays!
#7
04/16/2001 (7:04 pm)
Matthew,

Give up now. It's really not worth your effort. I fell into this trap when writing shareware in the late 80s, as much as I knew or learned about stopping hackers, the more difficult it became. It adds nothing to the game and only takes up your time and resources. 99% of people are game-players, not game-wreckers.

There are notable exceptions to this however. Diablo and UO are the best examples I can think of. Diablo had 'trainer' programs that enabled ANYONE to cheat just by pressing a few buttons. This was simple data-file format issues, allowing a user to store multiplayer-character information on their own drives (don't do this).

UO was so bug-ridden, it was almost impossible NOT to cheat. Just walk a monster over to the corner of a house and he got stuck.. then pick it off with arrows. A newbie could kill a dragon this way. All of this was fixed eventually, but it was this way for over a year. It's these things that you should work to avoid in the first place.

This goes for any form of automated-macro finding programs too. Really, it's not worth it. Just make the game so it doesn't encourage this behavior to begin with (EQ for instance does not encourage macroing).

Sorry for the rambling.
--Bryan
#8
04/17/2001 (2:00 am)
The encryption part only consists of changing the encritpion key which takes one second and so does adding some code to change the CRC check!
#9
04/25/2001 (11:22 pm)
Simple fix.

Change the code of the game to only open pasword protected .vl2 files that have a specific password.
#10
04/26/2001 (5:44 am)
Haha Harold you beat me to it....

that does bring up the question though of whether that capability will be lost in the "stripping" of the code i dont think it will since alot of other apps use zip compression but it is something to think about
#11
04/27/2001 (12:54 am)
I think that these types of games should have some sort of macro system implemented inside the game (Ultima online style) so that people can combine functions to make it easyier to play. UO has only recently (in the past 6-12 months) implemented anti-macro code that will actually stop you gaining in skill after you have gained a certain amount. Of course there are ways around this by constantly moving about while macroing, so people took to boats to train thier characters.
People will always look for the easiest way to train thier characters.
The best bet is to try and keep them happy with the ingame system but also make the code so that they cannot just gain without doing other things. For example, if you want to gain your skill in swords, you cannot just sit there fighting someone else, or trap a monster and heal it to keep it alive. make it so that it gains a certain amount per enemy fought. meaning somone that runs around a dungeon hacking monsters will gain from each monster, but somone who stands still and attacks 1 person or monster will only gain a set amount. I spose its best to learn from other peoples mistakes. look at EQ, AC, and UO they all have lessons to be learnt.

Caliban
#12
04/27/2001 (3:23 am)
Quote:For example, if you want to gain your skill in swords, you cannot just sit there fighting someone else

I'm not really an RPG fan but isn't the idea to make it as realistic as possible. Correct me if I'm wrong, but I'd have thought practicing was a legitimate way of gaining skill ;)

I agree that from what I've heard you might as well have macros, but good game design should limit the incorrect use of them as mentioned above. For example (and I haven't really thought this through) if you trap a monster and attack it and heal it etc then I think you should get very very good at attacking and healing that particular monster.

I guess thats what you're getting at anyway.
#13
04/27/2001 (4:17 am)
Heh maybe i should clarify my post a little :) I'm not talking about like UO's in game macros, those we'll probably put in. What i'm talking about is using a macro program to automattically do things over and over and over again. Like in UO (those who have played would know) with mining i used to juststart up my macro program to select the pick axe and mine in all 8 directions around me then move 1 to the right, repeat etc... Thats what i don't want because your gaining skills and not actully being there (tho it was fun in UO :P)

You will gain skills by practicing them and our formula for skill gain will take your level in consideration (wlel all skills except non-fighting skills). So yeah the more you fight, the more skill your gain but after a while wihtout leveling your skill raise percentage will get lower and lower and lower untill you level again.

Alos sortof with the first point (i don'tk now if i mentioned this before....) I'm going to make the server look for some things. It's going to look for repeated commands done in the EXACT amount of time over and over and over again. so If they do it like say 5 times or whatever, it will disconnect them. Also i'm not going to make this a big part cause we need our gms to do other things, but if they have time to spare and they see someone there they can posses something and RP to see if he's there or not. Unfortunatly this does mean that if someone is taking a bathroom break, well they'd better not be holding down a button. Alos the server program will be looking for a massive amount of commands coming from one user in little time. this prevents the oh so popular get a rock and hold down the button to macro style of macroing. This lags the server and it just own't be tolerated :P
#14
04/27/2001 (6:56 am)
Adding code to block people from using macros strikes me as odd. In any other software program, you attempt to make the user's job easier, not harder!

Why shouldn't they have a 'repeat' key? I could log on, tell my avatar to practice fighting or study or mine. I mean, who really wants to sit there mashing a key combo over and over again? After all, I'm paying for the game...shouldn't I be able to play it the way I want to?

I see a lot of game developers get caught in this trap...they decide that the game is going to be played a certain way, and then they expend effort trying to block players from doing anything else. Why not build an engaging environment, and let the players do what they want?