Example #1
0
    game.new_episode()
    game_state = game.get_state()
    misc = game_state.game_variables  # [KILLCOUNT, AMMO, HEALTH]
    prev_misc = misc

    action_size = game.get_available_buttons_size()

    img_rows, img_cols = 64, 64
    img_channels = 3  # Color channel
    trace_length = 4  # Temporal Dimension

    state_size = (trace_length, img_rows, img_cols, img_channels)
    agent = DoubleDQNAgent(state_size, action_size, trace_length)

    agent.model = Networks.drqn(state_size, action_size, agent.learning_rate)
    agent.target_model = Networks.drqn(state_size, action_size,
                                       agent.learning_rate)

    s_t = game_state.screen_buffer  # 480 x 640
    s_t = preprocessImg(s_t, size=(img_rows, img_cols))

    is_terminated = game.is_episode_finished()

    # Start training
    epsilon = agent.initial_epsilon
    GAME = 0
    t = 0
    max_life = 0  # Maximum episode life (Proxy for agent performance)
    life = 0
    episode_buf = []  # Save entire episode