#+TITLE: 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 - GLEW development libraries - FreeType development libraries ** Installation (Debian) You can install all required dependencies with the following command: #+BEGIN_SRC bash sudo apt update sudo apt install build-essential clang cmake libsdl3-dev libglew-dev libfreetype-dev #+END_SRC * 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:* #+BEGIN_SRC bash make #+END_SRC - *Build and run the client:* #+BEGIN_SRC bash make runc #+END_SRC - *Build and run the server:* #+BEGIN_SRC bash make runs #+END_SRC - *Clean the project:* This removes the =bin/= directory. #+BEGIN_SRC bash make clean #+END_SRC * 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, manages game state and the world simulation.