beyond-all-reason / beyond-all-reason/RecoilEngine
Decouple initialization of synced and unsynced luarules entrypoints
- 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
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