🧪 Changes
General
Added new bugs- Optimized performance of scripts
- Force instant initialization of all objects on game load/start to reduce lag duration
- Memoize condlists
- More efficient smart terrain jobs creation/checks
- More game conditions checks where possible
- Memoize client objects / simulator and other refs
- Optimizing game quest state checks (one of most frequent game engine calls)
- Removing dead code / assets
Gameplay
- Adding gameplay options for OXR (interface rendering, loot simplification etc.)
- [optional] Treasures will have different color based on loot price (green, blue, purple, orange)
- [optional] Alternative start location
- [optional] Display map marks only after visiting
- [optional] Allow traveling only to known places
- [optional] Weapons/armor/helmets with random upgrades
- Improving and optimizing game AI/logics
- Improving game schemes (wounded, loot collection, combat danger checks etc.)
- Physical boxes (wooden, iron) can drop loot with some chance based on difficulty/level similar to SHoC/CS
Graphics
- Added different variants of fullscreen mode rendering
- Added grass height configuration
- Added grass radius configuration
- Added rendering fps limit configuration
- Updated weather system (atmosfear3 + tweaks)
- Updated game levels (absolute nature + tweaks)
- Removed controls related to game patch download
- Enabled OXR screenspace/grading shaders
Build pipeline
- All the modules are separated and sorted with folders
- Added NodeJS based CLI
- Added shared commands for intellij based IDEs
- Added workflows to run tests/checks/build on repository commits
- Added tools for codebase linting/formatting (ltx/js/ts)
- Added tools for game assets compression
- Added tools for game translation
- Added tools for simplified engines management / testing with different variants of game engines
- Added tools for forms generation based on JSX
- Adding type definitions and sharable basic components for custom UI rendering
- Added tools for game packages creation (build custom game with one command)
- Added tools for asset management (different locales etc.)
- Added tools for game profiling/debugging/development
- Advanced logging (game, cli)
- Alife debugging
- Console commands shortcut switcher
- Game registry debugging
- Items debugging
- Lua profiling tools
- Objects state/logics debug
- Spawner
- Task debugging
- Teleportation
- Treasures debugging
- Weather debugging tools
- Game UI debugging tools
- Added unit testing with coverage checker
- Added
fengari
lua VM for direct lua functionality checks
- Added
- Added loadouts presets for generating character profiles / loot
Modding
- Added game engine documentation
- Added game engine typing and according checks
- Added tools for generation of
html
file with game conditions/effects documentation based on JSDoc - Fully rewritten game script engine with typescript
- Adding extensions support [WIP]
- UI to reorder / enable / disable extensions
- API to work with community extensions
- Added events management system with numerous game callbacks
- Added lua
marshal
lib and typing for it - Added lua
lfs
lib and typing for it - Added custom lua extensions lib and typing for it (based on CoC)
- Added fixtures for game API testing
- Added support for
ts
basedltx
configs building (allows build-time logics and generation) - Added shared utils lib to reduce code duplication and simplify frequently used logics
- Added managers abstraction for game logics control
- Updated schemes abstraction for easier testing/extending/sharing/updating of game logics schemes
- Add support for dynamic files with
marshal
lib, ability to save dynamic custom data without 16K limit
Tools
- Added spawn pack/unpack/verify in CLI
- Added LTX files formatting and verification in CLI
- Added spawn file inspector in tools application
- Added spawn file utilities in tools application
TODO
For todos check following git projects: