beyond-all-reason / beyond-all-reason/RecoilEngine

Decouple initialization of synced and unsynced luarules entrypoints

Open
#1,900 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
C++
Stars
679
Forks
290
Avg merge
3d 2h
Merged PRs (30d)
40

Description

Currently synced and unsynced luarules entrypoints are coupled in a way that an empty or no existent entrypoint for one kills the lua environment for both, see: https://github.com/beyond-all-reason/spring/blob/0daacfd/rts/Lua/LuaHandleSynced.cpp#L2218-L2218 , https://github.com/beyond-all-reason/spring/blob/BAR105/rts/Lua/LuaHandleSynced.h#L229-L232

A game should be able to have one without necessarily having the other. While it's unrealistic that in the longer term a game does not have both, this is relevant when adding pieces at the bootstrapping phase of a game.

Contributor guide

Open the contributing guide

Research direction

Start by reading the synced Lua entrypoint logic in rts/Lua/LuaHandleSynced.cpp around line 2218 and the related declarations in rts/Lua/LuaHandleSynced.h around lines 229–232. Trace how missing or empty synced and unsynced luarules entrypoints affect Lua environment initialization. Done means either entrypoint can be absent without preventing the other from initializing.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, lua
Domain
game-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.