Skip to content

Setting

🏁 Game Status

To describe whether a mini-game is over, the game-ending conditions include:

  • The game score being greater than or equal to the goal score
  • Reaching the maximum number of rounds set for the game

The enumerated values are as follows:

src/civrealm/envs/freeciv_minitask_env.py
@unique
class MinitaskGameStatus(ExtendedEnum):
    MGS_END_GAME = 1
    MGS_IN_GAME = 0

πŸ”₯ Game Difficulty

Based on the richness of terrain resources, the comparison of unit quantities, and other information, we designed the difficulty level of the mini-game.

The enumerated values are as follows:

src/civrealm/envs/freeciv_minitask_env.py
@unique
class MinitaskDifficulty(ExtendedEnum):
    MD_EASY = 'easy'
    MD_NORMAL = 'normal'
    MD_HARD = 'hard'

πŸ† Victory Status

In the mini-game, the player’s current victory status can be represented as: failure, success, and unknown. The unknown state signifies that the game has not yet concluded, while the determination of failure and success only occurs after the game ends.

The enumerated values are as follows:

src/civrealm/envs/freeciv_minitask_env.py
@unique
class MinitaskPlayerStatus(ExtendedEnum):
    MPS_SUCCESS = 1
    MPS_FAIL = 0
    MPS_UNKNOWN = -1

πŸ—ΊοΈ Supported Types

We have designed the following 14 types of mini-games:

Category ID Name Introduction
Development 1 development_build_city Move settler to suitable areas for building a city.
2 development_build_infra Command workers to build infrastructures for improving cities.
3 development_citytile_wonder Arrange work tiles to speed up producing a world wonder.
4 development_transport Transport settlers by ships to another continent and build cities.
Battle 5 battle_ancient_era Defeat enemy units on land tiles in ancient era.
6 battle_industry_era Defeat enemy units on land tiles in industry era.
7 battle_info_era Defeat enemy units on land tiles in infomation era.
8 battle_medieval Defeat enemy units on land tiles in medieval.
9 battle_modern_era Defeat enemy units on land tiles in modern era.
10 battle_attack_city Conquer an enemy city.
11 battle_defend_city Against enemy invasion for a certain number of turns.
12 battle_naval Defeat enemy fleet on the ocean (with Middle Times frigates).
13 battle_naval_modern Defeat enemy fleet on the ocean (with several classes of modern ships).
Diplomacy 14 diplomacy_trade_tech Trade technologies with another civilization.

The enumerated values are as follows:

src/civrealm/envs/freeciv_minitask_env.py
@unique
class MinitaskType(ExtendedEnum):
    MT_DEVELOPMENT_BUILD_CITY = "development_build_city"
    MT_DEVELOPMENT_CITYTILE_WONDER = "development_citytile_wonder"
    MT_DEVELOPMENT_BUILD_INFRA = "development_build_infra"
    MT_DEVELOPMENT_TRANSPORT = "development_transport"
    MT_BATTLE_ANCIENT = "battle_ancient_era"
    MT_BATTLE_INDUSTRY = "battle_industry_era"
    MT_BATTLE_INFO = "battle_info_era"
    MT_BATTLE_MEDIEVAL = "battle_medieval"
    MT_BATTLE_MODERN = "battle_modern_era"
    MT_BATTLE_NAVAL_MODERN = "battle_naval_modern"
    MT_BATTLE_NAVAL = "battle_naval"
    MT_BATTLE_ATTACK_CITY = "battle_attack_city"
    MT_BATTLE_DEFEND_CITY = "battle_defend_city"
    MT_DIPLOMACY_TRADE_TECH = "diplomacy_trade_tech"