About HackTech Online
HackTech Online is a semi-realistic hacking simulation game, set in a near cyberpunk like future. All you need is a web browser, to be able to play with people from all around the world!
In HackTech Online no player is safe, and no firewall is good enough! You take part in the game as yourself, and have the option to fight against the bad guys on the net, or join them... Join or create a corporation with other players, and start your PvP hacking career. Or choose to complete missions for underground groups, big corporations or secret government agencies. You will soon be able to conquer the net!
Who made this?
I don't have the time for completing this project, or developing it any further. So now I'm releasing the code for everything here on Github, for you to play around with.
The project is made with PHP using the Laravel Framework. The ingame messenger chat system is made using NodeJS. There is also a lot of jQuery involved.
So if you want to make your own fork, feel free to do so. But please don't report Issues, as the development is halted. If you decide to make your own game from this, please just include the original name of the project, the author (me), and a link to this Github repo. That would make me very happy 😄
There is not much documentation for the development and the source code overall, but if you have any questions, feel free to reach out to me. Just remember: The game was made while I was learning Laravel. So the code may not be pretty, and all that fancy, but I still put a lot of hours into this project ❤️
- Login and signup functionality (using invite keys)
- UI window system
- Module based ingame applications with support for multiple versions of the same app
- An ingame "virtual internet" with IP addresses and hostnames
- Corporation trust points to decide which missions a user can take
- Missions/Contracts for players to complete and earn money, files and trust points
- Game webbrowser for players to visit ingame websites
- Gateways (player computers) and servers (AI/system and even support for player owned)
- Ports and services for servers
- Software market
- Gateway upgrades and system resource meters
- Ingame email client and messenger/chat service
- "Virtual File System" for both servers and gateways with a filebrowser
- NPC and player based corporations
- Banks with accounts and a simple economy system
- Basic admin panel made with Backpack for Laravel
- Admin tools for creating servers and files
- Dynamic seeder-system for adding new content to the game database
- Bug report system
There is some things that aren't done yet (Surprise!). So here is my personal list of things that the game needs, before it's a "real" game.
(Items marked with a star * has high priority)
- Mission creator tool*
- Server manager*
- Dynamic ingame music manager
- A list of online users
- Hal - The AI helper
- Additional logging of user actions
- Missions! A lot of them + more corporations*
- More hardware parts for both servers and gateways*
Ideas for further development:
- Black market for software trade
- Help tool for new players
- In game logging of world actions
- App - Log deleter / modifier
- App - Finances overview
- App - Server manager
- App - Whois tool
- App - Remote system analyzer
- Corp - Corporation bank accounts
- Corp - Share scripts/software with other corp members
- Corp - Role and permission system for corporation members
How do I set up the game?
- Start with setting up your server for a regular Laravel project.
composer installTo install the required composer packages.
npm installTo install the JS packages.
- Make a copy of
.envand fill out the variables.
php artisan migrateTo generate all the MySQL tables.
php artisan db:seedTo seed the database with the default data.
php artisan game:makeinvite 1To make an invite key to use in the registration process.
- Go to the project URL you set up, and sign up using the invite key you just made.
- You are good to go!
Note: If you want to use the admin system, you should set is_admin in the users table to 1 for your account entry. You also have to give your user the 'admin' role in the database manually or by using artisan tinker.