[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++)
|
||||
- CMake (3.16 or newer)
|
||||
- SDL3 development libraries
|
||||
- SDL3_net development libraries
|
||||
- GLEW development libraries
|
||||
- FreeType development libraries
|
||||
|
||||
** 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
|
||||
sudo apt update
|
||||
sudo apt install build-essential clang cmake libsdl3-dev libglew-dev libfreetype-dev
|
||||
#+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
|
||||
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:
|
||||
|
||||
@ -45,6 +73,50 @@ Simply run the following commands from the root of the project directory:
|
||||
|
||||
* Project Structure
|
||||
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.
|
||||
- =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