Hacking sim game?
			
		
		| 
				 | 
			||
|---|---|---|
| assets | ||
| client | ||
| common | ||
| server | ||
| .gitignore | ||
| CMakeLists.txt | ||
| Makefile | ||
| README.org | ||
Working Title: Bettola
A multiplayer hacking simulator with a graphical OS, built in C++ and OpenGL.
Dependencies
The following dependencies are required:
- A C++ compiler (e.g., clang, g++)
 - CMake (3.16 or newer)
 - SDL3 development libraries
 - Asio networking library (managed by CMake)
 - GLEW development libraries
 - FreeType development libraries
 - Lua 5.4 development libraries
 - sol2 (header-only, managed by CMake)
 
Installation (Debian)
You can install most required dependencies with the following command:
sudo apt update
sudo apt install build-essential clang cmake libsdl3-dev libglew-dev libfreetype-dev liblua5.4-dev
Build Instructions
This project uses a top-level Makefile to simplify the CMake workflow. Build
artifacts will be placed in the bin/ directory.
Simply run the following commands from the root of the project directory:
- 
Build the project:
make - 
Build and run the client:
make runc - 
Build and run the server:
make runs - 
Clean the project: This removes the
bin/directory.make clean 
Project Structure
The codebase is organised into three main components:
common/: A shared library (libbettola) containing code used by both the client and server.client/: The game client (bettolac), handles rendering, UI, and user input.server/: The game server (bettolas) manages game state and the world simulation.
Planned Features
/Note: [X] indicates a feature that is currently in progress or complete.
Core Gameplay & Hacking
- Custom-built graphical OS desktop environment.
 - Interactive terminal with command history and scrolling.
 - Draggable and focusable UI windows.
 - Local and remote virtual file systems (VFS).
 - Core filesystem commands (
ls,cd). - Remote system connections via ingame 
sshtool. - Network scanning tools to discover hosts, open ports, and running services.
 - A deep exploit system based on service versions (e.g., SSH, FTP, HTTP).
 - Ability to find, modify, and write new exploits.
 - Functionality to upload/download files to and from remote systems.
 - Log cleaning utilities and other tools for covering your tracks.
 - Social engineering through in-game email and websites.
 
The World
- Narrative-driven main storyline (serves as tutorial before the sandbox world).
 - Emergent gameplay arising from the interaction of world systems.
 - A persistent, shared "core" universe of high-level NPC networks.
 - A unique, procedurally generated "local neighbourhood" for each new player.
 - NPC factions and corporations with simulated goals and stock markets.
 - Dynamic missions generated organically from the state of the world.
 - Active NPC system administrators who patch vulnerabilities and hunt for intruders.
 
Player Systems & Progression
- Embedded Lua scripting engine for creating custom tools.
 - In-game code editor with syntax highlighting etc.
 - Secure, sandboxed execution of player scripts with CPU/RAM as a resource.
 - An in-game internet with a web browser, email, and online banking.
 - Online stores for purchasing virtual hardware, software, and exploits.
 - The ability to purchase and upgrade dedicated servers.
 - Hosting of player-owned services (web, FTP, etc.).
 - Creation of custom websites using HTML and basic JS.
 - Player-to-player secure messaging and file transfers.