Hack.TW
Conceptual Design Sketch 0.12 inspired by Uplink: Hacker EliteBIG NOTE: The game now actually has a skeleton crew development team. It's still in the VERY early design stages (not a single line of code) so this document will see a lot of updates in the following weeks. That basically means that now is a good time to push for any ideas you might want stirred into the mix.
Game Summary
The game itself is very much in the spirit of
Uplink: Hacker Elite. As such it will be more of a learning experience for me as apposed to a full retail production. The goal is to simulate the experience of hacking (or cracking if you prefer) for the player. The challenge will be to make it a fun experience as apposed to a full simulation, while keeping the illusion that most of the concepts themselves could be employed in a real life situation. As such the game itself will emulate real life situations and interfaces (GUIs). In doing so, it will also become necessary to shield the player from
real hacking/cracking techniques so that the game does not become a liability.
Interface This has been an issue with me since I decided to undertake this project. The base problem is easily summed up in two questions:
- Do I try to emulate Uplink's more standard full screen interface or...
- Do I actually attempt to fool the player by using an interface that loads seamlessly into base Windows.
That may seem like a small problem but it actually has far reaching differences. Let me first lay out a summary of each type and then I will elaborate from there.
Full Screen Custom GUI: Employs an interface similar to a Windows or Mac. A bar at the top of the screen graphically simulates the players processor for his/her in-game computer. On the left of the screen an expandable scrollable bar will list all of the files that are stored on the players in-game computer. Other information will be displayed in windows on the main area of the screen. This interface will be very similar to that of Uplink.
In Windows GUI: This interface will actually load within Windows itself. The interface that will most commonly be used will be a central stylized window that will allow the player to buy programs, accept mission, execute programs and upgrade his/her computer. These programs and upgrades will of course only apply to an imagined version of his computer. The programs themselves will launch into other windows as if a real program had been run.
The Pros & Cons: Using a full screen GUI that is similar to Uplink will make it feel more like a game. It will provide me with more options to make it less like a simulation and more like a fun
movie style hacking experience. I will have a lot more control over what the player does with the game and the scope of it. I can also make it more action packed and
twitch based. This will also allow me to make the game as stylized as I wish. The other option will be to load the programs interface into Windows itself. The implementation will still be essentially the same, with just a few differences. For one it will be presented in a way that will make it feel less
fake. The player will feel more like they are actually hacking something real, since they will be using a GUI that they are familiar with. This will also allow me to base the in-game computer off their real computer. So when the player starts the programs from the game they will run slower or faster depending on how good their real computer is. When the player buys an upgrade for his/her in-game computer they will feel like they are actually upgrading their real life computer. All of it could be handled in a seemingly real but very fantasy manner. For example, using the
Full Screen Custom GUI when the player buys an upgrade for his/her in-game computer it would factually appear to be a upgrade when they looked at the stats on their computer. On the other hand using the
In Windows GUI I wouldn't want to actually let the player buy a new processor for their in-game computer because their in-game computer would be based on their real world computer. It would remove the immersion to have such a logical flaw. They know that they didn't actually have a technician come to their house and install a new processor for them. I would instead let the user buy a in-game program that for example over-clocks their computers processor. Instead of getting more RAM they would buy a in-game program that compresses their current RAM. Following me so far? This would help to suspend disbelief and make it seem more real to the user. Just in case you aren't following me, because even I am having a great amount of difficulty describing it, let me provide the information another way.
Using Full Screen Custom GUI: Scenario 1: The player has come to the realization that his/her in-game computer processor doesn't have the horsepower needed. The solution is:
- Load the in-game browser and navigate to Hardware Central.
- Find a processor in his/her price range.
- Purchase.
- Pay a technician to install it or...
- Do it themselves.
Scenario 2: The player needs more bandwidth for their ever increasing hacking charades. The solution is:
- Load the in-game browser and navigate to Underground Telecom.
- Locate an upgraded plan in his/her price range.
- Purchase.
- Wait for the service to be activated.
Using In Windows GUI: Scenario 1: The player has come to the realization that his in-game computer processor doesn't have the horsepower needed. The solution is:
- Using the main window of the game, navigate to the hardware tweaking section.
- Locate the section on processor over-clocking. There will be several programs listed that do this. Some will do it better than others. The ones that do it the best will obviously cost the most.
- Find the program that is in his/her price range.
- Purchase.
- Execute the program. It will load in a small window on the screen and display its effects.
Scenario 2: The player needs more bandwidth for their ever increasing hacking charades. The solution is:
- Using the main window of the game, navigate to the bandwidth section.
- Choose style of solution: Guide on Stealing Bandwidth, TCP Compression Software.
- Purchase something in his/her price range.
In the real world we know that you are not going to be able to do much with over-clocking software or TCP Compression, but in the game we can use these tools to help suspend disbelief. This way instead of
knowing that they didn't actually get a part installed on their computer, they can be led to believe that they have found some secret little bit of software cooked up by some computer genius that does near magical things. Of course they will know they are playing a game, but at least the slap in the face wouldn't be as painful. For the rest of the document I will lay things out as if I had chose to go with the
Full Screen Custom GUI.Gameplay Features Points of each feature have been enumerated to help with later description/discussion.
- Scripted Missions: Acquired in many forms, fitting the situation.
- Hacking missions designed to advance the general game plot.
There will be a goal or main quest to the game. The idea is to make it fluid and seamless. It will be presented in three opposed directions based on the players previous actions. If the player performs many good actions, the missions will revolve around stopping the bad guy. On the other hand if the player performs many bad actions the missions will be something equally bad in nature and involve a good hacker going against them. If the player straddles the line, the game will complete when he reaches a certain fame level, ranking level, monetary level or is caught, basically a free-form win.
- Random Missions: Acquired in the form of emails.
- Change personal records ranging from school grades, to citizenship.
- Bring big businesses to their knees by crashing their servers using many different techniques.
- Plant evidence.
- Destroy important information.
- Steal documents, programs, and more.
- Develop hacking/cracking software for others.
- Track down other hackers who have been naughty.
These missions will be randomized as best as possible, in the hopes that they don't become to repetitive. There will be two distinct categories since I have decided to include a in-game scripting language. The first category will be for standard missions that can be accomplished using only programs provided within the base game. The other category will include missions that require skill with the in-game scripting language. I feel such a system will be needed because not every player will want to learn the scripting language. The player will be able to access the scripting category only by first developing and selling 'programs' on the open market. The higher value the programs have the harder missions he/she will be able to accept. The missions will all be assigned based on how well the player has performed in the past. If for example the player has shown great skill, he/she will be presented with more difficult missions, for example the most difficult standard missions would be crashing servers and the most difficult mission altogether would be ones that require any kind of scripting. The missions will offer monetary rewards equaling their difficulty.
- Freelance Missions: Undertaken on the players own initiative.
- Take control of other computers for your own use.
- Free computers who have been taken control of by other hackers.
- Develop hacking/cracking/tweaking software and sell it on the open market.
- Identity theft/restoration.
- Track down other hackers who you don't like.
- Steal from banks and other large corporations.
These aren't really missions. The player simply decides that he/she wants to do them and the goes about the task using the tools and skills at their disposal. For example, say the player wanted to take control of another computer, they would simply locate a target and the proceed to take control of them. They could then load software onto the newly controlled computer, steal important information from it, keep it under control for use in other situations and etcetera. Some will of course be more dangerous than others.
- Processor
- RAM
- Hard Drive
- Internet Connection
- Purchase software to facilitate hacking/cracking.
Using money acquired doing missions the player will be able to upgrade their computer. This will help them execute programs more quickly, run more programs at once, control more computers, compile code they have made themselves faster and etcetera. This will be the main reward system in the game. It will give the player something to strive for.
- Complex Hacking Simulations:
- Use a feature rich yet simple scripting system to design in-game software for a number of uses.
- Employ programs/tools such as proxies, encryption, tracers, IP spoofers, password crackers, deciphers, decrypters, voice print simulators, war dialers, etcetera.
- Multistage hacking problems that require many different tools and techniques to accomplish the job.
- Hack-through situations in which one uses a series of other computers to hack a tougher multistage target.
- Time sensitive situations in which you are actively being traced and must be quick or be caught.
The idea is to provide real world ideas with fantasy implementations. The reason being that most real world hacking is tedious, boring and difficult. Another reason is that I don't want to take the responsibility for training anyone how to hack, as under the best of situations it is considered dodgy and under the worst of situations its flat out illegal. With that in mind, I plan to incorporate as many hacking concepts as possible as long as they are both fun and not overly arcane. The holy grail of difficulty for the game will be for the player to learn how to properly use the scripting system but is by no means a required skill, just the most difficult.
- Possible In-Game Chat: Either utilizing IRC or some other time tested chat interface to connect players and give them an outlet to chat while they play.
- For Good or Evil: Play how you want, be the one who swoops in to save others or the one who makes others tremble.
- Compete: There are many other hackers actively vying for power or position on the global rank.
- Rich Character Advancement System:
- Experience system that allows the player to customize his/her ingame personality.
- As the player tackles individual systems experience is awarded based on the difficult of the system.
- The players in game persona will consist of several 'stats' and many skills.
- These 'stats' and skills will be improvable by adding experience points into them. There will be no visible levels to the player.
- Note: This is a rough draft of the player advancement system.
Extreme Difficulty Hacking Puzzles Concept by
JBourrie These situations and puzzles are so difficult that the player may need to employ real world techniques on the game itself to uncover them. An example could go as follows.
- Player edits game .ini file to enable console output while program is loading.
- Player notices that every time the program loads a message in the console out points to a restricted area of memory.
- Once the game loads the player uses a memory scanning tool to reveal the information listed in the memory address.
- Contents include a number value of 1337.
- Looking through the database files the player notices that one is enumerated and indeed goes to 1337.
- That line points to a text file stored in hex that has a IP, username and password.
These types of things could be simply a easter egg or lead to some piece of in-game software that give the player an edge.
In-Game Programming Concept This idea has always appealed to me. The idea that a player could make programs to run within a game seems like very interesting one. The issues I have with it are numerous though.
- The audiance for such a concept is niche at best and near nill at worst.
- For it to be fun, you need a base game for the players to base their programs from.
- The language itself needs to be simple enough as not to require a degree.
These are all troubling points for me. The fact that no one would play it doesn't bother me as bad as the other two points. It would take a tremendous ammount of work to make a usable, efficiant, elegant and simple scripting language. How does one go about picking the right setting for such a feature? It may not be new territory, but definatly rugged territory. Also, if you make a game so specific and niche that only a handfull play it, how do you draw a audience to it? Were I adventurous enough I could make the scripting system take into account simple elements of CPP and then advertise it as a slightly fun learning tool. We all know everyone
loves edutainment software. That's it for the
third pass. I will expand, change or flat out remove things as questions, comments, concerns and flat out flames are added into the mix. *smile*
BIG NOTE: The game now acutally has a skeleton crew dev team. It's still in the VERY early design stages (IE: Not one line of code.) so this document will see a lot of updates in the following weeks.
[Edited by - -JetSirus- on September 25, 2006 7:45:39 PM]