[Change] Updated README with roadmap.
This commit is contained in:
parent
a73aa4feaf
commit
7376761d36
80
README.org
80
README.org
@ -7,18 +7,46 @@ The following dependencies are required:
|
|||||||
- A C++ compiler (e.g., clang, g++)
|
- A C++ compiler (e.g., clang, g++)
|
||||||
- CMake (3.16 or newer)
|
- CMake (3.16 or newer)
|
||||||
- SDL3 development libraries
|
- SDL3 development libraries
|
||||||
|
- SDL3_net development libraries
|
||||||
- GLEW development libraries
|
- GLEW development libraries
|
||||||
- FreeType development libraries
|
- FreeType development libraries
|
||||||
|
|
||||||
** Installation (Debian)
|
** Installation (Debian)
|
||||||
You can install all required dependencies with the following command:
|
You can install most required dependencies with the following command:
|
||||||
#+BEGIN_SRC bash
|
#+BEGIN_SRC bash
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install build-essential clang cmake libsdl3-dev libglew-dev libfreetype-dev
|
sudo apt install build-essential clang cmake libsdl3-dev libglew-dev libfreetype-dev
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
** Installing SDL3_net (from source)
|
||||||
|
As SDL3 is new, the networking library may require compiling and installed
|
||||||
|
manually.
|
||||||
|
|
||||||
|
1. *Clone the repository:*
|
||||||
|
#+BEGIN_SRC bash
|
||||||
|
git clone https://github.com/libsdl-org/SDL_net.git
|
||||||
|
cd SDL_net
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
2. *Build and install:*
|
||||||
|
#+BEGIN_SRC bash
|
||||||
|
mkdir build && cd build
|
||||||
|
cmake ..
|
||||||
|
make
|
||||||
|
sudo make install
|
||||||
|
# You can delete the downloaded SDL_net directory after install.
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
3. *Update linker cache:*
|
||||||
|
If you have linker issues after install SDL3_net, try updating your linker
|
||||||
|
cache.
|
||||||
|
#+BEGIN_SRC bash
|
||||||
|
sudo ldconfig
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
* Build Instructions
|
* Build Instructions
|
||||||
This project uses a top-level Makefile to simplify the CMake workflow. Build artifacts will be placed in the =bin/= directory.
|
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:
|
Simply run the following commands from the root of the project directory:
|
||||||
|
|
||||||
@ -45,6 +73,50 @@ Simply run the following commands from the root of the project directory:
|
|||||||
|
|
||||||
* Project Structure
|
* Project Structure
|
||||||
The codebase is organised into three main components:
|
The codebase is organised into three main components:
|
||||||
- =common/=: A shared library (=libbettola=) containing code used by both the client and server.
|
- =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.
|
- =client/=: The game client (=bettolac=), handles rendering, UI, and user input.
|
||||||
- =server/=: The game server, manages game state and the world simulation.
|
- =server/=: The game server (=bettolas=) manages game state and the world
|
||||||
|
simulation.
|
||||||
|
|
||||||
|
* Planned Features
|
||||||
|
/Note: [X] indicates a feature that is currently in progress./
|
||||||
|
|
||||||
|
** Core Gameplay & Hacking
|
||||||
|
- [X] Custom-built graphical OS desktop environment.
|
||||||
|
- [X] Interactive terminal with command history and scrolling.
|
||||||
|
- [X] Draggable and focusable UI windows.
|
||||||
|
- [X] Local and remote virtual file systems (VFS).
|
||||||
|
- [X] Core filesystem commands (=ls=, =cd=).
|
||||||
|
- [ ] Remote system connections via ingame =ssh= tool.
|
||||||
|
- [ ] 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.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user