Advertisement

Hacking

Started by July 01, 2006 01:19 AM
16 comments, last by Kest 18 years, 7 months ago
I'm looking for some opinions, suggestions, and random ideas about hacking in a sci-fi RPG. First, a description of what I currently have going. I set my scripting system up to work off of "channels". Basically, every map in the game has 255 channels. Each channel can be given a short name, and contains a value (they also track changes and a few other things). The first thing I set up with this system was an electronic automatic door. Free Image Hosting at www.ImageShack.us A defined an AABB area with my editor, and set it up so that character objects which were on the ground and inside of it would increase the number of a certain channel (a pressure plate). I then defined two events for the door. One would watch that channel, and when the value was more than zero, would open the door. The other would watch the same channel, and close the door when the value dropped back down to zero. Free Image Hosting at www.ImageShack.us I used this channel system because I thought it would be more efficient than searching for objects for every little event (the AABB would have needed to search for the door by name, then send it an event). I didn't have hacking in mind when I built it. But now I do, and I realize the potential I accidently added. Even though I didn't plan on things working out this way, I ended up giving the player full control over every electronic gizmo in world, with very little work on my part. He just hacks into an interface, locks the pressure plate channel to a certain value (like zero), and he has permenantly locked that door. Well, until AI technicians can fix it. Since channels have short programmer-like names, and the character may not know exactly what everything does or relates to, it gives it a sort of "feel your way through and try a few things" touch, which I really think goes well with hacking. I will have to limit which channels can be seen and accessed, because some channels will be used for things unrelated to electronic gear (like controlling human AI guards through a radio system or such). But other than that, he'll have control over everything. Elevators, cameras, security mechs, even the spraying water fountain in front of the building. That means he can manipulate things, even when they are irrelevant to a certain mission or situation, which is exactly what I wanted. That's about all I'm certain of at this point. I'm still unsure about many things. I'm not positive about how I want hacking character-stats or skills to work. I'm pretty sure I want hacking software to have different capabilities, such as some software not being able to lock channel values, or maybe unable to manually change the channel value but still be able to lock it. Channels will likely have different levels of security. Like level 1 being very hi tech alarms, vaults, and other extreme gizmos. Level 2 being moderate security like cameras and mechs. And the levels just keep dropping depending on importance. The automatic door would likely be near the bottom, around level 5-6. I'm not sure if I want hacking software or player skills to dictate which levels he can access. Or maybe allow him to access any level, but put some other type of restriction, like the AI being alerted about the changes because he lacked the skill to go unnoticed. I really need some thoughts about how character skills should effect hacking, if they should at all. I mean you'll already have to buy expensive software, and money in this game will not come cheap. So the character is going to have to work to progress toward better equipment, which is nearly the same as building on a few stats. I would also like to hear about anything I could do to add more detail to the whole hacking system. Or just any suggestions at all. Anyway, I have a long way to go. If you just want to tell me that my ideas suck, I need to hear that before I get carried away. Thanks.
If it's an rpg, you would be better off rating the levels for gadgets the other way round. Start with the easiest things to hack as level one.
Otherwise you could end up working yourself into a corner. "Right, I'm halfway through writing my game, and the player is already good enough to hack level one equipment...now what? negative levels?"
It wouldn't be a problem if you carefully mapped out the player's progress so that they only became good enough to hack level 1 things at the end of the game, but it will be much easier for you to just make levels higher as you go along.

You could add more detail to the hacking system by:
Adding a puzzle, aka System Shock or System Shock 2.
Limiting the player's access to infomation about the channels, eg, they all start off with cryptic variable names. The player can either:
1. Mess around with a channel, see what it does, then assign a name and note to that channel. This will work well for things where the control panel being hacked is near the gadget that's being affected.
2. Get infomation/passwords/names for channels from npcs or consoles.
3. Learn a syntax for naming channels. For example, while progressing through a building, the player could come across a number of channels, D1.12, D1.13, and L1.15. Either through trial and error, or talking to people, the player realises that channels beginning with D affect doors, L affect lights, and the other numbers refer to floors and room numbers. Different facilities could have different codes the player must figure out. Some will be simple and intuitive, some could be puzzles or cryptic clues the player has to decypher. Early levels could just have the channels labeled "Elevator", and things get harder as the player progresses.

Some channels could modulate other channels. Eg, it could be impossible to set some channels to 1 until the master door control channel has been set to 1.
However, setting the master door control channel to 1 could disable the elevators, or some other logic puzzle.

Some channels could have timers the player can mess around with. The door is open if the value is above 1, but the value drops 1 per second.
Or the air vents shut off when the value drops below one. The player could manipulate another channel to affect how quickly the air vent timer counts down. He could set the timer so that the air vents will shut off and the door lock just when his enemy enters the room.

Clumsy hacking could jam some channels, limiting the players options.

Knights of the Old Republic and Deus Ex have taught us that messing around with security robot and turret ai is always fun.

The player could turn off the Public Announcement system or security guard radios to confuse and disorganise them.

The player could look over other npc's shoulders, or hack into a security camera or keylogger in order to observe what channels they were editing.

As far as skills and leveling is concerned, that depends on what other things the player will be doing in the game. Does the player have one skill tree for hacking and one for combat? Or a global pool they have to specialise from?

[Edited by - CIJolly on July 2, 2006 1:02:22 AM]
Advertisement
I just want to be sure I understand you system design before I comment. You have channels that are basically environment variables and events constantly poll these channels to see if they have to activate based on the channels current value. I can't help but feel that shuch as system will require a very large overhead to run.


As to the hacking what about also giving the player the ability to change which channel an event points to? Maybe the player needs level 5 hacking to be able to change the value of security level 1 channel but only level 3 hacking to change which security level 1 channel the event points to. So they hack into the vault door lock and change it to open when the security alarm is sounded. They set off the alarm grab the loot and leg it before the guards show up.

I think a little mini game could be a fun way to do the hacking but requiring a minimum hacking level to attempt.
Quote:
Original post by CIJolly
If it's an rpg, you would be better off rating the levels for gadgets the other way round.

Do you really think that would feel more intuitive? I've always thought of security and classified levels going backwards. Isn't level 1 security usually the top notch stuff?

Quote:
You could add more detail to the hacking system by:
Adding a puzzle, aka System Shock or System Shock 2.

Right. But the puzzle itself is the tricky part. Connecting three dots in a line seems a little too abstract.

Quote:
Original post by TechnoGoth
I just want to be sure I understand you system design before I comment. You have channels that are basically environment variables and events constantly poll these channels to see if they have to activate based on the channels current value. I can't help but feel that shuch as system will require a very large overhead to run.

I would guess the overhead for monitoring a channel is about the equivalent of..

if( x > y )

If you assume I have less than 1000 objects in one map monitoring channels, that's still not even enough to make a calculator sweat.

Quote:
As to the hacking what about also giving the player the ability to change which channel an event points to?

Exactly. Not only which channel, but also what value to compare it to, and what comparison operation to use. And it would be as simple as 2 values punched in and a drop down box. If you run all possibility scenarios in your head, the results can get pretty confusing. Especially if you start letting the player buy remote equipment that can work off of channels. I just hope I can keep the player safe from himself, and not let him get stuck everywhere. I won't have a lot of control over what he can think up.

I also decided to go with an area modifier. When someone jacks into the system from a certain port, they have to navigate to other ports. And skill could determine how far they can reach. So you may only be able to access the equipment around the immediate area if you're just starting. But once you master hacking, you could access some entire buildings from any port in them. This would also play a role in how well security counters your hacks. If the tech guy can work from one station to fix your bugs, he can fix them much more quickly than if the soldiers have to keep calling him to problem areas. So some corperations may have better tech guys, and that means less time for hackers to work.

Maybe, being able to rename a channel, or redirecting, it, or duplicating it would be nice...

Imagine being able to set three cameras off, while giving them the same image rendition and different room numbers, in order to fool the poor schmuck tasked with looking at four screens...

As for the skills and security levels, I agree with whoever said to number them progressively forward. You start out with a lvl 1 skill and a level 1 skill test, 1-1=0, it's a simple test and you succeed. If you have level 2 skilltest, then the calculation goes as 2-1=1, you get a chance out of two to succeed.

Basically, in fact, you can choose to make it two ways:

_ If you go with mini-games, then the level of effective difficulty of the minigame is equal to level of difficulty of skilltest minus level of char-skill, which means that, even if you have a hugely difficult hack to perform, if you're skilled enough, it doesn't challenge you more than a simple one

or

_If you go with skill levels and skilltest levels, then you can rule the calculation as follow (Char-skill LvL)/( Skilltest LvL)= chances to succeed. Basically, you roll a dice with as many faces as the difficulty test, and with as many winning faces as your skill level. It means that you can eitehr succeed or fail. Which rules out the timing, and the success rate.



I, personnally, would add the time factor, and the efficiency parameter.

When hacking, you want to make it swift. So if you're doing an easy hack, and are a master hacker, then you probably have made routines to accomplish it faster. You can then make your hack faster. On the other hand, making a difficult hack, even with a tutorial, when not having the required skills make it MUCH longer than when you already know what you're doing.
Yours faithfully, Nicolas FOURNIALS
I just had an idea what if you combine player skill and tools for hacking?

Basicly rather then having you need hacking skill of 5 to hack a level 1 lock. A level 1 lock requires you to have programs A,B,C,D, and E. Each program give you a new option you can use to beat the hacking mini game puzzles. The actual success of the hack depends on player skill.

Advertisement
Quote:
Original post by Fournicolas
Maybe, being able to rename a channel, or redirecting, it, or duplicating it would be nice...

By redirecting, do you mean to force one channel to copy the value of another? I'm also not sure I understand what you mean by duplicating? But I can understand the need to rename channels for brief organizing.

Quote:
Imagine being able to set three cameras off, while giving them the same image rendition and different room numbers, in order to fool the poor schmuck tasked with looking at four screens...

Do you mean to rig one camera to output to four channels? Currently, that wouldn't be possible. But I can see how it might become useful. Maybe I can let the player buy a small device that can copy specific channel signals and send them to other channels.

Quote:
_ If you go with mini-games, then the level of effective difficulty of the minigame is equal to level of difficulty of skilltest minus level of char-skill, which means that, even if you have a hugely difficult hack to perform, if you're skilled enough, it doesn't challenge you more than a simple one

I like what you're saying here. The human player can use his own intelligence to make up for his character's lack of skill. I like the idea as long as the mini-game isn't very random. I would need it to be less than 10% randomness in chances of success. And it's difficult coming up with a solid mini game that isn't very random.

Quote:
Original post by TechnoGoth
A level 1 lock requires you to have programs A,B,C,D, and E. Each program give you a new option you can use to beat the hacking mini game puzzles. The actual success of the hack depends on player skill.

Do you mean like how System Shock used specific chemicals to perform research? Or do you mean the tools would be like red pills in Dr. Mario? Where you can't destroy the red viruses without them?

Thanks for the ideas guys.

I've never played system shock so I can't compare the two but it would depend on whatever mini game you wanted to have. For instance if hacking consisted of say logic gate puzzles. Then each program would corespond to a different logic gate you can place or move. Or like you said if hacking was a game of doctor mario then each program would provide you a different capsual color you can use. So if a lock has both red and green virii then you need at least the red and gree program to hack it.
What if the mini-game was a logic puzzle?

Let's say you have as many shutters on screen than the effective skill test level. Those shutters open, or close, in sequence, and one shutter may trigger actions on other lines of shutters.

You can build a series of, say, twenty-odd logic puzzles, of that kind, and then adapt your hacking system to recognize the logic puzzle?

On the whole, there would be one or two solutions per puzzle, logic ones, so it doesn't require much skill from the player's side to remember a logic solution he found, to reapply it later, if he is to encounter the same logic puzzle.

So maybe, you can randomize the lines of shutter (I was imagining something with one to five lines of shutters, with sidelines connecting the shutters, but the system is still the same, only displayed differently...) to make the logic finding a little different, but I don't think it would be that difficult...

Or would it?


Yours faithfully, Nicolas FOURNIALS
I had a few ideas, and thought I would run them by you guys.

First is about time. I'm considering making up some logic that while a hacker is "jacked in" to a computer system through a datajack, their entire brain is diverted to processing a few numbers at a time. IE, navigating and manipulating behavior of the system. Since the processes use up so little of their brain, their brain functions about ten times as fast. Or in other words, the outside world slows down to about 1/10 of normal speed. Hackers could jack in, change a variable and open a door or two before a few guys were able to bend to their knees and began firing guns. This is single player only, so there's no problems with time bubbles.

The second is kind of to counteract the first, while giving an advantage to being in a hurry as a hacker. While jacked in, a hacker has no idea what is happening to his body. That includes injuries. His entire brain is diverted, so no pain or other feedback about the outside world is available. So anyone hacking a system would always feel like they're in a hurry, even though time is slowed down to such a crawl.

One problem situation I've thought about is that it wouldn't be possible to test hack. A player would need to jack in, change something, then come completely back out to see the results. Unless I provide some sort of minimap to players while they're jacked in. The minimap could display the states of certain devices, like doors, alarms, cameras, etc. Sort of an electronic security blueprint of states for the building.

Any opinions?

This topic is closed to new replies.

Advertisement