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.