Beginning development of a hacking game began in my head a few years ago and years before that I wanted to created a browser game. I’ve learned a lot of coding in the last 15 years but with PHP, and web applications in general, it’s a constant learning cycle. Innovation and community sourcing are quite dominant in the open-source scheme of things. Hats off to Luke over at BuildingBrowserGames.com for the beginning help on getting me started. The basis of this document is gonna sort of follow the flow of his style. So, with that in mind, I shall move on to the importance of this document.
The basic premise of the game is actually kind of outlined in the about page, but even more basic would be that you are a hacker and you go to the site to log into your remote server connection. This Virtual Network Computing (VNC:X11) will give a desktop GUI with a Linux OS (more than likely being Debian based). You’ll use this VNC to hack websites, servers and other hackers (PVP), as well as access your computer hardware setup, skills, forums, terminal console, forums and wiki.
License
GNU Affero General Public License, version 3
In short, you can do whatever you would like with the code even sell additions to it or make money off it. You cannot release the source code under your own name and if you modify the code, then I can also have the modifications.
Scenario
In the beginning of the game, the player will be introduced to an NPC that will tutor the player throughout the life of the game. This NPC will also be one of the main characters to give missions.
As the player, you begin the game with a graphical intro that will appear to remote connect to a “Windows” style desktop, with a hacking script program. A “paper clip” helper will appear (as a joke) saying “It looks like your trying to hack…” with options. It will run the program and run its course asking the player questions through prompts which will ultimately figure out what type of character (class) the player wants to be. A notice of your data being encrypted will appear in the screen with the Firewall bubble showing access from an unknown user and no way to block the port. The script kiddie program is hacking a federal website and sending retrieved files over your connection to an unknown remote connection. The program will note its developer, an NPC that will appear later in the game. A Pidgin type interface will appear with the ‘tutor’ NPC asking questions. Any chat with NPCs will have predetermined answers the player can choose from to continue the story. This introduction will determine the player’s class, starting stats, hostname, and IP assignment. The tutor will give the most relevant information needed to start playing.
The hacking program will finish within a minute in real time and will shut down the GUI interface (mimicking a certain windows type OS). The pidgin interface will remain even after the remote connection is lost. The tutor informs the player of his control over the host and on the black screen, you will see it connecting to your “assigned IP”. The connection shows up with stopped BIOS screen. Next to the battles, this will probably be the best graphics in the game. The tutor will continue talking about how he’s loading the ctrlHack OS which is linux, etc… and he’s loading it on a fresh new server setup made just for the player. This will salute linux distributions alike as the loading of the entire operating will take less than 10 secs. The tutor will make snide remarks about your previous OS usage to hack and how it takes more than hour to load that OS and this OS takes secs, then he gives you the very minimal hardware parts included in your server PC.
Once the main GUI is loaded, the tutor will point out all the options and give the first mission and give you some new contacts to get ahold for more missions and options in gameplay. As you venture through the site, the tutor may pop on your first access and help you if needed which will mainly pertain to battles.
Obviously the story will continue on from there, the player can become evil or good depending on their actions which will affect their future missions and story outcome and even affect what things they can do like shops they use.
GUI Design
This will be in the shape of a Linux Operating System (OS) which will be more than likely be Debian based but definitely our own unique theme and iconset.
- Taskbar – bottom of window
This will have 10 slots for attacks and items which will be swappable and movable via jQuery drag-n-drop. If you are not hacking, this bar will autohide but may be brought up at anytime to change your preferences. Also, there will be timestamp at bottom right corner. - Menubar – top of window
This will contain the uncommon tasks of the website (ie; edit account/profile, change settings, help, etc) with drop down menus. - Icons – left side of desktop
These icons will be a left side navigation of sorts for the site. They will be links to the major parts of the game and site (ie; forums, wiki, hacking, terminal, stores, etc) - News Feeds – wherever
One will be your accomplishments (ie; gaining a level, skill, defeating a site, stealing something, etc), which may be in the shape of a console window but original thought of as being an RSS Feed look-alike. The other news will be official announcements from ctrlHack team. This feed however will appear in the guise of being your VNC’s OS fixes, additions, version upgrades, etc. This will add to the role play experience. - Theme
This will changeable by the user but since most desktop real estate is 1680px and over, there will be options to use a background that loads from your computer locally. The user may also use some predefined backgrounds that will obviously have something to do with hacking or just changing the background color. Other theming options may be changeable in the future.
Game Interface
There will be heavy use of jQuery throughout the game but it will be possible to play without javascript enabled, at least I think. AJAX will be used but definitely not required.
- User Management
Register, Login, Logout, Forgot Password (similar to WordPress), Email verification, Permissions, Account changes, GUI settings, Edit Profile - Bandwidth
This is an odd implementation that will keep the players coming back day to day. ForumWarz uses this system in the form of “Forum Visits” with 4 per day stacking to 12 max. This also keeps users from having to deal with “energy” ticks and even bothering with lower missions just because you only have that much “energy”. In ctrlHack, the user will get a certain amount of bandwidth… each battle (except PVP) will use some bandwidth. This will also keep players in check to not waste an attack. I’m not sure how to keep PVP in check but it may have some kind of internal implementation since it would be a kind of “intranet” usage. - Attributes
Static attribs system to lessen the load on the database, only queries when attribs change for players. Attributes are only changed with hardware and being different classes. (ie; HP, Attack, Defense, Luck, etc) - Skills
Points will be given on level gains. You can use these points to update your skills that range from understanding computer languages (ie; php, JavaScript, C++, python, etc) to attacking understanding (ie; network enumeration, vulnerability analysis, etc) to actual types of attacks (ie; denial of service, SQL injection, etc) to malware development (ie; worms, trojans, viruses, mixtures, etc). Skills affect varying aspects of the game and may even affect your reputation and good/bad attitude. - Communication
There will be a Private Messaging system for comms between players, an IM/IRC system for comms with NPCs and storyline continuations, IRC (ShoutBox) for teams and of course forums. - Shops
You buy hardware for your VPN to get your specs better for battles, you buy program licenses for use with your unit (not sure exactly how I am gonna do this being that your a hacker), and you can sell stuff whether its unused programs, hardware or even files you stole or stuff you’ve created like worms and viruses. There will also be an eBay spoof for player to player auctions. There may even be an IRC bot that will allow you to trade credits for upload ratio so you can download programs for use. - Battles
These will be turn based with attacks from your taskbar. You can incorporate strategy in battles with future programs that can analysis what the target is doing (ie; loading a defensive task that will stay for 2 turns, therefore it would be unwise to even bother attacking). All logging and attacks will textually appear in the player’s console. Objectives will vary from mission to mission, servers are more complicated than websites as you will have to use more command line interface and it’s not as graphical and you must decode encryption and other various obstacles.- (NPC) Websites: defacing sites, knocking down servers, XSS, SQL injections, steal user database, credit card fraud, etc
- (NPC) Servers: destroying hash tables, rerouting IPs, tracert actions, stealing particular files, making security flaws known, planting viruses or worms, etc
- (PVP) Players: Damage server setups, reroute IP, steal credits, etc. It is unknown as of right now how the PVP interaction will be in the game.
- Achievements
There will achievements (needs a better name) for anything amazing the player accomplishes and there will also be weekly leader boards for players to compete against other and win trophies or something. - Training
Players will be allowed to pit their computer setups against comparable hackers for practice with no consequences. The tutor will introduce a ‘dummy’ bot setup that simulates itself to be comparable to the player at any given time. This means the player can practice at any given time to test their setups. - Computer Setup
This will be a graphical representation of the player’s computer (like a player doll) and allows them to swap out modules, hardware and adjust/fine tune BIOS settings to tweak the computer. There will lots of settings to adjust to make the unit run better and equipment to add with plenty of slots. Everything is changeable from the LAN card all the way to the CMOS chip. Most hardware will adjust stats for battle but some hardware will adjust other game interactions like having a sound card for shop frugality or power supplies to increase wattage therefore allowing more hardware. Along with the physical setup, there will be BIOS/CMOS settings you can tweak to overclock the unit but can run the risk of overheating during battle if not properly cooled. The point of this complex equipment system will give player dynamic stats and extremely unique computer setups which give them something to boast about on the forums. - Items
These range from hardware to programs. Hardware is described in computer setup above. Programs can be any number of things from Info Grabbing programs (ie; whois, uname, packet sniffers, spoofs, etc) to bots, malware, and macros (ie; algorithm decrypter, ip spoofer, password crackers, encryption breakers, etc). - Teams
I want to have some kind of team, guild, clan system implemented. No damn idea how it will be used other than have their own private forum, IRC channel and be able to complete achievements as a team. I would like to have some over time battle system for teams to capture IP subnets. These subnets in turn will pull a small percentage of profit from each user apart of that subnet. Capturing subnets will definitely require teamwork and they will probably give them bonuses in battle as well.
Administration
Permissions will be handled via privilege patterns that contain each access right. This means there will be no limit to the types of privileges given and the game can be very nit-picky about who can do what.
- adding official announcements
- userlist with the ability to change privileges, delete and edit users on the fly.
- moderation queues, for news added by less than privileged users (ie; moderators) and a queue for messages that were reported by users as violators… admin may approve of news or delete reported stuff and even ban linked accounts, etc
- graphs for showing all kinds of statistics including active players, online players, donators, forum activity, wiki stats, avg levels, player economy
- logging for administrators and moderators on what they do, as well as logging for users that may be under some kind of watch because of reports from other users or suspected of cheating
- error handling schemes, development will show errors on screen and production will log errors.
- statistics logs all stats and records, including most online users, fastest battles, etc.
Obviously, moderators and related users will be able to do front-end changes which mostly consist of wiki and forum moderation: moving topics, muting players (removes communication privilege from user), warning users, locking topics, etc.
Game Engine
The game will be built using a newly formed framework called PBBGframework (ha I’m so creative) and jQuery. The framework itself will be extracted from game when the game’s normal interface, behind-the-scenes coding is pretty much complete so others may use it and even turn it into a real framework. I just want to have a framework I can work with that’s not bloated all to hell, it has an authentication system with permissions, user management, admin panel, statistics system, attributes and skill systems for users, and that’s about it. Everything a game needs and nothing more… maybe have a plugin system so that other options can be added like a Map system or IM system or Forum.
-
1
Pingback on Jun 21st, 2009 at 5:29 am
[...] post: ctrlHack Design Document « ctrl://Hack.blog Permalink – Comments RSS Feed – Comments are closed – Trackback URL – Share on Twitter Related [...]
May 12, 2009 at 7:50 am
Sounds like you’ve got some good plans and have really captured a lot of the flavor of computer security.
You mentioned having dialogue trees, check out these posts on how ForumWarz does theirs:
http://blog.forumwarz.com/2009/2/11/the-forumwarz-admin-tab
http://blog.forumwarz.com/2009/2/18/screencast-the-conversation-editor
Maybe you’ve seen them already, but maybe they’ll help. Good luck with your game!
May 12, 2009 at 3:43 pm
Thanks for the support! And those will definitely help, the way Forumwarz mimics IM protocols is the basic idea I had for interaction between the player and NPCs. So thanks again!