Skip to content

Commit

Permalink
Update main docs sections with links.
Browse files Browse the repository at this point in the history
  • Loading branch information
Neloreck committed Sep 1, 2023
1 parent 24cb15d commit 7a30628
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 107 deletions.
111 changes: 24 additions & 87 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
# 🎮 [Stalker XRF](README.md)

![status](https://github.com/xray-forge/stalker-xrf-template/actions/workflows/build_and_test.yml/badge.svg)
[![language-ts](https://img.shields.io/badge/language-typescript-blue.svg?style=flat)](https://github.com/xray-forge/stalker-xrf-template/search?l=typescript)
[![book](https://img.shields.io/badge/docs-book-blue.svg?style=flat)](https://xray-forge.github.io/stalker-xrf-book)
[![types](https://img.shields.io/badge/docs-types-blue.svg?style=flat)](https://xray-forge.github.io/xray-16-types/index.html)
[![language-ts](https://img.shields.io/badge/language-typescript-blue.svg?style=flat)](https://github.com/xray-forge/stalker-xrf-template/search?l=typescript)
[![license](https://img.shields.io/badge/license-MIT-blue.svg?style=flat)](https://github.com/Neloreck/dreamstate/blob/master/LICENSE)
<br/>
![status](https://github.com/xray-forge/stalker-xrf-template/actions/workflows/build_and_test.yml/badge.svg)

<p>
Fully rewritten stalker script engine with typescript. <br/>
Expand All @@ -12,15 +14,17 @@ Template for stalker mods and modded game packages. <br/>

## 📦 In short

- Scripts engine rewritten with typescript
- Custom build pipeline
- Generation UI forms from JSX
- Game configs from dynamic typescript
- Simple translations generation
- Game profiling / debugging tools
- Creation of custom modded game package
- Unit tests coverage
- [WIP] [Modular extensions](./src/engine/extensions/README.md)
- [Faster development](https://xray-forge.github.io/stalker-xrf-book/xrf/developing/developing.html)
- Custom [CLI](https://xray-forge.github.io/stalker-xrf-book/xrf/cli/cli.html) and [build pipeline](https://xray-forge.github.io/stalker-xrf-book/xrf/building/building.html)
- Scripts engine rewritten with typescript ([tstl](https://typescripttolua.github.io/docs/getting-started))
- [Generation UI forms from JSX](https://xray-forge.github.io/stalker-xrf-book/xrf/building/building_forms.html)
- [Game configs from dynamic typescript](https://xray-forge.github.io/stalker-xrf-book/xrf/building/building_configs.html)
- [Simple translations generation](https://xray-forge.github.io/stalker-xrf-book/xrf/building/building_translations.html)
- [Creation of custom modded game packages](https://xray-forge.github.io/stalker-xrf-book/xrf/packaging.html)
- [Modular extensions](https://xray-forge.github.io/stalker-xrf-book/extensions/extensions.html)
- [Debugging tools](https://xray-forge.github.io/stalker-xrf-book/xrf/debugging.html)
- [Unit testing](https://xray-forge.github.io/stalker-xrf-book/xrf/testing.html)
- [Consistent formatted and linted codebase](https://xray-forge.github.io/stalker-xrf-book/xrf/formatting_and_linting.html)

## 📍 Purpose

Expand All @@ -30,10 +34,12 @@ Template for stalker mods and modded game packages. <br/>

---

## 📦 Main differences from original
## 🌓 Links

The intention of this engine template is to allow easier mod development without introducing breaking changes to the original plot. <br/>
Optimizations, quality and logics updates are welcome.
- [Starting work](https://xray-forge.github.io/stalker-xrf-book/xrf/installation.html)
- [CLI commands](https://xray-forge.github.io/stalker-xrf-book/xrf/cli/commands.html)
- [Docs](https://xray-forge.github.io/stalker-xrf-book/general/general.html)
- [Types](https://xray-forge.github.io/xray-16-types/modules.html), [source](https://github.com/xray-forge/xray-16-types)

## 📌What is used

Expand All @@ -44,81 +50,12 @@ Optimizations, quality and logics updates are welcome.
- [Fengari Lua VM](https://github.com/fengari-lua/fengari)
- [Open-X-Ray](https://github.com/OpenXRay/xray-16)

# 🌓 Starting work

## 🧰 Pre-requirements

- [NodeJS](https://nodejs.org/en/) 14 or later
- [Stalker-COP](https://store.steampowered.com/app/41700/STALKER_Call_of_Pripyat/) game

## 💿 Start development

- DOWNLOAD [the game](https://store.steampowered.com/app/41700/STALKER_Call_of_Pripyat/)
- RUN `git clone https://github.com/xray-forge/stalker-xrf-template.git` - clone repository
- RUN `cd stalker-xrf-template` - cd to project folder
- RUN `npm install` - install all the dependencies
- RUN `npm run setup` - set up the project, install submodules
- RUN `npm run cli link` - link gamedata to the game folder
- RUN `npm run cli engine use release` - link open xray with game
- RUN `npm run cli build` - build gamedata to the destination
- RUN `npm run cli start_game` - start game and test changes

## 🧰 Check issues

`$ npm run cli verify` - will check whether project is set up and ready to start developing

## 🏗️ Project scripts

`$ npm run COMMAND_NAME`

- [cli](cli/README.md) - run cli scripts
- [setup](cli/info/README.md) - setup project and submodules
- [verify](cli/verify/README.md) - verify project configuration and integrity
- [build](cli/build/README.md) - build project gamedata with all assets
- [pack:mod](cli/pack/README.md) - build complete mod package in target/mod_package folder
- [watch:scripts](cli/build/README.md) - build scripts in watch mode, recompile on changes
- [test](cli/test/README.md) - run jest tests
- `typecheck` - verify typescript types
- `format` - reformat TS code and lint it
- `lint` - lint TS code with eslint utils

`$ npm run cli COMMAND_NAME`

- [verify](cli/verify/README.md) - verify project settings and readiness
- [link](cli/link/README.md) - link target/gamedata and logs folder and stalker folder for faster development
- [unlink](cli/build/README.md) - unlink target/gamedata and logs folder and stalker folder
- [engine](cli/build/README.md) - engine management commands to use open-xray
- [open_game_folder](cli/build/README.md) - open game folder in explorer
- [start_game](cli/build/README.md) - start game with debug flag
- [build](cli/build/README.md) - build project gamedata with all assets
- [pack](cli/pack/README.md) - build complete mod or game package depending on provided arguments
- [clone](cli/clone/README.md) - clone additional resources
- [parse](cli/parse/README.md) - parsing utils to collect documentation or JSON summaries
- `help` - print list of commands and information about them

## 💿 Build

Script engine can be packaged and built into custom game package.<br/>
Detailed description: [link](https://xray-forge.github.io/stalker-xrf-book/xrf/packaging.html)

---

## 🧰 Docs

- Development and game documentation: [docs book](https://xray-forge.github.io/stalker-xrf-book/general/general.html)
- Types and game bindings: [source](https://github.com/xray-forge/xray-16-types), [docs](https://xray-forge.github.io/xray-16-types/modules.html)

## 🏗️ Assets

Additional assets repository can be cloned manually or with shortcut command: <br/>
`npm run cli clone *name*` (`extended`, `locale-eng`, `locale-ukr`, `locale-rus`)
## 📦 Main differences from original

- Extended assets: [https://gitlab.com/xray-forge/stalker-xrf-resources-extended](https://gitlab.com/xray-forge/stalker-xrf-resources-extended)
- EN locale assets: [https://gitlab.com/xray-forge/stalker-xrf-resources-locale-eng](https://gitlab.com/xray-forge/stalker-xrf-resources-locale-eng)
- UA locale assets: [https://gitlab.com/xray-forge/stalker-xrf-resources-locale-ukr](https://gitlab.com/xray-forge/stalker-xrf-resources-locale-ukr)
- RU locale assets: [https://gitlab.com/xray-forge/stalker-xrf-resources-locale-rus](https://gitlab.com/xray-forge/stalker-xrf-resources-locale-rus)
The intention of this engine template is to allow easier mod development without introducing breaking changes to the original plot. <br/>
Optimizations, quality and logics updates are welcome.

## 🧰 Bugs
## 🧰 State / bugs

It took 3 months just to migrate all the 20 years of LUA codebase to typescript and create custom transformers to support luabind. <br/>
Further game testing and re-architecture produces new bugs and issues which are easier to prevent with unit tests. <br/>
Expand Down
22 changes: 2 additions & 20 deletions src/engine/extensions/README.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,4 @@
# [XRF](../../../) / SRC / ENGINE / EXTENSIONS

## LTX configurations

Variant of modular game extensions with strictly defined interface and optional loading. <br/>
Extensions can load with root register method, use shared game utils and services.

## What can be done

- Optional loading for extensions
- Ordering and in-game configuration of extensions list
- Usage of shared utils, configs, managers and schemes
- Adding custom logics and configuration
- Overriding system ini sections/fields

## Todo / research

- Custom translations sources / build steps to prepare translations from extensions
- Custom configs / build steps to transpile extension configs
- Automated way to load system ini overrides and apply to existing system ini file
- Save data about active extensions and warn when loading game with invalid extensions list
- Add `requires` fields when extensions depend on each other
Entry points of the game extensions. <br/>
XRF template allows adding modular scripts that can be optionally toggled on/off from the game menu.

0 comments on commit 7a30628

Please sign in to comment.