Explore the requirements for updating to 2.0.0
An exploratory project to determine the amount of effort needed to upgrade to 2.0.0.
@JackHopkins https://github.com/JackHopkins/factorio-learning-environment/issues/166 is also about this FYI
https://github.com/tburrows13/factorio-2.0-mod-porting-guide
I think overall restructuring #229 has a chance to help us with setting up 2.0 updates as well.
/env/
core/ # Version-agnostic abstractions & multi-agent
instances/
- base_instance.py # Renamed from instance.py
- multi_agent_instance.py # Renamed from a2a_instance.py
namespaces/
- base_namespace.py # Renamed from namespace.py
- multi_agent_namespace.py # Renamed from a2a_namespace.py
entities/
- entities.py # If future versions are merely additive it could be version-agnostic
protocols/ # Move from /env/protocols
exceptions/ # Move from /env/exceptions
factorio/ or game_api/ # Version-specific implementations
v1_1/ # [Optional] Current Factorio 1.1.110 implementation
- game_types.py # Move from /env/game_types.py
tools/ # Move from /env/tools/
lib/ # Move from /env/lib/
adapters/ # External system integrations
gym/ # Move from /env/gym_env/
- action.py
- config.py
- environment.py
i propose we club all the logic coupled with factorio versions together, as far as i understand the only difference between versions should be some version specific FactorioInstance implementation, game_types.py, possibly entities.py and tools/ lib/ lua scripts. Hence they should be a single submodule. which can then eventually be upgraded to 2.0.