Does anyone recall a project I began way back in 2012 called Hacker's Edge? Originally, I was building the entire project in Django, but earlier this year after creating an ncurses based website, it got me interested in trying to build Hacker's Edge using a Python console and ncurses.
So, for the past couple of months I have been hard at work getting this new version through the alpha stage of development. The alpha is currently publicly available for anyone to jump in and play around. This new version is no longer limited by web technologies and is only limited to what I can do in Python. At the moment, I am in the process of expanding the simple-cpu I built to create both the Black Hat and White Hat tools which will be used to hack other hosts in the game, and to better protect hosts in the game respectively. My simple-cpu has come a very long way since I first built it, and now supports a full 16-bit address space, x86-like assembly instructions, and much more. I hope to make a tutorial on using the simulator soon in stand-alone projects.
Other implemented features are a fully working mail server system, with support for independent in-game mail server. The mail system itself uses the standard mbox API for mail storage and retrieval. A DNS system is also in place, and a host can choose which host is their DNS server. So you can imagine if a player manages to hijack a DNS server in-game the havoc that could occur. Each independent host runs it's own virtual machine and has it's own memory space mapped in memory. This allows for hosts to run their own KERNELs and other programs completely independent from the other hosts in the game world. The KERNEL can be written entirely by a player if they so choose to either better prepare their hosts from attack, or to prepare their host to attack other hosts better. There is also the possibility of players creating in-game rootkits to attack other hosts and infect them. Since the hacking and white hat in-game tools will run entirely within the virtual machine, this enables players to create torjan horses to infect other hosts easily. Since most of the in-game tools will cost in-game currency to purchase, I am assuming that some players would take advantage of this and pirate the in-game tools.
Furthermore, the following in-game player services will also be hackable by players, if they are skilled enough to do so:
- In-game banking services, so players can technically steal currency from other players.
- In-game ranking and experience system, so players can try to forge themselves a better ranking or increase their experience points to level up quicker.
- In-game shops which will sell the in-game tools, these shops may also be hacked to obtain said software for no charge.
To make the programming/coding element more accessible to players who may not have experience in Assembly-like languages, I am also developing a high-level language which compiles into Assembly, which can then be edited and then assembled into binary.
The project still uses Django for the front-end, and for player account management. Here is the typical workflow for a player:
- Real user browsers to Django website, and either signs up or logs in.
- Real user then accesses their player management page, and proceed to create a new player character.
- The Django app then registers the player character in the Hacker's Edge world, and creates them their initial host.
- Real user now connects to either telnet or presses Play.
- Real user then logs in using their Player Character login credentials created via Django.
- Player hopefully enjoys themselves in the virtual online hacking simulation game.
Django still plays a critical part in this project, as it's the central hub to manage a user's player characters. This enables a user to easily have multiple player characters and switch between them at will, or play against themselves in two terminal windows. Furthermore, I am also wanting to integrate the Out-of-Character mode with the web presence. This will enable players to easily access both the forums and help center, and post questions and socialize. In Out-of-Character mode, the player character is never revealed to other users, so one can post to the forum and socialize, not knowing if you are actually getting along with a rival in-game. There is definitely a separation between in-game persona and your real-world self. The only players whom will know your real-world identity will of course be server moderators, whom are there to give a helping hand and not attack your in-game hosts or real-life self.
Which brings me to my next subject, is that I will be looking for people who would be willing to help out with moderation. You will have a special account which will allow you to perform tasks which a regular user or player would not otherwise be-able to perform. The following special powers will be provided to those who assist in moderating:
- Access to post into staff-only forum sections.
- Access to all the undocumented VM API calls, to assist with building specific in-game tools.
- Ability to see the real-world Django username of an in-game player.
- Access to any and all in-game hosts regardless of ACL table, used to assist other players.
- Early access to KERNEL.SYS and other critical VM source code, mainly to assist in testing and debugging.
- Access to staff-only hosts, and admin access to many in-game hosts for moderation purposes.
I am planning for Hacker's Edge to enter Closed Beta by the end of May, or mid-June. For those who already registered on the website a couple years back, your accounts are still there and active. Once the closed beta begins, I will be choosing from the pool of users, and sending out an email notification to them to inform them of the new Hacker's Edge experience. During closed beta, the following will be available, and be tested during the closed beta:
- In-game Black Hat and White Hat tools.
- In game currency, and banking system.
- In-game experience and ranking systems.
- Missions, which will provide the experience points, and currency to the players.
- And more, which I cannot think of right now.
Before the alpha ends, there will be a basic test mission given to anybody who enters the alpha game in the form of an in-game email message, with instructions on what should be done. This will be there to test out the mission mechanics before going beta.